Adds the astro check command (#1410)
* Adds the `astro check` command. This adds `astro check`, which runs type checking (and general error checking) on Astro projects. * print the number of errors found * Adds a changeset * Add cli docs * Upgrade the language server version * Prevent linting the console.logs
This commit is contained in:
parent
4b4596eaac
commit
dbd2f5076b
6 changed files with 313 additions and 4 deletions
13
.changeset/proud-chicken-sin.md
Normal file
13
.changeset/proud-chicken-sin.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Adds the `astro check` command
|
||||
|
||||
This adds a new command, `astro check` which runs diagnostics on a project. The same diagnostics run within the Astro VSCode plugin! Just run:
|
||||
|
||||
```shell
|
||||
astro check
|
||||
```
|
||||
|
||||
Which works a lot like `tsc` and will give you error messages, if any were found. We recommend adding this to your CI setup to prevent errors from being merged.
|
|
@ -25,6 +25,12 @@ Start a local static file server to serve your built `dist/` directory. Useful f
|
|||
|
||||
This command is meant for local testing only, and is not designed to be run in production. For help with production hosting, check out our guide on [Deploying an Astro Website](/guides/deploy).
|
||||
|
||||
### `astro check`
|
||||
|
||||
Runs diagnostics (such as type-checking) against your project and reports errors to the console. If any errors are found the process will exit with a code of __1__.
|
||||
|
||||
This command is intended to be used in CI workflows.
|
||||
|
||||
## Global Flags
|
||||
|
||||
### `--config path`
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
"test": "uvu test -i fixtures -i benchmark -i test-utils.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/language-server": "^0.7.16",
|
||||
"@astrojs/markdown-support": "0.3.1",
|
||||
"@astrojs/parser": "0.20.2",
|
||||
"@astrojs/prism": "0.2.2",
|
||||
|
|
116
packages/astro/src/check.ts
Normal file
116
packages/astro/src/check.ts
Normal file
|
@ -0,0 +1,116 @@
|
|||
/* eslint-disable no-console */
|
||||
import { AstroCheck, DiagnosticSeverity } from '@astrojs/language-server';
|
||||
import type { AstroConfig } from './@types/astro';
|
||||
import { bold, blue, black, bgWhite, red, cyan, yellow } from 'kleur/colors';
|
||||
import glob from 'fast-glob';
|
||||
import * as path from 'path';
|
||||
import { pathToFileURL } from 'url';
|
||||
import * as fs from 'fs';
|
||||
|
||||
async function openAllDocuments(
|
||||
workspaceUri: URL,
|
||||
filePathsToIgnore: string[],
|
||||
checker: AstroCheck
|
||||
) {
|
||||
const files = await glob('**/*.astro', {
|
||||
cwd: workspaceUri.pathname,
|
||||
ignore: ['node_modules/**'].concat(filePathsToIgnore.map((ignore) => `${ignore}/**`))
|
||||
});
|
||||
const absFilePaths = files.map((f) => path.resolve(workspaceUri.pathname, f));
|
||||
|
||||
for (const absFilePath of absFilePaths) {
|
||||
const text = fs.readFileSync(absFilePath, 'utf-8');
|
||||
checker.upsertDocument(
|
||||
{
|
||||
uri: pathToFileURL(absFilePath).toString(),
|
||||
text
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
interface Result {
|
||||
errors: number;
|
||||
warnings: number;
|
||||
}
|
||||
|
||||
function offsetAt({ line, character }: { line: number, character: number; }, text: string) {
|
||||
let i = 0;
|
||||
let l = 0;
|
||||
let c = 0;
|
||||
while(i < text.length) {
|
||||
if(l === line && c === character) {
|
||||
break;
|
||||
}
|
||||
|
||||
let char = text[i];
|
||||
switch(char) {
|
||||
case '\n': {
|
||||
l++;
|
||||
c = 0;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
c++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
function pad(str: string, len: number) {
|
||||
return Array.from({ length: len }, () => str).join('');
|
||||
}
|
||||
|
||||
export async function run() {
|
||||
|
||||
}
|
||||
|
||||
export async function check(astroConfig: AstroConfig) {
|
||||
const root = astroConfig.projectRoot;
|
||||
let checker = new AstroCheck(root.toString());
|
||||
await openAllDocuments(root, [], checker);
|
||||
|
||||
let diagnostics = await checker.getDiagnostics();
|
||||
|
||||
let result: Result = {
|
||||
errors: 0,
|
||||
warnings: 0
|
||||
};
|
||||
|
||||
diagnostics.forEach(diag => {
|
||||
diag.diagnostics.forEach(d => {
|
||||
switch(d.severity) {
|
||||
case DiagnosticSeverity.Error: {
|
||||
console.error(`${bold(cyan(path.relative(root.pathname, diag.filePath)))}:${bold(yellow(d.range.start.line))}:${bold(yellow(d.range.start.character))} - ${d.message}`);
|
||||
let startOffset = offsetAt({ line: d.range.start.line, character: 0 }, diag.text);
|
||||
let endOffset = offsetAt({ line: d.range.start.line + 1, character: 0 }, diag.text);
|
||||
let str = diag.text.substring(startOffset, endOffset - 1);
|
||||
const lineNumStr = (d.range.start.line).toString();
|
||||
const lineNumLen = lineNumStr.length;
|
||||
console.error(`${bgWhite(black(lineNumStr))} ${str}`);
|
||||
let tildes = pad('~', d.range.end.character - d.range.start.character);
|
||||
let spaces = pad(' ', d.range.start.character + lineNumLen - 1);
|
||||
console.error(` ${spaces}${bold(red(tildes))}\n`);
|
||||
result.errors++;
|
||||
break;
|
||||
}
|
||||
case DiagnosticSeverity.Warning: {
|
||||
result.warnings++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if(result.errors) {
|
||||
console.error(`Found ${result.errors} errors.`)
|
||||
}
|
||||
|
||||
const exitCode = result.errors ? 1 : 0;
|
||||
return exitCode;
|
||||
}
|
|
@ -9,6 +9,7 @@ import { formatConfigError, loadConfig } from './config.js';
|
|||
import devServer from './dev.js';
|
||||
import { preview } from './preview.js';
|
||||
import { reload } from './reload.js';
|
||||
import { check } from './check.js';
|
||||
|
||||
const { readFile } = fsPromises;
|
||||
const buildAndExit = async (astroConfig: AstroConfig) => {
|
||||
|
@ -19,9 +20,13 @@ const reloadAndExit = async () => {
|
|||
const ret = await reload();
|
||||
process.exit(ret);
|
||||
};
|
||||
const checkAndExit = async (astroConfig: AstroConfig) => {
|
||||
const ret = await check(astroConfig);
|
||||
process.exit(ret);
|
||||
};
|
||||
|
||||
type Arguments = yargs.Arguments;
|
||||
type cliCommand = 'help' | 'version' | 'dev' | 'build' | 'preview' | 'reload';
|
||||
type cliCommand = 'help' | 'version' | 'dev' | 'build' | 'preview' | 'reload' | 'check';
|
||||
interface CLIState {
|
||||
cmd: cliCommand;
|
||||
options: {
|
||||
|
@ -59,6 +64,8 @@ function resolveArgs(flags: Arguments): CLIState {
|
|||
return { cmd: 'build', options };
|
||||
case 'preview':
|
||||
return { cmd: 'preview', options };
|
||||
case 'check':
|
||||
return { cmd: 'check', options };
|
||||
default:
|
||||
if (flags.reload) {
|
||||
return { cmd: 'reload', options };
|
||||
|
@ -76,6 +83,7 @@ function printHelp() {
|
|||
astro dev Run Astro in development mode.
|
||||
astro build Build a pre-compiled production version of your site.
|
||||
astro preview Preview your build locally before deploying.
|
||||
astro check Check your project for errors.
|
||||
|
||||
${colors.bold('Flags:')}
|
||||
--config <path> Specify the path to the Astro config file.
|
||||
|
@ -111,11 +119,11 @@ async function runCommand(rawRoot: string, cmd: (a: AstroConfig, opts: any) => P
|
|||
mergeCLIFlags(astroConfig, options);
|
||||
|
||||
return cmd(astroConfig, options);
|
||||
} catch (err) {
|
||||
} catch (err: any) {
|
||||
if (err instanceof z.ZodError) {
|
||||
console.log(formatConfigError(err));
|
||||
} else {
|
||||
console.error(colors.red(err.toString() || err));
|
||||
console.error(colors.red(err.toString()));
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
|
@ -126,6 +134,7 @@ const cmdMap = new Map<string, (a: AstroConfig, opts?: any) => Promise<any>>([
|
|||
['dev', devServer],
|
||||
['preview', preview],
|
||||
['reload', reloadAndExit],
|
||||
['check', checkAndExit]
|
||||
]);
|
||||
|
||||
/** The primary CLI action */
|
||||
|
@ -149,7 +158,8 @@ export async function cli(args: string[]) {
|
|||
}
|
||||
case 'build':
|
||||
case 'preview':
|
||||
case 'dev': {
|
||||
case 'dev':
|
||||
case 'check': {
|
||||
if (flags.reload) {
|
||||
await reload();
|
||||
}
|
||||
|
|
163
yarn.lock
163
yarn.lock
|
@ -106,6 +106,22 @@
|
|||
"@algolia/logger-common" "4.10.5"
|
||||
"@algolia/requester-common" "4.10.5"
|
||||
|
||||
"@astrojs/language-server@^0.7.16":
|
||||
version "0.7.16"
|
||||
resolved "https://registry.yarnpkg.com/@astrojs/language-server/-/language-server-0.7.16.tgz#54ac89c70ec7a6ab2712d4f15357017e795db34a"
|
||||
integrity sha512-LjWk9Ia8TrKGf4homDCFpL6r9gfB3cPqrEx1COuy5ukzy/cvGGersobwodtwsbOKqOWk7NwJbYbf51IIub7prQ==
|
||||
dependencies:
|
||||
lodash "^4.17.21"
|
||||
source-map "^0.7.3"
|
||||
ts-morph "^12.0.0"
|
||||
typescript "^4.3.1-rc"
|
||||
vscode-css-languageservice "^5.1.1"
|
||||
vscode-emmet-helper "2.1.2"
|
||||
vscode-html-languageservice "^3.0.3"
|
||||
vscode-languageserver "6.1.1"
|
||||
vscode-languageserver-protocol "^3.16.0"
|
||||
vscode-languageserver-textdocument "^1.0.1"
|
||||
|
||||
"@babel/code-frame@7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
|
||||
|
@ -548,6 +564,25 @@
|
|||
"@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28"
|
||||
algoliasearch "^4.0.0"
|
||||
|
||||
"@emmetio/abbreviation@^2.2.2":
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-2.2.2.tgz#746762fd9e7a8c2ea604f580c62e3cfe250e6989"
|
||||
integrity sha512-TtE/dBnkTCct8+LntkqVrwqQao6EnPAs1YN3cUgxOxTaBlesBCY37ROUAVZrRlG64GNnVShdl/b70RfAI3w5lw==
|
||||
dependencies:
|
||||
"@emmetio/scanner" "^1.0.0"
|
||||
|
||||
"@emmetio/css-abbreviation@^2.1.4":
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz#90362e8a1122ce3b76f6c3157907d30182f53f54"
|
||||
integrity sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==
|
||||
dependencies:
|
||||
"@emmetio/scanner" "^1.0.0"
|
||||
|
||||
"@emmetio/scanner@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
|
||||
integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
|
||||
|
||||
"@eslint/eslintrc@^0.4.3":
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
|
||||
|
@ -1809,6 +1844,16 @@
|
|||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
|
||||
|
||||
"@ts-morph/common@~0.11.0":
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.0.tgz#df94af35f42d01d9d389bfdefc8bcc3f6a59a192"
|
||||
integrity sha512-Ti2tpROSVHlBoNiJKVUYPNk/yCPb1Bcly4RsSwC2F9a8PMMYfEYovRcghTu6N5o66Jq0yvPXN3uNaO4a3zskTA==
|
||||
dependencies:
|
||||
fast-glob "^3.2.7"
|
||||
minimatch "^3.0.4"
|
||||
mkdirp "^1.0.4"
|
||||
path-browserify "^1.0.1"
|
||||
|
||||
"@types/acorn@^4.0.0":
|
||||
version "4.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22"
|
||||
|
@ -3248,6 +3293,11 @@ co@^4.6.0:
|
|||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
|
||||
|
||||
code-block-writer@^10.1.1:
|
||||
version "10.1.1"
|
||||
resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f"
|
||||
integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==
|
||||
|
||||
code-point-at@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
|
@ -3999,6 +4049,14 @@ electron-to-chromium@^1.3.811:
|
|||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz#32ed024fa8316e5d469c96eecbea7d2463d80085"
|
||||
integrity sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q==
|
||||
|
||||
emmet@^2.1.5:
|
||||
version "2.3.4"
|
||||
resolved "https://registry.yarnpkg.com/emmet/-/emmet-2.3.4.tgz#5ba0d7a5569a68c7697dfa890c772e4f3179d123"
|
||||
integrity sha512-3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==
|
||||
dependencies:
|
||||
"@emmetio/abbreviation" "^2.2.2"
|
||||
"@emmetio/css-abbreviation" "^2.1.4"
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
|
@ -6054,6 +6112,11 @@ json5@^2.1.2, json5@^2.2.0:
|
|||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
jsonc-parser@^2.3.0:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
|
||||
integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
|
||||
|
||||
jsonfile@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
||||
|
@ -8142,6 +8205,11 @@ pascal-case@^3.1.2:
|
|||
no-case "^3.0.4"
|
||||
tslib "^2.0.3"
|
||||
|
||||
path-browserify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
|
||||
integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
|
||||
|
||||
path-exists@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||
|
@ -10248,6 +10316,14 @@ tryer@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
|
||||
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
|
||||
|
||||
ts-morph@^12.0.0:
|
||||
version "12.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7"
|
||||
integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==
|
||||
dependencies:
|
||||
"@ts-morph/common" "~0.11.0"
|
||||
code-block-writer "^10.1.1"
|
||||
|
||||
tslib@^1.8.1, tslib@^1.9.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
|
@ -10366,6 +10442,11 @@ typescript@^4.2.4:
|
|||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
|
||||
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
|
||||
|
||||
typescript@^4.3.1-rc:
|
||||
version "4.4.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
|
||||
integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
|
||||
|
||||
uglify-js@^3.1.4:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06"
|
||||
|
@ -10762,11 +10843,93 @@ vm2@^3.9.2:
|
|||
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.3.tgz#29917f6cc081cc43a3f580c26c5b553fd3c91f40"
|
||||
integrity sha512-smLS+18RjXYMl9joyJxMNI9l4w7biW8ilSDaVRvFBDwOH8P0BK1ognFQTpg0wyQ6wIKLTblHJvROW692L/E53Q==
|
||||
|
||||
vscode-css-languageservice@^5.1.1:
|
||||
version "5.1.5"
|
||||
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-5.1.5.tgz#400b2f63a4f73c60f5b0afc48c478c1b326b27c6"
|
||||
integrity sha512-c1hhsbnZ7bBvj10vMDLmkOk/n9r0rXQYDj4kbBi59bZaaEZ3e81zURx76/618NZM5NytlZmGfvmxQtB7mb03Ow==
|
||||
dependencies:
|
||||
vscode-languageserver-textdocument "^1.0.1"
|
||||
vscode-languageserver-types "^3.16.0"
|
||||
vscode-nls "^5.0.0"
|
||||
vscode-uri "^3.0.2"
|
||||
|
||||
vscode-emmet-helper@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-2.1.2.tgz#2978060ebb736a7e0f6e6f1d649bd026880528c3"
|
||||
integrity sha512-Fy6UNawSgxE3Kuqi54vSXohf03iOIrp1A74ReAgzvGP9Yt7fUAvkqF6No2WAc34/w0oWAHAeqoBNqmKKWh6U5w==
|
||||
dependencies:
|
||||
emmet "^2.1.5"
|
||||
jsonc-parser "^2.3.0"
|
||||
vscode-languageserver-textdocument "^1.0.1"
|
||||
vscode-languageserver-types "^3.15.1"
|
||||
vscode-nls "^5.0.0"
|
||||
vscode-uri "^2.1.2"
|
||||
|
||||
vscode-html-languageservice@^3.0.3:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz#e92269a04097d87bd23431e3a4e491a27b5447b9"
|
||||
integrity sha512-aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==
|
||||
dependencies:
|
||||
vscode-languageserver-textdocument "^1.0.1"
|
||||
vscode-languageserver-types "3.16.0-next.2"
|
||||
vscode-nls "^5.0.0"
|
||||
vscode-uri "^2.1.2"
|
||||
|
||||
vscode-jsonrpc@6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e"
|
||||
integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==
|
||||
|
||||
vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.16.0:
|
||||
version "3.16.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821"
|
||||
integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==
|
||||
dependencies:
|
||||
vscode-jsonrpc "6.0.0"
|
||||
vscode-languageserver-types "3.16.0"
|
||||
|
||||
vscode-languageserver-textdocument@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
|
||||
integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
|
||||
|
||||
vscode-languageserver-types@3.16.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.16.0:
|
||||
version "3.16.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
|
||||
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
|
||||
|
||||
vscode-languageserver-types@3.16.0-next.2:
|
||||
version "3.16.0-next.2"
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
|
||||
integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
|
||||
|
||||
vscode-languageserver@6.1.1:
|
||||
version "6.1.1"
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz#d76afc68172c27d4327ee74332b468fbc740d762"
|
||||
integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ==
|
||||
dependencies:
|
||||
vscode-languageserver-protocol "^3.15.3"
|
||||
|
||||
vscode-nls@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
|
||||
integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
|
||||
|
||||
vscode-textmate@5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
|
||||
integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
|
||||
|
||||
vscode-uri@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
|
||||
integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
|
||||
|
||||
vscode-uri@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0"
|
||||
integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==
|
||||
|
||||
vue@^3.2.0:
|
||||
version "3.2.6"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.6.tgz#c71445078751f458648fd8fb3a2da975507d03d2"
|
||||
|
|
Loading…
Reference in a new issue