diff --git a/.github/funding.yml b/.github/funding.yml
new file mode 100644
index 00000000..0fcf1708
--- /dev/null
+++ b/.github/funding.yml
@@ -0,0 +1,2 @@
+patreon: zardoy
+custom: ["https://www.paypal.me/zardoy", zardoy.com]
diff --git a/README.MD b/README.MD
index 5949d7b7..1105ed01 100644
--- a/README.MD
+++ b/README.MD
@@ -16,6 +16,8 @@ TOC:
- [Contributed Code Actions](#contributed-code-actions)
- [Even Even More](#even-even-more)
+> *Note* Visit website for list of recommended settings:
+
## Top Features
> Note: With this plugin React experience hits different! (see below)
diff --git a/package.json b/package.json
index 4502b198..78dad739 100644
--- a/package.json
+++ b/package.json
@@ -13,8 +13,7 @@
},
{
"command": "removeFunctionArgumentsTypesInSelection",
- "title": "Remove Function Arguments Types in Selection",
- "category": "TS Essentials"
+ "title": "Remove Function Arguments Types in Selection"
},
{
"command": "inspectAcceptedCompletion",
@@ -38,27 +37,27 @@
},
{
"command": "pickAndInsertFunctionArguments",
- "title": "Pick and Insert Function Arguments",
- "category": "TS Essentials"
+ "title": "Pick and Insert Function Arguments"
},
{
"command": "goToNodeBySyntaxKind",
- "title": "Go to Node by Syntax Kind",
- "category": "TS Essentials"
+ "title": "Go to Node by Syntax Kind"
},
{
"command": "goToNodeBySyntaxKindWithinSelection",
- "title": "Go to Node by Syntax Kind Within Selection",
- "category": "TS Essentials"
+ "title": "Go to Node by Syntax Kind Within Selection"
},
{
"command": "insertNameOfCompletion",
- "title": "Insert Name of Completion",
- "category": "TS Essentials"
+ "title": "Insert Name of Completion"
},
{
"command": "copyFullType",
"title": "Copy Full Type"
+ },
+ {
+ "command": "pasteCodeWithImports",
+ "title": "Paste Code with Imports"
}
],
"keybindings": [
@@ -87,6 +86,7 @@
],
"publisher": "zardoy",
"private": true,
+ "homepage": "https://ts-plugin.zardoy.com/",
"keywords": [
"ts",
"javascript",
@@ -128,7 +128,7 @@
"tsm": "^2.3.0",
"type-fest": "^2.13.1",
"typed-jsonfile": "^0.2.1",
- "typescript": "^5.0.2",
+ "typescript": "5.1.1-rc",
"vite": "^4.1.1",
"vitest": "^0.26.0",
"vitest-environment-ts-plugin": "./vitest-environment-ts-plugin",
@@ -146,7 +146,7 @@
"@types/mocha": "^9.1.1",
"@types/pluralize": "^0.0.29",
"@volar/language-server": "1.3.0-alpha.3",
- "@volar/language-service": "1.5.0",
+ "@volar/language-service": "1.6.9",
"@volar/vue-language-core": "^1.2.0-patch.2",
"@vscode/emmet-helper": "^2.8.4",
"@vscode/test-electron": "^2.1.5",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7a743f32..8103f2c9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -26,8 +26,8 @@ importers:
specifier: 1.3.0-alpha.3
version: 1.3.0-alpha.3
'@volar/language-service':
- specifier: 1.5.0
- version: 1.5.0
+ specifier: 1.6.9
+ version: 1.6.9
'@volar/vue-language-core':
specifier: ^1.2.0-patch.2
version: 1.2.0-patch.2
@@ -66,7 +66,7 @@ importers:
version: 8.7.0
eslint-config-zardoy:
specifier: ^0.2.12
- version: 0.2.12(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.7.0)(typescript@5.0.2)
+ version: 0.2.12(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.7.0)(typescript@5.1.1-rc)
glob:
specifier: ^8.0.3
version: 8.0.3
@@ -114,10 +114,10 @@ importers:
version: 1.0.7
unleashed-typescript:
specifier: ^1.3.0
- version: 1.3.0(typescript@5.0.2)
+ version: 1.3.0(typescript@5.1.1-rc)
vscode-framework:
specifier: ^0.0.18
- version: 0.0.18(@types/vscode@1.72.0)(typescript@5.0.2)
+ version: 0.0.18(@types/vscode@1.72.0)(typescript@5.1.1-rc)
vscode-uri:
specifier: ^3.0.6
version: 3.0.6
@@ -139,7 +139,7 @@ importers:
version: 1.72.0
'@zardoy/tsconfig':
specifier: ^1.3.1
- version: 1.3.1(typescript@5.0.2)
+ version: 1.3.1(typescript@5.1.1-rc)
esbuild:
specifier: ^0.15.15
version: 0.15.18
@@ -162,8 +162,8 @@ importers:
specifier: ^0.2.1
version: 0.2.1
typescript:
- specifier: ^5.0.2
- version: 5.0.2
+ specifier: 5.1.1-rc
+ version: 5.1.1-rc
vite:
specifier: ^4.1.1
version: 4.1.1(@types/node@16.11.21)
@@ -720,7 +720,7 @@ packages:
/@types/jsonfile@6.0.1:
resolution: {integrity: sha512-SSCc8i9yl6vjgXSyZb0uEodk3UjXuWd55t1D+Ie1zuTx7ml+2AEj0Xyomi3NBz1gCBsZVyWWnXOLXowS1ufhEw==}
dependencies:
- '@types/node': 16.18.3
+ '@types/node': 16.11.21
dev: false
/@types/keyv@3.1.4:
@@ -784,7 +784,7 @@ packages:
dev: false
optional: true
- /@typescript-eslint/eslint-plugin@5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.0.2):
+ /@typescript-eslint/eslint-plugin@5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -795,23 +795,23 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
'@typescript-eslint/scope-manager': 5.37.0
- '@typescript-eslint/type-utils': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
- '@typescript-eslint/utils': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/type-utils': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
+ '@typescript-eslint/utils': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.7.0
functional-red-black-tree: 1.0.1
ignore: 5.2.0
regexpp: 3.2.0
semver: 7.3.8
- tsutils: 3.21.0(typescript@5.0.2)
- typescript: 5.0.2
+ tsutils: 3.21.0(typescript@5.1.1-rc)
+ typescript: 5.1.1-rc
transitivePeerDependencies:
- supports-color
dev: false
- /@typescript-eslint/parser@5.37.0(eslint@8.7.0)(typescript@5.0.2):
+ /@typescript-eslint/parser@5.37.0(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -823,10 +823,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.37.0
'@typescript-eslint/types': 5.37.0
- '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.0.2)
+ '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.1.1-rc)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.7.0
- typescript: 5.0.2
+ typescript: 5.1.1-rc
transitivePeerDependencies:
- supports-color
dev: false
@@ -839,7 +839,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.37.0
dev: false
- /@typescript-eslint/type-utils@5.37.0(eslint@8.7.0)(typescript@5.0.2):
+ /@typescript-eslint/type-utils@5.37.0(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -849,12 +849,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.0.2)
- '@typescript-eslint/utils': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.1.1-rc)
+ '@typescript-eslint/utils': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.7.0
- tsutils: 3.21.0(typescript@5.0.2)
- typescript: 5.0.2
+ tsutils: 3.21.0(typescript@5.1.1-rc)
+ typescript: 5.1.1-rc
transitivePeerDependencies:
- supports-color
dev: false
@@ -864,7 +864,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: false
- /@typescript-eslint/typescript-estree@5.37.0(typescript@5.0.2):
+ /@typescript-eslint/typescript-estree@5.37.0(typescript@5.1.1-rc):
resolution: {integrity: sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -879,13 +879,13 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
- tsutils: 3.21.0(typescript@5.0.2)
- typescript: 5.0.2
+ tsutils: 3.21.0(typescript@5.1.1-rc)
+ typescript: 5.1.1-rc
transitivePeerDependencies:
- supports-color
dev: false
- /@typescript-eslint/utils@5.37.0(eslint@8.7.0)(typescript@5.0.2):
+ /@typescript-eslint/utils@5.37.0(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -894,7 +894,7 @@ packages:
'@types/json-schema': 7.0.9
'@typescript-eslint/scope-manager': 5.37.0
'@typescript-eslint/types': 5.37.0
- '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.0.2)
+ '@typescript-eslint/typescript-estree': 5.37.0(typescript@5.1.1-rc)
eslint: 8.7.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.7.0)
@@ -927,10 +927,10 @@ packages:
'@volar/source-map': 1.3.0-alpha.3
dev: false
- /@volar/language-core@1.5.0:
- resolution: {integrity: sha512-CZJjglaZRT4pgO8T6YRo7QGgQ7sxSkzcH9mV/4M/x751NffGoVVHz/Z1ht412XEYj4t/xrsB/z3fff0vYwjBTA==}
+ /@volar/language-core@1.6.9:
+ resolution: {integrity: sha512-7v8zsq3VMUBF5fI6FfjZ9pEkOuTiWD+AjxHVI3UXXXPoDeV9RcK3oPUfyQCV4Aj9Dqx4DPPI9Pcphyo6gZ8SAw==}
dependencies:
- '@volar/source-map': 1.5.0
+ '@volar/source-map': 1.6.9
dev: false
/@volar/language-server@1.3.0-alpha.3:
@@ -963,15 +963,12 @@ packages:
vscode-uri: 3.0.7
dev: false
- /@volar/language-service@1.5.0:
- resolution: {integrity: sha512-9HRgzTvlObcFutevwouoxVp3LyDWPiGV7d1bBlJj23NqwVJn5FuvAvdBBCdNW2d4XDgh3tRprC3kKtdO4sMsVg==}
+ /@volar/language-service@1.6.9:
+ resolution: {integrity: sha512-DBdpypXVuRcW3td0l4nezuNqc0RR9NLScjTQ/xtE1vou5gaMyRETphbVaTgo2OnivK474tkCQ8YJTkSaMUizNA==}
dependencies:
- '@volar/language-core': 1.5.0
- '@volar/source-map': 1.5.0
- typescript-auto-import-cache: 0.2.1
- vscode-html-languageservice: 5.0.4
- vscode-json-languageservice: 5.3.1
- vscode-languageserver-protocol: 3.17.3
+ '@volar/language-core': 1.6.9
+ '@volar/source-map': 1.6.9
+ typescript-auto-import-cache: 0.3.0
vscode-languageserver-textdocument: 1.0.8
vscode-uri: 3.0.7
dev: false
@@ -995,10 +992,10 @@ packages:
muggle-string: 0.2.2
dev: false
- /@volar/source-map@1.5.0:
- resolution: {integrity: sha512-Tkp8OEkKony48tawWlRJOyQ0aO0rU+cA0Jnn0mMwxhBIYbYTqrk3tCalw6ayhzGtZYB9dNqieFEq08+WMPK3sw==}
+ /@volar/source-map@1.6.9:
+ resolution: {integrity: sha512-D+IgnJGxO2Q1tL5qh3vU7iaLHtfGXptpdUDLMwmx292Fz0aVIXlC85mHHawGjBWeg/JhRGtEl4BvfTdn+4Ng/w==}
dependencies:
- muggle-string: 0.2.2
+ muggle-string: 0.3.1
dev: false
/@volar/typescript-faster@1.3.0-alpha.3:
@@ -1132,13 +1129,13 @@ packages:
resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==}
dev: true
- /@zardoy/tsconfig@1.3.1(typescript@5.0.2):
+ /@zardoy/tsconfig@1.3.1(typescript@5.1.1-rc):
resolution: {integrity: sha512-maEmpfUbcj29RFjs8tatq7P7Ev+W2F7Ppc02mpWYA9LDa+P0mKa+fa4YcrhL1ZeY/wWCUULCOoq2WuxSwu1pyw==}
engines: {node: '>=14'}
peerDependencies:
typescript: ^4.5.4
dependencies:
- typescript: 5.0.2
+ typescript: 5.1.1-rc
dev: true
/@zardoy/utils@0.0.4:
@@ -1193,7 +1190,7 @@ packages:
type-fest: 2.19.0
typed-jsonfile: 0.2.1
untildify: 4.0.0
- vscode-framework: 0.0.18(@types/vscode@1.72.0)(typescript@5.0.2)
+ vscode-framework: 0.0.18(@types/vscode@1.72.0)(typescript@5.1.1-rc)
vscode-manifest: 0.0.8
vscode-uri: 3.0.6
dev: false
@@ -1308,6 +1305,13 @@ packages:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: false
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.2
+ is-array-buffer: 3.0.2
+ dev: false
+
/array-includes@3.1.5:
resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==}
engines: {node: '>= 0.4'}
@@ -1324,9 +1328,9 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
- get-intrinsic: 1.2.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ get-intrinsic: 1.2.1
is-string: 1.0.7
dev: false
@@ -1350,8 +1354,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
es-shim-unscopables: 1.0.0
dev: false
@@ -1359,10 +1363,10 @@ packages:
resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
es-shim-unscopables: 1.0.0
- get-intrinsic: 1.2.0
+ get-intrinsic: 1.2.1
dev: false
/assert-plus@1.0.0:
@@ -1551,7 +1555,7 @@ packages:
dependencies:
clone-response: 1.0.3
get-stream: 5.2.0
- http-cache-semantics: 4.1.0
+ http-cache-semantics: 4.1.1
keyv: 4.5.2
lowercase-keys: 2.0.0
normalize-url: 6.1.0
@@ -1996,7 +2000,7 @@ packages:
decompress-tarbz2: 4.1.1
decompress-targz: 4.1.1
decompress-unzip: 4.0.1
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
make-dir: 1.3.0
pify: 2.3.0
strip-dirs: 2.1.0
@@ -2042,12 +2046,20 @@ packages:
object-keys: 1.1.1
dev: false
+ /define-properties@1.2.0:
+ resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-property-descriptors: 1.0.0
+ object-keys: 1.1.1
+ dev: false
+
/del@6.0.0:
resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==}
engines: {node: '>=10'}
dependencies:
globby: 11.1.0
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
is-glob: 4.0.3
is-path-cwd: 2.2.0
is-path-inside: 3.0.3
@@ -2212,6 +2224,46 @@ packages:
which-typed-array: 1.1.9
dev: false
+ /es-abstract@1.21.2:
+ resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.5
+ get-intrinsic: 1.2.1
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ is-array-buffer: 3.0.2
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.10
+ is-weakref: 1.0.2
+ object-inspect: 1.12.3
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.5.0
+ safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.7
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.9
+ dev: false
+
/es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
engines: {node: '>= 0.4'}
@@ -2498,7 +2550,7 @@ packages:
eslint-plugin-react-hooks: 4.6.0(eslint@8.7.0)
dev: false
- /eslint-config-xo-typescript@0.47.1(@typescript-eslint/eslint-plugin@5.37.0)(eslint@8.7.0)(typescript@5.0.2):
+ /eslint-config-xo-typescript@0.47.1(@typescript-eslint/eslint-plugin@5.37.0)(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-BkbzIltZCWp8QLekKJKG8zJ/ZGezD8Z9FaJ+hJ5PrAVUGkIPmxXLLEHCKS3ax7oOqZLYQiG+jyKfQDIEdTQgbg==}
engines: {node: '>=12'}
peerDependencies:
@@ -2506,9 +2558,9 @@ packages:
eslint: '>=8.0.0'
typescript: '>=4.4'
dependencies:
- '@typescript-eslint/eslint-plugin': 5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/eslint-plugin': 5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.1.1-rc)
eslint: 8.7.0
- typescript: 5.0.2
+ typescript: 5.1.1-rc
dev: false
/eslint-config-xo@0.39.0(eslint@8.7.0):
@@ -2521,7 +2573,7 @@ packages:
eslint: 8.7.0
dev: false
- /eslint-config-zardoy@0.2.12(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.7.0)(typescript@5.0.2):
+ /eslint-config-zardoy@0.2.12(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.7.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-zFgNruQu/0O83U8q5v8GRj1sTLWGEc2ITO4ATWOXo0zZXOY3YSsyxggUAxrYWTlWIHsKNyCFRtJ4TUaglXjnyw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
@@ -2542,13 +2594,13 @@ packages:
optional: true
dependencies:
'@rushstack/eslint-patch': 1.2.0
- '@typescript-eslint/eslint-plugin': 5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.0.2)
- '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/eslint-plugin': 5.37.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)(typescript@5.1.1-rc)
+ '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
eslint: 8.7.0
eslint-config-prettier: 8.5.0(eslint@8.7.0)
eslint-config-xo: 0.39.0(eslint@8.7.0)
eslint-config-xo-react: 0.25.0(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.7.0)
- eslint-config-xo-typescript: 0.47.1(@typescript-eslint/eslint-plugin@5.37.0)(eslint@8.7.0)(typescript@5.0.2)
+ eslint-config-xo-typescript: 0.47.1(@typescript-eslint/eslint-plugin@5.37.0)(eslint@8.7.0)(typescript@5.1.1-rc)
eslint-plugin-eslint-comments: 3.2.0(eslint@8.7.0)
eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.37.0)(eslint@8.7.0)
eslint-plugin-node: 11.1.0(eslint@8.7.0)
@@ -2556,7 +2608,7 @@ packages:
eslint-plugin-react-hooks: 4.6.0(eslint@8.7.0)
eslint-plugin-sonarjs: 0.11.0(eslint@8.7.0)
eslint-plugin-unicorn: 39.0.0(eslint@8.7.0)
- typescript: 5.0.2
+ typescript: 5.1.1-rc
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -2593,7 +2645,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
debug: 3.2.7
eslint: 8.7.0
eslint-import-resolver-node: 0.3.6
@@ -2633,7 +2685,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.0.2)
+ '@typescript-eslint/parser': 5.37.0(eslint@8.7.0)(typescript@5.1.1-rc)
array-includes: 3.1.5
array.prototype.flat: 1.3.0
debug: 2.6.9
@@ -3102,7 +3154,7 @@ packages:
resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
engines: {node: '>=0.6'}
dependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
inherits: 2.0.4
mkdirp: 0.5.6
rimraf: 2.7.1
@@ -3129,7 +3181,7 @@ packages:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: false
- /generated-module@0.0.2(typescript@5.0.2):
+ /generated-module@0.0.2(typescript@5.1.1-rc):
resolution: {integrity: sha512-7lYkwjKP3ymFvDZh4hGcALdFGyf/vZbHZNR/8qrY/FVTUBja/bMA2OzVq8HneMuKi9UFdgXBLXVDjdvdZxGLVg==}
peerDependencies:
typescript: ^4.4.3
@@ -3141,7 +3193,7 @@ packages:
fs-extra: 10.1.0
jsonfile: 6.1.0
ts-morph: 12.2.0
- typescript: 5.0.2
+ typescript: 5.1.1-rc
dev: false
/gensync@1.0.0-beta.2:
@@ -3173,6 +3225,15 @@ packages:
has-symbols: 1.0.3
dev: false
+ /get-intrinsic@1.2.1:
+ resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ dev: false
+
/get-stream@2.3.1:
resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==}
engines: {node: '>=0.10.0'}
@@ -3326,6 +3387,10 @@ packages:
/graceful-fs@4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
/graceful-fs@4.2.9:
resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==}
@@ -3398,6 +3463,10 @@ packages:
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
dev: true
+ /http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+ dev: true
+
/http-errors@1.6.3:
resolution: {integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=}
engines: {node: '>= 0.6'}
@@ -3534,6 +3603,14 @@ packages:
is-typed-array: 1.1.10
dev: false
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ is-typed-array: 1.1.10
+ dev: false
+
/is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: false
@@ -3577,6 +3654,12 @@ packages:
ci-info: 3.3.0
dev: true
+ /is-core-module@2.12.1:
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
+ dependencies:
+ has: 1.0.3
+ dev: false
+
/is-core-module@2.9.0:
resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
dependencies:
@@ -3826,7 +3909,7 @@ packages:
dependencies:
universalify: 2.0.0
optionalDependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
/jsonify@0.0.0:
resolution: {integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=}
@@ -3974,7 +4057,7 @@ packages:
resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
engines: {node: '>=4'}
dependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
parse-json: 4.0.0
pify: 3.0.0
strip-bom: 3.0.0
@@ -4310,6 +4393,10 @@ packages:
resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==}
dev: false
+ /muggle-string@0.3.1:
+ resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
+ dev: false
+
/multimap@1.1.0:
resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==}
dev: false
@@ -4414,6 +4501,10 @@ packages:
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
dev: false
+ /object-inspect@1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: false
+
/object-inspect@1.4.1:
resolution: {integrity: sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==}
dev: false
@@ -4438,8 +4529,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: false
/object.fromentries@2.0.6:
@@ -4447,15 +4538,15 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: false
/object.hasown@1.1.2:
resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
dependencies:
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: false
/object.values@1.1.5:
@@ -4472,8 +4563,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: false
/on-finished@2.3.0:
@@ -4854,7 +4945,7 @@ packages:
/proper-lockfile@4.1.2:
resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
dependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
retry: 0.12.0
signal-exit: 3.0.7
dev: false
@@ -5006,6 +5097,15 @@ packages:
functions-have-names: 1.2.3
dev: false
+ /regexp.prototype.flags@1.5.0:
+ resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ functions-have-names: 1.2.3
+ dev: false
+
/regexpp@3.2.0:
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
engines: {node: '>=8'}
@@ -5057,7 +5157,7 @@ packages:
resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
hasBin: true
dependencies:
- is-core-module: 2.9.0
+ is-core-module: 2.12.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: false
@@ -5360,12 +5460,12 @@ packages:
resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.1
- get-intrinsic: 1.2.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ get-intrinsic: 1.2.1
has-symbols: 1.0.3
internal-slot: 1.0.5
- regexp.prototype.flags: 1.4.3
+ regexp.prototype.flags: 1.5.0
side-channel: 1.0.4
dev: false
@@ -5378,6 +5478,15 @@ packages:
es-abstract: 1.21.1
dev: false
+ /string.prototype.trim@1.2.7:
+ resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: false
+
/string.prototype.trimend@1.0.6:
resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
@@ -5575,7 +5684,7 @@ packages:
code-block-writer: 10.1.1
dev: false
- /ts-node@10.4.0(@types/node@16.18.3)(typescript@4.2.4):
+ /ts-node@10.4.0(@types/node@16.11.21)(typescript@4.2.4):
resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==}
hasBin: true
peerDependencies:
@@ -5594,7 +5703,7 @@ packages:
'@tsconfig/node12': 1.0.9
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
- '@types/node': 16.18.3
+ '@types/node': 16.11.21
acorn: 8.7.0
acorn-walk: 8.2.0
arg: 4.1.3
@@ -5638,14 +5747,14 @@ packages:
engines: {node: '>=0.6.x'}
dev: false
- /tsutils@3.21.0(typescript@5.0.2):
+ /tsutils@3.21.0(typescript@5.1.1-rc):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
- typescript: 5.0.2
+ typescript: 5.1.1-rc
dev: false
/type-check@0.3.2:
@@ -5719,7 +5828,7 @@ packages:
jsonfile: 6.1.0
type-fest: 2.13.1
- /typed-vscode@0.0.5(@types/vscode@1.72.0)(typescript@5.0.2):
+ /typed-vscode@0.0.5(@types/vscode@1.72.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-BJpELW+Q35iWc6t/Na0ZGprG1jwGgFb3U+71UIDKjxEp+LZZKatMzoBSuPoO/saTeSzMY8YinGsglkgru8u9jg==}
engines: {node: ^14.13.1 || >=16.0.0}
hasBin: true
@@ -5732,7 +5841,7 @@ packages:
commander: 8.3.0
cosmiconfig: 7.0.1
fs-extra: 10.1.0
- generated-module: 0.0.2(typescript@5.0.2)
+ generated-module: 0.0.2(typescript@5.1.1-rc)
lodash: 4.17.21
quicktype-core: 6.0.70
type-fest: 2.13.1
@@ -5749,8 +5858,8 @@ packages:
resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==}
dev: false
- /typescript-auto-import-cache@0.2.1:
- resolution: {integrity: sha512-FD5uYQSNkVTX4b3lvtifP+SR3bARWGmKe/uyp5BfuW2ZUCYG7vHKPddrteLU06Uh68woRaYIX+Sbs2nnySpGLw==}
+ /typescript-auto-import-cache@0.3.0:
+ resolution: {integrity: sha512-Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==}
dependencies:
semver: 7.3.8
dev: false
@@ -5759,10 +5868,10 @@ packages:
resolution: {integrity: sha512-POhWbUNs2oaBti1W9k/JwS+uDsaZD9J/KQiZ/iXRQEOD0lTn9VmshIls9tn+A9X6O+smPjeEz5NEy6WTkCCzrQ==}
dependencies:
'@types/json-schema': 7.0.9
- '@types/node': 16.18.3
+ '@types/node': 16.11.21
glob: 7.2.0
json-stable-stringify: 1.0.1
- ts-node: 10.4.0(@types/node@16.18.3)(typescript@4.2.4)
+ ts-node: 10.4.0(@types/node@16.11.21)(typescript@4.2.4)
typescript: 4.2.4
yargs: 17.3.1
transitivePeerDependencies:
@@ -5773,11 +5882,13 @@ packages:
/typescript@4.2.4:
resolution: {integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==}
engines: {node: '>=4.2.0'}
+ hasBin: true
dev: false
- /typescript@5.0.2:
- resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==}
- engines: {node: '>=12.20'}
+ /typescript@5.1.1-rc:
+ resolution: {integrity: sha512-+yHTPe5QCxw5cgN+B81z+k65xTHcwNCRwJN7OGVUe3srPULTZHF7J9QCgrptL7F8mrO7gmsert7XrMksAjutRw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
/ufo@1.0.1:
resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==}
@@ -5810,7 +5921,7 @@ packages:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
- /unleashed-typescript@1.3.0(typescript@5.0.2):
+ /unleashed-typescript@1.3.0(typescript@5.1.1-rc):
resolution: {integrity: sha512-ORMwdtBlEQTD4Dl+HkPVfwnIG5wKBqQn72INfCHGN8dgZ3AFKwv1m7a4tL1JEGLwCUzFVH3sq/nDxPjDmvlWwg==}
engines: {node: '>=12', pnpm: '>=6'}
hasBin: true
@@ -5818,7 +5929,7 @@ packages:
peerDependencies:
typescript: '*'
dependencies:
- typescript: 5.0.2
+ typescript: 5.1.1-rc
dev: false
/untildify@4.0.0:
@@ -5835,7 +5946,7 @@ packages:
buffer-indexof-polyfill: 1.0.2
duplexer2: 0.1.4
fstream: 1.0.12
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
listenercount: 1.0.1
readable-stream: 2.3.7
setimmediate: 1.0.5
@@ -6042,7 +6153,7 @@ packages:
lodash: 4.17.21
dev: false
- /vscode-framework@0.0.18(@types/vscode@1.72.0)(typescript@5.0.2):
+ /vscode-framework@0.0.18(@types/vscode@1.72.0)(typescript@5.1.1-rc):
resolution: {integrity: sha512-9Vp/KVboUFtEGc7vKNXQb5YK1B27JBeZ67U+Yi5aH9ZvtM9fERydbL+n2p+GS2oGf9x3pyT2bEfF3j/sXojHig==}
engines: {node: ^14.13.1 || >=16.0.0}
hasBin: true
@@ -6065,7 +6176,7 @@ packages:
exit-hook: 2.2.1
filesize: 8.0.7
fs-extra: 10.1.0
- generated-module: 0.0.2(typescript@5.0.2)
+ generated-module: 0.0.2(typescript@5.1.1-rc)
github-remote-info: 1.0.3
globby: 11.1.0
jsonfile: 6.1.0
@@ -6075,7 +6186,7 @@ packages:
pkg-dir: 5.0.0
pretty-format: 27.4.6
typed-jsonfile: 0.2.1
- typed-vscode: 0.0.5(@types/vscode@1.72.0)(typescript@5.0.2)
+ typed-vscode: 0.0.5(@types/vscode@1.72.0)(typescript@5.1.1-rc)
typescript-json-schema: 0.51.0
vscode-extra: 0.0.4(@types/vscode@1.72.0)
vscode-manifest: 0.0.8
diff --git a/src/emmet.ts b/src/emmet.ts
index 7fbf67d0..da6b8bc3 100644
--- a/src/emmet.ts
+++ b/src/emmet.ts
@@ -3,6 +3,7 @@ import { compact } from '@zardoy/utils'
import { getExtensionSetting, registerExtensionCommand } from 'vscode-framework'
import { EmmetResult } from '../typescript/src/ipcTypes'
import { sendCommand } from './sendCommand'
+import { Configuration } from './configurationType'
export const registerEmmet = async () => {
if (process.env.PLATFORM !== 'web') {
@@ -92,8 +93,12 @@ export const registerEmmet = async () => {
void vscode.window.showInformationMessage(`Added to ${addExcludeLangs.join(',')} emmet.excludeLanguages`)
}
- await vscode.workspace.getConfiguration(process.env.IDS_PREFIX).update('jsxEmmet', true, vscode.ConfigurationTarget.Global)
- await vscode.workspace.getConfiguration(process.env.IDS_PREFIX).update('jsxPseudoEmmet', false, vscode.ConfigurationTarget.Global)
+ await vscode.workspace
+ .getConfiguration(process.env.IDS_PREFIX)
+ .update('jsxEmmet.enable' satisfies keyof Configuration, true, vscode.ConfigurationTarget.Global)
+ await vscode.workspace
+ .getConfiguration(process.env.IDS_PREFIX)
+ .update('jsxPseudoEmmet.enable' satisfies keyof Configuration, false, vscode.ConfigurationTarget.Global)
})
// TODO: select wrap, matching, rename tag
diff --git a/src/specialCommands.ts b/src/specialCommands.ts
index df878de9..fba14794 100644
--- a/src/specialCommands.ts
+++ b/src/specialCommands.ts
@@ -243,7 +243,7 @@ export default () => {
registerExtensionCommand('insertNameOfCompletion', async (_, { insertMode } = {}) => {
const editor = vscode.window.activeTextEditor
if (!editor) return
- if (!getExtensionSetting('experiments.enableInsertNameOfSuggestionFix')) {
+ if (!getExtensionSetting('experiments.enableInsertNameOfSuggestionFix') && editor.document.languageId !== 'vue') {
const result = await sendCommand('getLastResolvedCompletion')
if (!result) return
const position = editor.selection.active
@@ -288,4 +288,10 @@ export default () => {
const { text } = response
await vscode.env.clipboard.writeText(text)
})
+
+ registerExtensionCommand('pasteCodeWithImports', async () => {
+ const clipboard = await vscode.env.clipboard.readText()
+ const lines = clipboard.split('\n')
+ const lastImportLineIndex = lines.findIndex(line => line !== 'import')
+ })
}
diff --git a/typescript/src/codeActions/decorateProxy.ts b/typescript/src/codeActions/decorateProxy.ts
index a6442105..49a354a5 100644
--- a/typescript/src/codeActions/decorateProxy.ts
+++ b/typescript/src/codeActions/decorateProxy.ts
@@ -6,8 +6,8 @@ import getCustomCodeActions, { REFACTORS_CATEGORY } from './getCodeActions'
import improveBuiltin from './improveBuiltin'
export default (proxy: ts.LanguageService, languageService: ts.LanguageService, languageServiceHost: ts.LanguageServiceHost, c: GetConfig) => {
- proxy.getApplicableRefactors = (fileName, positionOrRange, preferences) => {
- let prior = languageService.getApplicableRefactors(fileName, positionOrRange, preferences)
+ proxy.getApplicableRefactors = (fileName, positionOrRange, preferences, ...args) => {
+ let prior = languageService.getApplicableRefactors(fileName, positionOrRange, preferences, ...args)
previousGetCodeActionsResult.value = compact(
prior.flatMap(refactor => {
@@ -34,7 +34,7 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService,
return prior
}
- proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences) => {
+ proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args) => {
const category = refactorName
if (category === REFACTORS_CATEGORY) {
const program = languageService.getProgram()
@@ -46,7 +46,7 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService,
const handledResult = handleFunctionRefactorEdits(actionName, languageService, fileName, formatOptions, positionOrRange, refactorName, preferences)
if (handledResult) return handledResult
}
- const prior = languageService.getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences)
+ const prior = languageService.getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args)
if (!prior) return
return improveBuiltin(fileName, refactorName, actionName, languageService, c, prior) ?? prior
}
diff --git a/typescript/src/completions/filterJsxComponents.ts b/typescript/src/completions/filterJsxComponents.ts
index c9db6a86..ca60e944 100644
--- a/typescript/src/completions/filterJsxComponents.ts
+++ b/typescript/src/completions/filterJsxComponents.ts
@@ -1,6 +1,7 @@
import { GetConfig } from '../types'
+import { getFullTypeChecker } from '../utils'
-const reactTypesPath = 'node_modules/@types/react/index.d.ts'
+const reactTypesPath = 'node_modules/@types/react/'
const symbolCache = new Map()
@@ -53,24 +54,6 @@ export default (entries: ts.CompletionEntry[], node: ts.Node, position: number,
timings[`${name}Count`] ??= 0
timings[`${name}Count`]++
}
- const getIsJsxComponentSignature = (signature: ts.Signature) => {
- let returnType: ts.Type | undefined = signature.getReturnType()
- if (!returnType) return
- // todo setting to allow any!
- if (returnType.flags & ts.TypeFlags.Any) return false
- returnType = getPossiblyJsxType(returnType)
- if (!returnType) return false
- startMark()
- // todo(perf) this seems to be taking a lot of time (mui test 180ms)
- const typeString = typeChecker.typeToString(returnType)
- addMark('stringType')
- // todo-low resolve indentifier instead
- // or compare node name from decl (invest perf)
- if (['Element', 'ReactElement'].every(s => !typeString.startsWith(s))) return
- const declFile = returnType.getSymbol()?.declarations?.[0]?.getSourceFile().fileName
- if (!declFile?.endsWith(reactTypesPath)) return
- return true
- }
const getIsEntryReactComponent = (entry: ts.CompletionEntry) => {
// todo add more checks from ref https://github.com/microsoft/TypeScript/blob/e4816ed44cf9bcfe7cebb997b1f44cdb5564dac4/src/compiler/checker.ts#L30030
// todo support classes
@@ -112,7 +95,7 @@ export default (entries: ts.CompletionEntry[], node: ts.Node, position: number,
// startMark()
const signatures = typeChecker.getSignaturesOfType(entryType, ts.SignatureKind.Call)
// addMark('signatures')
- const result = signatures.length > 0 && signatures.every(signature => getIsJsxComponentSignature(signature))
+ const result = isJsxElement(typeChecker, signatures, entryType)
if (shouldBeCached) symbolCache.set(symbolSerialized, result)
return result
}
@@ -162,16 +145,30 @@ const isJsxOpeningElem = (position: number, node: ts.Node) => {
return false
}
-const getReactElementType = (program: ts.Program) => {
- const reactDeclSource = program.getSourceFiles().find(name => name.fileName.endsWith(reactTypesPath))
- const namespace = reactDeclSource && ts.forEachChild(reactDeclSource, s => ts.isModuleDeclaration(s) && s.name.text === 'React' && s)
- if (!namespace || !namespace.body) return
- return ts.forEachChild(namespace.body, node => {
- if (ts.isInterfaceDeclaration(node) && node.name.text === 'ReactElement') {
- return node
- }
- return undefined
- })
+const isJsxElement = (typeChecker: ts.TypeChecker, signatures: readonly ts.Signature[], type: ts.Type) => {
+ if (signatures.length > 0 && signatures.every(signature => getIsJsxComponentSignature(typeChecker, signature))) return true
+ // allow pattern: const Component = condition ? 'div' : 'a'
+ if (type.isUnion() && type.types.every(type => type.isStringLiteral())) return true
+ return false
+}
+
+const getIsJsxComponentSignature = (typeChecker: ts.TypeChecker, signature: ts.Signature) => {
+ let returnType: ts.Type | undefined = signature.getReturnType()
+ if (!returnType) return
+ // todo setting to allow any
+ if (returnType.flags & ts.TypeFlags.Any) return false
+ returnType = getPossiblyJsxType(returnType)
+ if (!returnType) return false
+ // startMark()
+ // todo(perf) this seems to be taking a lot of time (mui test 180ms)
+ const typeString = typeChecker.typeToString(returnType)
+ // addMark('stringType')
+ // todo-low resolve indentifier instead
+ // or compare node name from decl (invest perf)
+ if (['Element', 'ReactElement'].every(s => !typeString.startsWith(s))) return
+ const declFile = returnType.getSymbol()?.declarations?.[0]?.getSourceFile().fileName
+ if (!declFile?.includes(reactTypesPath)) return
+ return true
}
const getPossiblyJsxType = (type: ts.Type) => {
@@ -188,3 +185,37 @@ const getPossiblyJsxType = (type: ts.Type) => {
}
return type.flags & ts.TypeFlags.Object ? type : undefined
}
+
+const getGlobalJsxElementType = (program: ts.Program) => {
+ const checker = getFullTypeChecker(program.getTypeChecker())
+ const globalJsxNamespace = checker.resolveName('JSX', undefined, ts.SymbolFlags.Namespace, false)
+ if (!globalJsxNamespace) return
+ const exportsSymbols = checker.getExportsOfModule(globalJsxNamespace)
+ const symbolTable = tsFull.createSymbolTable(exportsSymbols)
+ const elementSymbol = getSymbol(checker, symbolTable, 'Element', ts.SymbolFlags.Type)
+ if (!elementSymbol) return
+ return checker.getDeclaredTypeOfSymbol(elementSymbol)
+}
+
+function getSymbol(
+ checker: import('typescript-full').TypeChecker,
+ symbols: import('typescript-full').SymbolTable,
+ name: string,
+ meaning: ts.SymbolFlags,
+): import('typescript-full').Symbol | undefined {
+ if (meaning) {
+ const symbol = checker.getMergedSymbol(symbols.get(name as ts.__String)!)
+ if (symbol) {
+ if (symbol.flags & meaning) {
+ return symbol
+ }
+ if (symbol.flags & ts.SymbolFlags.Alias) {
+ const target = checker.getAliasedSymbol(symbol)
+ if (checker.isUnknownSymbol(target) || target.flags & meaning) {
+ return symbol
+ }
+ }
+ }
+ }
+ return undefined
+}
diff --git a/typescript/src/completions/keywordsSpace.ts b/typescript/src/completions/keywordsSpace.ts
index 15ca48c6..b07f3d72 100644
--- a/typescript/src/completions/keywordsSpace.ts
+++ b/typescript/src/completions/keywordsSpace.ts
@@ -36,7 +36,7 @@ export default (entries: ts.CompletionEntry[], scriptSnapshot: ts.IScriptSnapsho
return entry
}
if (entry.name === 'default' && !includeDefaultSpace) return entry
- return { ...entry, insertText: `${entry.name} ` }
+ return { ...entry, insertText: `${entry.insertText ?? entry.name} ` }
})
}
diff --git a/typescript/src/volarConfig.ts b/typescript/src/volarConfig.ts
index 5070e3a5..1c60af61 100644
--- a/typescript/src/volarConfig.ts
+++ b/typescript/src/volarConfig.ts
@@ -1,4 +1,9 @@
/* eslint-disable @typescript-eslint/no-require-imports */
+
+import { compact } from '@zardoy/utils'
+import { get } from 'lodash'
+import type { Configuration } from './types'
+
// will be required from ./node_modules/typescript-essential-plugins/index.js
const originalPluginFactory = require('typescript-essential-plugins')
@@ -6,14 +11,32 @@ const plugin = ((context, { typescript: tsModule } = {}) => {
if (!context) throw new Error('Not recieve context')
const { typescript } = context
let configurationHost = context.env
- if (context['configurationHost']!) configurationHost = context['configurationHost']!
- const patchConfig = config => {
+ if (context['configurationHost']) configurationHost = context['configurationHost']
+ configurationHost = configurationHost['configurationHost'] ?? configurationHost
+ const mergeAndPatchConfig = (generalConfig, vueConfig) => {
+ const mergedConfig = {
+ ...generalConfig,
+ ...Object.fromEntries(
+ Object.entries(vueConfig).map(([key, value]) => {
+ const getType = obj => {
+ return Array.isArray(obj) ? 'array' : typeof obj === 'object' && obj !== null ? 'object' : undefined
+ }
+ const type = getType(value)
+ if (!type || vueConfig['resetSettings']?.includes(key)) return [key, value]
+ const generalConfigValue = get(generalConfig, key)
+ const generalValueType = getType(generalConfigValue)
+ if (type !== generalValueType) return [key, value]
+ return [key, generalValueType === 'object' ? { ...generalConfigValue, ...value } : [...generalConfigValue, ...value]]
+ }),
+ ),
+ }
+
return {
- ...config,
+ ...mergedConfig,
_additionalPluginOptions: {
pluginSpecificSyntaxServerConfigCheck: false,
},
- enablePlugin: config.enableVueSupport,
+ enablePlugin: generalConfig.enableVueSupport,
}
}
@@ -22,12 +45,24 @@ const plugin = ((context, { typescript: tsModule } = {}) => {
const plugin = originalPluginFactory({
typescript: ts,
})
- // todo support vue-specific settings
const originalLsMethods = { ...typescript.languageService }
- void configurationHost.getConfiguration!('tsEssentialPlugins').then(_configuration => {
+ const getResolvedUserConfig = async () => {
+ const regularConfig = await configurationHost.getConfiguration!('tsEssentialPlugins')
+ const _vueSpecificConfig = await configurationHost.getConfiguration!('[vue]')
+ const vueSpecificConfig = Object.fromEntries(
+ compact(
+ Object.entries(_vueSpecificConfig).map(([key, value]) =>
+ key.startsWith('tsEssentialPlugins') ? [key.slice('tsEssentialPlugins.'.length), value] : undefined,
+ ),
+ ),
+ )
+ const config: Configuration = mergeAndPatchConfig(regularConfig, vueSpecificConfig)
+ return config
+ }
+
+ void getResolvedUserConfig().then(async config => {
// if (typescript.languageService[thisPluginMarker]) return
- const config = patchConfig(_configuration)
if (!config.enablePlugin) return
const proxy = plugin.create({
...typescript,
@@ -42,8 +77,7 @@ const plugin = ((context, { typescript: tsModule } = {}) => {
})
configurationHost.onDidChangeConfiguration!(() => {
- void configurationHost.getConfiguration!('tsEssentialPlugins').then(config => {
- config = patchConfig(config)
+ void getResolvedUserConfig().then(config => {
plugin.onConfigurationChanged?.(config)
// temporary workaround
if (!config.enablePlugin) {
diff --git a/typescript/test/completions.spec.ts b/typescript/test/completions.spec.ts
index 5dc48a4a..8eadd62b 100644
--- a/typescript/test/completions.spec.ts
+++ b/typescript/test/completions.spec.ts
@@ -525,7 +525,8 @@ test('Omit<..., ""> suggestions', () => {
})
})
-test('Additional types suggestions', () => {
+// Already works out of the box, but the fix can be better
+test.skip('Additional types suggestions', () => {
const tester = fourslashLikeTester(/* ts */ `
type A = T;
type A = T;
diff --git a/vscode-framework.config.js b/vscode-framework.config.js
index 8a0c5720..2b942419 100644
--- a/vscode-framework.config.js
+++ b/vscode-framework.config.js
@@ -65,4 +65,14 @@ module.exports = defineConfig({
web: true,
desktop: true,
},
+ extendPropsGenerators: [
+ config => {
+ //@ts-ignore
+ config.generatedManifest.contributes.commands = config.generatedManifest.contributes.commands.map(({ ...args }) => ({
+ ...args,
+ category: args.category === 'TypeScript Essential Plugins' ? 'TS Essentials' : args.category,
+ }))
+ return config.generatedManifest
+ },
+ ],
})