This commit is contained in:
Nuckyz 2024-11-03 11:11:31 -03:00
parent e7e298d2e7
commit a3952b35a4
No known key found for this signature in database
GPG key ID: 440BF8296E1C4AD9
20 changed files with 168 additions and 94 deletions

View file

@ -35,6 +35,7 @@
"testTsc": "tsc --noEmit"
},
"dependencies": {
"@intrnl/xxhash64": "^0.1.2",
"@sapphi-red/web-noise-suppressor": "0.3.5",
"@vap/core": "0.0.12",
"@vap/shiki": "0.10.5",

132
pnpm-lock.yaml generated
View file

@ -9,13 +9,16 @@ patchedDependencies:
hash: japuwsqfkulviwgkm4kd2oi3ky
path: patches/eslint-plugin-path-alias@2.1.0.patch
eslint@9.8.0:
hash: xm46kqcmdgzlmm4aifkfpxaho4
hash: pxhhii6sqtzo2kyx3geekthd3a
path: patches/eslint@9.8.0.patch
importers:
.:
dependencies:
'@intrnl/xxhash64':
specifier: ^0.1.2
version: 0.1.2
'@sapphi-red/web-noise-suppressor':
specifier: 0.3.5
version: 0.3.5
@ -43,7 +46,7 @@ importers:
devDependencies:
'@stylistic/eslint-plugin':
specifier: ^2.6.1
version: 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
version: 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@types/chrome':
specifier: ^0.0.269
version: 0.0.269
@ -76,22 +79,22 @@ importers:
version: 0.15.18
eslint:
specifier: ^9.8.0
version: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
version: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-import-resolver-alias:
specifier: ^1.1.2
version: 1.1.2(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)))
version: 1.1.2(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)))
eslint-plugin-path-alias:
specifier: 2.1.0
version: 2.1.0(patch_hash=japuwsqfkulviwgkm4kd2oi3ky)(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
version: 2.1.0(patch_hash=japuwsqfkulviwgkm4kd2oi3ky)(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
eslint-plugin-simple-header:
specifier: ^1.1.1
version: 1.1.1
eslint-plugin-simple-import-sort:
specifier: ^12.1.1
version: 12.1.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
version: 12.1.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
eslint-plugin-unused-imports:
specifier: ^4.0.1
version: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
version: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
highlight.js:
specifier: 10.7.3
version: 10.7.3
@ -130,7 +133,7 @@ importers:
version: 5.5.4
typescript-eslint:
specifier: ^8.0.0
version: 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
version: 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
typescript-transform-paths:
specifier: ^3.4.7
version: 3.4.7(typescript@5.5.4)
@ -537,6 +540,9 @@ packages:
resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
engines: {node: '>=18.18'}
'@intrnl/xxhash64@0.1.2':
resolution: {integrity: sha512-1+lx7j99fdph+uy3EnjQyr39KQZ7LP56+aWOr6finJWpgYpvb7XrhFUqDwnEk/wpPC98nCjAT6RulpW3crWjlg==}
'@jridgewell/gen-mapping@0.3.5':
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
@ -2902,9 +2908,9 @@ snapshots:
'@esbuild/win32-x64@0.21.5':
optional: true
'@eslint-community/eslint-utils@4.4.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))':
'@eslint-community/eslint-utils@4.4.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))':
dependencies:
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-visitor-keys: 3.4.2
'@eslint-community/regexpp@4.11.0': {}
@ -2939,6 +2945,8 @@ snapshots:
'@humanwhocodes/retry@0.3.0': {}
'@intrnl/xxhash64@0.1.2': {}
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
@ -2988,49 +2996,49 @@ snapshots:
'@sapphi-red/web-noise-suppressor@0.3.5': {}
'@stylistic/eslint-plugin-js@2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))':
'@stylistic/eslint-plugin-js@2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))':
dependencies:
'@types/eslint': 9.6.0
acorn: 8.12.1
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-visitor-keys: 4.0.0
espree: 10.1.0
'@stylistic/eslint-plugin-jsx@2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))':
'@stylistic/eslint-plugin-jsx@2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))':
dependencies:
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@types/eslint': 9.6.0
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
estraverse: 5.3.0
picomatch: 4.0.2
'@stylistic/eslint-plugin-plus@2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@stylistic/eslint-plugin-plus@2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@types/eslint': 9.6.0
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
transitivePeerDependencies:
- supports-color
- typescript
'@stylistic/eslint-plugin-ts@2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@stylistic/eslint-plugin-ts@2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@types/eslint': 9.6.0
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
transitivePeerDependencies:
- supports-color
- typescript
'@stylistic/eslint-plugin@2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@stylistic/eslint-plugin@2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@stylistic/eslint-plugin-jsx': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@stylistic/eslint-plugin-plus': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@stylistic/eslint-plugin-ts': 2.6.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@stylistic/eslint-plugin-jsx': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@stylistic/eslint-plugin-plus': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@stylistic/eslint-plugin-ts': 2.6.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@types/eslint': 9.6.0
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
transitivePeerDependencies:
- supports-color
- typescript
@ -3125,15 +3133,15 @@ snapshots:
dependencies:
'@types/node': 22.0.3
'@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@typescript-eslint/scope-manager': 8.0.0
'@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.0.0
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@ -3143,14 +3151,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/scope-manager': 8.0.0
'@typescript-eslint/types': 8.0.0
'@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.0.0
debug: 4.3.6
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
@ -3161,10 +3169,10 @@ snapshots:
'@typescript-eslint/types': 8.0.0
'@typescript-eslint/visitor-keys': 8.0.0
'@typescript-eslint/type-utils@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@typescript-eslint/type-utils@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
debug: 4.3.6
ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
@ -3190,13 +3198,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)':
'@typescript-eslint/utils@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@typescript-eslint/scope-manager': 8.0.0
'@typescript-eslint/types': 8.0.0
'@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4)
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
transitivePeerDependencies:
- supports-color
- typescript
@ -3848,9 +3856,9 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))):
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))):
dependencies:
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
eslint-import-resolver-node@0.3.9:
dependencies:
@ -3860,17 +3868,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)):
eslint-module-utils@2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)):
eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)):
dependencies:
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
@ -3878,9 +3886,9 @@ snapshots:
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
hasown: 2.0.2
is-core-module: 2.15.0
is-glob: 4.0.3
@ -3891,15 +3899,15 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-path-alias@2.1.0(patch_hash=japuwsqfkulviwgkm4kd2oi3ky)(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)):
eslint-plugin-path-alias@2.1.0(patch_hash=japuwsqfkulviwgkm4kd2oi3ky)(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)):
dependencies:
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
find-pkg: 2.0.0
get-tsconfig: 4.7.5
nanomatch: 1.2.13
@ -3908,16 +3916,16 @@ snapshots:
eslint-plugin-simple-header@1.1.1: {}
eslint-plugin-simple-import-sort@12.1.1(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)):
eslint-plugin-simple-import-sort@12.1.1(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)):
dependencies:
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-plugin-unused-imports@4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)):
eslint-plugin-unused-imports@4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)):
dependencies:
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
eslint: 9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a)
eslint-rule-composer: 0.3.0
optionalDependencies:
'@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
eslint-rule-composer@0.3.0: {}
@ -3932,9 +3940,9 @@ snapshots:
eslint-visitor-keys@4.0.0: {}
eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4):
eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))
'@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))
'@eslint-community/regexpp': 4.11.0
'@eslint/config-array': 0.17.1
'@eslint/eslintrc': 3.1.0
@ -5232,11 +5240,11 @@ snapshots:
is-typed-array: 1.1.13
possible-typed-array-names: 1.0.0
typescript-eslint@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4):
typescript-eslint@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4):
dependencies:
'@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4))(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))(typescript@5.5.4)
'@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4))(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@typescript-eslint/parser': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
'@typescript-eslint/utils': 8.0.0(eslint@9.8.0(patch_hash=pxhhii6sqtzo2kyx3geekthd3a))(typescript@5.5.4)
optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:

View file

@ -31,7 +31,7 @@ export default definePlugin({
match: /let\{[^}]*lostPermissionTooltipText:\i[^}]*\}=(\i),/,
replace: "$&vencordProps=$1,"
}, {
match: /\.Messages\.GUILD_OWNER(?=.+?decorators:(\i)\(\)).+?\1=?\(\)=>.+?children:\[/,
match: /#intl<GUILD_OWNER>(?=.+?decorators:(\i)\(\)).+?\1=?\(\)=>.+?children:\[/,
replace: "$&...(typeof vencordProps=='undefined'?[]:Vencord.Api.MemberListDecorators.__getDecorators(vencordProps)),"
}
]

View file

@ -25,7 +25,7 @@ export default definePlugin({
authors: [Devs.Cyn],
patches: [
{
find: ".Messages.REMOVE_ATTACHMENT_BODY",
find: "#intl<REMOVE_ATTACHMENT_BODY>",
replacement: {
match: /(?<=.container\)?,children:)(\[.+?\])/,
replace: "Vencord.Api.MessageAccessories._modifyAccessories($1,this.props)",

View file

@ -27,7 +27,7 @@ export default definePlugin({
{
find: '"Message Username"',
replacement: {
match: /\.Messages\.GUILD_COMMUNICATION_DISABLED_BOTTOM_SHEET_TITLE.+?}\),\i(?=\])/,
match: /#intl<GUILD_COMMUNICATION_DISABLED_BOTTOM_SHEET_TITLE>.+?}\),\i(?=\])/,
replace: "$&,...Vencord.Api.MessageDecorations.__addDecorationsToMessage(arguments[0])"
}
}

View file

@ -25,7 +25,7 @@ export default definePlugin({
authors: [Devs.Arjix, Devs.hunt, Devs.Ven],
patches: [
{
find: ".Messages.EDIT_TEXTAREA_HELP",
find: "#intl<EDIT_TEXTAREA_HELP>",
replacement: {
match: /(?<=,channel:\i\}\)\.then\().+?(?=return \i\.content!==this\.props\.message\.content&&\i\((.+?)\))/,
replace: (match, args) => "" +

View file

@ -24,9 +24,9 @@ export default definePlugin({
description: "API to add buttons to message popovers.",
authors: [Devs.KingFish, Devs.Ven, Devs.Nuckyz],
patches: [{
find: "Messages.MESSAGE_UTILITIES_A11Y_LABEL",
find: "#intl<MESSAGE_UTILITIES_A11Y_LABEL>",
replacement: {
match: /\.jsx\)\((\i\.\i),\{label:\i\.\i\.Messages\.MESSAGE_ACTION_REPLY.{0,200}?"reply-self".{0,50}?\}\):null(?=,.+?message:(\i))/,
match: /\.jsx\)\((\i\.\i),\{label:\i\.\i\.string\(\i\.\i#intl<MESSAGE_ACTION_REPLY>.{0,200}?"reply-self".{0,50}?\}\):null(?=,.+?message:(\i))/,
replace: "$&,Vencord.Api.MessagePopover._buildPopoverElements($1,$2)"
}
}],

View file

@ -25,16 +25,16 @@ export default definePlugin({
description: "Api required for plugins that modify the server list",
patches: [
{
find: "Messages.DISCODO_DISABLED",
find: "#intl<DISCODO_DISABLED>",
replacement: {
match: /(?<=Messages\.DISCODO_DISABLED.+?return)(\(.{0,75}?tutorialContainer.+?}\))(?=}function)/,
match: /(?<=#intl<DISCODO_DISABLED>.+?return)(\(.{0,75}?tutorialContainer.+?}\))(?=}function)/,
replace: "[$1].concat(Vencord.Api.ServerList.renderAll(Vencord.Api.ServerList.ServerListRenderPosition.Above))"
}
},
{
find: "Messages.SERVERS,children",
replacement: {
match: /(?<=Messages\.SERVERS,children:)\i\.map\(\i\)/,
match: /(?<=#intl<SERVERS>\),children:)\i\.map\(\i\)/,
replace: "Vencord.Api.ServerList.renderAll(Vencord.Api.ServerList.ServerListRenderPosition.In).concat($&)"
}
}

View file

@ -57,7 +57,7 @@ export default definePlugin({
]
},
{
find: "Messages.ACTIVITY_SETTINGS",
find: "#intl<ACTIVITY_SETTINGS>",
replacement: [
{
match: /(?<=section:(.{0,50})\.DIVIDER\}\))([,;])(?=.{0,200}(\i)\.push.{0,100}label:(\i)\.header)/,
@ -70,7 +70,7 @@ export default definePlugin({
]
},
{
find: "Messages.USER_SETTINGS_ACTIONS_MENU_LABEL",
find: "#intl<USER_SETTINGS_ACTIONS_MENU_LABEL>",
replacement: {
match: /(?<=function\((\i),\i\)\{)(?=let \i=Object.values\(\i.\i\).*?(\i\.\i)\.open\()/,
replace: "$2.open($1);return;"

View file

@ -147,7 +147,7 @@ export default definePlugin({
settings,
patches: [{
find: ".BEGINNING_DM.format",
find: "#intl<BEGINNING_DM>",
replacement: {
match: /BEGINNING_DM\.format\(\{.+?\}\),(?=.{0,300}(\i)\.isMultiUserDM)/,
replace: "$& $self.renderContributorDmWarningCard({ channel: $1 }),"

View file

@ -69,7 +69,7 @@ export default definePlugin({
patches: [
{
find: ".Messages.ACCOUNT_SPEAKING_WHILE_MUTED",
find: "#intl<ACCOUNT_SPEAKING_WHILE_MUTED>",
group: true,
replacement: [
{

View file

@ -172,7 +172,7 @@ export default definePlugin({
// Disable expanding and collapsing folders transition in the normal GuildsBar sidebar
{
predicate: () => !settings.store.keepIcons,
match: /(?<=\.Messages\.SERVER_FOLDER_PLACEHOLDER.+?useTransition\)\()/,
match: /(?<=#intl<SERVER_FOLDER_PLACEHOLDER>.+?useTransition\)\()/,
replace: "$self.shouldShowTransition(arguments[0])&&"
},
// If we are rendering the normal GuildsBar sidebar, we avoid rendering guilds from folders that are expanded
@ -205,7 +205,7 @@ export default definePlugin({
}
},
{
find: ".Messages.DISCODO_DISABLED",
find: "#intl<DISCODO_DISABLED>",
predicate: () => settings.store.closeAllHomeButton,
replacement: {
// Close all folders when clicking the home button

View file

@ -41,7 +41,7 @@ export default definePlugin({
{
find: "DefaultCustomizationSections",
replacement: {
match: /(?<=USER_SETTINGS_AVATAR_DECORATION},"decoration"\),)/,
match: /(?<=#intl<USER_SETTINGS_AVATAR_DECORATION>\)},"decoration"\),)/,
replace: "$self.DecorSection(),"
}
},

View file

@ -26,7 +26,7 @@ export default definePlugin({
{
find: ".PANEL}),nicknameIcons",
replacement: {
match: /USER_PROFILE_MEMBER_SINCE,.{0,100}userId:(\i\.id)}\)}\)/,
match: /#intl<USER_PROFILE_MEMBER_SINCE>,.{0,100}userId:(\i\.id)}\)}\)/,
replace: "$&,$self.FriendsSinceComponent({userId:$1,isSidebar:true})"
}
},
@ -34,7 +34,7 @@ export default definePlugin({
{
find: "action:\"PRESS_APP_CONNECTION\"",
replacement: {
match: /USER_PROFILE_MEMBER_SINCE,.{0,100}userId:(\i\.id),.{0,100}}\)}\),/,
match: /#intl<USER_PROFILE_MEMBER_SINCE>,.{0,100}userId:(\i\.id),.{0,100}}\)}\),/,
replace: "$&,$self.FriendsSinceComponent({userId:$1,isSidebar:false}),"
}
}

View file

@ -74,7 +74,7 @@ export default definePlugin({
{
find: ".invitesDisabledTooltip",
replacement: {
match: /\.VIEW_AS_ROLES_MENTIONS_WARNING.{0,100}(?=])/,
match: /#intl<VIEW_AS_ROLES_MENTIONS_WARNING>.{0,100}(?=])/,
replace: "$&,$self.renderTooltip(arguments[0].guild)"
},
predicate: () => settings.store.toolTip

View file

@ -28,21 +28,21 @@ export default definePlugin({
{
find: '.id,"Search Results"',
replacement: {
match: /if\(.{1,10}\)(.{1,10}\.show\({.{1,50}UNBLOCK_TO_JUMP_TITLE)/,
match: /if\(.{1,10}\)(.{1,10}\.show\({.{1,50}#intl<UNBLOCK_TO_JUMP_TITLE>)/,
replace: "if(false)$1"
}
},
{
find: "renderJumpButton()",
replacement: {
match: /if\(.{1,10}\)(.{1,10}\.show\({.{1,50}UNBLOCK_TO_JUMP_TITLE)/,
match: /if\(.{1,10}\)(.{1,10}\.show\({.{1,50}#intl<UNBLOCK_TO_JUMP_TITLE>)/,
replace: "if(false)$1"
}
},
{
find: "flash:!0,returnMessageId",
replacement: {
match: /.\?(.{1,10}\.show\({.{1,50}UNBLOCK_TO_JUMP_TITLE)/,
match: /.\?(.{1,10}\.show\({.{1,50}#intl<UNBLOCK_TO_JUMP_TITLE>)/,
replace: "false?$1"
}
}

View file

@ -57,7 +57,7 @@ export default definePlugin({
patches: [
// Change the max volume for sliders to allow for values above 200
...[
".Messages.USER_VOLUME",
"#intl<USER_VOLUME>",
"currentVolume:"
].map(find => ({
find,

View file

@ -127,11 +127,11 @@ export default definePlugin({
replace: "return [true"
},
{
match: /(?<=COPY_IMAGE_MENU_ITEM,)action:/,
match: /(?<=#intl<COPY_IMAGE_MENU_ITEM>,)action:/,
replace: "action:()=>$self.copyImage(arguments[0]),oldAction:"
},
{
match: /(?<=SAVE_IMAGE_MENU_ITEM,)action:/,
match: /(?<=#intl<SAVE_IMAGE_MENU_ITEM>,)action:/,
replace: "action:()=>$self.saveImage(arguments[0]),oldAction:"
},
]
@ -224,10 +224,10 @@ export default definePlugin({
{
find: '("interactionUsernameProfile',
replacement:
{
match: /\i\.isPlatformEmbedded(?=.{0,50}\.tagName)/,
replace: "true"
},
{
match: /\i\.isPlatformEmbedded(?=.{0,50}\.tagName)/,
replace: "true"
},
}
],

53
src/utils/intlHash.ts Normal file
View file

@ -0,0 +1,53 @@
/* eslint-disable simple-header/header */
/**
* discord-intl
*
* @copyright 2024 Discord, Inc.
* @link https://github.com/discord/discord-intl
* @license MIT
*/
import { hash as h64 } from "@intrnl/xxhash64";
const BASE64_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
const IS_BIG_ENDIAN = (() => {
const array = new Uint8Array(4);
const view = new Uint32Array(array.buffer);
return !((view[0] = 1) & array[0]);
})();
function numberToBytes(number: number | bigint) {
number = BigInt(number);
const array: number[] = [];
const byteCount = Math.ceil(Math.floor(Math.log2(Number(number)) + 1) / 8);
for (let i = 0; i < byteCount; i++) {
array.unshift(Number((number >> BigInt(8 * i)) & BigInt(255)));
}
const bytes = new Uint8Array(array);
// The native `hashToMessageKey` always works in Big/Network Endian bytes, so this array
// needs to be converted to the same endianness to get the same base64 result.
return IS_BIG_ENDIAN ? bytes : bytes.reverse();
}
/**
* Returns a consistent, short hash of the given key by first processing it through a hash digest,
* then encoding the first few bytes to base64.
*
* This function is specifically written to mirror the native backend hashing function used by
* `@discord/intl-loader-core`, to be able to hash names at runtime.
*/
export function runtimeHashMessageKey(key: string): string {
const hash = h64(key, 0);
const bytes = numberToBytes(hash);
return [
BASE64_TABLE[bytes[0] >> 2],
BASE64_TABLE[((bytes[0] & 0x03) << 4) | (bytes[1] >> 4)],
BASE64_TABLE[((bytes[1] & 0x0f) << 2) | (bytes[2] >> 6)],
BASE64_TABLE[bytes[2] & 0x3f],
BASE64_TABLE[bytes[3] >> 2],
BASE64_TABLE[((bytes[3] & 0x03) << 4) | (bytes[3] >> 4)],
].join("");
}

View file

@ -16,12 +16,24 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { runtimeHashMessageKey } from "./intlHash";
import { Patch, PatchReplacement, ReplaceFn } from "./types";
export function canonicalizeMatch<T extends RegExp | string>(match: T): T {
if (typeof match === "string") return match;
const canonSource = match.source
.replaceAll("\\i", "[A-Za-z_$][\\w$]*");
let partialCanon = typeof match === "string" ? match : match.source;
partialCanon = partialCanon.replaceAll(/#intl?<([A-Za-z_$][\w$]*)>/g, (_, key) => {
const hashed = runtimeHashMessageKey(key);
const isStr = typeof match === "string";
return /^[\d]/.test(hashed) || !/^[\w$]+$/.test(hashed)
? isStr ? `["${hashed}` : `(?:\\["${hashed}"\\])`
: isStr ? `.${hashed}` : `(?:\\.${hashed})`;
});
if (typeof match === "string") return partialCanon as T;
const canonSource = partialCanon
.replaceAll(String.raw`\i`, String.raw`(?:[A-Za-z_$][\w$]*)`);
return new RegExp(canonSource, match.flags) as T;
}