Compare commits

..

56 Commits

Author SHA1 Message Date
TC
51fdbe2086 Bump version to 1.19.0 2022-12-31 13:32:27 +01:00
74535b696c Merge pull request #936 from th-ch/github-action-publish-release
Automatic release by CI when version is updated
2022-12-30 19:18:43 +01:00
TC
31ab27c39f Bump version and change release type when publishing a new version 2022-12-30 19:09:32 +01:00
a13606b361 Merge pull request #894 from MiepHD/master
Center toggle of video-toggle
2022-12-29 22:37:55 +01:00
TC
d0ed64928d Update readme to get have precise build instructions 2022-12-28 17:54:27 +01:00
2b8b825f4c Merge branch 'th-ch:master' into master 2022-12-28 14:50:15 +01:00
74c9fe13e2 Added option to change alignment of video-toggle 2022-12-28 10:23:11 +01:00
a2a2f18058 Merge pull request #890 from th-ch/load-plugins-on-window-creation
Load plugins as soon as the window is created
2022-12-27 18:41:50 +01:00
e587f02bd9 Merge pull request #913 from th-ch/dependabot/npm_and_yarn/qs-6.5.3
Bump qs from 6.5.2 to 6.5.3
2022-12-27 18:40:06 +01:00
c38c416813 Bump qs from 6.5.2 to 6.5.3
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.2...v6.5.3)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-27 17:27:53 +00:00
138b6df5a4 Merge pull request #900 from th-ch/snyk-upgrade-cf02914a196acf6d7c9613f310f238f5
[Snyk] Upgrade custom-electron-titlebar from 4.1.1 to 4.1.2
2022-12-27 18:27:24 +01:00
cf2add8d91 Merge pull request #931 from th-ch/th-ch/skip-silences-beginning
Add option in skip-silences plugin to only skip at the beginning
2022-12-27 17:29:50 +01:00
453fe3f87a Merge pull request #932 from th-ch/rimraf-del
Replace rimraf by del-cli
2022-12-27 17:28:52 +01:00
TC
ccedb17545 Replace rimraf by del-cli 2022-12-26 23:33:30 +01:00
TC
43c501b6d8 Add option in skip-silences plugin to only skip at the beginning 2022-12-26 18:46:52 +01:00
TC
a1bed628f4 Update build badge 2022-12-25 23:16:18 +01:00
7052a74a77 Merge pull request #873 from Nixxen/master
docs: Added winget install instructions
2022-12-25 23:12:44 +01:00
254758a4f2 fix: upgrade custom-electron-titlebar from 4.1.1 to 4.1.2
Snyk has created this PR to upgrade custom-electron-titlebar from 4.1.1 to 4.1.2.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-11-28 08:48:16 +00:00
5d85108c8a doc: Updated readme to include note about MSDSS 2022-11-23 00:40:04 +01:00
46bfec299c Centered toggle 2022-11-22 17:56:23 +01:00
de7bc828b1 Appended directly to the main-panel 2022-11-22 17:55:50 +01:00
TC
335d515e22 Do not skip silences if volume is 0 or video is muted 2022-11-20 21:54:23 +01:00
TC
3fb219fcd1 Bump age restriction plugin 2022-11-20 21:15:05 +01:00
64114e8e9d Merge pull request #855 from th-ch/snyk-upgrade-0a2e4b6ab9f1a14b5e27d5de213bed41
[Snyk] Upgrade async-mutex from 0.3.2 to 0.4.0
2022-11-20 21:03:00 +01:00
ca6225d47b Merge pull request #856 from th-ch/snyk-upgrade-745c57baec21283a223fa43b3f450118
[Snyk] Upgrade @cliqz/adblocker-electron from 1.25.0 to 1.25.1
2022-11-20 21:01:23 +01:00
bf580645ae Merge pull request #865 from th-ch/snyk-upgrade-307bfc7d5d38af8f17908cd31fafc230
[Snyk] Upgrade custom-electron-titlebar from 4.1.0 to 4.1.1
2022-11-20 20:59:57 +01:00
4361cf2b2b Merge pull request #876 from th-ch/snyk-upgrade-fc79a6530d88cc21f2f068311b2363b9
[Snyk] Upgrade @ffmpeg/ffmpeg from 0.11.5 to 0.11.6
2022-11-20 20:59:22 +01:00
TC
c2fbc89b91 Load plugins as soon as the window is created 2022-11-20 20:30:35 +01:00
3605e32b25 Merge pull request #888 from Zo-Bro-23/master
Discord Plugin RPC Fix
2022-11-20 20:25:57 +01:00
49eae89886 Update back.js 2022-11-20 17:34:20 +05:30
ee01ae1c00 Update back.js 2022-11-20 17:33:06 +05:30
d199a5fce9 Update back.js 2022-11-20 16:21:32 +05:30
350e8fb706 fix: upgrade @ffmpeg/ffmpeg from 0.11.5 to 0.11.6
Snyk has created this PR to upgrade @ffmpeg/ffmpeg from 0.11.5 to 0.11.6.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-11-11 23:13:48 +00:00
3fdc6e2f09 docs: Added winget install instructions 2022-11-06 18:34:54 +01:00
1fef3c4aab fix: upgrade custom-electron-titlebar from 4.1.0 to 4.1.1
Snyk has created this PR to upgrade custom-electron-titlebar from 4.1.0 to 4.1.1.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-10-19 17:03:11 +00:00
762ef4eede fix: upgrade @cliqz/adblocker-electron from 1.25.0 to 1.25.1
Snyk has created this PR to upgrade @cliqz/adblocker-electron from 1.25.0 to 1.25.1.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-10-10 00:44:14 +00:00
fe9b26ebdd fix: upgrade async-mutex from 0.3.2 to 0.4.0
Snyk has created this PR to upgrade async-mutex from 0.3.2 to 0.4.0.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-10-10 00:44:11 +00:00
77173c1347 Merge pull request #854 from th-ch/bump-ffmpeg
Bump FFMpeg
2022-10-09 13:15:59 +02:00
TC
be3a2880eb Bump FFMpeg 2022-10-09 12:32:26 +02:00
d761d92861 Merge pull request #823 from th-ch/snyk-upgrade-da17b83c582728aa38ca18a57844b1ef
[Snyk] Upgrade @cliqz/adblocker-electron from 1.23.8 to 1.23.9
2022-10-09 12:16:55 +02:00
0e7fd4d36d Merge pull request #801 from th-ch/snyk-upgrade-1bb0065cafdd8e20657abaf4608e914b
[Snyk] Upgrade electron-store from 8.0.2 to 8.1.0
2022-10-09 12:15:11 +02:00
073ea27bba Merge pull request #802 from amsyarasyiq/master
proposal: Adding an option to hide duration before the song ends
2022-10-09 12:12:10 +02:00
9441a6a694 Merge pull request #790 from th-ch/snyk-fix-7c02df943121127bc4ba140fcd2b10b7
[Snyk] Security upgrade node-fetch from 2.6.7 to 3.2.10
2022-10-09 12:06:19 +02:00
TC
c9f610f7fc Lock node-fetch to v2 for commonJS 2022-10-09 12:04:47 +02:00
22b75bbfeb Merge pull request #807 from kerichdev/patch-1
Update README.md with a new theme repo
2022-10-09 11:59:45 +02:00
0063be02fb Merge pull request #822 from andrew-mathieu/andrew-mathieu-patch-1
Fix likes on touchbar (they were inverted)
2022-10-09 11:55:45 +02:00
cc1c13cece Merge pull request #839 from pcgeek86/patch-1
Add Scoop install directions for Windows 🪟
2022-10-09 11:55:13 +02:00
TC
7f96c89f41 Remove jest config (not used anymore) 2022-10-09 11:53:57 +02:00
cdb8bdcfb4 Add Scoop install directions for Windows 🪟 2022-09-20 14:11:39 -06:00
8c817e0862 fix: upgrade @cliqz/adblocker-electron from 1.23.8 to 1.23.9
Snyk has created this PR to upgrade @cliqz/adblocker-electron from 1.23.8 to 1.23.9.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-09-09 23:20:14 +00:00
b4ec6a791d Fix likes on touchbar (they were inverted)
When we tap on "👍", it doesn't leave a like but does the opposite
2022-09-09 03:10:22 +02:00
8bbf18cd6b Update README.md with a new theme repo
The repo referenced is currently unmaintained, so I made a fork with some fixes and improvements, with more to come. Maybe a good idea to reference it as well / replace it?
2022-08-31 10:55:43 +03:00
927596d0c1 fix: set default option for hideDurationLeft 2022-08-23 22:56:14 +08:00
0c0cb0501c Add an option to hide duration before the song ends 2022-08-23 21:00:52 +08:00
a2847c5007 fix: upgrade electron-store from 8.0.2 to 8.1.0
Snyk has created this PR to upgrade electron-store from 8.0.2 to 8.1.0.

See this package in npm:


See this project in Snyk:
https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-22 23:39:40 +00:00
f6b3347d0a fix: package.json & yarn.lock to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-NODEFETCH-2964180
2022-07-31 23:37:38 +00:00
15 changed files with 400 additions and 112 deletions

View File

@ -3,6 +3,9 @@ name: Build YouTube Music
on:
- push
env:
NODE_VERSION: "16.x"
jobs:
build:
name: Build YouTube Music
@ -18,7 +21,7 @@ jobs:
- name: Setup NodeJS
uses: actions/setup-node@v3
with:
node-version: "16.x"
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
@ -116,3 +119,83 @@ jobs:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
yarn run release:win
release:
runs-on: ubuntu-latest
name: Release YouTube Music
if: github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup NodeJS
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v3
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn --frozen-lockfile
- name: Get version
run: |
echo "VERSION_TAG=v$(node -pe "require('./package.json').version")" >> $GITHUB_ENV
- name: Check if version already exists in tags
run: |
echo "VERSION_HASH=$(git rev-parse -q --verify 'refs/tags/${{ env.VERSION_TAG }}')" >> $GITHUB_ENV
echo "CHANGELOG_ANCHOR=$(echo $VERSION_TAG | sed -e 's/\.//g')" >> $GITHUB_ENV
- name: Fetch draft release
if: ${{ env.VERSION_HASH == '' }}
uses: cardinalby/git-get-release-action@v1
id: get_draft_release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
with:
latest: true
draft: true
searchLimit: 1
- name: Publish Release (if it does not exist)
if: ${{ env.VERSION_HASH == '' }}
uses: irongut/EditRelease@v1.2.0
with:
token: ${{ secrets.GH_TOKEN }}
id: ${{ steps.get_draft_release.outputs.id }}
draft: false
prerelease: false
replacename: true
name: ${{ env.VERSION_TAG }}
replacebody: true
body: |
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
Thanks to all contributors! 🏅
- name: Update changelog
if: ${{ env.VERSION_HASH == '' }}
run: |
yarn changelog
- name: Commit changelog
if: ${{ env.VERSION_HASH == '' }}
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Update changelog for ${{ env.VERSION_TAG }}
file_pattern: "changelog.md"
commit_user_name: CI
commit_user_email: th-ch@users.noreply.github.com

View File

@ -49,6 +49,7 @@ const defaultConfig = {
activityTimoutEnabled: true, // if enabled, the discord rich presence gets cleared when music paused after the time specified below
activityTimoutTime: 10 * 60 * 1000, // 10 minutes
listenAlong: true, // add a "listen along" button to rich presence
hideDurationLeft: false, // hides the start and end time of the song to rich presence
},
notifications: {
enabled: false,
@ -90,6 +91,9 @@ const defaultConfig = {
"saveSize": false,
"hotkey": "P"
},
"skip-silences": {
onlySkipBeginning: false,
},
},
};

View File

@ -152,6 +152,7 @@ function createMainWindow() {
: "default",
autoHideMenuBar: config.get("options.hideMenu"),
});
loadPlugins(win);
if (windowPosition) {
const { x, y } = windowPosition;
@ -284,7 +285,6 @@ app.once("browser-window-created", (event, win) => {
}
setupSongInfo(win);
loadPlugins(win);
setupAppControls();
win.webContents.on("did-fail-load", (

View File

@ -1,6 +0,0 @@
module.exports = {
globals: {
__APP__: undefined, // A different app will be launched in each test environment
},
testTimeout: 30000, // 30s
};

View File

@ -1,7 +1,7 @@
{
"name": "youtube-music",
"productName": "YouTube Music",
"version": "1.18.0",
"version": "1.19.0",
"description": "YouTube Music Desktop App - including custom plugins",
"license": "MIT",
"repository": "th-ch/youtube-music",
@ -74,7 +74,7 @@
"icon": "rimraf assets/generated && electron-icon-maker --input=assets/youtube-music.png --output=assets/generated",
"generate:package": "node utils/generate-package-json.js",
"postinstall": "yarn run icon && yarn run plugins",
"clean": "rimraf dist",
"clean": "del dist",
"build": "yarn run clean && electron-builder --win --mac --linux",
"build:linux": "yarn run clean && electron-builder --linux",
"build:mac": "yarn run clean && electron-builder --mac dmg:x64",
@ -93,21 +93,21 @@
"npm": "Please use yarn and not npm"
},
"dependencies": {
"@cliqz/adblocker-electron": "^1.23.8",
"@ffmpeg/core": "^0.10.0",
"@ffmpeg/ffmpeg": "^0.10.1",
"Simple-YouTube-Age-Restriction-Bypass": "https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.4.6",
"async-mutex": "^0.3.2",
"@cliqz/adblocker-electron": "^1.25.1",
"@ffmpeg/core": "^0.11.0",
"@ffmpeg/ffmpeg": "^0.11.6",
"Simple-YouTube-Age-Restriction-Bypass": "https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.5.4",
"async-mutex": "^0.4.0",
"browser-id3-writer": "^4.4.0",
"chokidar": "^3.5.3",
"custom-electron-prompt": "^1.5.0",
"custom-electron-titlebar": "^4.1.0",
"custom-electron-titlebar": "^4.1.2",
"discord-rpc": "^4.0.1",
"electron-better-web-request": "^1.0.1",
"electron-debug": "^3.2.0",
"electron-is": "^3.0.0",
"electron-localshortcut": "^3.2.1",
"electron-store": "^8.0.2",
"electron-store": "^8.1.0",
"electron-unhandled": "^4.0.1",
"electron-updater": "^4.6.3",
"filenamify": "^4.3.0",
@ -123,12 +123,12 @@
"devDependencies": {
"@playwright/test": "^1.25.1",
"auto-changelog": "^2.4.0",
"del-cli": "^5.0.0",
"electron": "^20.1.1",
"electron-builder": "^23.0.3",
"electron-devtools-installer": "^3.1.1",
"electron-icon-maker": "0.0.5",
"playwright": "^1.25.1",
"rimraf": "^3.0.2",
"xo": "^0.45.0"
},
"resolutions": {

View File

@ -4,8 +4,8 @@ const { dialog, app } = require("electron");
const registerCallback = require("../../providers/song-info");
// Application ID registered by @xn-oah
const clientId = "942539762227630162";
// Application ID registered by @Zo-Bro-23
const clientId = "1043858434585526382";
/**
* @typedef {Object} Info
@ -70,7 +70,7 @@ let clearActivity;
*/
let updateActivity;
module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong }) => {
module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong, hideDurationLeft }) => {
window = win;
// We get multiple events
// Next song: PAUSE(n), PAUSE(n+1), PLAY(n+1)
@ -117,7 +117,7 @@ module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong
// Set start the timer so the activity gets cleared after a while if enabled
if (activityTimoutEnabled)
clearActivity = setTimeout(() => info.rpc.clearActivity().catch(console.error), activityTimoutTime ?? 10000);
} else {
} else if (!hideDurationLeft) {
// Add the start and end time of the song
const songStartTime = Date.now() - songInfo.elapsedSeconds * 1000;
activityInfo.startTimestamp = songStartTime;

View File

@ -40,6 +40,15 @@ module.exports = (win, options, refreshMenu) => {
setMenuOptions('discord', options);
},
},
{
label: "Hide duration left",
type: "checkbox",
checked: options.hideDurationLeft,
click: (item) => {
options.hideDurationLeft = item.checked;
setMenuOptions('discord', options);
}
},
{
label: "Set inactivity timeout",
click: () => setInactivityTimeout(win, options),

View File

@ -6,6 +6,12 @@ const { ipcRenderer } = require("electron");
const is = require("electron-is");
const filenamify = require("filenamify");
// Workaround for "Automatic publicPath is not supported in this browser"
// See https://github.com/cypress-io/cypress/issues/18435#issuecomment-1048863509
const script = document.createElement("script");
document.body.appendChild(script);
script.src = " "; // single space and not the empty string
// Browser version of FFmpeg (in renderer process) instead of loading @ffmpeg/ffmpeg
// because --js-flags cannot be passed in the main process when the app is packaged
// See https://github.com/electron/electron/issues/22705

View File

@ -1,7 +1,8 @@
const hark = require("hark/hark.bundle.js");
module.exports = () => {
module.exports = (options) => {
let isSilent = false;
let hasAudioStarted = false;
document.addEventListener("apiLoaded", () => {
const video = document.querySelector("video");
@ -10,6 +11,10 @@ module.exports = () => {
interval: 2, // ms
});
const skipSilence = () => {
if (options.onlySkipBeginning && hasAudioStarted) {
return;
}
if (isSilent && !video.paused) {
video.currentTime += 0.2; // in s
}
@ -17,20 +22,31 @@ module.exports = () => {
speechEvents.on("speaking", function () {
isSilent = false;
hasAudioStarted = true;
});
speechEvents.on("stopped_speaking", function () {
if (!(video.paused || video.seeking || video.ended)) {
speechEvents.on("stopped_speaking", function () {
if (
!(
video.paused ||
video.seeking ||
video.ended ||
video.muted ||
video.volume === 0
)
) {
isSilent = true;
skipSilence();
}
});
video.addEventListener("play", function () {
hasAudioStarted = false;
skipSilence();
});
video.addEventListener("seeked", function () {
hasAudioStarted = false;
skipSilence();
});
});

View File

@ -59,7 +59,7 @@ const touchBar = new TouchBar({
});
module.exports = (win) => {
const { playPause, next, previous, like, dislike } = getSongControls(win);
const { playPause, next, previous, dislike, like } = getSongControls(win);
// If the page is ready, register the callback
win.once("ready-to-show", () => {

View File

@ -2,6 +2,10 @@
align-items: unset !important;
}
#main-panel {
position: relative;
}
.video-switch-button {
z-index: 999;
box-sizing: border-box;
@ -18,6 +22,7 @@
color: #fff;
padding-right: 120px;
position: absolute;
left: var(--align);
}
.video-switch-button:before {

View File

@ -31,6 +31,21 @@ module.exports = (_options) => {
document.addEventListener("apiLoaded", setup, { once: true, passive: true });
}
}
const mainpanel = document.querySelector("#main-panel");
switch (_options.align) {
case "right": {
mainpanel.style.setProperty("--align", "calc(100% - 240px)");
return;
}
case "middle": {
mainpanel.style.setProperty("--align", "calc(50% - 120px)");
return;
}
default:
case "left": {
mainpanel.style.setProperty("--align", "0px");
}
}
};
function setup(e) {
@ -38,7 +53,7 @@ function setup(e) {
player = $('ytmusic-player');
video = $('video');
$('ytmusic-player-page').prepend(switchButtonDiv);
$('#main-panel').append(switchButtonDiv);
if (options.hideVideo) {
$('.video-switch-button-checkbox').checked = false;

View File

@ -33,6 +33,38 @@ module.exports = (win, options) => [
},
]
},
{
label: "Alignment",
submenu: [
{
label: "Left",
type: "radio",
checked: options.align === 'left',
click: () => {
options.align = 'left';
setMenuOptions("video-toggle", options);
}
},
{
label: "Middle",
type: "radio",
checked: options.align === 'middle',
click: () => {
options.align = 'middle';
setMenuOptions("video-toggle", options);
}
},
{
label: "Right",
type: "radio",
checked: options.align === 'right',
click: () => {
options.align = 'right';
setMenuOptions("video-toggle", options);
}
},
]
},
{
label: "Force Remove Video Tab",
type: "checkbox",

View File

@ -5,7 +5,7 @@
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg?style=for-the-badge)](https://github.com/sindresorhus/xo)
[![Build status](https://img.shields.io/github/workflow/status/th-ch/youtube-music/Build%20YouTube%20Music?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![Known Vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/th-ch/youtube-music?style=for-the-badge)](https://snyk.io/test/github/th-ch/youtube-music)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
@ -37,6 +37,23 @@ Install the `youtube-music-bin` package from the AUR. For AUR installation instr
If you get an error "is damaged and cant be opened." when launching the app, run `xattr -cr /Applications/YouTube\ Music.app` in Terminal.
### Windows
You can use the [Scoop package manager](https://scoop.sh) to install the `youtube-music` package from the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
```
scoop bucket add extras
scoop install extras/youtube-music
```
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s official CLI package manager to install the `th-ch.YouTubeMusic` package.
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same file).*
```
winget install th-ch.YouTubeMusic
```
## Available plugins:
- **Ad Blocker**: Block all ads and tracking out of the box
@ -101,7 +118,7 @@ If you get an error "is damaged and cant be opened." when launching the app,
You can load CSS files to change the look of the application (Options > Visual Tweaks > Themes).
Some predefined themes are available in https://github.com/OceanicSquirrel/themes-for-ytmdesktop-player.
Some predefined themes are available in https://github.com/kerichdev/themes-for-ytmdesktop-player.
## Dev
@ -168,9 +185,12 @@ module.exports = () => {
## Build
```sh
yarn build
```
1. Clone the repo
2. Run `yarn` to install dependencies
3. Run `yarn build:OS`
- `yarn build:win` - Windows
- `yarn build:linux` - Linux
- `yarn build:mac` - MacOS
Builds the app for macOS, Linux, and Windows, using [electron-builder](https://github.com/electron-userland/electron-builder).

264
yarn.lock
View File

@ -250,45 +250,45 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
"@cliqz/adblocker-content@^1.23.8":
version "1.23.8"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.23.8.tgz#c2fdf46cc746e092ad4fce594b8e5f0be6366db9"
integrity sha512-5Wm/OSA6H8AUVFi8SDff6xJ4zT/1VCrNoUnevFEi3e0MCmdQUvn+cJc03Saky7Ch5oLSJKTXNNMyPaODZLz24A==
"@cliqz/adblocker-content@^1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.25.1.tgz#da81e7838e288a6f0fdb8a97a0df8169accb74a1"
integrity sha512-7gl2VdNPBfj7aPoq34B5miwGcnda/7LCr+BqnpcSOjdLV6jjT2FrNSAKGFvcH23q0HM1IFhYDV6ydTgsdWFCnA==
dependencies:
"@cliqz/adblocker-extended-selectors" "^1.23.8"
"@cliqz/adblocker-extended-selectors" "^1.25.1"
"@cliqz/adblocker-electron-preload@^1.23.8":
version "1.23.8"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.23.8.tgz#7914c77499ab521d5168cb378b6c2470a2ce7978"
integrity sha512-0oMnbnw2RPtw/aMDoUML5VrTGnCRVi0DaLujcxnP2dlEvVZgKrueNK6ZWOKmdIfy4UcxunxUpBnI7n3FV5hbhA==
"@cliqz/adblocker-electron-preload@^1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.25.1.tgz#83bd59d8e94436c451af3525d9902fa5fa1be3ab"
integrity sha512-edNVEqGrXqe/Qwi0D9/V8xmtyeJlhNPaelXilYa1ne7jG/OT7pee+7Vi4BWezl0NQ77WF3/mY9Bj4eJkEO0uiQ==
dependencies:
"@cliqz/adblocker-content" "^1.23.8"
"@cliqz/adblocker-content" "^1.25.1"
"@cliqz/adblocker-electron@^1.23.8":
version "1.23.8"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.23.8.tgz#55de7fea04e09cec580607308dff38ec65ca4be4"
integrity sha512-V0pOZM9g3KjXuvTekXFjN5cn+oNYy6AJQ116grbABg0NDN1dPMyjz/EO3+HhczRrJkkgJkNrNyobjhRrm1iEpw==
"@cliqz/adblocker-electron@^1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.25.1.tgz#44d9034e35c78938a772b10f8096df55a4accc41"
integrity sha512-CKStwRTR2L78EjgmuUpLKkV9s/uVnwQNGr7I/hyMkEROXbGdrN7P5LhwO+kkewccZ+3JtE509PBmZAp0EP71dw==
dependencies:
"@cliqz/adblocker" "^1.23.8"
"@cliqz/adblocker-electron-preload" "^1.23.8"
"@cliqz/adblocker" "^1.25.1"
"@cliqz/adblocker-electron-preload" "^1.25.1"
tldts-experimental "^5.6.21"
"@cliqz/adblocker-extended-selectors@^1.23.8":
version "1.23.8"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.23.8.tgz#2d69c95aee385c5b51a047cbaf0219db98f50729"
integrity sha512-5xx47oT2Q9E3vkfEm/EzSs7cAPi8WNWtu7kJcGa/urVkDchJwdkdelvQ2Dof+k5icI5AqZorZSsk9Q7w2bLxrA==
"@cliqz/adblocker-extended-selectors@^1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.25.1.tgz#cfac0080952311399805fe153cd9e7e1331b3c6d"
integrity sha512-4MdMe/YfIok5d8WYVcLR3Ak7vGrmeUV47frgmXEe945luY93vwlzk1NiLYW1JM5Gdm+VePweoS9cJ1/QUTmv+Q==
"@cliqz/adblocker@^1.23.8":
version "1.23.8"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.23.8.tgz#5945bdb077a18864ed7a3fefdc30d8887eac615c"
integrity sha512-xM1JYTv5dA+pPP4x4IVZdjkM9aAsakTnShFLuHLzMxMHd20eUB91NXm4kK6acw9nHwG6rCyat6+u7TvAqSmR6g==
"@cliqz/adblocker@^1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.25.1.tgz#4d3e8894ce48ad0d0f8b26a4a1003f0676b7f734"
integrity sha512-1C1/ELI94/XewdUj/o1+Q4ziOigMvTZQA05UERfDoKqpJ+0cbrEF/UImrzpX7n+kYsR7xTJvmf+iNM3zS0tfsg==
dependencies:
"@cliqz/adblocker-content" "^1.23.8"
"@cliqz/adblocker-extended-selectors" "^1.23.8"
"@cliqz/adblocker-content" "^1.25.1"
"@cliqz/adblocker-extended-selectors" "^1.25.1"
"@remusao/guess-url-type" "^1.1.2"
"@remusao/small" "^1.1.2"
"@remusao/smaz" "^1.7.1"
"@types/chrome" "^0.0.183"
"@types/chrome" "^0.0.197"
"@types/firefox-webext-browser" "^94.0.0"
tldts-experimental "^5.6.21"
@ -359,15 +359,15 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@ffmpeg/core@^0.10.0":
version "0.10.0"
resolved "https://registry.yarnpkg.com/@ffmpeg/core/-/core-0.10.0.tgz#f6a58361b22d7c23c6f7071b9fff6d572bc3f499"
integrity sha512-qunWJl5PezpXEm31tb8Qu5z37B5KVA1VYZCpXchMhuAb3X9T7PuE3SlhOwphEoRhzaOa3lpofDfzihAUMFaVPQ==
"@ffmpeg/core@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@ffmpeg/core/-/core-0.11.0.tgz#fc24fe5af587f83cd2575d0e45de455d8eed9ba9"
integrity sha512-9Tt/+2PMpkGPXUK8n6He9G8Y+qR6qmCPSCw9iEKZxHHOvJ9BE/r0Fccj+YgDZTlyu6rXxc9x6EqCaFBIt7qzjA==
"@ffmpeg/ffmpeg@^0.10.1":
version "0.10.1"
resolved "https://registry.yarnpkg.com/@ffmpeg/ffmpeg/-/ffmpeg-0.10.1.tgz#3dacf3985de9c83a95fbf79fe709920cc009b00a"
integrity sha512-ChQkH7Rh57hmVo1LhfQFibWX/xqneolJKSwItwZdKPcLZuKigtYAYDIvB55pDfP17VtR1R77SxgkB2/UApB+Og==
"@ffmpeg/ffmpeg@^0.11.6":
version "0.11.6"
resolved "https://registry.yarnpkg.com/@ffmpeg/ffmpeg/-/ffmpeg-0.11.6.tgz#9cbe42dfb5132fca74ae5570ebeee2341f8c6e51"
integrity sha512-uN8J8KDjADEavPhNva6tYO9Fj0lWs9z82swF3YXnTxWMBoFLGq3LZ6FLlIldRKEzhOBKnkVfA8UnFJuvGvNxcA==
dependencies:
is-url "^1.2.4"
node-fetch "^2.6.1"
@ -789,10 +789,10 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@types/chrome@^0.0.183":
version "0.0.183"
resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.183.tgz#c12649c00ae5ae8fca511248256c0b11f91c95e2"
integrity sha512-sYI1qGY2oB6U5GFyuoSsVJsi2ytuEe92QrQTXQRwkISN8yn1gPY5qRq1XSwKN17yjvZTgxxeHw2ZoSHMti6qYg==
"@types/chrome@^0.0.197":
version "0.0.197"
resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.197.tgz#c1b50cdb72ee40f9bc1411506031a9f8a925ab35"
integrity sha512-m1NfS5bOjaypyqQfaX6CxmJodZVcvj5+Mt/K94EBHkflYjPNmXHAzbxfifdLMa0YM3PDyOxohoTS5ug/e6p5jA==
dependencies:
"@types/filesystem" "*"
"@types/har-format" "*"
@ -1011,9 +1011,9 @@
"@typescript-eslint/types" "4.33.0"
eslint-visitor-keys "^2.0.0"
"Simple-YouTube-Age-Restriction-Bypass@https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.4.6":
"Simple-YouTube-Age-Restriction-Bypass@https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.5.4":
version "0.0.0"
resolved "https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.4.6#ac26ebb688667ce4ec6566ffbd3a75dbe2ac9a55"
resolved "https://gitpkg.now.sh/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/dist?v2.5.4#4cdc95d7614baa3fdfe334ebf6b8a99b0d8347f0"
abstract-socket@^2.0.0:
version "2.1.1"
@ -1045,6 +1045,14 @@ agent-base@6:
dependencies:
debug "4"
aggregate-error@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e"
integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==
dependencies:
clean-stack "^4.0.0"
indent-string "^5.0.0"
ajv-formats@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
@ -1308,12 +1316,12 @@ async-exit-hook@^2.0.1:
resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3"
integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==
async-mutex@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df"
integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==
async-mutex@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f"
integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==
dependencies:
tslib "^2.3.1"
tslib "^2.4.0"
async@^3.2.3:
version "3.2.3"
@ -1698,6 +1706,13 @@ clean-stack@^2.1.0:
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
clean-stack@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31"
integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==
dependencies:
escape-string-regexp "5.0.0"
cli-boxes@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
@ -1829,10 +1844,10 @@ concat-stream@^1.6.2:
readable-stream "^2.2.2"
typedarray "^0.0.6"
conf@^10.1.2:
version "10.1.2"
resolved "https://registry.yarnpkg.com/conf/-/conf-10.1.2.tgz#50132158f388756fa9dea3048f6b47935315c14e"
integrity sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg==
conf@^10.2.0:
version "10.2.0"
resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6"
integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==
dependencies:
ajv "^8.6.3"
ajv-formats "^2.1.1"
@ -1924,10 +1939,10 @@ custom-electron-prompt@^1.5.0:
resolved "https://registry.yarnpkg.com/custom-electron-prompt/-/custom-electron-prompt-1.5.0.tgz#b514267f28e9f0d61011e03f76b1e59473af33d4"
integrity sha512-DO+CIfO8c5lG+yzAkXD8PbFunPQ+WCJ4QeGN8bCvos7Fxt3xFDW0Qdnm1v9DKkAMj7iG0SujhdfNzsrtA4fl5g==
custom-electron-titlebar@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/custom-electron-titlebar/-/custom-electron-titlebar-4.1.0.tgz#a34b4e557e661d604a5bb7807cd5127a68c46921"
integrity sha512-5iHiOAF+m97ZDBqhrn1KRtQr7j4ALEERNVqljryVx2tMcFv535wAZs4Tj7XSrbALJLHIixKvXQyypnvEf27NhA==
custom-electron-titlebar@^4.1.2:
version "4.1.3"
resolved "https://registry.yarnpkg.com/custom-electron-titlebar/-/custom-electron-titlebar-4.1.3.tgz#6b5d0527858bae89314f3d0b4e6a0b9be4efad81"
integrity sha512-9tqiRxp7KG3qgS5Qh0ejSTwzqJ/pkB8RXQrvZHmilIzaWFmvjHiaSnHgCj+1iJcnhvzACYXFiFo2fxD64kFi4A==
dashdash@^1.12.0:
version "1.14.1"
@ -2055,6 +2070,14 @@ define-properties@^1.1.3:
dependencies:
object-keys "^1.0.12"
del-cli@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-5.0.0.tgz#fa79fd57e888ecaaf8a468d87e8a175142a24aa9"
integrity sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==
dependencies:
del "^7.0.0"
meow "^10.1.3"
del@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
@ -2067,6 +2090,20 @@ del@^3.0.0:
pify "^3.0.0"
rimraf "^2.2.8"
del@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-7.0.0.tgz#79db048bec96f83f344b46c1a66e35d9c09fe8ac"
integrity sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==
dependencies:
globby "^13.1.2"
graceful-fs "^4.2.10"
is-glob "^4.0.3"
is-path-cwd "^3.0.0"
is-path-inside "^4.0.0"
p-map "^5.5.0"
rimraf "^3.0.2"
slash "^4.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@ -2351,13 +2388,13 @@ electron-publish@23.0.2:
lazy-val "^1.0.5"
mime "^2.5.2"
electron-store@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.0.2.tgz#95c8cf81c1e1cf48b24f3ceeea24b921c1ff62d7"
integrity sha512-9GwUMv51w8ydbkaG7X0HrPlElXLApg63zYy1/VZ/a08ndl0gfm4iCoD3f0E1JvP3V16a+7KxqriCI0c122stiA==
electron-store@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.1.0.tgz#46a398f2bd9aa83c4a9daaae28380e2b3b9c7597"
integrity sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==
dependencies:
conf "^10.1.2"
type-fest "^2.12.2"
conf "^10.2.0"
type-fest "^2.17.0"
electron-to-chromium@^1.3.723:
version "1.3.740"
@ -2525,6 +2562,11 @@ escape-goat@^2.0.0:
resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
escape-string-regexp@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@ -2955,6 +2997,17 @@ fast-glob@^3.1.1:
micromatch "^4.0.2"
picomatch "^2.2.1"
fast-glob@^3.2.11:
version "3.2.12"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
glob-parent "^5.1.2"
merge2 "^1.3.0"
micromatch "^4.0.4"
fast-glob@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
@ -3380,6 +3433,17 @@ globby@^12.0.2:
merge2 "^1.4.1"
slash "^4.0.0"
globby@^13.1.2:
version "13.1.3"
resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff"
integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==
dependencies:
dir-glob "^3.0.1"
fast-glob "^3.2.11"
ignore "^5.2.0"
merge2 "^1.4.1"
slash "^4.0.0"
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
@ -3418,6 +3482,11 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
graceful-fs@^4.2.10:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
@ -3645,6 +3714,11 @@ ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
ignore@^5.2.0:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
image-q@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056"
@ -3942,6 +4016,11 @@ is-path-cwd@^1.0.0:
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
is-path-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7"
integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==
is-path-in-cwd@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
@ -3961,6 +4040,11 @@ is-path-inside@^3.0.2:
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
is-path-inside@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db"
integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==
is-plain-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@ -4551,6 +4635,24 @@ meow@^10.1.1:
type-fest "^1.2.2"
yargs-parser "^20.2.9"
meow@^10.1.3:
version "10.1.5"
resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f"
integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==
dependencies:
"@types/minimist" "^1.2.2"
camelcase-keys "^7.0.0"
decamelize "^5.0.0"
decamelize-keys "^1.1.0"
hard-rejection "^2.1.0"
minimist-options "4.1.0"
normalize-package-data "^3.0.2"
read-pkg-up "^8.0.0"
redent "^4.0.0"
trim-newlines "^4.0.2"
type-fest "^1.2.2"
yargs-parser "^20.2.9"
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@ -4742,12 +4844,7 @@ node-addon-api@^1.3.0, node-addon-api@^1.6.3:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
node-fetch@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
node-fetch@^2.6.7:
node-fetch@^2.6.1, node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
@ -5007,6 +5104,13 @@ p-map@^1.1.1:
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
p-map@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715"
integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==
dependencies:
aggregate-error "^4.0.0"
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
@ -5382,9 +5486,9 @@ pupa@^2.1.1:
escape-goat "^2.0.0"
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
version "6.5.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
quick-lru@^5.1.1:
version "5.1.1"
@ -6220,7 +6324,7 @@ tough-cookie@~2.5.0:
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
trim-newlines@^4.0.2:
version "4.0.2"
@ -6256,10 +6360,10 @@ tslib@^1.8.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslib@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
tsutils@^3.21.0:
version "3.21.0"
@ -6327,10 +6431,10 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
type-fest@^2.12.2:
version "2.15.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.15.1.tgz#ad596982d50c157f7e981307c21c3983970e4e77"
integrity sha512-LYSjcIz3NmoQksXq/3/B7Nfad+T8mkaI628agAAnHCpXPTBRMK2ygt3eABpzII8CbZZM8dLdVQ4Gr8ousjFjMw==
type-fest@^2.17.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
typedarray-to-buffer@^3.1.5:
version "3.1.5"
@ -6488,12 +6592,12 @@ verror@1.10.0, verror@^1.10.0:
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
dependencies:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"