From 7f56cc8557cce9d813470bfed5e4dc387bb78334 Mon Sep 17 00:00:00 2001 From: ririxidev Date: Sat, 24 Apr 2021 12:54:50 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=20New=20features!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 ++++++ builder.json | 13 ++- package.json | 3 +- src/assets/background.png | Bin 0 -> 914 bytes src/index.ts | 1 - src/managers/discord.manager.ts | 16 +++- src/managers/tidal.manager.ts | 10 ++- src/managers/tray.manager.ts | 85 ++++++++++++++++---- src/util/config.ts | 15 ++++ yarn.lock | 137 +++++++++++++++++++++++++++++++- 10 files changed, 273 insertions(+), 31 deletions(-) create mode 100644 src/assets/background.png create mode 100644 src/util/config.ts diff --git a/README.md b/README.md index 38953fb..9586f06 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ - Cross-platform (Windows, macOS). - Super fast. - Tray that shows you actually playing song and option to close program! +- Settings - Coded in TypeScript. ## Supported OS @@ -15,12 +16,35 @@ ## Screenshots +
+ Open screenshots + ![image](https://user-images.githubusercontent.com/9348108/114874300-7e3a4700-9dfc-11eb-82ea-49c5cf1b25c4.png) ![image](https://user-images.githubusercontent.com/9348108/114874365-901bea00-9dfc-11eb-9ba4-8c6c7aa8b14c.png) ![image](https://user-images.githubusercontent.com/9348108/114874433-9dd16f80-9dfc-11eb-8dbc-f01774950b81.png) ![image](https://user-images.githubusercontent.com/9348108/114874447-a32eba00-9dfc-11eb-9081-544f2781be2b.png) +![image](https://user-images.githubusercontent.com/9348108/115956057-fdb1cf80-a4fa-11eb-9777-c32c64875773.png) + +
+ +## App settings + +App has implemented settings that you can use to disable/enable some features. + +**_All changes are applied on new song!_** + +- You can disable showing `Rich Presence` on discord. +- You can disable showing `App Name` (tidalRPC) on discord. +- You can disable showing `Buttons` on discord. + +_Warning: macOS users need to have app in `Applications` folder to have config working properly._ + +### How to access it? + +It's super easy! Just click on `tidalRPC` tray icon and go to `Settings` submenu! + --- This project is not affiliated with Tidal/Aspiro. It's only fan-made project. diff --git a/builder.json b/builder.json index 572a10f..51d01de 100644 --- a/builder.json +++ b/builder.json @@ -8,14 +8,19 @@ }, "asar": true, "dmg": { + "background": "src/assets/background.png", + "window": { + "width": 660, + "height": 400 + }, "contents": [ { - "x": 110, - "y": 150 + "x": 180, + "y": 170 }, { - "x": 410, - "y": 150, + "x": 480, + "y": 170, "type": "link", "path": "/Applications" } diff --git a/package.json b/package.json index 1f176a5..133846c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tidalRPC", - "version": "1.0.0", + "version": "1.1.0", "description": "Unofficial Discord Rich Presence for Tidal Desktop app.", "repository": { "type": "git", @@ -19,6 +19,7 @@ "axios": "^0.21.1", "debug": "^4.3.1", "discord-rpc": "^3.2.0", + "electron-store": "^8.0.0", "electron-updater": "^4.3.8", "figlet": "^1.5.0", "node-mac-permissions": "mmaietta/node-mac-permissions#misc/conditional-binding", diff --git a/src/assets/background.png b/src/assets/background.png new file mode 100644 index 0000000000000000000000000000000000000000..21e9c9e8251dd135db5b86aa88f6d42921161057 GIT binary patch literal 914 zcmeAS@N?(olHy`uVBq!ia0y~yV4A|fz&L?}87QKj!O#lihzIzDxPJKX_36`Bvu4e0 zY;0M(cEkJkUmiSo>fzz3uWyi%k@f1;`>d>-H*Y?MhK3gxm%V%UIXOACwzj^#y{n?4 zYU0ExZ{L2(&o7)aXa4KgAJWn?mMvTL;>FvzxC8?O!}aSog@r{J85wWizWd?BX8{3$ zrlw{G4jj3A_o1h!mxYDp@#Cj&+_>Z7;$~xGd+yw&OP8+O+dDWoI9<7N^X%D+*48$z zuI@K)-aT^Ugt@tex3|yz`;YhTJ!oQL8W=Nhxh@ zo!QyBr%s)lF=KXJT|-Y#e@936q)AiD%d6(jU67iZzG1`WojdoQIB~|(((3&A%eJ<5 zj*iZcAHQ&O^Eh+nLPA24p`lS%SMSD+TQmM|YXF9snWu|mNCo5Dn}-)J$P{2WAou;l z&272GxyJuZ!tT#MaPL>ZR5w;&h|&Rku(zrF_2y^y3g)hv5@J37ZGL07PHNmaV9OxDyu==_~w~& zuDk~OC!Bp0bcNxx_RTfxTzNO_n|StF*cFD`);Hh0W4*GWe!|&@feyUK)o;$3$9kop zZsOUep$@#)H{ZPTh2_eJ8m-y48cBj%_J#OHNt2uE_ol&)B z*4*<9xDPa-hc5!zT}wmdKI;Vst E0EuW@?*IS* literal 0 HcmV?d00001 diff --git a/src/index.ts b/src/index.ts index 0a6582b..1bf4ade 100644 --- a/src/index.ts +++ b/src/index.ts @@ -14,7 +14,6 @@ if (!singleInstanceLock) app.quit(); app.setAppUserModelId("ririxidev.TidalRPC"); app.whenReady().then(async () => { trayManager = new TrayManager(); - trayManager.start(); if (platform() === "darwin") app.dock.hide(); diff --git a/src/managers/discord.manager.ts b/src/managers/discord.manager.ts index 864b288..352af79 100644 --- a/src/managers/discord.manager.ts +++ b/src/managers/discord.manager.ts @@ -1,6 +1,8 @@ import { Client, Presence } from "discord-rpc"; +import { app } from "electron"; import Song from "@classes/song.class"; +import { store } from "@util/config"; import { formatTime } from "@util/formatTime"; import { clientID, logger } from "../config"; @@ -66,8 +68,16 @@ export const setActivity = (data: Song) => { largeImageKey: data.quality === "HI_RES" ? "logo_mqa" : "logo", largeImageText: data.quality === "HI_RES" - ? `Tidal [MQA] ${String.fromCharCode(8226)} tidalRPC ${app.version}` - : `Tidal ${String.fromCharCode(8226)} tidalRPC ${app.version}` + ? `Tidal [MQA] ${ + store.get("showAppName") + ? `${String.fromCharCode(8226)} tidalRPC ${app.getVersion()}` + : "" + }` + : `Tidal ${ + store.get("showAppName") + ? `${String.fromCharCode(8226)} tidalRPC ${app.getVersion()}` + : "" + }` }; if (!data.duration) presenceData.startTimestamp = data.startTime; @@ -80,7 +90,7 @@ export const setActivity = (data: Song) => { presenceData.smallImageKey = data.paused ? "pause" : "play"; presenceData.smallImageText = data.paused ? "Paused" : "Playing"; - if (data.buttons && data.buttons.length !== 0) + if (data.buttons && data.buttons.length !== 0 && store.get("showButtons")) presenceData.buttons = data.buttons; if (data.paused && presenceData.endTimestamp) diff --git a/src/managers/tidal.manager.ts b/src/managers/tidal.manager.ts index 27d13ae..7affb9f 100644 --- a/src/managers/tidal.manager.ts +++ b/src/managers/tidal.manager.ts @@ -1,9 +1,10 @@ -import { clearActivity, setActivity } from "@managers/discord.manager"; - import Process from "@classes/process.class"; import Song from "@classes/song.class"; -import { compareTitle } from "@util/compareTitle"; import tidalAPI from "@classes/tidalAPI.class"; +import { clearActivity, setActivity } from "@managers/discord.manager"; +import { compareTitle } from "@util/compareTitle"; +import { store } from "@util/config"; + import { trayManager } from "../"; export default class TidalManager { @@ -96,7 +97,8 @@ export default class TidalManager { console.log(this.currentSong); trayManager.update(this.currentSong); - return setActivity(this.currentSong); + if (store.get("showPresence")) return setActivity(this.currentSong); + else return clearActivity(); } break; } diff --git a/src/managers/tray.manager.ts b/src/managers/tray.manager.ts index a7e08e3..ffdb90e 100644 --- a/src/managers/tray.manager.ts +++ b/src/managers/tray.manager.ts @@ -1,11 +1,13 @@ -import { Menu, Tray, app } from "electron"; - -import Song from "@classes/song.class"; import debug from "debug"; -import { join } from "path"; -import { logger } from "../config"; +import { app, Menu, Tray } from "electron"; import { platform } from "os"; +import { join } from "path"; + +import Song from "@classes/song.class"; +import { store } from "@util/config"; + import { trayManager } from "../"; +import { logger } from "../config"; let trayIcon: string; @@ -16,9 +18,6 @@ switch (platform()) { case "win32": trayIcon = join(__dirname, "../assets/windows.ico"); break; - default: - trayIcon = join(__dirname, "../assets/macos.png"); - break; } export default class TrayManager { @@ -28,31 +27,58 @@ export default class TrayManager { this.systray = new Tray(trayIcon); this.logger = logger.extend("TrayManager"); - this.systray.setToolTip("tidalRPC"); - } - - start() { this.systray.setContextMenu( Menu.buildFromTemplate([ { - label: "TidalRPC", + label: `TidalRPC ${app.getVersion()}`, enabled: false }, { type: "separator" }, + { + label: "Settings", + submenu: [ + { + label: "Show Rich Presence", + type: "checkbox", + checked: store.get("showPresence"), + click: () => { + store.set("showPresence", !store.get("showPresence")); + } + }, + { + label: "Show AppName in Rich Presence", + type: "checkbox", + checked: store.get("showAppName"), + click: () => { + store.set("showAppName", !store.get("showAppName")); + } + }, + { + label: "Show Buttons in Rich Presence", + type: "checkbox", + checked: store.get("showButtons"), + click: () => { + store.set("showButtons", !store.get("showButtons")); + } + } + ] + }, { label: "Exit", role: "quit" } ]) ); + + this.systray.setToolTip("tidalRPC"); } update(song?: Song) { - let menu = Menu.buildFromTemplate([ + const menu = Menu.buildFromTemplate([ { - label: "TidalRPC", + label: `TidalRPC ${app.getVersion()}`, enabled: false }, { @@ -63,6 +89,35 @@ export default class TrayManager { { type: "separator" }, + { + label: "Settings", + submenu: [ + { + label: "Show Rich Presence", + type: "checkbox", + checked: store.get("showPresence"), + click: () => { + store.set("showPresence", !store.get("showPresence")); + } + }, + { + label: "Show AppName in Rich Presence", + type: "checkbox", + checked: store.get("showAppName"), + click: () => { + store.set("showAppName", !store.get("showAppName")); + } + }, + { + label: "Show Buttons in Rich Presence", + type: "checkbox", + checked: store.get("showButtons"), + click: () => { + store.set("showButtons", !store.get("showButtons")); + } + } + ] + }, { label: "Exit", role: "quit" diff --git a/src/util/config.ts b/src/util/config.ts new file mode 100644 index 0000000..b2cfc1a --- /dev/null +++ b/src/util/config.ts @@ -0,0 +1,15 @@ +import Store from "electron-store"; + +interface configType { + showPresence: boolean; + showAppName: boolean; + showButtons: boolean; +} + +export const store = new Store({ + defaults: { + showPresence: true, + showAppName: true, + showButtons: true + } +}); diff --git a/yarn.lock b/yarn.lock index 8cd7827..82b405d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -180,6 +180,13 @@ js-yaml "^3.10.0" tslib "^1.13.0" +ajv-formats@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.0.2.tgz#69875cb99d76c74be46e9c7a4444bc232354eba0" + integrity sha512-Brah4Uo5/U8v76c6euTwtjVFFaVishwnJrQBYpev1JRh4vjA1F4HY3UzQez41YUCszUCXKagG8v6eVRBHV1gkw== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.4.1: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -195,6 +202,16 @@ ajv@^6.10.0, ajv@^6.12.0: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0, ajv@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" + integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -381,6 +398,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + autopm@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/autopm/-/autopm-1.3.1.tgz#b334bd11d1dbca4a1951b1752389aa80d103fd0d" @@ -807,6 +829,22 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +conf@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.0.1.tgz#038093e5cbddc0e59bc14f63382c4ce732a4781d" + integrity sha512-QClEoNcruwBL84QgMEPHibL3ERxWIrRKhbjJKG1VsFBadm5QpS0jsu4QjY/maxUvhyAKXeyrs+ws+lC6PajnEg== + dependencies: + ajv "^8.1.0" + ajv-formats "^2.0.2" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -863,6 +901,13 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1020,6 +1065,13 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" @@ -1084,6 +1136,14 @@ electron-publish@22.10.5: lazy-val "^1.0.4" mime "^2.5.0" +electron-store@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.0.0.tgz#81a4e687958e2dae1c5c84cc099a8148be776337" + integrity sha512-ZgRPUZkfrrjWSqxZeaxu7lEvmYf6tgl49dLMqxXGnEmliSiwv3u4rJPG+mH3fBQP9PBqgSh4TCuxHZImMMUgWg== + dependencies: + conf "^10.0.0" + type-fest "^1.0.2" + electron-updater@^4.3.8: version "4.3.8" resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.8.tgz#94f1731682a756385726183e2b04b959cb319456" @@ -1128,7 +1188,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -1342,6 +1402,13 @@ find-replace@^3.0.0: dependencies: array-back "^3.0.1" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + follow-redirects@^1.10.0: version "1.13.3" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" @@ -1951,6 +2018,16 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2044,6 +2121,14 @@ leasot@^11.5.0: strip-ansi "^6.0.0" text-table "^0.2.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -2152,6 +2237,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -2325,7 +2415,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -2357,6 +2447,25 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + package-json@^6.3.0, package-json@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -2377,6 +2486,11 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -2424,6 +2538,13 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + plist@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc" @@ -2570,6 +2691,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-package-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" @@ -2695,7 +2821,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.4: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -3099,6 +3225,11 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.0.2.tgz#3f9c39982859f385c77c38b7e5f1432b8a3661c6" + integrity sha512-a720oz3Kjbp3ll0zkeN9qjRhO7I34MKMhPGQiQJAmaZQZQ1lo+NWThK322f7sXV+kTg9B1Ybt16KgBXWgteT8w== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"