diff --git a/LICENSE b/LICENSE index abc6e94..2faebe6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 SublimeLSP +Copyright (c) 2024 SublimeLSP Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/LSP-volar.sublime-commands b/LSP-volar.sublime-commands deleted file mode 100644 index eb989bf..0000000 --- a/LSP-volar.sublime-commands +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "caption": "Preferences: LSP-volar Settings", - "command": "edit_settings", - "args": { - "base_file": "${packages}/LSP-volar/LSP-volar.sublime-settings", - "default": "// Settings in here override those in \"LSP-volar/LSP-volar.sublime-settings\"\n\n{\n\t$0\n}\n" - } - }, - { - "caption": "LSP-volar (Debug): Show Virtual Files", - "command": "lsp_volar_show_virtual_files", - }, - { - "caption": "LSP-volar (Debug): Write Virtual Files", - "command": "lsp_volar_write_virtual_files", - }, -] diff --git a/LSP-vue.sublime-commands b/LSP-vue.sublime-commands new file mode 100644 index 0000000..4f25f87 --- /dev/null +++ b/LSP-vue.sublime-commands @@ -0,0 +1,10 @@ +[ + { + "caption": "Preferences: LSP-vue Settings", + "command": "edit_settings", + "args": { + "base_file": "${packages}/LSP-vue/LSP-vue.sublime-settings", + "default": "// Settings in here override those in \"LSP-vue/LSP-vue.sublime-settings\"\n\n{\n\t$0\n}\n" + } + }, +] diff --git a/LSP-volar.sublime-settings b/LSP-vue.sublime-settings similarity index 89% rename from LSP-volar.sublime-settings rename to LSP-vue.sublime-settings index 682909d..dfbd1ea 100644 --- a/LSP-volar.sublime-settings +++ b/LSP-vue.sublime-settings @@ -1,26 +1,10 @@ { "initializationOptions": { - // List any additional file extensions that should be processed as Vue files. - "additionalExtensions": [], - // Path to volar.config.js. - "configFilePath": "./volar.config.js", - // Diagnostic update model. (1 - Push, 2 - Pull) - "diagnosticModel": 2, - // Enable this option if you want to get complete CompletionList in language client. - // (Disable for better performance) - "fullCompletionList": false, - // Maximum file size for Vue Server to load. (default: 20MB) - "maxFileSize": 20971520, - // Defines which auto-complete popup trigger characters that Volar defines are allowed. - // By default all Volar trigger characters are disabled as ST does a better job. - "ignoreTriggerCharacters": [], - "json.customBlockSchemaUrls": {}, - // Reverse priority for tsconfig pickup. - "reverseConfigFilePriority": false, - // Specify the `typescript.tsdk` to tsserverlibrary.js. - // If not specified LSP-volar will use the typescript from the workspace if it exist, - // else the typescript bundled with LSP-volar will be used. - // "typescript.tsdk": "/path/to/tsserverlibrary.js", + // DON'T use this option until known issues are ironed out - https://github.com/sublimelsp/LSP-vue/issues/130. + // When `true`, the Vue Language Server handles the CSS/HTML sections and partially the SCRIPT section but for + // the JS/TS-specific functionality it relies on the `LSP-typescript` server with `@vue/typescript-plugin` TS + // plugin enabled. When set to `false`, the Vue Language Server handles everything itself. + "vue.hybridMode": false, }, "settings": { // Preferred tag name case. @@ -37,30 +21,22 @@ // - "kebab": :kebab-case="..." // - "pascal": :camelCase="..." "vue.complete.casing.props": "autoKebab", - // Normalize import name for auto import. ("myCompVue" -> "MyComp") - "vue.features.complete.normalizeComponentImportName": true, + // Auto add `const props = ` before `defineProps` when selecting the completion item `props`, `emit` and `slots`. + "vue.complete.defineAssignment": true, + // Show inlay hints for destructured props. + "vue.inlayHints.destructuredProps": false, // Show inlay hints for missing required props. "vue.inlayHints.missingProps": false, // Show inlay hints for event argument in inline handlers. "vue.inlayHints.inlineHandlerLeading": false, // Show inlay hints for component options wrapper for type support. - "vue.inlayHints.optionsWrapper": true, + "vue.inlayHints.optionsWrapper": false, + // Show inlay hints for v-bind shorthand. + "vue.inlayHints.vBindShorthand": false, // Whether to have initial indent. - "volar.format.initialIndent": { - "css": false, - "html": true, - "jade": false, - "javascript": false, - "javascriptreact": false, - "json": false, - "json5": false, - "jsonc": false, - "less": false, - "sass": false, - "scss": false, - "typescript": false, - "typescriptreact": false, - }, + "vue.format.template.initialIndent": true, + "vue.format.style.initialIndent": false, + "vue.format.script.initialIndent": false, // javascript inlay hint "javascript.inlayHints.enumMemberValues.enabled": false, "javascript.inlayHints.functionLikeReturnTypes.enabled": false, diff --git a/Main.sublime-menu b/Main.sublime-menu index 1b49abf..c8ecd07 100644 --- a/Main.sublime-menu +++ b/Main.sublime-menu @@ -16,11 +16,11 @@ "id": "lsp-servers", "children": [ { - "caption": "LSP-volar", + "caption": "LSP-vue", "command": "edit_settings", "args": { - "base_file": "${packages}/LSP-volar/LSP-volar.sublime-settings", - "default": "// Settings in here override those in \"LSP-volar/LSP-volar.sublime-settings\"\n\n{\n\t$0\n}\n" + "base_file": "${packages}/LSP-vue/LSP-vue.sublime-settings", + "default": "// Settings in here override those in \"LSP-vue/LSP-vue.sublime-settings\"\n\n{\n\t$0\n}\n" } } ] diff --git a/README.md b/README.md index 1b4b614..94cdccb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# LSP-volar +# LSP-vue -This is a helper package that automatically installs and updates the [Volar Language Server](https://github.com/johnsoncodehk/volar) for you. +This is a helper package that automatically installs and updates the [Vue Language Server (formerly Volar)](https://github.com/vuejs/language-tools) for you. ## Table of Contents - [Installation](#installation) @@ -11,77 +11,12 @@ This is a helper package that automatically installs and updates the [Volar Lang ### Installation -* Install [LSP](https://packagecontrol.io/packages/LSP), [Vue Syntax Highlight](https://packagecontrol.io/packages/Vue%20Syntax%20Highlight) and [LSP-volar](https://packagecontrol.io/packages/LSP-volar) from Package Control. +* Install [LSP](https://packagecontrol.io/packages/LSP), [Vue Syntax Highlight](https://packagecontrol.io/packages/Vue%20Syntax%20Highlight) and [LSP-vue](https://packagecontrol.io/packages/LSP-vue) from Package Control. * Restart Sublime. ### Configuration -Open the configuration file using Command Palette with `Preferences: LSP-volar Settings` command or opening it from the Sublime menu (`Preferences > Package Settings > LSP > Servers > LSP-volar`). - -### Enable for non-Vue files - -Allow LSP-volar to start in `*.ts | *.tsx | *.js | *.jsx` files. - -> **Warning** -> Don't use this unless you really have a specific reason. It provides worse experience than `LSP-typescript` in `.js/.ts` files due to not receiving diagnostic updates on modifying related files. Also it's missing some features of `LSP-typescript`. -> See related issue: https://github.com/vuejs/language-tools/issues/3229 - -#### Per project: - -Create a sublime project file with the following contents: - -```js -{ - "folders": - [ - { - "path": "." - } - ], - "settings": { - "LSP": { - "LSP-volar": { - "selector": "text.html.vue | source.ts | source.tsx | source.js | source.jsx" - }, - "LSP-typescript": { - "enabled": false - } - } - } -} -``` - -#### Globally: - -From the Command Palette select `Preferences: LSP-volar Settings` and paste the following: - -```js -// Settings in here override those in "LSP-volar/LSP-volar.sublime-settings" - -{ - "selector": "text.html.vue | source.ts | source.tsx | source.js | source.jsx" -} -``` - -> NOTE: When enabling LSP-volar for non-Vue files, it is advisable to disable the `LSP-typescript` package to avoid showing duplicate results. - -### Commands - -Package provides a few commands in the Command Palette that can be useful for debugging Volar issues. - -#### `LSP-volar (Debug): Show Virtual Files` - -Shows a tree view of all internal virtual files associated with the currently opened `vue` file and allows for seeing their contents. - -#### `LSP-volar (Debug): Write Virtual Files` - -Writes all internal virtual files to disk. The files will be created alongside the original `vue` files that Volar has loaded internally. This can also include `vue` files within `node_modules`. Those files can be useful in figuring out why there are type issues in `vue` files that maybe are due to a Volar bug. - -> **Note** -> Type-checking those genearated `.ts` files using `LSP-typescript` is not equivalent to what `LSP-volar` does as Volar does some internal Vue type augmentations that `LSP-typescript` does not do. To get a more relevant type checking when inspecting those files it's recommended to disable `LSP-typescript` and enable `LSP-volar` for TS files instead. Check [Enable for non-Vue files](#enable-for-non-vue-files) section. - -> **Note** -> If there are many `vue` files in the project then a lot of files can be created by this command and those could be a bit tiresome to clean up later. In a git-tracked project you might want to use `git clean -fx` to remove all untracked files. Just make sure you don't have any useful untracked files. +Open the configuration file using Command Palette with `Preferences: LSP-vue Settings` command or opening it from the Sublime menu (`Preferences > Package Settings > LSP > Servers > LSP-vue`). ### Inlay hints @@ -97,7 +32,7 @@ To enable inlay hints: } ``` -2. Modify the following settings through `Preferences: LSP-volar Settings`: +2. Modify the following settings through `Preferences: LSP-vue Settings`: ```js { @@ -123,8 +58,3 @@ To enable inlay hints: ``` > NOTE: Inlay hints require TypeScript 4.4+. - -### Vue 2 support - -Please see [Volar's Installation](https://github.com/johnsoncodehk/volar/blob/master/docs/installation.md) for setup instructions. - diff --git a/messages.json b/messages.json index f8df4c1..4fc0d01 100644 --- a/messages.json +++ b/messages.json @@ -1,4 +1,4 @@ { - "v1.0.8": "messages/1.0.8.txt", + "3.0.0": "messages/3.0.0.txt", "install": "README.md" } diff --git a/messages/1.0.8.txt b/messages/1.0.8.txt deleted file mode 100644 index 9a0d05c..0000000 --- a/messages/1.0.8.txt +++ /dev/null @@ -1,45 +0,0 @@ -==> LSP-volar@1.0.8 - -# Enable for non-Vue files - -Allow LSP-volar to start in `*.ts | *.tsx | *.js | *.jsx` files. - -## Per project: - -Create a sublime project file with the following contents: - -``` -{ - "folders": - [ - { - "path": "." - } - ], - "settings": { - "LSP": { - "LSP-volar": { - "selector": "text.html.vue | source.ts | source.tsx | source.js | source.jsx" - }, - "LSP-typescript": { - "enabled": false - } - } - } -} -``` - -## Globally: - -From the command palette select `Preferences: LSP-volar Settings` and paste the following: - -``` -// Settings in here override those in "LSP-volar/LSP-volar.sublime-settings" - -{ - "selector": "text.html.vue | source.ts | source.tsx | source.js | source.jsx" -} -``` - -> NOTE: When enabling LSP-volar for non-Vue files, it is advisable to disable the LSP-typescript package to avoid showing duplicate results. - diff --git a/messages/2.2.0.txt b/messages/2.2.0.txt deleted file mode 100644 index fc2ba42..0000000 --- a/messages/2.2.0.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Breaking change - - - External imports are longer suggested in completions. - ("javascript.suggest.autoImports" and "typescript.suggest.autoImports" settings are disabled by default) - -That's due to Sublime Text not handling a large number of completions (8MB of payload some cases) too well and causing UI freezes. - -If you rely on that feature then you can override those settings manually from "Preferences: LSP-volar Settings" in Command Palette. diff --git a/messages/3.0.0.txt b/messages/3.0.0.txt new file mode 100644 index 0000000..b99de40 --- /dev/null +++ b/messages/3.0.0.txt @@ -0,0 +1,5 @@ +# Breaking change + +This server is now based on the Vue Language Server 2.x rather than the deprecated and no longer updated Vetur. + +The legacy, deprecated Vetur is now available through the LSP-vetur package for those who really need it. diff --git a/plugin.py b/plugin.py index e1bc2c1..4f59f14 100644 --- a/plugin.py +++ b/plugin.py @@ -1,3 +1,4 @@ +from __future__ import annotations from LSP.plugin import ClientConfig from LSP.plugin import WorkspaceFolder from LSP.plugin.core.typing import Any, Callable, List, Optional, Mapping @@ -7,34 +8,36 @@ import os import sublime +PACKAGE_NAME = __package__ +SERVER_DIRECTORY = 'server' +SERVER_NODE_MODULES = os.path.join(SERVER_DIRECTORY, 'node_modules') +SERVER_BINARY_PATH = os.path.join(SERVER_NODE_MODULES, '@vue', 'language-server', 'bin', 'vue-language-server.js') def plugin_loaded(): - LspVolarPlugin.setup() + LspVuePlugin.setup() def plugin_unloaded(): - LspVolarPlugin.cleanup() + LspVuePlugin.cleanup() -class LspVolarPlugin(NpmClientHandler): - package_name = __package__ - server_directory = 'server' - server_binary_path = os.path.join(server_directory, 'node_modules', '@vue', 'language-server', 'bin', 'vue-language-server.js') +class LspVuePlugin(NpmClientHandler): + package_name = PACKAGE_NAME + server_directory = SERVER_DIRECTORY + server_binary_path = SERVER_BINARY_PATH @classmethod def required_node_version(cls) -> str: - return '>=16' + return '>=18' @classmethod def is_allowed_to_start( cls, window: sublime.Window, - initiating_view: Optional[sublime.View] = None, - workspace_folders: Optional[List[WorkspaceFolder]] = None, - configuration: Optional[ClientConfig] = None + initiating_view: sublime.View, + workspace_folders: List[WorkspaceFolder], + configuration: ClientConfig ) -> Optional[str]: - if not workspace_folders or not configuration: - return 'Can not run without a workspace folder' if configuration.init_options.get('typescript.tsdk'): return # don't find the `typescript.tsdk` if it was set explicitly in LSP-volar.sublime-settings typescript_lib_path = cls.find_typescript_lib_path(workspace_folders[0].path) diff --git a/server/package-lock.json b/server/package-lock.json index 34460fe..a7aee81 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -6,14 +6,33 @@ "": { "name": "sublime-volar", "dependencies": { - "@vue/language-server": "^1.8.27", - "typescript": "^5.3.3" + "@vue/language-server": "^2.1.10", + "typescript": "^5.6.3" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dependencies": { + "@babel/types": "^7.26.0" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -21,6 +40,18 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@emmetio/abbreviation": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", @@ -37,33 +68,59 @@ "@emmetio/scanner": "^1.0.4" } }, + "node_modules/@emmetio/css-parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", + "dependencies": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "node_modules/@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "dependencies": { + "@emmetio/scanner": "^1.0.0" + } + }, "node_modules/@emmetio/scanner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==" }, + "node_modules/@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==" + }, + "node_modules/@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==" + }, "node_modules/@johnsoncodehk/pug-beautify": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz", "integrity": "sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==" }, "node_modules/@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.8.tgz", + "integrity": "sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==", "dependencies": { - "@volar/source-map": "1.11.1" + "@volar/source-map": "2.4.8" } }, "node_modules/@volar/language-server": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-1.11.1.tgz", - "integrity": "sha512-XYG4HcML2qimQV9UouQ7c1GuuqQw1NXoNDxAOAcfyYlz43P+HgzGQx4QEou+QMGHJeYIN86foDvkTN3fcopw9A==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.8.tgz", + "integrity": "sha512-3Jd9Y+0Zhwi/zfdRxqoNrm7AxP6lgTsw4Ni9r6eCyWYGVsTnpVwGmlcbiZyDja6anoKZxnaeDatX1jkaHHWaRQ==", "dependencies": { - "@volar/language-core": "1.11.1", - "@volar/language-service": "1.11.1", - "@volar/typescript": "1.11.1", - "@vscode/l10n": "^0.0.16", + "@volar/language-core": "2.4.8", + "@volar/language-service": "2.4.8", + "@volar/typescript": "2.4.8", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -73,38 +130,46 @@ } }, "node_modules/@volar/language-service": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-1.11.1.tgz", - "integrity": "sha512-dKo8z1UzQRPHnlXxwfONGrasS1wEWXMoLQiohZ8KgWqZALbekZCwdGImLZD4DeFGNjk3HTTdfeCzo3KjwohjEQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.8.tgz", + "integrity": "sha512-9y8X4cdUxXmy4s5HoB8jmOpDIZG7XVFu4iEFvouhZlJX2leCq0pbq5h7dhA+O8My0fne3vtE6cJ4t9nc+8UBZw==", "dependencies": { - "@volar/language-core": "1.11.1", - "@volar/source-map": "1.11.1", + "@volar/language-core": "2.4.8", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.8.tgz", + "integrity": "sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==" + }, + "node_modules/@volar/test-utils": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/test-utils/-/test-utils-2.4.8.tgz", + "integrity": "sha512-Nx9fM2i/UUlDE4GSOwFLDncEEPgTkQfiDtZlKJYF40ms7V+LCLq+xIamSFlQw1pcxJeEkd0GyWrleZdIm3SAdg==", "dependencies": { - "muggle-string": "^0.3.1" + "@volar/language-core": "2.4.8", + "@volar/language-server": "2.4.8", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" } }, "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz", + "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==", "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.8", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, "node_modules/@vscode/emmet-helper": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.2.tgz", - "integrity": "sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", + "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", "dependencies": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", @@ -119,44 +184,53 @@ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==" }, "node_modules/@vscode/l10n": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", - "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==" }, "node_modules/@vue/compiler-core": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", - "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "dependencies": { - "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.13", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", - "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "dependencies": { - "@vue/compiler-core": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" } }, "node_modules/@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz", + "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "@volar/language-core": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.2.0", "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" @@ -168,51 +242,64 @@ } }, "node_modules/@vue/language-server": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-1.8.27.tgz", - "integrity": "sha512-WL+x6SPBDfQhmX0lpZeW3rNmmIC1Q7PsNAXBICF5jw70G4TctFTx23R6GJCbL/HhqTD9296dZGcQfY6CRQr15A==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-2.1.10.tgz", + "integrity": "sha512-Cjxi6nmMVDxOpWWfq1jCe9UqHg/WrTxwZGAXtYXByOhueiRi1kOlHR77vkRQRi40jpZIPWEnjgD/jMMhfLe0ag==", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/language-server": "~1.11.1", - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "@vue/language-service": "1.8.27", + "@volar/language-core": "~2.4.8", + "@volar/language-server": "~2.4.8", + "@volar/test-utils": "~2.4.8", + "@vue/language-core": "2.1.10", + "@vue/language-service": "2.1.10", + "@vue/typescript-plugin": "2.1.10", "vscode-languageserver-protocol": "^3.17.5", - "vue-component-meta": "1.8.27" + "vscode-uri": "^3.0.8" }, "bin": { "vue-language-server": "bin/vue-language-server.js" } }, "node_modules/@vue/language-service": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-1.8.27.tgz", - "integrity": "sha512-kWSng43ieDRbEUYiz83k2TIZrexbnwL1bRTR67KVqRqbqF2oMkJ3GhzSb1tKb1XwWTkOpihzJ1T8NnruihPHyw==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-2.1.10.tgz", + "integrity": "sha512-voNteQNU+mHUmyUEdHUpWZW5/kfLQxh1zHs98c5hw6XK6pNxJTghG/k4maka6y5WmfmMCKAsddBpD9kZ7lyAlg==", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/language-service": "~1.11.1", - "@volar/typescript": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/language-core": "1.8.27", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "@volar/language-core": "~2.4.8", + "@volar/language-service": "~2.4.8", + "@volar/typescript": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", + "@vue/language-core": "2.1.10", + "@vue/shared": "^3.5.0", + "@vue/typescript-plugin": "2.1.10", + "alien-signals": "^0.2.0", "path-browserify": "^1.0.1", - "volar-service-css": "0.0.17", - "volar-service-emmet": "0.0.17", - "volar-service-html": "0.0.17", - "volar-service-json": "0.0.17", - "volar-service-pug": "0.0.17", - "volar-service-pug-beautify": "0.0.17", - "volar-service-typescript": "0.0.17", - "volar-service-typescript-twoslash-queries": "0.0.17", - "vscode-html-languageservice": "^5.1.0", - "vscode-languageserver-textdocument": "^1.0.11" + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-json": "0.0.62", + "volar-service-pug": "0.0.62", + "volar-service-pug-beautify": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "vscode-html-languageservice": "^5.2.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" } }, "node_modules/@vue/shared": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", - "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==" + }, + "node_modules/@vue/typescript-plugin": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-2.1.10.tgz", + "integrity": "sha512-NrS3BB3l5vuZHU4Vp8l9TbT5pC7VjBfwZKqc24dAXF3Z+dJyGs4mcC3zo59gUggLMQSah8mdXj8xqEfMkrps8w==", + "dependencies": { + "@volar/typescript": "~2.4.8", + "@vue/language-core": "2.1.10", + "@vue/shared": "^3.5.0" + } }, "node_modules/acorn": { "version": "7.4.1", @@ -225,6 +312,11 @@ "node": ">=0.4.0" } }, + "node_modules/alien-signals": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.0.tgz", + "integrity": "sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -239,13 +331,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -259,38 +356,66 @@ "is-regex": "^1.0.3" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" - }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/emmet": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.6.tgz", - "integrity": "sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", "dependencies": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -305,15 +430,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -330,20 +459,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -363,11 +492,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -377,9 +506,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -424,21 +553,10 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -450,9 +568,9 @@ } }, "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" }, "node_modules/object-assign": { "version": "4.1.1", @@ -468,9 +586,9 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, "node_modules/pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==" }, "node_modules/pug-lexer": { "version": "5.0.1", @@ -497,12 +615,9 @@ "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -511,23 +626,25 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -538,9 +655,9 @@ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==" }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -550,23 +667,24 @@ } }, "node_modules/typescript-auto-import-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.1.tgz", - "integrity": "sha512-ujC5E2gT3Sf3Dzfg5QYgb8NkZNxFQI12W6rk5U/TbkDFXyvIb9YENic+hsNoVDmKEmlRTUjRRD8RCjLMIx1rxg==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", "dependencies": { "semver": "^7.3.8" } }, "node_modules/volar-service-css": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.17.tgz", - "integrity": "sha512-bEDJykygMzn2+a9ud6KwZZLli9eqarxApAXZuf2CqJJh6Trw1elmbBCo9SlPfqMrIhpFnwV0Sa+Xoc9x5WPeGw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", "dependencies": { - "vscode-css-languageservice": "^6.2.10", + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -575,15 +693,17 @@ } }, "node_modules/volar-service-emmet": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.17.tgz", - "integrity": "sha512-C6hVnuQL52MqaydkrblYUbzIo5ZmIGo1hR8wmpcCjs5uNcjqn8aPqZRfznhLiUSaPHpFC+zQxJwFcZI9/u2iKQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", "dependencies": { - "@vscode/emmet-helper": "^2.9.2", - "volar-service-html": "0.0.17" + "@emmetio/css-parser": "^0.4.0", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -592,15 +712,16 @@ } }, "node_modules/volar-service-html": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.17.tgz", - "integrity": "sha512-OGkP+ZTo13j/+enafGe+esXvda/W4eU78YNLbbHxtV3rnX4odVrewenLJmXiECg6wdQz/PG8rLijZqQnDUYkfw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", "dependencies": { - "vscode-html-languageservice": "^5.1.0", + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -609,15 +730,15 @@ } }, "node_modules/volar-service-json": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.17.tgz", - "integrity": "sha512-28pXc5l5xSDtTDZ73zg0Jklr1KOsqL60wa8SXTJptK7e+PX8PF/cxQ/2FBHQOybdJsk+fn8jx8wF/ky8cuVHag==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.62.tgz", + "integrity": "sha512-Ot+jP+/LzKcaGF7nzrn+gwpzAleb4ej5buO05M8KxfwfODte7o1blARKRoJ3Nv7ls0DBM38Dd5vjzvA9c/9Jtg==", "dependencies": { - "vscode-json-languageservice": "^5.3.7", + "vscode-json-languageservice": "^5.4.0", "vscode-uri": "^3.0.8" }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -626,29 +747,28 @@ } }, "node_modules/volar-service-pug": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.17.tgz", - "integrity": "sha512-p6oDgH+ufWyS6r6Jv5h76cWGtjLOG/vhd5NH4Sk0pMCdh8zANHJsKsxsrIOiYsK6J9uNU1H6qRRHGg95xj34eQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.62.tgz", + "integrity": "sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==", "dependencies": { - "@volar/language-service": "~1.11.0", - "@volar/source-map": "~1.11.0", - "muggle-string": "^0.3.1", + "@volar/language-service": "~2.4.0", + "muggle-string": "^0.4.1", "pug-lexer": "^5.0.1", "pug-parser": "^6.0.0", - "volar-service-html": "0.0.17", - "vscode-html-languageservice": "^5.1.0", + "volar-service-html": "0.0.62", + "vscode-html-languageservice": "^5.3.0", "vscode-languageserver-textdocument": "^1.0.11" } }, "node_modules/volar-service-pug-beautify": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.17.tgz", - "integrity": "sha512-r+18HvciIOFbwi9dNTok1r1oboFyPaRPW1F5K7Yw1Ypynt2PI6ocGjBJ0V+Z5oONTXq1wHA4vzlmmvz5vzVh9g==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.62.tgz", + "integrity": "sha512-dAFNuNEwTnnVthYoNJhoStwhf/PojzglwCrdhOb2nBegTG3xXMWRFmQzb0JfIlt2wq2wfUq5j+JJswgSD3KluQ==", "dependencies": { "@johnsoncodehk/pug-beautify": "^0.2.2" }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -657,20 +777,19 @@ } }, "node_modules/volar-service-typescript": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.17.tgz", - "integrity": "sha512-Krs8pOIo2yoBVoJ91hKT1czhWt9ek7EbuK3MxxgvDYdd4HYHOtHi1eOlb7bFnZMNgFcwsL48yQI9vbPm160s9A==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", "dependencies": { "path-browserify": "^1.0.1", - "semver": "^7.5.4", - "typescript-auto-import-cache": "^0.3.0", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.3", "vscode-languageserver-textdocument": "^1.0.11", "vscode-nls": "^5.2.0", "vscode-uri": "^3.0.8" }, "peerDependencies": { - "@volar/language-service": "~1.11.0", - "@volar/typescript": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -679,11 +798,14 @@ } }, "node_modules/volar-service-typescript-twoslash-queries": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.17.tgz", - "integrity": "sha512-6FHXK5AWeFzCL6uGmEcbkZmQsaQ0m9IjbeLdgOIQ4KGvauqT2aA1BhdfDJu6vRAFIfXe7xjEJ85keIlHl72tSA==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", + "dependencies": { + "vscode-uri": "^3.0.8" + }, "peerDependencies": { - "@volar/language-service": "~1.11.0" + "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { @@ -692,43 +814,43 @@ } }, "node_modules/vscode-css-languageservice": { - "version": "6.2.11", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.11.tgz", - "integrity": "sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", "dependencies": { - "@vscode/l10n": "^0.0.16", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.0.8" } }, "node_modules/vscode-html-languageservice": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.1.tgz", - "integrity": "sha512-JenrspIIG/Q+93R6G3L6HdK96itSisMynE0glURqHpQbL3dKAKzdm8L40lAHNkwJeBg+BBPpAshZKv/38onrTQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", "dependencies": { - "@vscode/l10n": "^0.0.16", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.0.8" } }, "node_modules/vscode-json-languageservice": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.7.tgz", - "integrity": "sha512-jdDggN2SLMQw4C/tLr11v6/OK4cMVGy7tbyZRHQvukQ6lcflY3UV+ZMkmwHKCqXz2TmxkjQb536eJW6JMEVeew==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.4.1.tgz", + "integrity": "sha512-5czFGNyVPxz3ZJYl8R3a3SuIj5gjhmGF4Wv05MRPvD4DEnHK6b8km4VbNMJNHBlTCh7A0aHzUbPVzo+0C18mCA==", "dependencies": { - "@vscode/l10n": "^0.0.16", - "jsonc-parser": "^3.2.0", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "jsonc-parser": "^3.3.1", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.0.8" } }, "node_modules/vscode-json-languageservice/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" }, "node_modules/vscode-jsonrpc": { "version": "8.2.0", @@ -759,9 +881,9 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", @@ -777,51 +899,35 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" - }, - "node_modules/vue-component-meta": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-1.8.27.tgz", - "integrity": "sha512-j3WJsyQHP4TDlvnjHc/eseo0/eVkf0FaCpkqGwez5zD+Tj31onBzWZEXTnWKs8xRj0n3dMNYdy3SpiS6NubSvg==", - "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "path-browserify": "^1.0.1", - "vue-component-type-helpers": "1.8.27" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-component-type-helpers": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.8.27.tgz", - "integrity": "sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==" - }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { + "@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" + }, "@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "requires": { + "@babel/types": "^7.26.0" + } + }, + "@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "requires": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + } }, "@emmetio/abbreviation": { "version": "2.3.3", @@ -839,33 +945,59 @@ "@emmetio/scanner": "^1.0.4" } }, + "@emmetio/css-parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", + "requires": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "requires": { + "@emmetio/scanner": "^1.0.0" + } + }, "@emmetio/scanner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==" }, + "@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==" + }, + "@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==" + }, "@johnsoncodehk/pug-beautify": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz", "integrity": "sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==" }, "@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.8.tgz", + "integrity": "sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==", "requires": { - "@volar/source-map": "1.11.1" + "@volar/source-map": "2.4.8" } }, "@volar/language-server": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-1.11.1.tgz", - "integrity": "sha512-XYG4HcML2qimQV9UouQ7c1GuuqQw1NXoNDxAOAcfyYlz43P+HgzGQx4QEou+QMGHJeYIN86foDvkTN3fcopw9A==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.8.tgz", + "integrity": "sha512-3Jd9Y+0Zhwi/zfdRxqoNrm7AxP6lgTsw4Ni9r6eCyWYGVsTnpVwGmlcbiZyDja6anoKZxnaeDatX1jkaHHWaRQ==", "requires": { - "@volar/language-core": "1.11.1", - "@volar/language-service": "1.11.1", - "@volar/typescript": "1.11.1", - "@vscode/l10n": "^0.0.16", + "@volar/language-core": "2.4.8", + "@volar/language-service": "2.4.8", + "@volar/typescript": "2.4.8", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -875,38 +1007,46 @@ } }, "@volar/language-service": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-1.11.1.tgz", - "integrity": "sha512-dKo8z1UzQRPHnlXxwfONGrasS1wEWXMoLQiohZ8KgWqZALbekZCwdGImLZD4DeFGNjk3HTTdfeCzo3KjwohjEQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.8.tgz", + "integrity": "sha512-9y8X4cdUxXmy4s5HoB8jmOpDIZG7XVFu4iEFvouhZlJX2leCq0pbq5h7dhA+O8My0fne3vtE6cJ4t9nc+8UBZw==", "requires": { - "@volar/language-core": "1.11.1", - "@volar/source-map": "1.11.1", + "@volar/language-core": "2.4.8", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.8.tgz", + "integrity": "sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==" + }, + "@volar/test-utils": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/test-utils/-/test-utils-2.4.8.tgz", + "integrity": "sha512-Nx9fM2i/UUlDE4GSOwFLDncEEPgTkQfiDtZlKJYF40ms7V+LCLq+xIamSFlQw1pcxJeEkd0GyWrleZdIm3SAdg==", "requires": { - "muggle-string": "^0.3.1" + "@volar/language-core": "2.4.8", + "@volar/language-server": "2.4.8", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" } }, "@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz", + "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==", "requires": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.8", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, "@vscode/emmet-helper": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.2.tgz", - "integrity": "sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", + "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", "requires": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", @@ -923,95 +1063,122 @@ } }, "@vscode/l10n": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", - "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==" }, "@vue/compiler-core": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", - "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "requires": { - "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.13", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "@vue/compiler-dom": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", - "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "requires": { - "@vue/compiler-core": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" + } + }, + "@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" } }, "@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz", + "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==", "requires": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "@volar/language-core": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.2.0", "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" } }, "@vue/language-server": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-1.8.27.tgz", - "integrity": "sha512-WL+x6SPBDfQhmX0lpZeW3rNmmIC1Q7PsNAXBICF5jw70G4TctFTx23R6GJCbL/HhqTD9296dZGcQfY6CRQr15A==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-2.1.10.tgz", + "integrity": "sha512-Cjxi6nmMVDxOpWWfq1jCe9UqHg/WrTxwZGAXtYXByOhueiRi1kOlHR77vkRQRi40jpZIPWEnjgD/jMMhfLe0ag==", "requires": { - "@volar/language-core": "~1.11.1", - "@volar/language-server": "~1.11.1", - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "@vue/language-service": "1.8.27", + "@volar/language-core": "~2.4.8", + "@volar/language-server": "~2.4.8", + "@volar/test-utils": "~2.4.8", + "@vue/language-core": "2.1.10", + "@vue/language-service": "2.1.10", + "@vue/typescript-plugin": "2.1.10", "vscode-languageserver-protocol": "^3.17.5", - "vue-component-meta": "1.8.27" + "vscode-uri": "^3.0.8" } }, "@vue/language-service": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-1.8.27.tgz", - "integrity": "sha512-kWSng43ieDRbEUYiz83k2TIZrexbnwL1bRTR67KVqRqbqF2oMkJ3GhzSb1tKb1XwWTkOpihzJ1T8NnruihPHyw==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-2.1.10.tgz", + "integrity": "sha512-voNteQNU+mHUmyUEdHUpWZW5/kfLQxh1zHs98c5hw6XK6pNxJTghG/k4maka6y5WmfmMCKAsddBpD9kZ7lyAlg==", "requires": { - "@volar/language-core": "~1.11.1", - "@volar/language-service": "~1.11.1", - "@volar/typescript": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/language-core": "1.8.27", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "@volar/language-core": "~2.4.8", + "@volar/language-service": "~2.4.8", + "@volar/typescript": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", + "@vue/language-core": "2.1.10", + "@vue/shared": "^3.5.0", + "@vue/typescript-plugin": "2.1.10", + "alien-signals": "^0.2.0", "path-browserify": "^1.0.1", - "volar-service-css": "0.0.17", - "volar-service-emmet": "0.0.17", - "volar-service-html": "0.0.17", - "volar-service-json": "0.0.17", - "volar-service-pug": "0.0.17", - "volar-service-pug-beautify": "0.0.17", - "volar-service-typescript": "0.0.17", - "volar-service-typescript-twoslash-queries": "0.0.17", - "vscode-html-languageservice": "^5.1.0", - "vscode-languageserver-textdocument": "^1.0.11" + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-json": "0.0.62", + "volar-service-pug": "0.0.62", + "volar-service-pug-beautify": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "vscode-html-languageservice": "^5.2.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" } }, "@vue/shared": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", - "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==" + }, + "@vue/typescript-plugin": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-2.1.10.tgz", + "integrity": "sha512-NrS3BB3l5vuZHU4Vp8l9TbT5pC7VjBfwZKqc24dAXF3Z+dJyGs4mcC3zo59gUggLMQSah8mdXj8xqEfMkrps8w==", + "requires": { + "@volar/typescript": "~2.4.8", + "@vue/language-core": "2.1.10", + "@vue/shared": "^3.5.0" + } }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, + "alien-signals": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.0.tgz", + "integrity": "sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==" + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1026,13 +1193,15 @@ } }, "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "character-parser": { @@ -1043,35 +1212,48 @@ "is-regex": "^1.0.3" } }, - "computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" - }, "de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" }, "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" } }, "emmet": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.6.tgz", - "integrity": "sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", "requires": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" } }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1083,10 +1265,11 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", @@ -1102,17 +1285,17 @@ } }, "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "requires": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" } }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" }, "has-symbols": { "version": "1.0.3", @@ -1120,17 +1303,17 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "requires": { "function-bind": "^1.1.2" } @@ -1163,26 +1346,18 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } }, "muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" }, "object-assign": { "version": "4.1.1", @@ -1195,9 +1370,9 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, "pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==" }, "pug-lexer": { "version": "5.0.1", @@ -1224,28 +1399,27 @@ "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==" }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" } }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, "token-stream": { "version": "1.0.0", @@ -1253,134 +1427,139 @@ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==" }, "typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==" + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==" }, "typescript-auto-import-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.1.tgz", - "integrity": "sha512-ujC5E2gT3Sf3Dzfg5QYgb8NkZNxFQI12W6rk5U/TbkDFXyvIb9YENic+hsNoVDmKEmlRTUjRRD8RCjLMIx1rxg==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", "requires": { "semver": "^7.3.8" } }, "volar-service-css": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.17.tgz", - "integrity": "sha512-bEDJykygMzn2+a9ud6KwZZLli9eqarxApAXZuf2CqJJh6Trw1elmbBCo9SlPfqMrIhpFnwV0Sa+Xoc9x5WPeGw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", "requires": { - "vscode-css-languageservice": "^6.2.10", + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "volar-service-emmet": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.17.tgz", - "integrity": "sha512-C6hVnuQL52MqaydkrblYUbzIo5ZmIGo1hR8wmpcCjs5uNcjqn8aPqZRfznhLiUSaPHpFC+zQxJwFcZI9/u2iKQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", "requires": { - "@vscode/emmet-helper": "^2.9.2", - "volar-service-html": "0.0.17" + "@emmetio/css-parser": "^0.4.0", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" } }, "volar-service-html": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.17.tgz", - "integrity": "sha512-OGkP+ZTo13j/+enafGe+esXvda/W4eU78YNLbbHxtV3rnX4odVrewenLJmXiECg6wdQz/PG8rLijZqQnDUYkfw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", "requires": { - "vscode-html-languageservice": "^5.1.0", + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "volar-service-json": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.17.tgz", - "integrity": "sha512-28pXc5l5xSDtTDZ73zg0Jklr1KOsqL60wa8SXTJptK7e+PX8PF/cxQ/2FBHQOybdJsk+fn8jx8wF/ky8cuVHag==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.62.tgz", + "integrity": "sha512-Ot+jP+/LzKcaGF7nzrn+gwpzAleb4ej5buO05M8KxfwfODte7o1blARKRoJ3Nv7ls0DBM38Dd5vjzvA9c/9Jtg==", "requires": { - "vscode-json-languageservice": "^5.3.7", + "vscode-json-languageservice": "^5.4.0", "vscode-uri": "^3.0.8" } }, "volar-service-pug": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.17.tgz", - "integrity": "sha512-p6oDgH+ufWyS6r6Jv5h76cWGtjLOG/vhd5NH4Sk0pMCdh8zANHJsKsxsrIOiYsK6J9uNU1H6qRRHGg95xj34eQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.62.tgz", + "integrity": "sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==", "requires": { - "@volar/language-service": "~1.11.0", - "@volar/source-map": "~1.11.0", - "muggle-string": "^0.3.1", + "@volar/language-service": "~2.4.0", + "muggle-string": "^0.4.1", "pug-lexer": "^5.0.1", "pug-parser": "^6.0.0", - "volar-service-html": "0.0.17", - "vscode-html-languageservice": "^5.1.0", + "volar-service-html": "0.0.62", + "vscode-html-languageservice": "^5.3.0", "vscode-languageserver-textdocument": "^1.0.11" } }, "volar-service-pug-beautify": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.17.tgz", - "integrity": "sha512-r+18HvciIOFbwi9dNTok1r1oboFyPaRPW1F5K7Yw1Ypynt2PI6ocGjBJ0V+Z5oONTXq1wHA4vzlmmvz5vzVh9g==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.62.tgz", + "integrity": "sha512-dAFNuNEwTnnVthYoNJhoStwhf/PojzglwCrdhOb2nBegTG3xXMWRFmQzb0JfIlt2wq2wfUq5j+JJswgSD3KluQ==", "requires": { "@johnsoncodehk/pug-beautify": "^0.2.2" } }, "volar-service-typescript": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.17.tgz", - "integrity": "sha512-Krs8pOIo2yoBVoJ91hKT1czhWt9ek7EbuK3MxxgvDYdd4HYHOtHi1eOlb7bFnZMNgFcwsL48yQI9vbPm160s9A==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", "requires": { "path-browserify": "^1.0.1", - "semver": "^7.5.4", - "typescript-auto-import-cache": "^0.3.0", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.3", "vscode-languageserver-textdocument": "^1.0.11", "vscode-nls": "^5.2.0", "vscode-uri": "^3.0.8" } }, "volar-service-typescript-twoslash-queries": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.17.tgz", - "integrity": "sha512-6FHXK5AWeFzCL6uGmEcbkZmQsaQ0m9IjbeLdgOIQ4KGvauqT2aA1BhdfDJu6vRAFIfXe7xjEJ85keIlHl72tSA==", - "requires": {} + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", + "requires": { + "vscode-uri": "^3.0.8" + } }, "vscode-css-languageservice": { - "version": "6.2.11", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.11.tgz", - "integrity": "sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", "requires": { - "@vscode/l10n": "^0.0.16", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.0.8" } }, "vscode-html-languageservice": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.1.tgz", - "integrity": "sha512-JenrspIIG/Q+93R6G3L6HdK96itSisMynE0glURqHpQbL3dKAKzdm8L40lAHNkwJeBg+BBPpAshZKv/38onrTQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", "requires": { - "@vscode/l10n": "^0.0.16", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.0.8" } }, "vscode-json-languageservice": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.7.tgz", - "integrity": "sha512-jdDggN2SLMQw4C/tLr11v6/OK4cMVGy7tbyZRHQvukQ6lcflY3UV+ZMkmwHKCqXz2TmxkjQb536eJW6JMEVeew==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.4.1.tgz", + "integrity": "sha512-5czFGNyVPxz3ZJYl8R3a3SuIj5gjhmGF4Wv05MRPvD4DEnHK6b8km4VbNMJNHBlTCh7A0aHzUbPVzo+0C18mCA==", "requires": { - "@vscode/l10n": "^0.0.16", - "jsonc-parser": "^3.2.0", - "vscode-languageserver-textdocument": "^1.0.11", + "@vscode/l10n": "^0.0.18", + "jsonc-parser": "^3.3.1", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.0.8" }, "dependencies": { "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" } } }, @@ -1407,9 +1586,9 @@ } }, "vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==" }, "vscode-languageserver-types": { "version": "3.17.5", @@ -1425,36 +1604,6 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" - }, - "vue-component-meta": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-1.8.27.tgz", - "integrity": "sha512-j3WJsyQHP4TDlvnjHc/eseo0/eVkf0FaCpkqGwez5zD+Tj31onBzWZEXTnWKs8xRj0n3dMNYdy3SpiS6NubSvg==", - "requires": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "path-browserify": "^1.0.1", - "vue-component-type-helpers": "1.8.27" - } - }, - "vue-component-type-helpers": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.8.27.tgz", - "integrity": "sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==" - }, - "vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/server/package.json b/server/package.json index 05e3811..c3da3f8 100644 --- a/server/package.json +++ b/server/package.json @@ -2,7 +2,7 @@ "name": "sublime-volar", "private": true, "dependencies": { - "@vue/language-server": "^1.8.27", - "typescript": "^5.3.3" + "@vue/language-server": "^2.1.10", + "typescript": "^5.6.3" } } diff --git a/sublime-package.json b/sublime-package.json index dac6166..9644440 100644 --- a/sublime-package.json +++ b/sublime-package.json @@ -3,73 +3,27 @@ "settings": [ { "file_patterns": [ - "/LSP-volar.sublime-settings" + "/LSP-vue.sublime-settings" ], "schema": { - "$id": "sublime://settings/LSP-volar", + "$id": "sublime://settings/LSP-vue", "definitions": { "PluginConfig": { "properties": { "initializationOptions": { "additionalProperties": false, "properties": { - "additionalExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "default": [], - "description": "List any additional file extensions that should be processed as Vue files." - }, - "configFilePath": { - "type": "string", - "default": "./volar.config.js", - "description": "Path to volar.config.js." - }, - "diagnosticModel": { - "type": "integer", - "default": 2, - "enum": [ - 1, - 2 - ], - "enumDescriptions": [ - "Diagnostic push by language server.", - "Diagnostic pull by language client." - ], - "description": "Diagnostic update model." - }, - "fullCompletionList": { - "type": "boolean", - "default": false, - "description": "Enable this option if you want to get complete CompletionList in language client. (Disable for better performance)" - }, - "maxFileSize": { - "type": "number", - "default": 20971520, - "description": "Maximum file size for Vue Server to load. (default: 20MB)" - }, - "json.customBlockSchemaUrls": { - "type": "object" - }, - "reverseConfigFilePriority": { - "type": "boolean", - "default": false, - "description": "Reverse priority for tsconfig pickup." - }, "typescript.tsdk": { "type": "string", "description": "Path to tsserver's lib directory." }, - "ignoreTriggerCharacters": { - "type": "array", - "items": { - "type": "string", - "maxLength": 1 - }, - "default": [], - "description": "Defines which auto-complete popup trigger characters that Volar defines are allowed.\nBy default all Volar trigger characters are disabled as ST does a better job." - }, + "vue.hybridMode": { + "type": [ + "boolean", + ], + "default": false, + "markdownDescription": "DON'T use this option until known issues are ironed out - https://github.com/sublimelsp/LSP-vue/issues/130.\n\nWhen `true`, the Vue Language Server handles the CSS/HTML sections and partially the SCRIPT section but for the JS/TS-specific functionality it relies on the `LSP-typescript` server with `@vue/typescript-plugin` TS plugin enabled. When set to `false`, the Vue Language Server handles everything itself." + } }, }, "settings": { @@ -643,26 +597,27 @@ "default": "autoKebab", "description": "Preferred attr name case." }, - "vue.features.complete.normalizeComponentImportName": { + "vue.complete.defineAssignment": { "type": "boolean", "default": true, - "description": "Normalize import name for auto import. (\"myCompVue\" -> \"MyComp\")" + "markdownDescription": "Auto add `const props = ` before `defineProps` when selecting the completion item `props`, `emit` and `slots`." }, - // "vue.features.autoInsert.parentheses": { - // "type": "boolean", - // "default": true, - // "description": "Auto-wrap `()` to As Expression in interpolations for fix issue #520." - // }, - // "vue.features.autoInsert.dotValue": { - // "type": "boolean", - // "default": false, - // "description": "Auto-complete Ref value with `.value`." - // }, - // "vue.features.autoInsert.bracketSpacing": { + "vue.features.autoInsert.dotValue": { + "type": "boolean", + "default": false, + "description": "Auto-complete Ref value with `.value`." + }, + // Relies on custom "volar/client/autoInsert" request. + // "vue.autoInsert.bracketSpacing": { // "type": "boolean", // "default": true, // "description": "Auto add space between double curly brackets: {{|}} -> {{ | }}" // }, + "vue.inlayHints.destructuredProps": { + "type": "boolean", + "default": false, + "description": "Show inlay hints for destructured props." + }, "vue.inlayHints.missingProps": { "type": "boolean", "default": false, @@ -675,74 +630,25 @@ }, "vue.inlayHints.optionsWrapper": { "type": "boolean", - "default": true, + "default": false, "description": "Show inlay hints for component options wrapper for type support." }, - "volar.diagnostics.delay": { - "default": 200, - "description": "Delay time for diagnostics.", - "type": "number" + "vue.inlayHints.vBindShorthand": { + "type": "boolean", + "default": false, + "description": "Show inlay hints for v-bind shorthand." }, - "volar.format.initialIndent": { - "type": "object", - "description": "Whether to have initial indent.", - "default": { - "html": true - }, - "properties": { - "html": { - "type": "boolean", - "default": true - }, - "typescript": { - "type": "boolean", - "default": false - }, - "javascript": { - "type": "boolean", - "default": false - }, - "typescriptreact": { - "type": "boolean", - "default": false - }, - "javascriptreact": { - "type": "boolean", - "default": false - }, - "css": { - "type": "boolean", - "default": false - }, - "scss": { - "type": "boolean", - "default": false - }, - "less": { - "type": "boolean", - "default": false - }, - "sass": { - "type": "boolean", - "default": false - }, - "jade": { - "type": "boolean", - "default": false - }, - "json": { - "type": "boolean", - "default": false - }, - "jsonc": { - "type": "boolean", - "default": false - }, - "json5": { - "type": "boolean", - "default": false - } - } + "vue.format.template.initialIndent": { + "type": "boolean", + "default": true + }, + "vue.format.style.initialIndent": { + "type": "boolean", + "default": false + }, + "vue.format.script.initialIndent": { + "type": "boolean", + "default": false }, "typescript.preferences.autoImportFileExcludePatterns": { "items": { @@ -1070,7 +976,7 @@ "$ref": "sublime://settings/LSP-plugin-base" }, { - "$ref": "sublime://settings/LSP-volar#/definitions/PluginConfig" + "$ref": "sublime://settings/LSP-vue#/definitions/PluginConfig" } ] } @@ -1085,8 +991,8 @@ "properties": { "LSP": { "properties": { - "LSP-volar": { - "$ref": "sublime://settings/LSP-volar#/definitions/PluginConfig" + "LSP-vue": { + "$ref": "sublime://settings/LSP-vue#/definitions/PluginConfig" } } } @@ -1110,69 +1016,15 @@ "type": "object", "additionalProperties": false, "properties": { - "experimentalCompatMode": { - "deprecated": true - }, - "experimentalTemplateCompilerOptions": { - "deprecated": true - }, - "experimentalTemplateCompilerOptionsRequirePath": { - "deprecated": true - }, - "experimentalDisableTemplateSupport": { - "deprecated": true - }, - "experimentalResolveNonScopedCssClasses": { - "deprecated": true - }, - "experimentalShamefullySupportOptionsApi": { - "deprecated": true - }, - "experimentalAllowTypeNarrowingInInlineHandlers": { - "deprecated": true - }, - "experimentalImplicitWrapComponentOptionsWithDefineComponent": { - "deprecated": true - }, - "experimentalDowngradePropsAndEmitsToSetupReturnOnScriptSetup": { - "deprecated": true - }, - "experimentalRuntimeMode": { - "deprecated": true - }, - "experimentalUseScriptLeadingCommentInTemplate": { - "deprecated": true - }, - "experimentalSuppressUnknownJsxPropertyErrors": { - "deprecated": true - }, - "experimentalSuppressInvalidJsxElementTypeErrors": { - "deprecated": true - }, - "experimentalImplicitWrapComponentOptionsWithVue2Extend": { - "deprecated": true - }, - "experimentalComponentOptionsWrapper": { - "deprecated": true - }, - "experimentalComponentOptionsWrapperEnable": { - "deprecated": true - }, - "bypassDefineComponentToExposePropsAndEmitsForJsScriptSetupComponents": { - "deprecated": true - }, "target": { - "type": "number", - "default": 3, - "anyOf": [ - { - "enum": [ - 2, - 2.7, - 3, - 3.3 - ] - } + "default": "auto", + "enum": [ + "auto", + 2, + 2.7, + 3, + 3.3, + 3.5 ], "markdownDescription": "Target version of Vue." }, @@ -1181,11 +1033,25 @@ "default": [ ".vue" ], - "markdownDescription": "Valid file extensions that should be considered as regular Vue SFC. Please note that you should not use this option separately for additional file extensions IDE support, see https://github.com/johnsoncodehk/volar/tree/master/extensions/vscode-vue-language-features/README.md#custom-file-extensions." + "markdownDescription": "Valid file extensions that should be considered as regular Vue SFC, please note that you should not use this option separately for additional file extensions IDE support, see https://github.com/vuejs/language-tools/tree/master/extensions/vscode/README.md#custom-file-extensions." + }, + "vitePressExtensions": { + "type": "array", + "default": [ + ".md" + ], + "markdownDescription": "Valid file extensions that should be considered as regular VitePress SFC." + }, + "petiteVueExtensions": { + "type": "array", + "default": [ + ".html" + ], + "markdownDescription": "Valid file extensions that should be considered as regular PetiteVue SFC." }, "lib": { - "default": "", - "markdownDescription": "Specify module name for import regular types. (If empty, will use `@vue/runtime-dom` for target < 2.7, `vue` for target >= 2.7)" + "default": "vue", + "markdownDescription": "Specify module name for import regular types." }, "jsxSlots": { "type": "boolean", @@ -1199,11 +1065,13 @@ }, "skipTemplateCodegen": { "type": "boolean", + "default": false, "markdownDescription": "https://github.com/vuejs/language-tools/issues/577" }, - "nativeTags": { - "deprecated": true, - "description": "Deprecated since v1.5.1." + "fallthroughAttributes": { + "type": "boolean", + "default": false, + "markdownDescription": "Enable to support typed fallthrough attributes. Please note that enabling may significantly slow down type checking." }, "dataAttributes": { "type": "array", @@ -1222,10 +1090,6 @@ "default": [], "markdownDescription": "Plugins to be used in the SFC compiler." }, - "hooks": { - "type": "array", - "markdownDescription": "https://github.com/vuejs/language-tools/pull/2217" - }, "optionsWrapper": { "type": "array", "default": [ @@ -1237,16 +1101,27 @@ "macros": { "type": "object", "default": { - "defineProps": [ "defineProps" ], - "defineEmits": [ "defineEmits" ], - "defineExpose": [ "defineExpose" ], - "withDefaults": [ "withDefaults" ] + "defineProps": [ + "defineProps" + ], + "defineSlots": [ + "defineSlots" + ], + "defineEmits": [ + "defineEmits" + ], + "defineExpose": [ + "defineExpose" + ], + "withDefaults": [ + "withDefaults" + ], + "templateRef": [ + "templateRef", + "useTemplateRef" + ] } }, - "narrowingTypesInInlineHandlers": { - "type": "boolean", - "markdownDescription": "https://github.com/johnsoncodehk/volar/issues/1249" - }, "experimentalResolveStyleCssClasses": { "enum": [ "scoped", @@ -1255,41 +1130,29 @@ ], "markdownDescription": "https://github.com/vuejs/language-tools/issues/1038, https://github.com/vuejs/language-tools/issues/1121" }, - "experimentalRfc436": { - "type": "boolean", - "default": false, - "markdownDescription": "https://github.com/vuejs/rfcs/discussions/436" - }, - "experimentalUseElementAccessInTemplate": { - "type": "boolean", - "default": false, - "markdownDescription": "https://github.com/vuejs/language-tools/issues/997" - }, "experimentalModelPropName": { "type": "object", "default": { "": { - "input": { - "type": "radio" - } - }, - "checked": { - "input": { - "type": "checkbox" - } + "input": true }, "value": { - "input": true, + "input": { + "type": "text" + }, "textarea": true, "select": true } }, "markdownDescription": "https://github.com/vuejs/language-tools/issues/1969" }, - "experimentalAdditionalLanguageModules": { - "type": "array", - "markdownDescription": "https://github.com/vuejs/language-tools/pull/2267" - }, + "experimentalDefinePropProposal": { + "enum": [ + "kevinEdition", + "johnsonEdition", + false + ] + } } } } diff --git a/volar_virtual_file_hierarchy.py b/volar_virtual_file_hierarchy.py deleted file mode 100644 index 648cda6..0000000 --- a/volar_virtual_file_hierarchy.py +++ /dev/null @@ -1,236 +0,0 @@ -from LSP.plugin.core.promise import Promise -from LSP.plugin.core.protocol import Request -from LSP.plugin.core.protocol import TextDocumentIdentifier -from LSP.plugin.core.protocol import URI -from LSP.plugin.core.registry import LspTextCommand -from LSP.plugin.core.registry import LspWindowCommand -from LSP.plugin.core.sessions import Session -from LSP.plugin.core.tree_view import new_tree_view_sheet -from LSP.plugin.core.tree_view import TreeDataProvider -from LSP.plugin.core.tree_view import TreeItem -from LSP.plugin.core.typing import Any, Callable, Dict, List, NotRequired, IntEnum, Optional, TypedDict, Tuple, Union -from LSP.plugin.core.views import text_document_identifier -from LSP.plugin.core.views import uri_from_view -from os.path import basename -import sublime -import weakref - - -class FileKind(IntEnum): - TextFile = 0 - TypeScriptHostFile = 1 - - -RenameDict = TypedDict('RenameDict', { - 'normalize': NotRequired[Callable[[str], str]], - 'apply': NotRequired[Callable[[str], str]], -}) - -CompletionDict = TypedDict('CompletionDict', { - 'additional': NotRequired[bool], - 'autoImportOnly': NotRequired[bool], -}) - -FileRangeCapabilities = TypedDict('FileRangeCapabilities', { - 'hover': NotRequired[bool], - 'references': NotRequired[bool], - 'definition': NotRequired[bool], - 'rename': NotRequired[Union[bool, RenameDict]], - 'completion': NotRequired[Union[bool, CompletionDict]], - 'diagnostic': NotRequired[bool], - 'semanticTokens': NotRequired[bool], - 'referencesCodeLens': NotRequired[bool], - 'displayWithLink': NotRequired[bool], -}) - -FileCapabilities = TypedDict('FileCapabilities', { - 'diagnostic': NotRequired[bool], - 'foldingRange': NotRequired[bool], - 'documentFormatting': NotRequired[bool], - 'documentSymbol': NotRequired[bool], - 'codeAction': NotRequired[bool], - 'inlayHint': NotRequired[bool], -}) - -RenameCapabilities = TypedDict('RenameCapabilities', { - 'normalize': Callable[[str], str], - 'apply': NotRequired[Callable[[str], str]], -}) - -CompletionCapabilities = TypedDict('CompletionCapabilities', { - 'additional': NotRequired[bool], - 'autoImportOnly': NotRequired[bool], -}) - -DiagnosticCapabilities = TypedDict('DiagnosticCapabilities', { - 'shouldReport': Callable[[], bool], -}) - -FileRangeCapabilities = TypedDict('FileRangeCapabilities', { - 'hover': NotRequired[bool], - 'references': NotRequired[bool], - 'definition': NotRequired[bool], - 'rename': NotRequired[Union[bool, RenameCapabilities]], - 'completion': NotRequired[Union[bool, CompletionCapabilities]], - 'diagnostic': NotRequired[Union[bool, DiagnosticCapabilities]], - 'semanticTokens': NotRequired[bool], - 'referencesCodeLens': NotRequired[bool], - 'displayWithLink': NotRequired[bool], -}) - -Stack = TypedDict('Stack', { - 'source': str, - 'range': Tuple[int, int], -}) - -MirrorBehaviorCapabilities = TypedDict('MirrorBehaviorCapabilities', { - 'references': NotRequired[bool], - 'definition': NotRequired[bool], - 'rename': NotRequired[bool], -}) - -MappingFileRangeCapabilities = TypedDict('MappingFileRangeCapabilities', { - 'source': NotRequired[str], - 'sourceRange': Tuple[int, int], - 'generatedRange': Tuple[int, int], - 'data': FileRangeCapabilities, -}) - -MappingMirrorBehaviorCapabilities = TypedDict('MappingMirrorBehaviorCapabilities', { - 'source': NotRequired[str], - 'sourceRange': Tuple[int, int], - 'generatedRange': Tuple[int, int], - 'data': Tuple[MirrorBehaviorCapabilities, MirrorBehaviorCapabilities], -}) - -VirtualFile = TypedDict('VirtualFile', { - 'fileName': str, - 'snapshot': Any, - 'kind': FileKind, - 'capabilities': FileCapabilities, - 'mappings': List[MappingFileRangeCapabilities], - 'codegenStacks': List[Stack], - 'mirrorBehaviorMappings': NotRequired[List[MappingMirrorBehaviorCapabilities]], - 'embeddedFiles': List['VirtualFile'], - 'version': str, -}) - - -class GetVirtualFilesRequest: - Type = 'volar/client/virtualFiles' - ParamsType = TextDocumentIdentifier - ResponseType = Optional[VirtualFile] - - -class GetVirtualFileRequest: - Type = 'volar/client/virtualFile' - ParamsType = TypedDict('ParamsType', { - 'sourceFileUri': str, - 'virtualFileName': str, - }) - ResponseType = TypedDict('ResponseType', { - 'content': str, - 'mappings': Dict[str, List[MappingFileRangeCapabilities]], - 'codegenStacks': List[Stack], - }) - - -class VirtualFilesDataProvider(TreeDataProvider): - - def __init__( - self, weaksession: 'weakref.ref[Session]', source_file_uri: str, root_elements: List[VirtualFile] - ) -> None: - self.weaksession = weaksession - self.source_file_uri = source_file_uri - self.root_elements = root_elements - session = self.weaksession() - self.session_name = session.config.name if session else None - - def get_children(self, element: Optional[VirtualFile]) -> Promise[List[VirtualFile]]: - if element is None: - return Promise.resolve(self.root_elements) - session = self.weaksession() - if not session: - return Promise.resolve([]) - return Promise.resolve(element['embeddedFiles']) - - def get_tree_item(self, element: VirtualFile) -> TreeItem: - command_url = sublime.command_url('lsp_volar_open_virtual_file', { - 'uri': self.source_file_uri, - 'file_name': element['fileName'], - }) - path = basename(element['fileName']) - description = '(kind: {}, version: {})'.format(element['kind'], element['version']) - return TreeItem( - path, - description=description, - command_url=command_url - ) - - -class LspVolarShowVirtualFilesCommand(LspTextCommand): - session_name = 'LSP-volar' - - def run(self, edit: sublime.Edit) -> None: - sublime.set_timeout_async(self.run_async) - - def run_async(self) -> None: - session = self.session_by_name() - if not session: - return - request = Request(GetVirtualFilesRequest.Type, text_document_identifier(self.view), progress=True) - session.send_request_task(request) \ - .then(lambda virtual_file: self._on_get_virtual_files_async(weakref.ref(session), virtual_file)) - - def _on_get_virtual_files_async( - self, weaksession: 'weakref.ref[Session]', virtual_file: GetVirtualFilesRequest.ResponseType - ) -> None: - if not virtual_file: - sublime.status_message('No virtual file found') - return - window = self.view.window() - if not window: - return - session = weaksession() - if not session: - return - sheet_name = 'Virtual Files (LSP-volar)' - source_file_uri = uri_from_view(self.view) - elements = [virtual_file] - data_provider = VirtualFilesDataProvider(weaksession, source_file_uri, elements) - new_tree_view_sheet(window, sheet_name, data_provider, sheet_name) - window.run_command('lsp_volar_open_virtual_file', { - 'uri': source_file_uri, - 'file_name': virtual_file['fileName'], - }) - - -class LspVolarOpenVirtualFileCommand(LspWindowCommand): - session_name = 'LSP-volar' - - def run(self, uri: str, file_name: str, event: Optional[dict] = None) -> None: - sublime.set_timeout_async(lambda: self.run_async(uri, file_name)) - - def run_async(self, uri: str, file_name: str) -> None: - session = self.session() - if not session: - return - request = Request(GetVirtualFileRequest.Type, { - 'sourceFileUri': uri, - 'virtualFileName': file_name, - }) - session.send_request_task(request).then(lambda result: self._on_files_contents_async(uri, file_name, result)) - - def _on_files_contents_async(self, uri: URI, file_name: str, result: GetVirtualFileRequest.ResponseType) -> None: - flags = sublime.ADD_TO_SELECTION | sublime.SEMI_TRANSIENT | sublime.CLEAR_TO_RIGHT - # Force TS syntax for virtual .js files. - # Those are actually TS files and using .js extension triggers errors from LSP. - if file_name.endswith('.js'): - file_name += '.ts' - syntax = sublime.find_syntax_for_file(file_name) - syntax_path = syntax.path if syntax else 'scope:source.ts' - new_view = self.window.new_file(flags=flags, syntax=syntax_path) - if new_view: - new_view.set_scratch(True) - new_view.set_name('(virtual) {}'.format(uri)) - new_view.run_command('append', {'characters': result['content']}) diff --git a/volar_write_virtual_files.py b/volar_write_virtual_files.py deleted file mode 100644 index a26385e..0000000 --- a/volar_write_virtual_files.py +++ /dev/null @@ -1,23 +0,0 @@ -from LSP.plugin import LspTextCommand -from LSP.plugin import Notification -from LSP.plugin.core.protocol import TextDocumentIdentifier -from LSP.plugin.core.views import uri_from_view -import sublime - - -class WriteVirtualFilesNotification: - Type = 'volar/client/writeVirtualFiles' - ParamsType = TextDocumentIdentifier - - -class LspVolarWriteVirtualFilesCommand(LspTextCommand): - session_name = 'LSP-volar' - - def run(self, edit: sublime.Edit) -> None: - sublime.set_timeout_async(self.run_async) - - def run_async(self) -> None: - session = self.session_by_name() - if not session: - return - session.send_notification(Notification(WriteVirtualFilesNotification.Type, {'uri': uri_from_view(self.view)}))