mirror of
https://github.com/SteamDeckHomebrew/decky-frontend-lib.git
synced 2026-05-22 19:08:46 +02:00
Compare commits
1 Commits
v3.19.1
...
aa/menu-ho
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d6e399fa46 |
64
CHANGELOG.md
64
CHANGELOG.md
@@ -1,67 +1,3 @@
|
|||||||
## [3.19.1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.19.0...v3.19.1) (2023-02-23)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* refactoring to fix for feb 22 2023 beta ([0b6dc24](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/0b6dc24c0da2d7644e185425e975787657f8bba1))
|
|
||||||
|
|
||||||
# [3.19.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.11...v3.19.0) (2023-02-22)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* added reorderable list and updated fieldProps ([#57](https://github.com/SteamDeckHomebrew/decky-frontend-lib/issues/57)) ([5a074b5](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/5a074b5bb68c675c484a7b693f67a67488be9bcf))
|
|
||||||
|
|
||||||
## [3.18.11](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.10...v3.18.11) (2023-02-18)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **Navigation:** fix NavigateToExternalWeb ([82214fe](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/82214fef4c0a383776631fbb754550fe69f9000d))
|
|
||||||
* **Navigation:** fix NavigateToExternalWeb ([c53d7f8](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/c53d7f8448d8aad76dc699f1f309bdd547ee14df))
|
|
||||||
|
|
||||||
## [3.18.10](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.9...v3.18.10) (2023-01-17)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **SuspensefulImage:** fix changing src ([9723854](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/9723854ddca53d7708e1effbddec9e5ead22d5de))
|
|
||||||
|
|
||||||
## [3.18.9](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.8...v3.18.9) (2023-01-16)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **Navigation:** fix on stable ([4affd4a](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/4affd4aaec088f01d0f30af48cb4daa34acf26b1))
|
|
||||||
|
|
||||||
## [3.18.8](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.7...v3.18.8) (2023-01-16)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **Navigation:** fix timing issue in decky-loader ([58b69f0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/58b69f0d6c43356c4f0ed183802d5bf7fb80e978))
|
|
||||||
|
|
||||||
## [3.18.7](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.6...v3.18.7) (2023-01-16)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* un-break navigation on stable ([2e66e5a](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/2e66e5a555f44009d24e332eca82453ba930baf7))
|
|
||||||
|
|
||||||
## [3.18.6](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.5...v3.18.6) (2023-01-13)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **Router:** fix Navigation for the millionth time ([aac2d52](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/aac2d520a68b1074ba1ae988d6c92f7881a296d7))
|
|
||||||
|
|
||||||
## [3.18.5](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.4...v3.18.5) (2022-12-21)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fixed prop interfaces ([#70](https://github.com/SteamDeckHomebrew/decky-frontend-lib/issues/70)) ([0b50f2c](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/0b50f2cf0baa76fc00aa0a41a8435d7a512bff19))
|
|
||||||
|
|
||||||
## [3.18.4](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.3...v3.18.4) (2022-12-16)
|
## [3.18.4](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.18.3...v3.18.4) (2022-12-16)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "decky-frontend-lib",
|
"name": "decky-frontend-lib",
|
||||||
"version": "3.19.1",
|
"version": "3.18.4",
|
||||||
"description": "A library for building decky plugins",
|
"description": "A library for building decky plugins",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "shx rm -rf dist && tsc -b",
|
"build": "shx rm -rf dist && tsc -b",
|
||||||
"dev": "tsc -b -w",
|
"dev": "tsc -b -w",
|
||||||
"docs": "typedoc --theme wiki-js --tsconfig ./tsconfig.json src/**/*",
|
"docs": "typedoc --tsconfig ./tsconfig.json src/**/*",
|
||||||
"test": "echo 'No tests for now!'",
|
"test": "echo 'No tests for now!'",
|
||||||
"prepare": "husky install",
|
"prepare": "husky install",
|
||||||
"commit": "git-cz"
|
"commit": "git-cz"
|
||||||
@@ -59,11 +59,11 @@
|
|||||||
"semantic-release": "^19.0.3",
|
"semantic-release": "^19.0.3",
|
||||||
"shx": "^0.3.4",
|
"shx": "^0.3.4",
|
||||||
"ts-jest": "^27.1.4",
|
"ts-jest": "^27.1.4",
|
||||||
"typedoc": "^0.23.24",
|
"typedoc": "^0.23.15",
|
||||||
|
"typedoc-plugin-markdown": "^3.13.6",
|
||||||
"typedoc-plugin-mdn-links": "^2.0.0",
|
"typedoc-plugin-mdn-links": "^2.0.0",
|
||||||
"typedoc-plugin-missing-exports": "^1.0.0",
|
"typedoc-plugin-missing-exports": "^1.0.0",
|
||||||
"typedoc-wikijs-theme": "^1.0.5",
|
"typescript": "^4.6.3"
|
||||||
"typescript": "^4.9.5"
|
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"peerDependencyRules": {
|
"peerDependencyRules": {
|
||||||
|
|||||||
307
pnpm-lock.yaml
generated
307
pnpm-lock.yaml
generated
@@ -19,11 +19,11 @@ specifiers:
|
|||||||
semantic-release: ^19.0.3
|
semantic-release: ^19.0.3
|
||||||
shx: ^0.3.4
|
shx: ^0.3.4
|
||||||
ts-jest: ^27.1.4
|
ts-jest: ^27.1.4
|
||||||
typedoc: ^0.23.24
|
typedoc: ^0.23.15
|
||||||
|
typedoc-plugin-markdown: ^3.13.6
|
||||||
typedoc-plugin-mdn-links: ^2.0.0
|
typedoc-plugin-mdn-links: ^2.0.0
|
||||||
typedoc-plugin-missing-exports: ^1.0.0
|
typedoc-plugin-missing-exports: ^1.0.0
|
||||||
typedoc-wikijs-theme: ^1.0.5
|
typescript: ^4.6.3
|
||||||
typescript: ^4.9.5
|
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@commitlint/cli': 17.0.2
|
'@commitlint/cli': 17.0.2
|
||||||
@@ -43,12 +43,12 @@ devDependencies:
|
|||||||
prettier-plugin-import-sort: 0.0.7_prettier@2.7.1
|
prettier-plugin-import-sort: 0.0.7_prettier@2.7.1
|
||||||
semantic-release: 19.0.3
|
semantic-release: 19.0.3
|
||||||
shx: 0.3.4
|
shx: 0.3.4
|
||||||
ts-jest: 27.1.4_nrlewyunxfyvapgcwhbeszaybu
|
ts-jest: 27.1.4_ibhx3ehxrt2kgmkik4bkzmyeei
|
||||||
typedoc: 0.23.24_typescript@4.9.5
|
typedoc: 0.23.15_typescript@4.6.4
|
||||||
typedoc-plugin-mdn-links: 2.0.0_typedoc@0.23.24
|
typedoc-plugin-markdown: 3.13.6_typedoc@0.23.15
|
||||||
typedoc-plugin-missing-exports: 1.0.0_typedoc@0.23.24
|
typedoc-plugin-mdn-links: 2.0.0_typedoc@0.23.15
|
||||||
typedoc-wikijs-theme: 1.0.5_typedoc@0.23.24
|
typedoc-plugin-missing-exports: 1.0.0_typedoc@0.23.15
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -419,15 +419,6 @@ packages:
|
|||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@commitlint/config-validator/17.4.0:
|
|
||||||
resolution: {integrity: sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA==}
|
|
||||||
engines: {node: '>=v14'}
|
|
||||||
dependencies:
|
|
||||||
'@commitlint/types': 17.4.0
|
|
||||||
ajv: 8.12.0
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@commitlint/cz-commitlint/17.0.0_commitizen@4.2.4:
|
/@commitlint/cz-commitlint/17.0.0_commitizen@4.2.4:
|
||||||
resolution: {integrity: sha512-Cq5rb3pUJRIp8M17/w8iUmDup/7KOZVt3OSDa3LKym9y9Y7/7MhiOHfWvTYcMJIOYT7TRbxVycbVvx5hPPjZ/A==}
|
resolution: {integrity: sha512-Cq5rb3pUJRIp8M17/w8iUmDup/7KOZVt3OSDa3LKym9y9Y7/7MhiOHfWvTYcMJIOYT7TRbxVycbVvx5hPPjZ/A==}
|
||||||
engines: {node: '>=v14'}
|
engines: {node: '>=v14'}
|
||||||
@@ -460,12 +451,6 @@ packages:
|
|||||||
engines: {node: '>=v14'}
|
engines: {node: '>=v14'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@commitlint/execute-rule/17.4.0:
|
|
||||||
resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==}
|
|
||||||
engines: {node: '>=v14'}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@commitlint/format/17.0.0:
|
/@commitlint/format/17.0.0:
|
||||||
resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==}
|
resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==}
|
||||||
engines: {node: '>=v14'}
|
engines: {node: '>=v14'}
|
||||||
@@ -503,39 +488,15 @@ packages:
|
|||||||
'@types/node': 17.0.33
|
'@types/node': 17.0.33
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cosmiconfig: 7.0.1
|
cosmiconfig: 7.0.1
|
||||||
cosmiconfig-typescript-loader: 2.0.1_2pb7oj3w6ri7fljxteglruehxe
|
cosmiconfig-typescript-loader: 2.0.1_2e3zkt3gzqz6r43dj4x46rot3i
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
resolve-from: 5.0.0
|
resolve-from: 5.0.0
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- '@swc/wasm'
|
- '@swc/wasm'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@commitlint/load/17.4.2:
|
|
||||||
resolution: {integrity: sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw==}
|
|
||||||
engines: {node: '>=v14'}
|
|
||||||
dependencies:
|
|
||||||
'@commitlint/config-validator': 17.4.0
|
|
||||||
'@commitlint/execute-rule': 17.4.0
|
|
||||||
'@commitlint/resolve-extends': 17.4.0
|
|
||||||
'@commitlint/types': 17.4.0
|
|
||||||
'@types/node': 17.0.33
|
|
||||||
chalk: 4.1.2
|
|
||||||
cosmiconfig: 8.0.0
|
|
||||||
cosmiconfig-typescript-loader: 4.3.0_fbkf72l7lgqvhdmgtmwxouknwy
|
|
||||||
lodash.isplainobject: 4.0.6
|
|
||||||
lodash.merge: 4.6.2
|
|
||||||
lodash.uniq: 4.5.0
|
|
||||||
resolve-from: 5.0.0
|
|
||||||
ts-node: 10.9.1_2pb7oj3w6ri7fljxteglruehxe
|
|
||||||
typescript: 4.9.5
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@swc/core'
|
|
||||||
- '@swc/wasm'
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@commitlint/message/17.0.0:
|
/@commitlint/message/17.0.0:
|
||||||
resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==}
|
resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==}
|
||||||
engines: {node: '>=v14'}
|
engines: {node: '>=v14'}
|
||||||
@@ -572,19 +533,6 @@ packages:
|
|||||||
resolve-global: 1.0.0
|
resolve-global: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@commitlint/resolve-extends/17.4.0:
|
|
||||||
resolution: {integrity: sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ==}
|
|
||||||
engines: {node: '>=v14'}
|
|
||||||
dependencies:
|
|
||||||
'@commitlint/config-validator': 17.4.0
|
|
||||||
'@commitlint/types': 17.4.0
|
|
||||||
import-fresh: 3.3.0
|
|
||||||
lodash.mergewith: 4.6.2
|
|
||||||
resolve-from: 5.0.0
|
|
||||||
resolve-global: 1.0.0
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@commitlint/rules/17.0.0:
|
/@commitlint/rules/17.0.0:
|
||||||
resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==}
|
resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==}
|
||||||
engines: {node: '>=v14'}
|
engines: {node: '>=v14'}
|
||||||
@@ -615,14 +563,6 @@ packages:
|
|||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@commitlint/types/17.4.0:
|
|
||||||
resolution: {integrity: sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA==}
|
|
||||||
engines: {node: '>=v14'}
|
|
||||||
dependencies:
|
|
||||||
chalk: 4.1.2
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@cspotcode/source-map-support/0.8.1:
|
/@cspotcode/source-map-support/0.8.1:
|
||||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -1157,16 +1097,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
|
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@tsconfig/node10/1.0.9:
|
|
||||||
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@tsconfig/node12/1.0.11:
|
|
||||||
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@tsconfig/node12/1.0.9:
|
/@tsconfig/node12/1.0.9:
|
||||||
resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==}
|
resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -1175,20 +1105,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==}
|
resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@tsconfig/node14/1.0.3:
|
|
||||||
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@tsconfig/node16/1.0.2:
|
/@tsconfig/node16/1.0.2:
|
||||||
resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==}
|
resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@tsconfig/node16/1.0.3:
|
|
||||||
resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@types/babel__core/7.1.19:
|
/@types/babel__core/7.1.19:
|
||||||
resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
|
resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1348,13 +1268,6 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/acorn/8.8.2:
|
|
||||||
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
|
|
||||||
engines: {node: '>=0.4.0'}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/agent-base/6.0.2:
|
/agent-base/6.0.2:
|
||||||
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
||||||
engines: {node: '>= 6.0.0'}
|
engines: {node: '>= 6.0.0'}
|
||||||
@@ -1381,16 +1294,6 @@ packages:
|
|||||||
uri-js: 4.4.1
|
uri-js: 4.4.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ajv/8.12.0:
|
|
||||||
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
|
|
||||||
dependencies:
|
|
||||||
fast-deep-equal: 3.1.3
|
|
||||||
json-schema-traverse: 1.0.0
|
|
||||||
require-from-string: 2.0.2
|
|
||||||
uri-js: 4.4.1
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/ansi-escapes/3.2.0:
|
/ansi-escapes/3.2.0:
|
||||||
resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
|
resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1466,11 +1369,6 @@ packages:
|
|||||||
sprintf-js: 1.0.3
|
sprintf-js: 1.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/argparse/2.0.1:
|
|
||||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/argv-formatter/1.0.0:
|
/argv-formatter/1.0.0:
|
||||||
resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==}
|
resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -1895,8 +1793,8 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
JSONStream: 1.3.5
|
|
||||||
is-text-path: 1.0.1
|
is-text-path: 1.0.1
|
||||||
|
JSONStream: 1.3.5
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
meow: 8.1.2
|
meow: 8.1.2
|
||||||
split2: 3.2.2
|
split2: 3.2.2
|
||||||
@@ -1913,7 +1811,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/cosmiconfig-typescript-loader/2.0.1_2pb7oj3w6ri7fljxteglruehxe:
|
/cosmiconfig-typescript-loader/2.0.1_2e3zkt3gzqz6r43dj4x46rot3i:
|
||||||
resolution: {integrity: sha512-B9s6sX/omXq7I6gC6+YgLmrBFMJhPWew7ty/X5Tuwtd2zOSgWaUdXjkuVwbe3qqcdETo60+1nSVMekq//LIXVA==}
|
resolution: {integrity: sha512-B9s6sX/omXq7I6gC6+YgLmrBFMJhPWew7ty/X5Tuwtd2zOSgWaUdXjkuVwbe3qqcdETo60+1nSVMekq//LIXVA==}
|
||||||
engines: {node: '>=12', npm: '>=6'}
|
engines: {node: '>=12', npm: '>=6'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1922,29 +1820,13 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 17.0.33
|
'@types/node': 17.0.33
|
||||||
cosmiconfig: 7.0.1
|
cosmiconfig: 7.0.1
|
||||||
ts-node: 10.8.1_2pb7oj3w6ri7fljxteglruehxe
|
ts-node: 10.8.1_2e3zkt3gzqz6r43dj4x46rot3i
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- '@swc/wasm'
|
- '@swc/wasm'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/cosmiconfig-typescript-loader/4.3.0_fbkf72l7lgqvhdmgtmwxouknwy:
|
|
||||||
resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==}
|
|
||||||
engines: {node: '>=12', npm: '>=6'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/node': '*'
|
|
||||||
cosmiconfig: '>=7'
|
|
||||||
ts-node: '>=10'
|
|
||||||
typescript: '>=3'
|
|
||||||
dependencies:
|
|
||||||
'@types/node': 17.0.33
|
|
||||||
cosmiconfig: 8.0.0
|
|
||||||
ts-node: 10.9.1_2pb7oj3w6ri7fljxteglruehxe
|
|
||||||
typescript: 4.9.5
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/cosmiconfig/5.2.1:
|
/cosmiconfig/5.2.1:
|
||||||
resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
|
resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1966,17 +1848,6 @@ packages:
|
|||||||
yaml: 1.10.2
|
yaml: 1.10.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/cosmiconfig/8.0.0:
|
|
||||||
resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==}
|
|
||||||
engines: {node: '>=14'}
|
|
||||||
dependencies:
|
|
||||||
import-fresh: 3.3.0
|
|
||||||
js-yaml: 4.1.0
|
|
||||||
parse-json: 5.2.0
|
|
||||||
path-type: 4.0.0
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/create-require/1.1.1:
|
/create-require/1.1.1:
|
||||||
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -2025,7 +1896,7 @@ packages:
|
|||||||
longest: 2.0.1
|
longest: 2.0.1
|
||||||
word-wrap: 1.2.3
|
word-wrap: 1.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@commitlint/load': 17.4.2
|
'@commitlint/load': 17.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- '@swc/wasm'
|
- '@swc/wasm'
|
||||||
@@ -2599,7 +2470,7 @@ packages:
|
|||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
wordwrap: 1.0.0
|
wordwrap: 1.0.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
uglify-js: 3.17.4
|
uglify-js: 3.16.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/hard-rejection/2.1.0:
|
/hard-rejection/2.1.0:
|
||||||
@@ -3505,14 +3376,6 @@ packages:
|
|||||||
esprima: 4.0.1
|
esprima: 4.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/js-yaml/4.1.0:
|
|
||||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
argparse: 2.0.1
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/jsdom/16.7.0:
|
/jsdom/16.7.0:
|
||||||
resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
|
resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -3573,11 +3436,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/json-schema-traverse/1.0.0:
|
|
||||||
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/json-stringify-safe/5.0.1:
|
/json-stringify-safe/5.0.1:
|
||||||
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
|
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -3698,21 +3556,6 @@ packages:
|
|||||||
resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=}
|
resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/lodash.merge/4.6.2:
|
|
||||||
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/lodash.mergewith/4.6.2:
|
|
||||||
resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/lodash.uniq/4.5.0:
|
|
||||||
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/lodash.uniqby/4.7.0:
|
/lodash.uniqby/4.7.0:
|
||||||
resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==}
|
resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -3785,8 +3628,8 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/marked/4.2.12:
|
/marked/4.1.1:
|
||||||
resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==}
|
resolution: {integrity: sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw==}
|
||||||
engines: {node: '>= 12'}
|
engines: {node: '>= 12'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
@@ -3868,8 +3711,8 @@ packages:
|
|||||||
brace-expansion: 1.1.11
|
brace-expansion: 1.1.11
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/minimatch/5.1.6:
|
/minimatch/5.1.0:
|
||||||
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
|
resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion: 2.0.1
|
brace-expansion: 2.0.1
|
||||||
@@ -4444,12 +4287,6 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/require-from-string/2.0.2:
|
|
||||||
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/resolve-cwd/3.0.0:
|
/resolve-cwd/3.0.0:
|
||||||
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
|
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -4653,12 +4490,12 @@ packages:
|
|||||||
rechoir: 0.6.2
|
rechoir: 0.6.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/shiki/0.12.1:
|
/shiki/0.11.1:
|
||||||
resolution: {integrity: sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==}
|
resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
jsonc-parser: 3.2.0
|
jsonc-parser: 3.2.0
|
||||||
vscode-oniguruma: 1.7.0
|
vscode-oniguruma: 1.6.2
|
||||||
vscode-textmate: 8.0.0
|
vscode-textmate: 6.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/shx/0.3.4:
|
/shx/0.3.4:
|
||||||
@@ -5015,7 +4852,7 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ts-jest/27.1.4_nrlewyunxfyvapgcwhbeszaybu:
|
/ts-jest/27.1.4_ibhx3ehxrt2kgmkik4bkzmyeei:
|
||||||
resolution: {integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==}
|
resolution: {integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==}
|
||||||
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -5045,11 +4882,11 @@ packages:
|
|||||||
lodash.memoize: 4.1.2
|
lodash.memoize: 4.1.2
|
||||||
make-error: 1.3.6
|
make-error: 1.3.6
|
||||||
semver: 7.3.7
|
semver: 7.3.7
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
yargs-parser: 20.2.9
|
yargs-parser: 20.2.9
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ts-node/10.8.1_2pb7oj3w6ri7fljxteglruehxe:
|
/ts-node/10.8.1_2e3zkt3gzqz6r43dj4x46rot3i:
|
||||||
resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==}
|
resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -5075,43 +4912,11 @@ packages:
|
|||||||
create-require: 1.1.1
|
create-require: 1.1.1
|
||||||
diff: 4.0.2
|
diff: 4.0.2
|
||||||
make-error: 1.3.6
|
make-error: 1.3.6
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
v8-compile-cache-lib: 3.0.1
|
v8-compile-cache-lib: 3.0.1
|
||||||
yn: 3.1.1
|
yn: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ts-node/10.9.1_2pb7oj3w6ri7fljxteglruehxe:
|
|
||||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
'@swc/core': '>=1.2.50'
|
|
||||||
'@swc/wasm': '>=1.2.50'
|
|
||||||
'@types/node': '*'
|
|
||||||
typescript: '>=2.7'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@swc/core':
|
|
||||||
optional: true
|
|
||||||
'@swc/wasm':
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@cspotcode/source-map-support': 0.8.1
|
|
||||||
'@tsconfig/node10': 1.0.9
|
|
||||||
'@tsconfig/node12': 1.0.11
|
|
||||||
'@tsconfig/node14': 1.0.3
|
|
||||||
'@tsconfig/node16': 1.0.3
|
|
||||||
'@types/node': 17.0.33
|
|
||||||
acorn: 8.8.2
|
|
||||||
acorn-walk: 8.2.0
|
|
||||||
arg: 4.1.3
|
|
||||||
create-require: 1.1.1
|
|
||||||
diff: 4.0.2
|
|
||||||
make-error: 1.3.6
|
|
||||||
typescript: 4.9.5
|
|
||||||
v8-compile-cache-lib: 3.0.1
|
|
||||||
yn: 3.1.1
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/tslib/1.14.1:
|
/tslib/1.14.1:
|
||||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -5164,51 +4969,43 @@ packages:
|
|||||||
is-typedarray: 1.0.0
|
is-typedarray: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typedoc-plugin-markdown/4.0.0-next.3_typedoc@0.23.24:
|
/typedoc-plugin-markdown/3.13.6_typedoc@0.23.15:
|
||||||
resolution: {integrity: sha512-Koim98xkXOoY8KPlMNH/cKTfqTEocVEYMa3XZgoPX/DkGp7ioB6nl38p6Snl7rEmhcbHkFktcUoOQLn04Kk3sg==}
|
resolution: {integrity: sha512-ISSc9v3BK7HkokxSBuJPttXox4tJ6hP0N9wfSIk0fmLN67+eqtAxbk97gs2nDiuha+RTO5eW9gdeAb+RPP0mgg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typedoc: '>=0.23.0'
|
typedoc: '>=0.23.0'
|
||||||
dependencies:
|
dependencies:
|
||||||
typedoc: 0.23.24_typescript@4.9.5
|
handlebars: 4.7.7
|
||||||
|
typedoc: 0.23.15_typescript@4.6.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typedoc-plugin-mdn-links/2.0.0_typedoc@0.23.24:
|
/typedoc-plugin-mdn-links/2.0.0_typedoc@0.23.15:
|
||||||
resolution: {integrity: sha512-IGLuelXPOenGdmklr5DHgPPf/MfZj7aEYCxCMtPN8C1D0lA7w0YLahd0jhDDcOMU7zL1EPcM5pPnhZHltDhqGQ==}
|
resolution: {integrity: sha512-IGLuelXPOenGdmklr5DHgPPf/MfZj7aEYCxCMtPN8C1D0lA7w0YLahd0jhDDcOMU7zL1EPcM5pPnhZHltDhqGQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typedoc: 0.22.x || 0.23.x
|
typedoc: 0.22.x || 0.23.x
|
||||||
dependencies:
|
dependencies:
|
||||||
typedoc: 0.23.24_typescript@4.9.5
|
typedoc: 0.23.15_typescript@4.6.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typedoc-plugin-missing-exports/1.0.0_typedoc@0.23.24:
|
/typedoc-plugin-missing-exports/1.0.0_typedoc@0.23.15:
|
||||||
resolution: {integrity: sha512-7s6znXnuAj1eD9KYPyzVzR1lBF5nwAY8IKccP5sdoO9crG4lpd16RoFpLsh2PccJM+I2NASpr0+/NMka6ThwVA==}
|
resolution: {integrity: sha512-7s6znXnuAj1eD9KYPyzVzR1lBF5nwAY8IKccP5sdoO9crG4lpd16RoFpLsh2PccJM+I2NASpr0+/NMka6ThwVA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typedoc: 0.22.x || 0.23.x
|
typedoc: 0.22.x || 0.23.x
|
||||||
dependencies:
|
dependencies:
|
||||||
typedoc: 0.23.24_typescript@4.9.5
|
typedoc: 0.23.15_typescript@4.6.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typedoc-wikijs-theme/1.0.5_typedoc@0.23.24:
|
/typedoc/0.23.15_typescript@4.6.4:
|
||||||
resolution: {integrity: sha512-nMHOcaER9EHh6XACq5wb+CBT26Xi3Coj7/0AAG1OdrNDzRirnxZVpqVNlFEcd7MOdTKauKgY6yAqfSjaJ6fapQ==}
|
resolution: {integrity: sha512-x9Zu+tTnwxb9YdVr+zvX7LYzyBl1nieOr6lrSHbHsA22/RJK2m4Y525WIg5Mj4jWCmfL47v6f4hUzY7EIuwS5w==}
|
||||||
peerDependencies:
|
|
||||||
typedoc: '>=0.23.0'
|
|
||||||
dependencies:
|
|
||||||
typedoc: 0.23.24_typescript@4.9.5
|
|
||||||
typedoc-plugin-markdown: 4.0.0-next.3_typedoc@0.23.24
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/typedoc/0.23.24_typescript@4.9.5:
|
|
||||||
resolution: {integrity: sha512-bfmy8lNQh+WrPYcJbtjQ6JEEsVl/ce1ZIXyXhyW+a1vFrjO39t6J8sL/d6FfAGrJTc7McCXgk9AanYBSNvLdIA==}
|
|
||||||
engines: {node: '>= 14.14'}
|
engines: {node: '>= 14.14'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x
|
typescript: 4.6.x || 4.7.x || 4.8.x
|
||||||
dependencies:
|
dependencies:
|
||||||
lunr: 2.3.9
|
lunr: 2.3.9
|
||||||
marked: 4.2.12
|
marked: 4.1.1
|
||||||
minimatch: 5.1.6
|
minimatch: 5.1.0
|
||||||
shiki: 0.12.1
|
shiki: 0.11.1
|
||||||
typescript: 4.9.5
|
typescript: 4.6.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript/3.9.10:
|
/typescript/3.9.10:
|
||||||
@@ -5217,14 +5014,14 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript/4.9.5:
|
/typescript/4.6.4:
|
||||||
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
|
resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/uglify-js/3.17.4:
|
/uglify-js/3.16.0:
|
||||||
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
|
resolution: {integrity: sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
@@ -5286,12 +5083,12 @@ packages:
|
|||||||
spdx-expression-parse: 3.0.1
|
spdx-expression-parse: 3.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vscode-oniguruma/1.7.0:
|
/vscode-oniguruma/1.6.2:
|
||||||
resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
|
resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vscode-textmate/8.0.0:
|
/vscode-textmate/6.0.0:
|
||||||
resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
|
resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/w3c-hr-time/1.0.2:
|
/w3c-hr-time/1.0.2:
|
||||||
|
|||||||
@@ -1,174 +0,0 @@
|
|||||||
import { Fragment, JSXElementConstructor, ReactElement, useEffect, useState } from 'react';
|
|
||||||
|
|
||||||
import { Field, FieldProps, Focusable, GamepadButton } from '../deck-components';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A ReorderableList entry of type <T>.
|
|
||||||
* @param label The name of this entry in the list.
|
|
||||||
* @param data Optional data to connect to this entry.
|
|
||||||
* @param position The position of this entry in the list.
|
|
||||||
*/
|
|
||||||
export type ReorderableEntry<T> = {
|
|
||||||
label: string;
|
|
||||||
data?: T;
|
|
||||||
position: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Properties for a ReorderableList component of type <T>.
|
|
||||||
*
|
|
||||||
* @param animate If the list should animate. @default true
|
|
||||||
*/
|
|
||||||
export type ReorderableListProps<T> = {
|
|
||||||
entries: ReorderableEntry<T>[];
|
|
||||||
onSave: (entries: ReorderableEntry<T>[]) => void;
|
|
||||||
interactables?: JSXElementConstructor<{ entry: ReorderableEntry<T> }>;
|
|
||||||
fieldProps?: FieldProps;
|
|
||||||
animate?: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A component for creating reorderable lists.
|
|
||||||
*
|
|
||||||
* See an example implementation {@linkplain https://github.com/Tormak9970/Component-Testing-Plugin/blob/main/src/testing-window/ReorderableListTest.tsx here}.
|
|
||||||
*/
|
|
||||||
export function ReorderableList<T>(props: ReorderableListProps<T>) {
|
|
||||||
if (props.animate === undefined) props.animate = true;
|
|
||||||
const [entryList, setEntryList] = useState<ReorderableEntry<T>[]>(
|
|
||||||
props.entries.sort((a: ReorderableEntry<T>, b: ReorderableEntry<T>) => a.position - b.position),
|
|
||||||
);
|
|
||||||
const [reorderEnabled, setReorderEnabled] = useState<boolean>(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setEntryList(props.entries.sort((a: ReorderableEntry<T>, b: ReorderableEntry<T>) => a.position - b.position));
|
|
||||||
}, [props.entries]);
|
|
||||||
|
|
||||||
function toggleReorderEnabled(): void {
|
|
||||||
let newReorderValue = !reorderEnabled;
|
|
||||||
setReorderEnabled(newReorderValue);
|
|
||||||
|
|
||||||
if (!newReorderValue) {
|
|
||||||
props.onSave(entryList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Fragment>
|
|
||||||
<div
|
|
||||||
style={{
|
|
||||||
width: 'inherit',
|
|
||||||
height: 'inherit',
|
|
||||||
flex: '1 1 1px',
|
|
||||||
scrollPadding: '48px 0px',
|
|
||||||
display: 'flex',
|
|
||||||
flexDirection: 'column',
|
|
||||||
justifyContent: 'flex-start',
|
|
||||||
alignContent: 'stretch',
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Focusable
|
|
||||||
onSecondaryButton={toggleReorderEnabled}
|
|
||||||
onSecondaryActionDescription={reorderEnabled ? 'Save Order' : 'Reorder'}
|
|
||||||
onClick={toggleReorderEnabled}
|
|
||||||
>
|
|
||||||
{entryList.map((entry: ReorderableEntry<T>) => (
|
|
||||||
<ReorderableItem
|
|
||||||
animate={props.animate!}
|
|
||||||
listData={entryList}
|
|
||||||
entryData={entry}
|
|
||||||
reorderEntryFunc={setEntryList}
|
|
||||||
reorderEnabled={reorderEnabled}
|
|
||||||
fieldProps={props.fieldProps}
|
|
||||||
>
|
|
||||||
{props.interactables ? <props.interactables entry={entry} /> : null}
|
|
||||||
</ReorderableItem>
|
|
||||||
))}
|
|
||||||
</Focusable>
|
|
||||||
</div>
|
|
||||||
</Fragment>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Properties for a ReorderableItem component of type <T>
|
|
||||||
*/
|
|
||||||
export type ReorderableListEntryProps<T> = {
|
|
||||||
fieldProps?: FieldProps;
|
|
||||||
listData: ReorderableEntry<T>[];
|
|
||||||
entryData: ReorderableEntry<T>;
|
|
||||||
reorderEntryFunc: CallableFunction;
|
|
||||||
reorderEnabled: boolean;
|
|
||||||
animate: boolean;
|
|
||||||
children: ReactElement | null;
|
|
||||||
};
|
|
||||||
|
|
||||||
function ReorderableItem<T>(props: ReorderableListEntryProps<T>) {
|
|
||||||
const [isSelected, _setIsSelected] = useState<boolean>(false);
|
|
||||||
const [isSelectedLastFrame, setIsSelectedLastFrame] = useState<boolean>(false);
|
|
||||||
const listEntries = props.listData;
|
|
||||||
|
|
||||||
function onReorder(e: Event): void {
|
|
||||||
if (!props.reorderEnabled) return;
|
|
||||||
|
|
||||||
const event = e as CustomEvent;
|
|
||||||
const currentIdx = listEntries.findIndex((entryData: ReorderableEntry<T>) => entryData === props.entryData);
|
|
||||||
const currentIdxValue = listEntries[currentIdx];
|
|
||||||
if (currentIdx < 0) return;
|
|
||||||
|
|
||||||
let targetPosition: number = -1;
|
|
||||||
if (event.detail.button == GamepadButton.DIR_DOWN) {
|
|
||||||
targetPosition = currentIdxValue.position + 1;
|
|
||||||
} else if (event.detail.button == GamepadButton.DIR_UP) {
|
|
||||||
targetPosition = currentIdxValue.position - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetPosition >= listEntries.length || targetPosition < 0) return;
|
|
||||||
|
|
||||||
let otherToUpdate = listEntries.find((entryData: ReorderableEntry<T>) => entryData.position === targetPosition);
|
|
||||||
if (!otherToUpdate) return;
|
|
||||||
|
|
||||||
let currentPosition = currentIdxValue.position;
|
|
||||||
|
|
||||||
currentIdxValue.position = otherToUpdate.position;
|
|
||||||
otherToUpdate.position = currentPosition;
|
|
||||||
|
|
||||||
props.reorderEntryFunc(
|
|
||||||
[...listEntries].sort((a: ReorderableEntry<T>, b: ReorderableEntry<T>) => a.position - b.position),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function setIsSelected(val: boolean) {
|
|
||||||
_setIsSelected(val);
|
|
||||||
// Wait 3 frames, then set. I have no idea why, but if you dont wait long enough it doesn't work.
|
|
||||||
for (let i = 0; i < 3; i++) await new Promise((res) => requestAnimationFrame(res));
|
|
||||||
setIsSelectedLastFrame(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div
|
|
||||||
style={
|
|
||||||
props.animate
|
|
||||||
? {
|
|
||||||
transition:
|
|
||||||
isSelected || isSelectedLastFrame
|
|
||||||
? ''
|
|
||||||
: 'transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1)', // easeOutQuart https://easings.net/#easeOutQuart
|
|
||||||
transform: !props.reorderEnabled || isSelected ? 'scale(1)' : 'scale(0.9)',
|
|
||||||
opacity: !props.reorderEnabled || isSelected ? 1 : 0.7,
|
|
||||||
}
|
|
||||||
: {}
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Field
|
|
||||||
label={props.entryData.label}
|
|
||||||
{...props.fieldProps}
|
|
||||||
focusable={!props.children}
|
|
||||||
onButtonDown={onReorder}
|
|
||||||
onGamepadBlur={() => setIsSelected(false)}
|
|
||||||
onGamepadFocus={() => setIsSelected(true)}
|
|
||||||
>
|
|
||||||
<Focusable style={{ display: 'flex', width: '100%', position: 'relative' }}>{props.children}</Focusable>
|
|
||||||
</Field>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -13,8 +13,6 @@ export const SuspensefulImage: FC<SuspensefulImageProps> = (props) => {
|
|||||||
const [error, setError] = useState(false);
|
const [error, setError] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setLoading(true);
|
|
||||||
setError(false);
|
|
||||||
const img = new Image();
|
const img = new Image();
|
||||||
img.src = props.src || '';
|
img.src = props.src || '';
|
||||||
img.addEventListener('load', () => {
|
img.addEventListener('load', () => {
|
||||||
@@ -23,7 +21,7 @@ export const SuspensefulImage: FC<SuspensefulImageProps> = (props) => {
|
|||||||
img.addEventListener('error', () => {
|
img.addEventListener('error', () => {
|
||||||
setError(true);
|
setError(true);
|
||||||
});
|
});
|
||||||
}, [props.src]);
|
}, []);
|
||||||
|
|
||||||
return loading ? (
|
return loading ? (
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
export * from './SuspensefulImage';
|
export * from './SuspensefulImage';
|
||||||
export * from './ColorPickerModal';
|
export * from './ColorPickerModal';
|
||||||
export * from './ReorderableList';
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { getFocusNavController } from '../utils';
|
declare global {
|
||||||
|
var FocusNavController: any;
|
||||||
|
}
|
||||||
|
|
||||||
function getQuickAccessWindow(): Window | null {
|
function getQuickAccessWindow(): Window | null {
|
||||||
try {
|
try {
|
||||||
const navTrees = getFocusNavController()?.m_rgGamepadNavigationTrees;
|
const context = FocusNavController?.m_ActiveContext || FocusNavController?.m_LastActiveContext;
|
||||||
return (
|
const navTrees = context?.m_rgGamepadNavigationTrees || FocusNavController?.m_rgGamepadNavigationTrees;
|
||||||
navTrees?.find((tree: any) => tree?.id === 'QuickAccess-NA')?.m_Root?.m_element?.ownerDocument.defaultView ?? null
|
return navTrees?.find((tree: any) => tree?.id === "QuickAccess-NA")?.m_Root?.m_element?.ownerDocument.defaultView ?? null;
|
||||||
);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ export interface ButtonItemProps extends ItemProps {
|
|||||||
onClick?(e: MouseEvent): void;
|
onClick?(e: MouseEvent): void;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
}
|
}
|
||||||
export const ButtonItem =
|
|
||||||
CommonUIModule.ButtonField ||
|
export const ButtonItem = Object.values(CommonUIModule).find(
|
||||||
(Object.values(CommonUIModule).find(
|
(mod: any) =>
|
||||||
(mod: any) =>
|
mod?.render?.toString()?.includes('"highlightOnFocus","childrenContainerWidth"') ||
|
||||||
mod?.render?.toString()?.includes('"highlightOnFocus","childrenContainerWidth"') ||
|
mod?.render?.toString()?.includes('childrenContainerWidth:"min"'),
|
||||||
mod?.render?.toString()?.includes('childrenContainerWidth:"min"'),
|
) as FC<ButtonItemProps>;
|
||||||
) as FC<ButtonItemProps>);
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { CSSProperties, FC } from 'react';
|
import { CSSProperties, FC, ReactNode } from 'react';
|
||||||
|
|
||||||
import { findModuleChild } from '../webpack';
|
import { findModuleChild } from '../webpack';
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ export interface MarqueeProps {
|
|||||||
resetOnPause?: boolean;
|
resetOnPause?: boolean;
|
||||||
style?: CSSProperties;
|
style?: CSSProperties;
|
||||||
className?: string;
|
className?: string;
|
||||||
children: React.ReactNode;
|
children: ReactNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const Marquee: FC<MarqueeProps> = findModuleChild((m) => {
|
export const Marquee: FC<MarqueeProps> = findModuleChild((m) => {
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ export const ModalRoot = (Object.values(
|
|||||||
if (typeof m !== 'object') return false;
|
if (typeof m !== 'object') return false;
|
||||||
|
|
||||||
for (let prop in m) {
|
for (let prop in m) {
|
||||||
if (m[prop]?.m_mapModalManager && Object.values(m)?.find((x: any) => x?.type)) {
|
if (m[prop]?.m_mapModalManager) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import { FC, ReactNode } from 'react';
|
import { FC } from 'react';
|
||||||
|
|
||||||
import { findModuleChild } from '../webpack';
|
import { findModuleChild } from '../webpack';
|
||||||
|
|
||||||
export interface PanelSectionProps {
|
export interface PanelSectionProps {
|
||||||
title?: string;
|
title?: string;
|
||||||
spinner?: boolean;
|
spinner?: boolean;
|
||||||
children?: ReactNode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const [panelSection, mod] = findModuleChild((mod: any) => {
|
const [panelSection, mod] = findModuleChild((mod: any) => {
|
||||||
@@ -19,10 +18,6 @@ const [panelSection, mod] = findModuleChild((mod: any) => {
|
|||||||
|
|
||||||
export const PanelSection = panelSection as FC<PanelSectionProps>;
|
export const PanelSection = panelSection as FC<PanelSectionProps>;
|
||||||
|
|
||||||
export interface PanelSectionRowProps {
|
export const PanelSectionRow = Object.values(mod).filter(
|
||||||
children?: ReactNode;
|
(exp: any) => !exp?.toString()?.includes('.PanelSection'),
|
||||||
}
|
)[0] as FC;
|
||||||
// New as of Feb 22 2023 Beta || Old
|
|
||||||
export const PanelSectionRow =
|
|
||||||
mod.PanelSectionRow ||
|
|
||||||
(Object.values(mod).filter((exp: any) => !exp?.toString()?.includes('.PanelSection'))[0] as FC<PanelSectionRowProps>);
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { sleep } from '../utils';
|
|
||||||
import { Module, findModuleChild } from '../webpack';
|
import { Module, findModuleChild } from '../webpack';
|
||||||
|
|
||||||
export enum SideMenu {
|
export enum SideMenu {
|
||||||
@@ -77,6 +76,7 @@ export interface WindowRouter {
|
|||||||
NavigateToChat(): void;
|
NavigateToChat(): void;
|
||||||
NavigateToSteamWeb(url: string): void;
|
NavigateToSteamWeb(url: string): void;
|
||||||
NavigateBack(): void;
|
NavigateBack(): void;
|
||||||
|
NavigateToWebRoute(unknown?: any, unknown2?: any): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface WindowStore {
|
export interface WindowStore {
|
||||||
@@ -117,6 +117,7 @@ export interface Navigation {
|
|||||||
NavigateToLibraryTab(): void;
|
NavigateToLibraryTab(): void;
|
||||||
NavigateToLayoutPreview(e: unknown): void;
|
NavigateToLayoutPreview(e: unknown): void;
|
||||||
NavigateToSteamWeb(url: string): void;
|
NavigateToSteamWeb(url: string): void;
|
||||||
|
NavigateToWebRoute(unknown?: any, unknown2?: any): void;
|
||||||
OpenSideMenu(sideMenu: SideMenu): void;
|
OpenSideMenu(sideMenu: SideMenu): void;
|
||||||
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
||||||
OpenMainMenu(): void;
|
OpenMainMenu(): void;
|
||||||
@@ -124,62 +125,32 @@ export interface Navigation {
|
|||||||
CloseSideMenus(): void;
|
CloseSideMenus(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export let Navigation = {} as Navigation;
|
export const Navigation = {
|
||||||
|
Navigate: Router.Navigate.bind(Router),
|
||||||
try {
|
NavigateBack: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateBack.bind(
|
||||||
(async () => {
|
Router.WindowStore.GamepadUIMainWindowInstance,
|
||||||
let InternalNavigators: any = {};
|
),
|
||||||
if (!Router.NavigateToAppProperties || (Router as unknown as any).deckyShim) {
|
NavigateToAppProperties: Router.NavigateToAppProperties.bind(Router),
|
||||||
function initInternalNavigators() {
|
NavigateToExternalWeb: Router.NavigateToExternalWeb.bind(Router),
|
||||||
try {
|
NavigateToInvites: Router.NavigateToInvites.bind(Router),
|
||||||
InternalNavigators = findModuleChild((m: any) => {
|
NavigateToChat: Router.NavigateToChat.bind(Router),
|
||||||
if (typeof m !== 'object') return undefined;
|
NavigateToLibraryTab: Router.NavigateToLibraryTab.bind(Router),
|
||||||
for (let prop in m) {
|
NavigateToLayoutPreview: Router.NavigateToLayoutPreview.bind(Router),
|
||||||
if (m[prop]?.GetNavigator) {
|
NavigateToSteamWeb: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateToSteamWeb.bind(
|
||||||
return m[prop];
|
Router.WindowStore.GamepadUIMainWindowInstance,
|
||||||
}
|
),
|
||||||
}
|
NavigateToWebRoute: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateToWebRoute.bind(
|
||||||
})?.GetNavigator();
|
Router.WindowStore.GamepadUIMainWindowInstance,
|
||||||
} catch (e) {
|
),
|
||||||
console.error('[DFL:Router]: Failed to init internal navigators, trying again');
|
OpenSideMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenSideMenu.bind(
|
||||||
}
|
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
||||||
}
|
),
|
||||||
initInternalNavigators();
|
OpenQuickAccessMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenQuickAccessMenu.bind(
|
||||||
while (!InternalNavigators?.AppProperties) {
|
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
||||||
console.log('[DFL:Router]: Trying to init internal navigators again');
|
),
|
||||||
await sleep(100);
|
OpenMainMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenMainMenu.bind(
|
||||||
initInternalNavigators();
|
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
||||||
}
|
),
|
||||||
}
|
CloseSideMenus: Router.CloseSideMenus.bind(Router),
|
||||||
const newNavigation = {
|
OpenPowerMenu: Router.OpenPowerMenu.bind(Router),
|
||||||
Navigate: Router.Navigate?.bind(Router),
|
} as Navigation;
|
||||||
NavigateBack: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateBack?.bind(
|
|
||||||
Router.WindowStore.GamepadUIMainWindowInstance,
|
|
||||||
),
|
|
||||||
NavigateToAppProperties: InternalNavigators?.AppProperties || Router.NavigateToAppProperties?.bind(Router),
|
|
||||||
NavigateToExternalWeb: InternalNavigators?.ExternalWeb || Router.NavigateToExternalWeb?.bind(Router),
|
|
||||||
NavigateToInvites: InternalNavigators?.Invites || Router.NavigateToInvites?.bind(Router),
|
|
||||||
NavigateToChat: Router.NavigateToChat?.bind(Router),
|
|
||||||
NavigateToLibraryTab: InternalNavigators?.LibraryTab || Router.NavigateToLibraryTab?.bind(Router),
|
|
||||||
NavigateToLayoutPreview: Router.NavigateToLayoutPreview?.bind(Router),
|
|
||||||
NavigateToSteamWeb: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateToSteamWeb?.bind(
|
|
||||||
Router.WindowStore.GamepadUIMainWindowInstance,
|
|
||||||
),
|
|
||||||
OpenSideMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenSideMenu?.bind(
|
|
||||||
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
|
||||||
),
|
|
||||||
OpenQuickAccessMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenQuickAccessMenu?.bind(
|
|
||||||
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
|
||||||
),
|
|
||||||
OpenMainMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenMainMenu?.bind(
|
|
||||||
Router.WindowStore.GamepadUIMainWindowInstance.MenuStore,
|
|
||||||
),
|
|
||||||
CloseSideMenus: Router.CloseSideMenus?.bind(Router),
|
|
||||||
OpenPowerMenu: Router.OpenPowerMenu?.bind(Router),
|
|
||||||
} as Navigation;
|
|
||||||
|
|
||||||
Object.assign(Navigation, newNavigation);
|
|
||||||
})();
|
|
||||||
} catch (e) {
|
|
||||||
console.error('[DFL:Router]: Error initializing Navigation interface', e);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ export interface SliderFieldProps extends ItemProps {
|
|||||||
valueSuffix?: string;
|
valueSuffix?: string;
|
||||||
minimumDpadGranularity?: number;
|
minimumDpadGranularity?: number;
|
||||||
onChange?(value: number): void;
|
onChange?(value: number): void;
|
||||||
className?: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SliderField = Object.values(CommonUIModule).find((mod: any) =>
|
export const SliderField = Object.values(CommonUIModule).find((mod: any) =>
|
||||||
|
|||||||
@@ -217,14 +217,6 @@ export type AppLanguages = {
|
|||||||
strShortName: string;
|
strShortName: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type LogoPinPositions = 'BottomLeft' | 'UpperLeft' | 'CenterCenter' | 'UpperCenter' | 'BottomCenter';
|
|
||||||
|
|
||||||
export interface LogoPosition {
|
|
||||||
pinnedPosition: LogoPinPositions;
|
|
||||||
nWidthPct: number;
|
|
||||||
nHeightPct: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface AppDetails {
|
export interface AppDetails {
|
||||||
achievements: AppAchievements;
|
achievements: AppAchievements;
|
||||||
bCanMoveInstallFolder: boolean;
|
bCanMoveInstallFolder: boolean;
|
||||||
@@ -300,18 +292,9 @@ export interface AppDetails {
|
|||||||
vecMusicAlbums: any[];
|
vecMusicAlbums: any[];
|
||||||
vecPlatforms: string[];
|
vecPlatforms: string[];
|
||||||
vecScreenShots: any[];
|
vecScreenShots: any[];
|
||||||
libraryAssets?: {
|
|
||||||
logoPosition?: LogoPosition;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SteamAppOverview {
|
export interface SteamAppOverview {
|
||||||
display_name: string;
|
display_name: string;
|
||||||
gameid: string;
|
gameid: string;
|
||||||
appid: number;
|
|
||||||
icon_hash: string;
|
|
||||||
third_party_mod?: boolean;
|
|
||||||
selected_clientid?: string;
|
|
||||||
BIsModOrShortcut: () => boolean;
|
|
||||||
BIsShortcut: () => boolean;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { CommonUIModule } from '../webpack';
|
|||||||
import { ItemProps } from './Item';
|
import { ItemProps } from './Item';
|
||||||
|
|
||||||
export interface ToggleFieldProps extends ItemProps {
|
export interface ToggleFieldProps extends ItemProps {
|
||||||
highlightOnFocus?: boolean;
|
|
||||||
checked: boolean;
|
checked: boolean;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
onChange?(checked: boolean): void;
|
onChange?(checked: boolean): void;
|
||||||
|
|||||||
@@ -26,56 +26,8 @@ export * from './Toggle';
|
|||||||
export * from './ToggleField';
|
export * from './ToggleField';
|
||||||
export * from './SteamClient';
|
export * from './SteamClient';
|
||||||
|
|
||||||
import { AppDetails, LogoPosition, SteamAppOverview, SteamClient } from './SteamClient';
|
import {SteamClient} from './SteamClient'
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
var SteamClient: SteamClient;
|
var SteamClient: SteamClient;
|
||||||
|
|
||||||
interface Window {
|
|
||||||
LocalizationManager: {
|
|
||||||
m_mapTokens: Map<string, string>;
|
|
||||||
m_mapFallbackTokens: Map<string, string>;
|
|
||||||
m_rgLocalesToUse: string[];
|
|
||||||
};
|
|
||||||
App: {
|
|
||||||
m_CurrentUser: {
|
|
||||||
bIsLimited: boolean;
|
|
||||||
bIsOfflineMode: boolean;
|
|
||||||
bSupportAlertActive: boolean;
|
|
||||||
bCanInviteFriends: boolean;
|
|
||||||
NotificationCounts: {
|
|
||||||
comments: number;
|
|
||||||
inventory_items: number;
|
|
||||||
invites: number;
|
|
||||||
gifts: number;
|
|
||||||
offline_messages: number;
|
|
||||||
trade_offers: number;
|
|
||||||
async_game_updates: number;
|
|
||||||
moderator_messages: number;
|
|
||||||
help_request_replies: number;
|
|
||||||
};
|
|
||||||
strAccountBalance: string;
|
|
||||||
strAccountName: string;
|
|
||||||
strSteamID: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
appStore: {
|
|
||||||
GetAppOverviewByAppID: (appId: number) => SteamAppOverview | null;
|
|
||||||
GetCustomVerticalCapsuleURLs: (app: SteamAppOverview) => string[];
|
|
||||||
GetCustomLandcapeImageURLs: (app: SteamAppOverview) => string[];
|
|
||||||
GetCustomHeroImageURLs: (app: SteamAppOverview) => string[];
|
|
||||||
GetCustomLogoImageURLs: (app: SteamAppOverview) => string[];
|
|
||||||
GetLandscapeImageURLForApp: (app: SteamAppOverview) => string;
|
|
||||||
GetVerticalCapsuleURLForApp: (app: SteamAppOverview) => string;
|
|
||||||
GetCachedLandscapeImageURLForApp: (app: SteamAppOverview) => string;
|
|
||||||
GetCachedVerticalImageURLForApp: (app: SteamAppOverview) => string;
|
|
||||||
GetPregeneratedVerticalCapsuleForApp: (app: SteamAppOverview) => string;
|
|
||||||
GetIconURLForApp: (app: SteamAppOverview) => string;
|
|
||||||
};
|
|
||||||
appDetailsStore: {
|
|
||||||
GetAppDetails: (appId: number) => AppDetails | null;
|
|
||||||
GetCustomLogoPosition: (app: SteamAppOverview) => LogoPosition | null;
|
|
||||||
SaveCustomLogoPosition: (app: SteamAppOverview, logoPositions: LogoPosition) => any;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,52 @@ interface ServerResponseError {
|
|||||||
|
|
||||||
export type ServerResponse<TRes> = ServerResponseSuccess<TRes> | ServerResponseError;
|
export type ServerResponse<TRes> = ServerResponseSuccess<TRes> | ServerResponseError;
|
||||||
|
|
||||||
|
export interface MainMenuItem {
|
||||||
|
/** Called when clicking this menu item, useful if you do not want to navigate to a route.
|
||||||
|
* For navigating to a route, use route instead. */
|
||||||
|
action?: () => void;
|
||||||
|
/** The route this menu item navigates to @example "/steamweb" */
|
||||||
|
route?: string;
|
||||||
|
/** Props for the route this item navigates to. Currently only used for /steamweb to determine what webpack to navigate to @example {url: 'https://store.steampowered.com/'} */
|
||||||
|
routeState?: any;
|
||||||
|
/** Label for this menu item, @example "Store" */
|
||||||
|
label: ReactNode;
|
||||||
|
/** Runs when this item is selected. Defaults to setting the focused app to null.
|
||||||
|
* If you override this you must also call the original to retain proper behaivour */
|
||||||
|
onFocus?: () => void;
|
||||||
|
/** Icon of this menu item, you probably want a react SVG node */
|
||||||
|
children: ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CustomMainMenuItem extends MainMenuItem {
|
||||||
|
index: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MainMenuItemReactNode {
|
||||||
|
props: MainMenuItem;
|
||||||
|
type: ComponentType;
|
||||||
|
key: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OverlayReactNode {
|
||||||
|
props: MainMenuItem;
|
||||||
|
type: ComponentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ItemPatch = (item: MainMenuItemReactNode) => MainMenuItemReactNode;
|
||||||
|
export type OverlayPatch = (overlay: OverlayReactNode) => OverlayReactNode;
|
||||||
|
|
||||||
|
export interface MenuHook {
|
||||||
|
addItem(item: CustomMainMenuItem): CustomMainMenuItem;
|
||||||
|
addPatch(path: string, patch: ItemPatch): ItemPatch;
|
||||||
|
addOverlayPatch(patch: OverlayPatch): OverlayPatch;
|
||||||
|
addOverlayComponent(component: ReactNode): ReactNode;
|
||||||
|
removePatch(path: string, patch: ItemPatch): void;
|
||||||
|
removeOverlayPatch(patch: OverlayPatch): void;
|
||||||
|
removeOverlayComponent(component: ReactNode): void;
|
||||||
|
removeItem(item: CustomMainMenuItem): void;
|
||||||
|
}
|
||||||
|
|
||||||
export type RoutePatch = (route: RouteProps) => RouteProps;
|
export type RoutePatch = (route: RouteProps) => RouteProps;
|
||||||
|
|
||||||
export interface RouterHook {
|
export interface RouterHook {
|
||||||
@@ -59,6 +105,7 @@ export interface FilePickerRes {
|
|||||||
|
|
||||||
export interface ServerAPI {
|
export interface ServerAPI {
|
||||||
routerHook: RouterHook;
|
routerHook: RouterHook;
|
||||||
|
menuHook: MenuHook;
|
||||||
toaster: Toaster;
|
toaster: Toaster;
|
||||||
openFilePicker(startPath: string, includeFiles?: boolean, regex?: RegExp): Promise<FilePickerRes>;
|
openFilePicker(startPath: string, includeFiles?: boolean, regex?: RegExp): Promise<FilePickerRes>;
|
||||||
callPluginMethod<TArgs = {}, TRes = {}>(methodName: string, args: TArgs): Promise<ServerResponse<TRes>>;
|
callPluginMethod<TArgs = {}, TRes = {}>(methodName: string, args: TArgs): Promise<ServerResponse<TRes>>;
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
export * from './patcher';
|
export * from './patcher';
|
||||||
export * from './react';
|
export * from './react';
|
||||||
|
|
||||||
declare global {
|
|
||||||
var FocusNavController: any;
|
|
||||||
var GamepadNavTree: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function joinClassNames(...classes: string[]): string {
|
export function joinClassNames(...classes: string[]): string {
|
||||||
return classes.join(' ');
|
return classes.join(' ');
|
||||||
}
|
}
|
||||||
@@ -21,15 +16,7 @@ export function findSP(): Window {
|
|||||||
// old (SP as host)
|
// old (SP as host)
|
||||||
if (document.title == 'SP') return window;
|
if (document.title == 'SP') return window;
|
||||||
// new (SP as popup)
|
// new (SP as popup)
|
||||||
const focusNav = getFocusNavController();
|
const context = FocusNavController.m_ActiveContext || FocusNavController.m_LastActiveContext;
|
||||||
const context = focusNav.m_ActiveContext || focusNav.m_LastActiveContext;
|
return context.m_rgGamepadNavigationTrees.find((x: any) => x.m_ID == 'root_1_').Root
|
||||||
return context.m_rgGamepadNavigationTrees.find((x: any) => x.m_ID == 'root_1_').Root.Element.ownerDocument
|
.Element.ownerDocument.defaultView;
|
||||||
.defaultView;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the correct FocusNavController, as the Feb 22 2023 beta has two for some reason.
|
|
||||||
*/
|
|
||||||
export function getFocusNavController(): any {
|
|
||||||
return window.GamepadNavTree?.m_context?.m_controller || window.FocusNavController;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"githubPages": false,
|
||||||
"categorizeByGroup": false,
|
"categorizeByGroup": false,
|
||||||
"excludeExternals": true
|
"excludeExternals": true
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user