mirror of
https://github.com/LukeHagar/Warden.git
synced 2025-12-06 04:22:06 +00:00
Adding Servers Methods
This commit is contained in:
484
package-lock.json
generated
484
package-lock.json
generated
@@ -9,7 +9,6 @@
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.9.3",
|
||||
"@emotion/styled": "^11.9.3",
|
||||
"@heroicons/react": "^1.0.6",
|
||||
"@mui/base": "^5.0.0-alpha.89",
|
||||
"@mui/icons-material": "^5.8.4",
|
||||
"@mui/material": "^5.9.0",
|
||||
@@ -21,20 +20,25 @@
|
||||
"bowser": "^2.11.0",
|
||||
"electron-debug": "^3.2.0",
|
||||
"electron-log": "^4.4.7",
|
||||
"electron-store": "^8.0.2",
|
||||
"electron-updater": "^5.0.3",
|
||||
"electron-util": "^0.17.2",
|
||||
"fs": "^0.0.1-security",
|
||||
"http-browserify": "^1.7.0",
|
||||
"https-browserify": "^1.0.0",
|
||||
"ipaddr.js": "^2.0.1",
|
||||
"login-with-plex": "^1.1.1",
|
||||
"path": "^0.12.7",
|
||||
"plex-api": "^5.3.2",
|
||||
"plex-api-credentials": "^4.0.1",
|
||||
"plex-oauth": "^2.0.2",
|
||||
"qs": "^6.11.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.1.0",
|
||||
"react-intl": "^6.0.5",
|
||||
"react-jinke-music-player": "^4.24.2",
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-xml-parser": "^1.1.8",
|
||||
"stream": "^0.0.2",
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
@@ -1136,14 +1140,6 @@
|
||||
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@heroicons/react": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz",
|
||||
"integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==",
|
||||
"peerDependencies": {
|
||||
"react": ">= 16"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
|
||||
@@ -3666,7 +3662,6 @@
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
||||
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
@@ -3683,7 +3678,6 @@
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
|
||||
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
@@ -3698,8 +3692,7 @@
|
||||
"node_modules/ajv-formats/node_modules/json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||
"dev": true
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
||||
},
|
||||
"node_modules/ajv-keywords": {
|
||||
"version": "3.5.2",
|
||||
@@ -4240,6 +4233,14 @@
|
||||
"node": ">= 4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/atomically": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
|
||||
"integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==",
|
||||
"engines": {
|
||||
"node": ">=10.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
@@ -4548,6 +4549,18 @@
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/body-parser/node_modules/qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/bonjour-service": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz",
|
||||
@@ -4946,7 +4959,6 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
|
||||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.1",
|
||||
"get-intrinsic": "^1.0.2"
|
||||
@@ -5478,6 +5490,63 @@
|
||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/conf": {
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/conf/-/conf-10.1.2.tgz",
|
||||
"integrity": "sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg==",
|
||||
"dependencies": {
|
||||
"ajv": "^8.6.3",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"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"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/conf/node_modules/ajv": {
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
|
||||
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"require-from-string": "^2.0.2",
|
||||
"uri-js": "^4.2.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/conf/node_modules/dot-prop": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
|
||||
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
|
||||
"dependencies": {
|
||||
"is-obj": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/conf/node_modules/json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
||||
},
|
||||
"node_modules/config-chain": {
|
||||
"version": "1.1.13",
|
||||
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
|
||||
@@ -6103,6 +6172,28 @@
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz",
|
||||
"integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A=="
|
||||
},
|
||||
"node_modules/debounce-fn": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
|
||||
"integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
|
||||
"dependencies": {
|
||||
"mimic-fn": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/debounce-fn/node_modules/mimic-fn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
|
||||
"integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
@@ -7265,6 +7356,29 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-store": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.2.tgz",
|
||||
"integrity": "sha512-9GwUMv51w8ydbkaG7X0HrPlElXLApg63zYy1/VZ/a08ndl0gfm4iCoD3f0E1JvP3V16a+7KxqriCI0c122stiA==",
|
||||
"dependencies": {
|
||||
"conf": "^10.1.2",
|
||||
"type-fest": "^2.12.2"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-store/node_modules/type-fest": {
|
||||
"version": "2.17.0",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
|
||||
"integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA==",
|
||||
"engines": {
|
||||
"node": ">=12.20"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.106",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz",
|
||||
@@ -7329,6 +7443,18 @@
|
||||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-util": {
|
||||
"version": "0.17.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.17.2.tgz",
|
||||
"integrity": "sha512-4Kg/aZxJ2BZklgyfH86px/D2GyROPyIcnAZar+7KiNmKI2I5l09pwQTP7V95zM3FVhgDQwV9iuJta5dyEvuWAw==",
|
||||
"dependencies": {
|
||||
"electron-is-dev": "^1.1.0",
|
||||
"new-github-issue-url": "^0.2.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/electron/node_modules/@types/node": {
|
||||
"version": "16.11.26",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
|
||||
@@ -7462,7 +7588,6 @@
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
|
||||
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@@ -8907,6 +9032,18 @@
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/express/node_modules/qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/express/node_modules/safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
@@ -9359,7 +9496,6 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
||||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
@@ -9675,7 +9811,6 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@@ -10288,7 +10423,6 @@
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
@@ -10530,7 +10664,6 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
@@ -11996,6 +12129,11 @@
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"node_modules/json-schema-typed": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
|
||||
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
|
||||
},
|
||||
"node_modules/json-stable-stringify-without-jsonify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
||||
@@ -12873,7 +13011,6 @@
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@@ -13162,6 +13299,14 @@
|
||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/new-github-issue-url": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz",
|
||||
"integrity": "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/no-case": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
|
||||
@@ -13367,7 +13512,6 @@
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
|
||||
"integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
@@ -13500,7 +13644,6 @@
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
},
|
||||
@@ -13657,7 +13800,6 @@
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@@ -13933,6 +14075,73 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
||||
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
||||
"dependencies": {
|
||||
"find-up": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up/node_modules/find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dependencies": {
|
||||
"locate-path": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up/node_modules/locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"dependencies": {
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up/node_modules/p-limit": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||
"dependencies": {
|
||||
"p-try": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up/node_modules/p-locate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"dependencies": {
|
||||
"p-limit": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up/node_modules/path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/plex-api": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/plex-api/-/plex-api-5.3.2.tgz",
|
||||
@@ -14799,10 +15008,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true,
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
},
|
||||
@@ -15694,6 +15905,11 @@
|
||||
"react-dom": ">=16.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-xml-parser": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz",
|
||||
"integrity": "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ=="
|
||||
},
|
||||
"node_modules/read-config-file": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
|
||||
@@ -15977,7 +16193,6 @@
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
||||
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -16620,7 +16835,6 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
|
||||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.0",
|
||||
"get-intrinsic": "^1.0.2",
|
||||
@@ -19740,12 +19954,6 @@
|
||||
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
|
||||
"dev": true
|
||||
},
|
||||
"@heroicons/react": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz",
|
||||
"integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==",
|
||||
"requires": {}
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
|
||||
@@ -21701,7 +21909,6 @@
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
||||
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
@@ -21710,7 +21917,6 @@
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
|
||||
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
@@ -21721,8 +21927,7 @@
|
||||
"json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||
"dev": true
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -22151,6 +22356,11 @@
|
||||
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
|
||||
"dev": true
|
||||
},
|
||||
"atomically": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
|
||||
"integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w=="
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
@@ -22395,6 +22605,12 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -22710,7 +22926,6 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
|
||||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1",
|
||||
"get-intrinsic": "^1.0.2"
|
||||
@@ -23119,6 +23334,49 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"conf": {
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/conf/-/conf-10.1.2.tgz",
|
||||
"integrity": "sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg==",
|
||||
"requires": {
|
||||
"ajv": "^8.6.3",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"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"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
|
||||
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"require-from-string": "^2.0.2",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"dot-prop": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
|
||||
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
|
||||
"requires": {
|
||||
"is-obj": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"config-chain": {
|
||||
"version": "1.1.13",
|
||||
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
|
||||
@@ -23576,6 +23834,21 @@
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz",
|
||||
"integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A=="
|
||||
},
|
||||
"debounce-fn": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
|
||||
"integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
|
||||
"requires": {
|
||||
"mimic-fn": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"mimic-fn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
|
||||
"integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
@@ -24490,6 +24763,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-store": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.2.tgz",
|
||||
"integrity": "sha512-9GwUMv51w8ydbkaG7X0HrPlElXLApg63zYy1/VZ/a08ndl0gfm4iCoD3f0E1JvP3V16a+7KxqriCI0c122stiA==",
|
||||
"requires": {
|
||||
"conf": "^10.1.2",
|
||||
"type-fest": "^2.12.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"type-fest": {
|
||||
"version": "2.17.0",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
|
||||
"integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.4.106",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz",
|
||||
@@ -24545,6 +24834,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-util": {
|
||||
"version": "0.17.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.17.2.tgz",
|
||||
"integrity": "sha512-4Kg/aZxJ2BZklgyfH86px/D2GyROPyIcnAZar+7KiNmKI2I5l09pwQTP7V95zM3FVhgDQwV9iuJta5dyEvuWAw==",
|
||||
"requires": {
|
||||
"electron-is-dev": "^1.1.0",
|
||||
"new-github-issue-url": "^0.2.1"
|
||||
}
|
||||
},
|
||||
"electronmon": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/electronmon/-/electronmon-2.0.2.tgz",
|
||||
@@ -24645,8 +24943,7 @@
|
||||
"env-paths": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
|
||||
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
|
||||
"dev": true
|
||||
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
|
||||
},
|
||||
"envinfo": {
|
||||
"version": "7.8.1",
|
||||
@@ -25700,6 +25997,12 @@
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
@@ -26055,7 +26358,6 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
||||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
@@ -26290,8 +26592,7 @@
|
||||
"has-symbols": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"dev": true
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
|
||||
},
|
||||
"has-tostringtag": {
|
||||
"version": "1.0.0",
|
||||
@@ -26747,8 +27048,7 @@
|
||||
"ipaddr.js": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
|
||||
"dev": true
|
||||
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
|
||||
},
|
||||
"is-arrayish": {
|
||||
"version": "0.2.1",
|
||||
@@ -26905,8 +27205,7 @@
|
||||
"is-obj": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
|
||||
"dev": true
|
||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
|
||||
},
|
||||
"is-path-inside": {
|
||||
"version": "3.0.3",
|
||||
@@ -28028,6 +28327,11 @@
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"json-schema-typed": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
|
||||
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
|
||||
},
|
||||
"json-stable-stringify-without-jsonify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
||||
@@ -28702,8 +29006,7 @@
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
|
||||
},
|
||||
"mimic-response": {
|
||||
"version": "1.0.1",
|
||||
@@ -28914,6 +29217,11 @@
|
||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||
"dev": true
|
||||
},
|
||||
"new-github-issue-url": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz",
|
||||
"integrity": "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA=="
|
||||
},
|
||||
"no-case": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
|
||||
@@ -29071,8 +29379,7 @@
|
||||
"object-inspect": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
|
||||
"integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
|
||||
},
|
||||
"object-keys": {
|
||||
"version": "1.1.1",
|
||||
@@ -29169,7 +29476,6 @@
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
}
|
||||
@@ -29276,8 +29582,7 @@
|
||||
"p-try": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
|
||||
},
|
||||
"package-json": {
|
||||
"version": "6.5.0",
|
||||
@@ -29488,6 +29793,54 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"pkg-up": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
||||
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
||||
"requires": {
|
||||
"find-up": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"requires": {
|
||||
"locate-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"requires": {
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"requires": {
|
||||
"p-limit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"plex-api": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/plex-api/-/plex-api-5.3.2.tgz",
|
||||
@@ -30094,10 +30447,12 @@
|
||||
}
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.9.7",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
||||
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
|
||||
"dev": true
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"requires": {
|
||||
"side-channel": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"queue-microtask": {
|
||||
"version": "1.2.3",
|
||||
@@ -30725,6 +31080,11 @@
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"react-xml-parser": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz",
|
||||
"integrity": "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ=="
|
||||
},
|
||||
"read-config-file": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
|
||||
@@ -30942,8 +31302,7 @@
|
||||
"require-from-string": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
||||
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
|
||||
},
|
||||
"requires-port": {
|
||||
"version": "1.0.0",
|
||||
@@ -31432,7 +31791,6 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
|
||||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0",
|
||||
"get-intrinsic": "^1.0.2",
|
||||
|
||||
@@ -110,7 +110,6 @@
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.9.3",
|
||||
"@emotion/styled": "^11.9.3",
|
||||
"@heroicons/react": "^1.0.6",
|
||||
"@mui/base": "^5.0.0-alpha.89",
|
||||
"@mui/icons-material": "^5.8.4",
|
||||
"@mui/material": "^5.9.0",
|
||||
@@ -122,20 +121,25 @@
|
||||
"bowser": "^2.11.0",
|
||||
"electron-debug": "^3.2.0",
|
||||
"electron-log": "^4.4.7",
|
||||
"electron-store": "^8.0.2",
|
||||
"electron-updater": "^5.0.3",
|
||||
"electron-util": "^0.17.2",
|
||||
"fs": "^0.0.1-security",
|
||||
"http-browserify": "^1.7.0",
|
||||
"https-browserify": "^1.0.0",
|
||||
"ipaddr.js": "^2.0.1",
|
||||
"login-with-plex": "^1.1.1",
|
||||
"path": "^0.12.7",
|
||||
"plex-api": "^5.3.2",
|
||||
"plex-api-credentials": "^4.0.1",
|
||||
"plex-oauth": "^2.0.2",
|
||||
"qs": "^6.11.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.1.0",
|
||||
"react-intl": "^6.0.5",
|
||||
"react-jinke-music-player": "^4.24.2",
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-xml-parser": "^1.1.8",
|
||||
"stream": "^0.0.2",
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
|
||||
@@ -9,29 +9,12 @@
|
||||
* `./src/main.js` using webpack. This gives us some performance wins.
|
||||
*/
|
||||
import path from 'path';
|
||||
import {
|
||||
app,
|
||||
BrowserWindow,
|
||||
shell,
|
||||
ipcMain,
|
||||
nativeTheme,
|
||||
dialog,
|
||||
} from 'electron';
|
||||
import { app, BrowserWindow, shell, ipcMain, dialog } from 'electron';
|
||||
import { autoUpdater } from 'electron-updater';
|
||||
import log from 'electron-log';
|
||||
import MenuBuilder from './menu';
|
||||
import { resolveHtmlPath } from './util';
|
||||
|
||||
if (process.defaultApp) {
|
||||
if (process.argv.length >= 2) {
|
||||
app.setAsDefaultProtocolClient('warden-ap', process.execPath, [
|
||||
path.resolve(process.argv[1]),
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
app.setAsDefaultProtocolClient('warden-ap');
|
||||
}
|
||||
|
||||
class AppUpdater {
|
||||
constructor() {
|
||||
log.transports.file.level = 'info';
|
||||
@@ -92,7 +75,6 @@ const createWindow = async () => {
|
||||
height: 728,
|
||||
icon: getAssetPath('icon.png'),
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
contextIsolation: true,
|
||||
preload: app.isPackaged
|
||||
? path.join(__dirname, 'preload.js')
|
||||
@@ -102,23 +84,6 @@ const createWindow = async () => {
|
||||
|
||||
mainWindow.loadURL(resolveHtmlPath('index.html'));
|
||||
|
||||
ipcMain.handle('dark-mode:toggle', () => {
|
||||
if (nativeTheme.shouldUseDarkColors) {
|
||||
nativeTheme.themeSource = 'light';
|
||||
} else {
|
||||
nativeTheme.themeSource = 'dark';
|
||||
}
|
||||
return nativeTheme.shouldUseDarkColors;
|
||||
});
|
||||
|
||||
ipcMain.handle('dark-mode:system', () => {
|
||||
nativeTheme.themeSource = 'system';
|
||||
});
|
||||
|
||||
ipcMain.handle('plex:login', () => {
|
||||
window.open('https://github.com', '_blank', 'top=500,left=200,frame=false,nodeIntegration=no')
|
||||
});
|
||||
|
||||
mainWindow.on('ready-to-show', () => {
|
||||
if (!mainWindow) {
|
||||
throw new Error('"mainWindow" is not defined');
|
||||
@@ -148,15 +113,6 @@ const createWindow = async () => {
|
||||
new AppUpdater();
|
||||
};
|
||||
|
||||
const gotTheLock = app.requestSingleInstanceLock();
|
||||
|
||||
if (!gotTheLock) {
|
||||
app.quit();
|
||||
} else {
|
||||
app.on('open-url', (event, url) => {
|
||||
dialog.showErrorBox('Welcome Back', `You arrived from: ${url}`);
|
||||
});
|
||||
|
||||
app.on('second-instance', (event, commandLine, workingDirectory) => {
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
@@ -165,6 +121,32 @@ if (!gotTheLock) {
|
||||
}
|
||||
});
|
||||
|
||||
// Create mainWindow, load the rest of the app, etc...
|
||||
app
|
||||
.whenReady()
|
||||
.then(() => {
|
||||
createWindow();
|
||||
if (process.defaultApp) {
|
||||
if (process.argv.length >= 2) {
|
||||
app.setAsDefaultProtocolClient('warden-ap', process.execPath, [
|
||||
path.resolve(process.argv[1]),
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
app.setAsDefaultProtocolClient('warden-ap');
|
||||
}
|
||||
app.on('activate', () => {
|
||||
// On macOS it's common to re-create a window in the app when the
|
||||
// dock icon is clicked and there are no other windows open.
|
||||
if (mainWindow === null) createWindow();
|
||||
});
|
||||
})
|
||||
.catch(console.log);
|
||||
|
||||
app.on('open-url', (event, url) => {
|
||||
dialog.showErrorBox('Welcome Back', `You arrived from: ${url}`);
|
||||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
// Respect the OSX convention of having the application in memory even
|
||||
// after all windows have been closed
|
||||
@@ -173,15 +155,9 @@ if (!gotTheLock) {
|
||||
}
|
||||
});
|
||||
|
||||
app
|
||||
.whenReady()
|
||||
.then(() => {
|
||||
createWindow();
|
||||
app.on('activate', () => {
|
||||
// On macOS it's common to re-create a window in the app when the
|
||||
// dock icon is clicked and there are no other windows open.
|
||||
if (mainWindow === null) createWindow();
|
||||
// Handle window controls via IPC
|
||||
ipcMain.on('shell:open', () => {
|
||||
const pageDirectory = __dirname.replace('app.asar', 'app.asar.unpacked');
|
||||
const pagePath = path.join('file://', pageDirectory, 'index.html');
|
||||
shell.openExternal(pagePath);
|
||||
});
|
||||
})
|
||||
.catch(console.log);
|
||||
}
|
||||
|
||||
@@ -24,13 +24,29 @@ import KeyIcon from '@mui/icons-material/Key';
|
||||
import LockOpenIcon from '@mui/icons-material/LockOpen';
|
||||
import DarkModeIcon from '@mui/icons-material/DarkMode';
|
||||
import FormatColorResetIcon from '@mui/icons-material/FormatColorReset';
|
||||
import { Button, Grid, IconButton, TextField } from '@mui/material';
|
||||
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
||||
import {
|
||||
Accordion,
|
||||
AccordionActions,
|
||||
AccordionDetails,
|
||||
AccordionSummary,
|
||||
Avatar,
|
||||
Button,
|
||||
Card,
|
||||
CardContent,
|
||||
CardHeader,
|
||||
Grid,
|
||||
Icon,
|
||||
IconButton,
|
||||
TextField,
|
||||
} from '@mui/material';
|
||||
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import axios from 'axios';
|
||||
import ReactJkMusicPlayer from 'react-jinke-music-player';
|
||||
import { PlexOauth, IPlexClientDetails } from 'plex-oauth';
|
||||
import { shell } from 'electron';
|
||||
import XMLParser from 'react-xml-parser';
|
||||
import ipaddr from 'ipaddr.js';
|
||||
|
||||
const drawerWidth = 240;
|
||||
|
||||
@@ -70,35 +86,64 @@ function App() {
|
||||
console.log('Theme');
|
||||
console.log(activeTheme);
|
||||
|
||||
let clientId = localStorage.getItem('plex-client-id');
|
||||
if (!clientId) {
|
||||
const uuid = uuidv4();
|
||||
localStorage.setItem('plex-client-id', uuid);
|
||||
clientId = uuid;
|
||||
function openInNewTab(url) {
|
||||
var win = window.open(url, '_blank');
|
||||
win?.focus;
|
||||
}
|
||||
|
||||
const redirectURL = 'warden-ap://';
|
||||
const [clientId, setClientID] = useState(
|
||||
localStorage.getItem('plex-client-id')
|
||||
);
|
||||
if (clientId === null) {
|
||||
const uuid = uuidv4();
|
||||
localStorage.setItem('plex-client-id', uuid);
|
||||
setClientID(uuid);
|
||||
}
|
||||
|
||||
const [plexAuthToken, setPlexAuthToken] = useState(
|
||||
localStorage.getItem('plex-authToken')
|
||||
);
|
||||
|
||||
const [plexUserData, setPlexUserData] = useState(
|
||||
localStorage.getItem('plex-userData')
|
||||
);
|
||||
|
||||
const [plexServers, setPlexServers] = useState(
|
||||
localStorage.getItem('plex-servers')
|
||||
);
|
||||
|
||||
console.log('Auth Token At Creation:');
|
||||
console.log(plexAuthToken);
|
||||
|
||||
console.log('Plex User Data At Creation:');
|
||||
console.log(plexUserData);
|
||||
|
||||
console.log('Plex Servers At Creation:');
|
||||
console.log(plexServers);
|
||||
|
||||
let clientInformation = {
|
||||
clientIdentifier: clientId, // This is a unique identifier used to identify your app with Plex.
|
||||
product: 'Warden', // Name of your application
|
||||
device: 'darwin', // The type of device your application is running on
|
||||
device: '', // The type of device your application is running on
|
||||
version: '1', // Version of your application
|
||||
forwardUrl: 'http://127.0.0.1:1212', // Url to forward back to after signing in.
|
||||
platform: 'Web', // Optional - Platform your application runs on - Defaults to 'Web'
|
||||
forwardUrl: '', // Url to forward back to after signing in. // Optional - Platform your application runs on - Defaults to 'Web'
|
||||
};
|
||||
|
||||
function plexLogin() {
|
||||
let plexOauth = new PlexOauth(clientInformation);
|
||||
|
||||
// Get hosted UI URL and Pin Id
|
||||
|
||||
plexOauth
|
||||
.requestHostedLoginURL()
|
||||
.then((data) => {
|
||||
let [hostedUILink, pinId] = data;
|
||||
|
||||
console.log(hostedUILink); // UI URL used to log into Plex
|
||||
openInNewTab(hostedUILink);
|
||||
|
||||
shell.openExternal(hostedUILink);
|
||||
console.log('Plex Auth URL:');
|
||||
console.log(hostedUILink); // UI URL used to log into Plex
|
||||
console.log('Plex Pin ID:');
|
||||
console.log(pinId);
|
||||
/*
|
||||
* You can now navigate the user's browser to the 'hostedUILink'. This will include the forward URL
|
||||
* for your application, so when they have finished signing into Plex, they will be redirected back
|
||||
@@ -107,13 +152,23 @@ function App() {
|
||||
*/
|
||||
|
||||
// Check for the auth token, once returning to the application
|
||||
|
||||
plexOauth
|
||||
.checkForAuthToken(pinId)
|
||||
.checkForAuthToken(pinId, 1000, 10)
|
||||
.then((authToken) => {
|
||||
console.log('Plex Auth Token:');
|
||||
console.log(authToken); // Returns the auth token if set, otherwise returns null
|
||||
if (authToken !== null) {
|
||||
if (validatePlexAuthToken(authToken)) {
|
||||
console.log('Plex Auth Token Validated');
|
||||
} else {
|
||||
console.log('Plex Auth Token failed validation');
|
||||
}
|
||||
}
|
||||
|
||||
// An auth token will only be null if the user never signs into the hosted UI, or you stop checking for a new one before they can log in
|
||||
})
|
||||
|
||||
.catch((err) => {
|
||||
throw err;
|
||||
});
|
||||
@@ -121,6 +176,134 @@ function App() {
|
||||
.catch((err) => {
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
|
||||
function validatePlexAuthToken(authToken) {
|
||||
axios({
|
||||
method: 'GET',
|
||||
url:
|
||||
'https://plex.tv/api/v2/user?' +
|
||||
require('qs').stringify({
|
||||
'X-Plex-Product': clientInformation.product,
|
||||
'X-Plex-Client-Identifier': clientId,
|
||||
'X-Plex-Token': authToken,
|
||||
}),
|
||||
headers: { accept: 'application/json' },
|
||||
})
|
||||
.then((response) => {
|
||||
console.log(response);
|
||||
console.log(response.status);
|
||||
if (response.status === 200) {
|
||||
localStorage.setItem('plex-userData', response.data);
|
||||
localStorage.setItem('plex-authToken', authToken);
|
||||
setPlexUserData(response.data);
|
||||
setPlexAuthToken(authToken);
|
||||
|
||||
return true;
|
||||
}
|
||||
if (response.status === 401) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
if (error.response) {
|
||||
// The request was made and the server responded with a status code
|
||||
// that falls out of the range of 2xx
|
||||
console.log(error.response.data);
|
||||
console.log(error.response.status);
|
||||
console.log(error.response.headers);
|
||||
} else if (error.request) {
|
||||
// The request was made but no response was received
|
||||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
||||
// http.ClientRequest in node.js
|
||||
console.log(error.request);
|
||||
} else {
|
||||
// Something happened in setting up the request that triggered an Error
|
||||
console.log('Error', error.message);
|
||||
}
|
||||
console.log(error.config);
|
||||
});
|
||||
}
|
||||
|
||||
function plexLogout() {
|
||||
localStorage.setItem('plex-authToken', null);
|
||||
localStorage.setItem('plex-userData', null);
|
||||
localStorage.setItem('plex-servers', null);
|
||||
setPlexAuthToken(null);
|
||||
setPlexUserData(null);
|
||||
setPlexServers([]);
|
||||
}
|
||||
|
||||
console.log(
|
||||
'https://plex.tv/api/v2/resources?' +
|
||||
require('qs').stringify({
|
||||
'X-Plex-Product': clientInformation.product,
|
||||
'X-Plex-Client-Identifier': clientId,
|
||||
'X-Plex-Token': plexAuthToken,
|
||||
})
|
||||
);
|
||||
|
||||
function getPlexServers() {
|
||||
axios({
|
||||
method: 'GET',
|
||||
url:
|
||||
'https://plex.tv/api/v2/resources?' +
|
||||
require('qs').stringify({
|
||||
includeHttps: 1,
|
||||
includeRelay: 1,
|
||||
includeIPv6: 1,
|
||||
'X-Plex-Product': clientInformation.product,
|
||||
'X-Plex-Client-Identifier': clientId,
|
||||
'X-Plex-Token': plexAuthToken,
|
||||
}),
|
||||
headers: { accept: 'application/json' },
|
||||
}).then((response) => {
|
||||
// var xml = new XMLParser().parseFromString(response.data);
|
||||
console.log('Plex Devices XML');
|
||||
console.log(response);
|
||||
localStorage.setItem(
|
||||
'plex-servers',
|
||||
response?.data.filter((obj) =>
|
||||
obj.product.includes('Plex Media Server')
|
||||
)
|
||||
);
|
||||
setPlexServers(
|
||||
response?.data.filter((obj) =>
|
||||
obj.product.includes('Plex Media Server')
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (plexAuthToken !== null) {
|
||||
getPlexServers();
|
||||
}
|
||||
}, [plexAuthToken]);
|
||||
|
||||
// if (!authToken) {
|
||||
// plexLogin();
|
||||
// }
|
||||
// if (!plexUserData) {
|
||||
// validatePlexAuthToken();
|
||||
// }
|
||||
// if (!plexServers) {
|
||||
// getPlexServers();
|
||||
// }
|
||||
|
||||
console.log('Main Body');
|
||||
|
||||
console.log('clientId:');
|
||||
console.log(clientId);
|
||||
|
||||
console.log('Plex Auth Token:');
|
||||
console.log(plexAuthToken);
|
||||
|
||||
console.log('Plex User Data:');
|
||||
console.log(plexUserData);
|
||||
|
||||
console.log('Plex Servers:');
|
||||
console.log(plexServers);
|
||||
|
||||
function isHidden(id) {
|
||||
if (activePage === id) {
|
||||
@@ -132,6 +315,7 @@ function App() {
|
||||
function loginHidden() {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (
|
||||
<ThemeProvider theme={activeTheme}>
|
||||
<Box sx={{ display: 'flex', bgcolor: 'primary.main' }}>
|
||||
@@ -216,37 +400,202 @@ function App() {
|
||||
label="Settings"
|
||||
>
|
||||
<Toolbar />
|
||||
<Typography sx={{ flexGrow: 1 }} component="div">
|
||||
Warden Unique Client ID:{clientId}
|
||||
</Typography>
|
||||
<Divider />
|
||||
<Box hidden={loginHidden()}>
|
||||
|
||||
<Grid container spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography sx={{ flexGrow: 1 }} component="div">
|
||||
Warden
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography sx={{ flexGrow: 1 }} component="div">
|
||||
Local App Data:
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography sx={{ flexGrow: 1 }} component="div">
|
||||
UUID:{clientId}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Divider />
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<TextField
|
||||
id="plexUsername"
|
||||
label="Plex Username"
|
||||
variant="outlined"
|
||||
<Typography sx={{ flexGrow: 1 }} component="div">
|
||||
Accounts:
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Grid container spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Grid item xs={12}>
|
||||
<Card variant="outlined">
|
||||
<CardHeader
|
||||
avatar={
|
||||
<Avatar
|
||||
alt={plexUserData?.friendlyName}
|
||||
src={plexUserData?.thumb}
|
||||
sx={{ width: 56, height: 56 }}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<TextField
|
||||
id="plexPassword"
|
||||
}
|
||||
action={
|
||||
<Grid container spacing={2}>
|
||||
<Grid item xs={5}>
|
||||
<Button
|
||||
onClick={() => plexLogin()}
|
||||
variant="outlined"
|
||||
label="Plex Password"
|
||||
type="password"
|
||||
></TextField>
|
||||
>
|
||||
Login
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Button onClick={() => window.plex.login()} variant="outlined">
|
||||
Login to Plex
|
||||
<Grid item xs={5}>
|
||||
<Button
|
||||
onClick={() => plexLogout()}
|
||||
variant="outlined"
|
||||
>
|
||||
Logout
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
}
|
||||
title="Plex Account"
|
||||
subheader={
|
||||
'Username: ' + plexUserData?.username
|
||||
? plexUserData?.username
|
||||
: null
|
||||
}
|
||||
/>
|
||||
<CardContent>
|
||||
<Accordion variant="dense">
|
||||
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
variant="h7"
|
||||
>
|
||||
Account Details
|
||||
</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<Grid container spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
Username: {plexUserData?.username}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
Email: {plexUserData?.email}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
Account Status:{' '}
|
||||
{plexUserData?.subscriptionDescription}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
Plex Auth Token:{' '}
|
||||
{plexAuthToken ? plexAuthToken : null}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
{' '}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
Servers:
|
||||
</Typography>
|
||||
</Grid>
|
||||
{/* {plexServers
|
||||
? [...plexServers]?.map((entry) => (
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
key={entry.name}
|
||||
sx={{ flexGrow: 1 }}
|
||||
component="div"
|
||||
>
|
||||
{entry.attributes?.name +
|
||||
' - ' +
|
||||
entry.attributes?.platform +
|
||||
' - Internal:(' +
|
||||
' ' +
|
||||
entry.children
|
||||
?.filter((obj) =>
|
||||
ipaddr
|
||||
.parse(
|
||||
obj.attributes.uri
|
||||
.replace('http://', '')
|
||||
.replace(':32400', '')
|
||||
)
|
||||
.range()
|
||||
.includes('private')
|
||||
)
|
||||
?.map(
|
||||
(entry) =>
|
||||
' ' +
|
||||
entry.attributes.uri
|
||||
.replace('http://', '')
|
||||
.replace(':32400', '')
|
||||
) +
|
||||
' ) ' +
|
||||
' - External:(' +
|
||||
' ' +
|
||||
entry.children
|
||||
?.filter((obj) =>
|
||||
ipaddr
|
||||
.parse(
|
||||
obj.attributes.uri
|
||||
.replace('http://', '')
|
||||
.replace(':32400', '')
|
||||
)
|
||||
.range()
|
||||
.includes('unicast')
|
||||
)
|
||||
?.map(
|
||||
(entry) =>
|
||||
' ' +
|
||||
entry.attributes.uri
|
||||
.replace('http://', '')
|
||||
.replace(':32400', '') +
|
||||
' ) '
|
||||
)}
|
||||
</Typography>
|
||||
</Grid>
|
||||
))
|
||||
: null} */}
|
||||
</Grid>
|
||||
</AccordionDetails>
|
||||
<AccordionActions></AccordionActions>
|
||||
</Accordion>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</ThemeProvider>
|
||||
|
||||
138
yarn.lock
138
yarn.lock
@@ -604,11 +604,6 @@
|
||||
"resolved" "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz"
|
||||
"version" "1.1.3"
|
||||
|
||||
"@heroicons/react@^1.0.6":
|
||||
"integrity" "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ=="
|
||||
"resolved" "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz"
|
||||
"version" "1.0.6"
|
||||
|
||||
"@humanwhocodes/config-array@^0.9.2":
|
||||
"integrity" "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw=="
|
||||
"resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz"
|
||||
@@ -2127,6 +2122,16 @@
|
||||
"require-from-string" "^2.0.2"
|
||||
"uri-js" "^4.2.2"
|
||||
|
||||
"ajv@^8.6.3":
|
||||
"integrity" "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg=="
|
||||
"resolved" "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz"
|
||||
"version" "8.11.0"
|
||||
dependencies:
|
||||
"fast-deep-equal" "^3.1.1"
|
||||
"json-schema-traverse" "^1.0.0"
|
||||
"require-from-string" "^2.0.2"
|
||||
"uri-js" "^4.2.2"
|
||||
|
||||
"ajv@^8.8.0", "ajv@^8.8.2":
|
||||
"integrity" "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg=="
|
||||
"resolved" "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz"
|
||||
@@ -2483,6 +2488,11 @@
|
||||
"resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
|
||||
"version" "2.1.2"
|
||||
|
||||
"atomically@^1.7.0":
|
||||
"integrity" "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w=="
|
||||
"resolved" "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz"
|
||||
"version" "1.7.0"
|
||||
|
||||
"aws-sign2@~0.7.0":
|
||||
"integrity" "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
|
||||
"resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
|
||||
@@ -3281,6 +3291,22 @@
|
||||
"tree-kill" "^1.2.2"
|
||||
"yargs" "^16.2.0"
|
||||
|
||||
"conf@^10.1.2":
|
||||
"integrity" "sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg=="
|
||||
"resolved" "https://registry.npmjs.org/conf/-/conf-10.1.2.tgz"
|
||||
"version" "10.1.2"
|
||||
dependencies:
|
||||
"ajv" "^8.6.3"
|
||||
"ajv-formats" "^2.1.1"
|
||||
"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":
|
||||
"integrity" "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ=="
|
||||
"resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz"
|
||||
@@ -3599,6 +3625,13 @@
|
||||
"resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz"
|
||||
"version" "1.11.3"
|
||||
|
||||
"debounce-fn@^4.0.0":
|
||||
"integrity" "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ=="
|
||||
"resolved" "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz"
|
||||
"version" "4.0.0"
|
||||
dependencies:
|
||||
"mimic-fn" "^3.0.0"
|
||||
|
||||
"debug@^2.6.0":
|
||||
"integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
|
||||
"resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
||||
@@ -3927,6 +3960,13 @@
|
||||
dependencies:
|
||||
"is-obj" "^2.0.0"
|
||||
|
||||
"dot-prop@^6.0.1":
|
||||
"integrity" "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA=="
|
||||
"resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz"
|
||||
"version" "6.0.1"
|
||||
dependencies:
|
||||
"is-obj" "^2.0.0"
|
||||
|
||||
"dotenv-expand@^5.1.0":
|
||||
"integrity" "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
|
||||
"resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz"
|
||||
@@ -4091,6 +4131,14 @@
|
||||
"tar" "^6.0.5"
|
||||
"yargs" "^17.0.1"
|
||||
|
||||
"electron-store@^8.0.2":
|
||||
"integrity" "sha512-9GwUMv51w8ydbkaG7X0HrPlElXLApg63zYy1/VZ/a08ndl0gfm4iCoD3f0E1JvP3V16a+7KxqriCI0c122stiA=="
|
||||
"resolved" "https://registry.npmjs.org/electron-store/-/electron-store-8.0.2.tgz"
|
||||
"version" "8.0.2"
|
||||
dependencies:
|
||||
"conf" "^10.1.2"
|
||||
"type-fest" "^2.12.2"
|
||||
|
||||
"electron-to-chromium@^1.4.84":
|
||||
"integrity" "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg=="
|
||||
"resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz"
|
||||
@@ -4110,6 +4158,14 @@
|
||||
"lodash.isequal" "^4.5.0"
|
||||
"semver" "^7.3.5"
|
||||
|
||||
"electron-util@^0.17.2":
|
||||
"integrity" "sha512-4Kg/aZxJ2BZklgyfH86px/D2GyROPyIcnAZar+7KiNmKI2I5l09pwQTP7V95zM3FVhgDQwV9iuJta5dyEvuWAw=="
|
||||
"resolved" "https://registry.npmjs.org/electron-util/-/electron-util-0.17.2.tgz"
|
||||
"version" "0.17.2"
|
||||
dependencies:
|
||||
"electron-is-dev" "^1.1.0"
|
||||
"new-github-issue-url" "^0.2.1"
|
||||
|
||||
"electron@^18.2.3", "electron@>=12.0.0":
|
||||
"integrity" "sha512-DJWX03hCRKTscsfXxmW4gmgFuseop+g+m4ml7NfOMfankD8uYyr2Xyi3Ui02inL9qZOlbLMeLVCu6jKCKs8p/w=="
|
||||
"resolved" "https://registry.npmjs.org/electron/-/electron-18.2.3.tgz"
|
||||
@@ -4208,7 +4264,7 @@
|
||||
"resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
|
||||
"version" "2.2.0"
|
||||
|
||||
"env-paths@^2.2.0":
|
||||
"env-paths@^2.2.0", "env-paths@^2.2.1":
|
||||
"integrity" "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
|
||||
"resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz"
|
||||
"version" "2.2.1"
|
||||
@@ -4906,6 +4962,13 @@
|
||||
dependencies:
|
||||
"locate-path" "^2.0.0"
|
||||
|
||||
"find-up@^3.0.0":
|
||||
"integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
|
||||
"resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
|
||||
"version" "3.0.0"
|
||||
dependencies:
|
||||
"locate-path" "^3.0.0"
|
||||
|
||||
"find-up@^4.0.0":
|
||||
"integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
|
||||
"resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
|
||||
@@ -6548,6 +6611,11 @@
|
||||
"resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"json-schema-typed@^7.0.3":
|
||||
"integrity" "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
|
||||
"resolved" "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz"
|
||||
"version" "7.0.3"
|
||||
|
||||
"json-schema@0.4.0":
|
||||
"integrity" "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
|
||||
"resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
|
||||
@@ -6798,6 +6866,14 @@
|
||||
"p-locate" "^2.0.0"
|
||||
"path-exists" "^3.0.0"
|
||||
|
||||
"locate-path@^3.0.0":
|
||||
"integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
|
||||
"resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
|
||||
"version" "3.0.0"
|
||||
dependencies:
|
||||
"p-locate" "^3.0.0"
|
||||
"path-exists" "^3.0.0"
|
||||
|
||||
"locate-path@^5.0.0":
|
||||
"integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="
|
||||
"resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
|
||||
@@ -7050,6 +7126,11 @@
|
||||
"resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
|
||||
"version" "2.1.0"
|
||||
|
||||
"mimic-fn@^3.0.0":
|
||||
"integrity" "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ=="
|
||||
"resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz"
|
||||
"version" "3.1.0"
|
||||
|
||||
"mimic-response@^1.0.0", "mimic-response@^1.0.1":
|
||||
"integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
|
||||
"resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"
|
||||
@@ -7220,6 +7301,11 @@
|
||||
"resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
|
||||
"version" "2.6.2"
|
||||
|
||||
"new-github-issue-url@^0.2.1":
|
||||
"integrity" "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA=="
|
||||
"resolved" "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz"
|
||||
"version" "0.2.1"
|
||||
|
||||
"no-case@^3.0.4":
|
||||
"integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="
|
||||
"resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"
|
||||
@@ -7520,6 +7606,13 @@
|
||||
dependencies:
|
||||
"p-try" "^1.0.0"
|
||||
|
||||
"p-limit@^2.0.0":
|
||||
"integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
|
||||
"resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
|
||||
"version" "2.3.0"
|
||||
dependencies:
|
||||
"p-try" "^2.0.0"
|
||||
|
||||
"p-limit@^2.2.0":
|
||||
"integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
|
||||
"resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
|
||||
@@ -7541,6 +7634,13 @@
|
||||
dependencies:
|
||||
"p-limit" "^1.1.0"
|
||||
|
||||
"p-locate@^3.0.0":
|
||||
"integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
|
||||
"resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
|
||||
"version" "3.0.0"
|
||||
dependencies:
|
||||
"p-limit" "^2.0.0"
|
||||
|
||||
"p-locate@^4.1.0":
|
||||
"integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="
|
||||
"resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
|
||||
@@ -7728,6 +7828,13 @@
|
||||
dependencies:
|
||||
"find-up" "^4.0.0"
|
||||
|
||||
"pkg-up@^3.1.0":
|
||||
"integrity" "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA=="
|
||||
"resolved" "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz"
|
||||
"version" "3.1.0"
|
||||
dependencies:
|
||||
"find-up" "^3.0.0"
|
||||
|
||||
"plex-api-credentials@^4.0.1":
|
||||
"integrity" "sha512-hxf7L5uBDXP7dS2cAk3PogVm07k0i9BBHfiOavWb64vhp4vhZHkuWV+9btzvEy0YlS47zyGeHB5m6V1DgCgxJA=="
|
||||
"resolved" "https://registry.npmjs.org/plex-api-credentials/-/plex-api-credentials-4.0.1.tgz"
|
||||
@@ -8162,6 +8269,13 @@
|
||||
dependencies:
|
||||
"escape-goat" "^2.0.0"
|
||||
|
||||
"qs@^6.11.0":
|
||||
"integrity" "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q=="
|
||||
"resolved" "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
|
||||
"version" "6.11.0"
|
||||
dependencies:
|
||||
"side-channel" "^1.0.4"
|
||||
|
||||
"qs@~6.5.2":
|
||||
"integrity" "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
|
||||
"resolved" "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
|
||||
@@ -8729,7 +8843,12 @@
|
||||
"loose-envify" "^1.4.0"
|
||||
"prop-types" "^15.6.2"
|
||||
|
||||
"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || 17 || 18", "react@^16.8.0 || >=17.0.0 || >=18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.0 || ^18.0.0", "react@^18.0.0", "react@^18.1.0", "react@^18.2.0", "react@>= 16", "react@>= 16.3.0", "react@>= 16.8.0", "react@>=16.0.0", "react@>=16.11.0", "react@>=16.13.1", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0", "react@>=16.9.0":
|
||||
"react-xml-parser@^1.1.8":
|
||||
"integrity" "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ=="
|
||||
"resolved" "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz"
|
||||
"version" "1.1.8"
|
||||
|
||||
"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || 17 || 18", "react@^16.8.0 || >=17.0.0 || >=18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.0 || ^18.0.0", "react@^18.0.0", "react@^18.1.0", "react@^18.2.0", "react@>= 16.3.0", "react@>= 16.8.0", "react@>=16.0.0", "react@>=16.11.0", "react@>=16.13.1", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0", "react@>=16.9.0":
|
||||
"integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="
|
||||
"resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
|
||||
"version" "18.2.0"
|
||||
@@ -10087,6 +10206,11 @@
|
||||
"resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
|
||||
"version" "0.21.3"
|
||||
|
||||
"type-fest@^2.12.2":
|
||||
"integrity" "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA=="
|
||||
"resolved" "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz"
|
||||
"version" "2.17.0"
|
||||
|
||||
"type-is@~1.6.18":
|
||||
"integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
|
||||
"resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
|
||||
|
||||
Reference in New Issue
Block a user