From 49aa0dc73bbfa300068e113f01bd76ce8707acf0 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Thu, 4 May 2023 22:22:36 +0300 Subject: [PATCH 01/12] fix: plugin was breaking support for *Move to File* refactoring --- typescript/src/codeActions/decorateProxy.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/typescript/src/codeActions/decorateProxy.ts b/typescript/src/codeActions/decorateProxy.ts index a6442105..9117b355 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() @@ -43,10 +43,19 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService, return edit } if (refactorName === 'Extract Symbol' && actionName.startsWith('function_scope')) { - const handledResult = handleFunctionRefactorEdits(actionName, languageService, fileName, formatOptions, positionOrRange, refactorName, preferences) + const handledResult = handleFunctionRefactorEdits( + actionName, + languageService, + fileName, + formatOptions, + positionOrRange, + refactorName, + preferences, + ...args, + ) 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 } From 5e92fd187eea9931c97d3e14e3a7a0cf5264317d Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Mon, 22 May 2023 00:10:40 +0300 Subject: [PATCH 02/12] test funding --- .github/funding.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/funding.yml 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] From 594672e9b1cd92b2379be9ad4d03d7431e91c69d Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Mon, 22 May 2023 00:12:24 +0300 Subject: [PATCH 03/12] fix: keyword star bug when intellisense extension is installed --- typescript/src/completions/keywordsSpace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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} ` } }) } From ad4288e4d41fc468338c3fd1938c0dc1845f698c Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Wed, 24 May 2023 19:08:30 +0300 Subject: [PATCH 04/12] add website links --- README.MD | 2 ++ package.json | 1 + 2 files changed, 3 insertions(+) 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..96e34538 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ ], "publisher": "zardoy", "private": true, + "homepage": "https://ts-plugin.zardoy.com/", "keywords": [ "ts", "javascript", From a0a09bc700824c7dc563f0c8cd44861848d1098e Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 17:32:22 +0300 Subject: [PATCH 05/12] fix: fix filtering jsx elements in completions for react ts 5.0 --- .../src/completions/filterJsxComponents.ts | 91 +++++++++++++------ 1 file changed, 61 insertions(+), 30 deletions(-) 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 +} From 801befdd8e724b223035747812214b4b7d543bef Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 17:32:43 +0300 Subject: [PATCH 06/12] fix: always use workaround for insert completion name in vue files --- src/specialCommands.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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') + }) } From 40fe6392647eee83cdcd1d6817acc9baa193724c Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 18:19:04 +0300 Subject: [PATCH 07/12] feat: support override plugin's settings for vue files (e.g. replace some suggestions only in vue files!) --- typescript/src/volarConfig.ts | 52 +++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/typescript/src/volarConfig.ts b/typescript/src/volarConfig.ts index 5070e3a5..3fb9e4ef 100644 --- a/typescript/src/volarConfig.ts +++ b/typescript/src/volarConfig.ts @@ -1,4 +1,9 @@ /* eslint-disable @typescript-eslint/no-require-imports */ + +import type { Configuration } from './types' +import { compact } from '@zardoy/utils' +import { get } from 'lodash' + // 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) { From bdd30ce6742e4a181b807f3d961992a815c457e4 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 18:30:47 +0300 Subject: [PATCH 08/12] fix lint --- typescript/src/volarConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript/src/volarConfig.ts b/typescript/src/volarConfig.ts index 3fb9e4ef..1c60af61 100644 --- a/typescript/src/volarConfig.ts +++ b/typescript/src/volarConfig.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-require-imports */ -import type { Configuration } from './types' 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') From e5ecb9fd53dc740ed3d72bea44c8193643648dad Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 20:17:55 +0300 Subject: [PATCH 09/12] force correct default category of all commands --- package.json | 23 ++- pnpm-lock.yaml | 319 +++++++++++++++++++++++++------------ vscode-framework.config.js | 10 ++ 3 files changed, 236 insertions(+), 116 deletions(-) diff --git a/package.json b/package.json index 96e34538..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": [ @@ -129,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", @@ -147,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/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 + }, + ], }) From 545bd13d68404f8168eaaaceeb5eb5e9efc4aa1c Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 20:18:10 +0300 Subject: [PATCH 10/12] fix: fix enableStrictEmmetInJsx command --- src/emmet.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 From 4e90036f3cb5846d02412a3459030261b897e9f3 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 20:34:37 +0300 Subject: [PATCH 11/12] fix build --- typescript/src/codeActions/decorateProxy.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/typescript/src/codeActions/decorateProxy.ts b/typescript/src/codeActions/decorateProxy.ts index 9117b355..49a354a5 100644 --- a/typescript/src/codeActions/decorateProxy.ts +++ b/typescript/src/codeActions/decorateProxy.ts @@ -43,16 +43,7 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService, return edit } if (refactorName === 'Extract Symbol' && actionName.startsWith('function_scope')) { - const handledResult = handleFunctionRefactorEdits( - actionName, - languageService, - fileName, - formatOptions, - positionOrRange, - refactorName, - preferences, - ...args, - ) + const handledResult = handleFunctionRefactorEdits(actionName, languageService, fileName, formatOptions, positionOrRange, refactorName, preferences) if (handledResult) return handledResult } const prior = languageService.getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args) From e292e0f725eb6e266001754e934b753786a413eb Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 26 May 2023 21:16:03 +0300 Subject: [PATCH 12/12] skip test --- typescript/test/completions.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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;