Skip to content

Commit dcf3530

Browse files
author
Damian Sznajder
committedJan 18, 2022
fix: typescript dynamic generate
1 parent d410801 commit dcf3530

13 files changed

+1336
-314
lines changed
 

‎.vscodeignore

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
.vscode/**
2-
src/**
3-
.gitignore
41
**/tsconfig.json
52
*.ts
6-
webpack.config.js
3+
.github/**
4+
.gitignore
5+
.vscode/**
6+
docs/**
7+
node_modules/**
8+
src/**

‎LICENCE renamed to ‎LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License (MIT)
22

3-
Copyright (c) 2019 Damian Sznajder
3+
Copyright (c) 2022 Damian Sznajder
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

‎package.json

+9-3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
}
4040
},
4141
"activationEvents": [
42+
"onLanguage:typescript",
43+
"onLanguage:javascript",
4244
"onCommand:reactSnippets.search"
4345
],
4446
"contributes": {
@@ -89,6 +91,11 @@
8991
"markdownDescription": "Controls how many spaces snippets will have.\nOnly applies when `#reactSnippets.settings.prettierEnabled#` is disabled",
9092
"default": 2
9193
},
94+
"reactSnippets.settings.languageScopes": {
95+
"type": "string",
96+
"markdownDescription": "defines the language scopes for which the snippets will be available.\nUse comma separated values.\nFor example: `typescript,typescriptreact,javascript,javascriptreact`",
97+
"default": "typescript,typescriptreact,javascript,javascriptreact"
98+
},
9299
"reactSnippets.settings.typescriptComponentPropsStatePrefix": {
93100
"type": "string",
94101
"markdownDescription": "Controls which prefix for typescript snippets should use for props/state.",
@@ -127,16 +134,15 @@
127134
"typescript": "tsc --noEmit"
128135
},
129136
"dependencies": {
130-
"prettier": "2.5.1",
131-
"vscode": "1.1.37"
137+
"prettier": "2.5.1"
132138
},
133139
"devDependencies": {
134140
"@babel/cli": "7.16.0",
135141
"@babel/eslint-parser": "7.16.5",
136142
"@babel/preset-typescript": "7.16.5",
137143
"@types/node": "17.0.5",
138144
"@types/prettier": "2.4.2",
139-
"@types/vscode": "1.63.1",
145+
"@types/vscode": "1.60.0",
140146
"@typescript-eslint/eslint-plugin": "5.8.1",
141147
"@typescript-eslint/parser": "5.8.1",
142148
"eslint": "8.5.0",

‎src/generateSnippets.ts

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { writeFile } from 'fs';
2-
import { workspace } from 'vscode';
32

4-
import { ExtensionSettings, replaceSnippetPlaceholders } from './helpers';
3+
import {
4+
extensionConfig,
5+
formatSnippet,
6+
replaceSnippetPlaceholders,
7+
} from './helpers';
58
import componentsSnippets, {
69
ComponentsSnippet,
710
} from './sourceSnippets/components';
@@ -47,11 +50,10 @@ export type Snippets = {
4750
};
4851

4952
const getSnippets = () => {
50-
const config = workspace.getConfiguration(
51-
'reactSnippets',
52-
) as unknown as ExtensionSettings;
53+
const { typescript, languageScopes } = extensionConfig();
5354

5455
const snippets = [
56+
...(typescript ? typescriptSnippets : []),
5557
...componentsSnippets,
5658
...consoleSnippets,
5759
...hooksSnippets,
@@ -60,13 +62,17 @@ const getSnippets = () => {
6062
...reactNativeSnippets,
6163
...reduxSnippets,
6264
...testsSnippets,
63-
...(config.typescript ? typescriptSnippets : []),
6465
].reduce((acc, snippet) => {
65-
acc[snippet.key] = snippet;
66+
const snippetBody =
67+
typeof snippet.body === 'string' ? snippet.body : snippet.body.join('\n');
68+
acc[snippet.key] = Object.assign(snippet, {
69+
scope: languageScopes,
70+
body: formatSnippet(snippetBody).split('\n'),
71+
});
6672
return acc;
6773
}, {} as Snippets);
6874

69-
return replaceSnippetPlaceholders(JSON.stringify(snippets, null, 2), config);
75+
return replaceSnippetPlaceholders(JSON.stringify(snippets, null, 2));
7076
};
7177

7278
export const generateSnippets = () =>

‎src/helpers.ts

+33-38
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,40 @@ import { workspace } from 'vscode';
44
import { SnippetPlaceholders } from './types';
55

66
export type ExtensionSettings = {
7+
languageScopes: string;
78
prettierEnabled: boolean;
89
semiColons: boolean;
910
importReactOnTop: boolean;
10-
quotes: boolean;
11+
singleQuote: boolean;
1112
typescript: boolean;
1213
tabWidth: number;
1314
typescriptComponentPropsStatePrefix: 'type' | 'interface';
1415
};
1516

16-
export const replaceSnippetPlaceholders = (
17-
snippetString: string,
18-
extensionConfig: ExtensionSettings,
19-
) =>
17+
let prettierConfig: prettier.Options | null;
18+
prettier
19+
.resolveConfig('', { editorconfig: true })
20+
.then((config) => (prettierConfig = config));
21+
22+
export const extensionConfig = () =>
23+
workspace.getConfiguration(
24+
'reactSnippets.settings',
25+
) as unknown as ExtensionSettings;
26+
27+
const getPrettierConfig = (): Options => {
28+
const { semiColons, singleQuote, tabWidth, prettierEnabled } =
29+
extensionConfig();
30+
31+
return {
32+
parser: 'typescript',
33+
semi: semiColons,
34+
singleQuote,
35+
tabWidth,
36+
...(prettierEnabled && prettierConfig),
37+
};
38+
};
39+
40+
export const replaceSnippetPlaceholders = (snippetString: string) =>
2041
String(snippetString)
2142
.replace(
2243
new RegExp(SnippetPlaceholders.FileName, 'g'),
@@ -25,11 +46,7 @@ export const replaceSnippetPlaceholders = (
2546
.replace(new RegExp(SnippetPlaceholders.FirstTab, 'g'), '${1:first}')
2647
.replace(new RegExp(SnippetPlaceholders.SecondTab, 'g'), '${2:second}')
2748
.replace(new RegExp(SnippetPlaceholders.ThirdTab, 'g'), '${3:third}')
28-
.replace(new RegExp(SnippetPlaceholders.LastTab, 'g'), '$0')
29-
.replace(
30-
new RegExp(SnippetPlaceholders.TypeInterface, 'g'),
31-
extensionConfig.typescriptComponentPropsStatePrefix || 'type',
32-
);
49+
.replace(new RegExp(SnippetPlaceholders.LastTab, 'g'), '$0');
3350

3451
export const revertSnippetPlaceholders = (snippetString: string) =>
3552
String(snippetString)
@@ -42,37 +59,15 @@ export const revertSnippetPlaceholders = (snippetString: string) =>
4259
.replace(new RegExp(/\${3:third}/, 'g'), SnippetPlaceholders.ThirdTab)
4360
.replace(new RegExp(/\$0/, 'g'), SnippetPlaceholders.LastTab);
4461

45-
let prettierConfig: prettier.Options | null;
46-
47-
prettier
48-
.resolveConfig('', { editorconfig: true })
49-
.then((config) => (prettierConfig = config));
50-
51-
export const getPrettierConfig = (): Options => {
52-
const settings = workspace.getConfiguration(
53-
'reactSnippets.settings',
54-
) as unknown as ExtensionSettings;
55-
56-
return {
57-
semi: settings.semiColons,
58-
singleQuote: settings.quotes,
59-
tabWidth: settings.tabWidth,
60-
parser: 'typescript',
61-
...(settings.prettierEnabled && prettierConfig),
62-
};
62+
export const formatSnippet = (string: string) => {
63+
const prettierConfig = getPrettierConfig();
64+
return prettier.format(string, prettierConfig);
6365
};
6466

65-
export const parseSnippet = (body: string[]) => {
66-
const workspaceConfig = workspace.getConfiguration(
67-
'reactSnippets',
68-
) as unknown as ExtensionSettings;
67+
export const parseSnippet = (body: string | string[]) => {
6968
const snippetBody = typeof body === 'string' ? body : body.join('\n');
7069

71-
const prettierConfig = getPrettierConfig();
72-
const parsedBody = prettier.format(
73-
revertSnippetPlaceholders(snippetBody),
74-
prettierConfig,
70+
return replaceSnippetPlaceholders(
71+
formatSnippet(revertSnippetPlaceholders(snippetBody)),
7572
);
76-
77-
return replaceSnippetPlaceholders(parsedBody, workspaceConfig);
7873
};

‎src/index.ts

+11-16
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
commands,
33
ConfigurationChangeEvent,
44
ExtensionContext,
5-
window,
65
workspace,
76
} from 'vscode';
87

@@ -12,23 +11,19 @@ import snippetSearch from './snippetSearch';
1211
const showRestartMessage = async ({
1312
affectsConfiguration,
1413
}: ConfigurationChangeEvent) => {
15-
let timeoutId: NodeJS.Timeout | undefined;
1614
if (affectsConfiguration('reactSnippets')) {
1715
await generateSnippets();
18-
timeoutId && clearTimeout(timeoutId);
19-
timeoutId = setTimeout(() => {
20-
window
21-
.showWarningMessage(
22-
'React Snippets: Please restart VS Code to apply snippet formatting changes',
23-
'Restart VS Code',
24-
'Ignore',
25-
)
26-
.then((action?: string) => {
27-
if (action === 'Restart VS Code') {
28-
commands.executeCommand('workbench.action.reloadWindow');
29-
}
30-
});
31-
}, 3000);
16+
// window
17+
// .showWarningMessage(
18+
// 'React Snippets: Please restart VS Code to apply snippet formatting changes',
19+
// 'Restart VS Code',
20+
// 'Ignore',
21+
// )
22+
// .then((action?: string) => {
23+
// if (action === 'Restart VS Code') {
24+
// commands.executeCommand('workbench.action.reloadWindow');
25+
// }
26+
// });
3227
}
3328
};
3429

‎src/snippets/generated.json

+1,202-1
Large diffs are not rendered by default.

‎src/sourceSnippets/imports.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ const importSnippet: ImportsSnippet = {
146146
key: 'import',
147147
prefix: 'imp',
148148
body: [
149-
`import ${SnippetPlaceholders.SecondTab} from '${SnippetPlaceholders.FirstTab}'${SnippetPlaceholders.LastTab}`,
150-
'',
149+
`import ${SnippetPlaceholders.SecondTab} from '${SnippetPlaceholders.FirstTab}'`,
150+
SnippetPlaceholders.LastTab,
151151
],
152152
};
153153

‎src/sourceSnippets/propTypes.ts

+31-31
Original file line numberDiff line numberDiff line change
@@ -39,220 +39,220 @@ export type PropTypesSnippet = SnippetMapping<PropTypesMapping>;
3939
const propTypeArray: PropTypesSnippet = {
4040
key: 'propTypeArray',
4141
prefix: 'pta',
42-
body: ['PropTypes.array,'],
42+
body: ['PropTypes.array'],
4343
description: 'Array prop type',
4444
};
4545

4646
const propTypeArrayRequired: PropTypesSnippet = {
4747
key: 'propTypeArrayRequired',
4848
prefix: 'ptar',
49-
body: ['PropTypes.array.isRequired,'],
49+
body: ['PropTypes.array.isRequired'],
5050
description: 'Array prop type required',
5151
};
5252

5353
const propTypeBool: PropTypesSnippet = {
5454
key: 'propTypeBool',
5555
prefix: 'ptb',
56-
body: ['PropTypes.bool,'],
56+
body: ['PropTypes.bool'],
5757
description: 'Bool prop type',
5858
};
5959

6060
const propTypeBoolRequired: PropTypesSnippet = {
6161
key: 'propTypeBoolRequired',
6262
prefix: 'ptbr',
63-
body: ['PropTypes.bool.isRequired,'],
63+
body: ['PropTypes.bool.isRequired'],
6464
description: 'Bool prop type required',
6565
};
6666

6767
const propTypeFunc: PropTypesSnippet = {
6868
key: 'propTypeFunc',
6969
prefix: 'ptf',
70-
body: ['PropTypes.func,'],
70+
body: ['PropTypes.func'],
7171
description: 'Func prop type',
7272
};
7373

7474
const propTypeFuncRequired: PropTypesSnippet = {
7575
key: 'propTypeFuncRequired',
7676
prefix: 'ptfr',
77-
body: ['PropTypes.func.isRequired,'],
77+
body: ['PropTypes.func.isRequired'],
7878
description: 'Func prop type required',
7979
};
8080

8181
const propTypeNumber: PropTypesSnippet = {
8282
key: 'propTypeNumber',
8383
prefix: 'ptn',
84-
body: ['PropTypes.number,'],
84+
body: ['PropTypes.number'],
8585
description: 'Number prop type',
8686
};
8787

8888
const propTypeNumberRequired: PropTypesSnippet = {
8989
key: 'propTypeNumberRequired',
9090
prefix: 'ptnr',
91-
body: ['PropTypes.number.isRequired,'],
91+
body: ['PropTypes.number.isRequired'],
9292
description: 'Number prop type required',
9393
};
9494

9595
const propTypeObject: PropTypesSnippet = {
9696
key: 'propTypeObject',
9797
prefix: 'pto',
98-
body: ['PropTypes.object,'],
98+
body: ['PropTypes.object'],
9999
description: 'Object prop type',
100100
};
101101

102102
const propTypeObjectRequired: PropTypesSnippet = {
103103
key: 'propTypeObjectRequired',
104104
prefix: 'ptor',
105-
body: ['PropTypes.object.isRequired,'],
105+
body: ['PropTypes.object.isRequired'],
106106
description: 'Object prop type required',
107107
};
108108

109109
const propTypeString: PropTypesSnippet = {
110110
key: 'propTypeString',
111111
prefix: 'pts',
112-
body: ['PropTypes.string,'],
112+
body: ['PropTypes.string'],
113113
description: 'String prop type',
114114
};
115115

116116
const propTypeStringRequired: PropTypesSnippet = {
117117
key: 'propTypeStringRequired',
118118
prefix: 'ptsr',
119-
body: ['PropTypes.string.isRequired,'],
119+
body: ['PropTypes.string.isRequired'],
120120
description: 'String prop type required',
121121
};
122122

123123
const propTypeNode: PropTypesSnippet = {
124124
key: 'propTypeNode',
125125
prefix: 'ptnd',
126-
body: ['PropTypes.node,'],
126+
body: ['PropTypes.node'],
127127
description:
128128
'Anything that can be rendered: numbers, strings, elements or an array',
129129
};
130130

131131
const propTypeNodeRequired: PropTypesSnippet = {
132132
key: 'propTypeNodeRequired',
133133
prefix: 'ptndr',
134-
body: ['PropTypes.node.isRequired,'],
134+
body: ['PropTypes.node.isRequired'],
135135
description:
136136
'Anything that can be rendered: numbers, strings, elements or an array required',
137137
};
138138

139139
const propTypeElement: PropTypesSnippet = {
140140
key: 'propTypeElement',
141141
prefix: 'ptel',
142-
body: ['PropTypes.element,'],
142+
body: ['PropTypes.element'],
143143
description: 'React element prop type',
144144
};
145145

146146
const propTypeElementRequired: PropTypesSnippet = {
147147
key: 'propTypeElementRequired',
148148
prefix: 'ptelr',
149-
body: ['PropTypes.element.isRequired,'],
149+
body: ['PropTypes.element.isRequired'],
150150
description: 'React element prop type required',
151151
};
152152

153153
const propTypeInstanceOf: PropTypesSnippet = {
154154
key: 'propTypeInstanceOf',
155155
prefix: 'pti',
156-
body: ['PropTypes.instanceOf($0),'],
156+
body: ['PropTypes.instanceOf($0)'],
157157
description: 'Is an instance of a class prop type',
158158
};
159159

160160
const propTypeInstanceOfRequired: PropTypesSnippet = {
161161
key: 'propTypeInstanceOfRequired',
162162
prefix: 'ptir',
163-
body: ['PropTypes.instanceOf($0).isRequired,'],
163+
body: ['PropTypes.instanceOf($0).isRequired'],
164164
description: 'Is an instance of a class prop type required',
165165
};
166166

167167
const propTypeEnum: PropTypesSnippet = {
168168
key: 'propTypeEnum',
169169
prefix: 'pte',
170-
body: ["PropTypes.oneOf(['$0']),"],
170+
body: ["PropTypes.oneOf(['$0'])"],
171171
description: 'Prop type limited to specific values by treating it as an enum',
172172
};
173173

174174
const propTypeEnumRequired: PropTypesSnippet = {
175175
key: 'propTypeEnumRequired',
176176
prefix: 'pter',
177-
body: ["PropTypes.oneOf(['$0']).isRequired,"],
177+
body: ["PropTypes.oneOf(['$0']).isRequired"],
178178
description:
179179
'Prop type limited to specific values by treating it as an enum required',
180180
};
181181

182182
const propTypeOneOfType: PropTypesSnippet = {
183183
key: 'propTypeOneOfType',
184184
prefix: 'ptet',
185-
body: ['PropTypes.oneOfType([', ' $0', ']),'],
185+
body: ['PropTypes.oneOfType([', ' $0', '])'],
186186
description: 'An object that could be one of many types',
187187
};
188188

189189
const propTypeOneOfTypeRequired: PropTypesSnippet = {
190190
key: 'propTypeOneOfTypeRequired',
191191
prefix: 'ptetr',
192-
body: ['PropTypes.oneOfType([', ' $0', ']).isRequired,'],
192+
body: ['PropTypes.oneOfType([', ' $0', ']).isRequired'],
193193
description: 'An object that could be one of many types required',
194194
};
195195

196196
const propTypeArrayOf: PropTypesSnippet = {
197197
key: 'propTypeArrayOf',
198198
prefix: 'ptao',
199-
body: ['PropTypes.arrayOf($0),'],
199+
body: ['PropTypes.arrayOf($0)'],
200200
description: 'An array of a certain type',
201201
};
202202

203203
const propTypeArrayOfRequired: PropTypesSnippet = {
204204
key: 'propTypeArrayOfRequired',
205205
prefix: 'ptaor',
206-
body: ['PropTypes.arrayOf($0).isRequired,'],
206+
body: ['PropTypes.arrayOf($0).isRequired'],
207207
description: 'An array of a certain type required',
208208
};
209209

210210
const propTypeObjectOf: PropTypesSnippet = {
211211
key: 'propTypeObjectOf',
212212
prefix: 'ptoo',
213-
body: ['PropTypes.objectOf($0),'],
213+
body: ['PropTypes.objectOf($0)'],
214214
description: 'An object with property values of a certain type',
215215
};
216216

217217
const propTypeObjectOfRequired: PropTypesSnippet = {
218218
key: 'propTypeObjectOfRequired',
219219
prefix: 'ptoor',
220-
body: ['PropTypes.objectOf($0).isRequired,'],
220+
body: ['PropTypes.objectOf($0).isRequired'],
221221
description: 'An object with property values of a certain type required',
222222
};
223223

224224
const propTypeShape: PropTypesSnippet = {
225225
key: 'propTypeShape',
226226
prefix: 'ptsh',
227-
body: ['PropTypes.shape({', ' $0', '}),'],
227+
body: ['PropTypes.shape({', ' $0', '})'],
228228
description: 'An object taking on a particular shape',
229229
};
230230

231231
const propTypeShapeRequired: PropTypesSnippet = {
232232
key: 'propTypeShapeRequired',
233233
prefix: 'ptshr',
234-
body: ['PropTypes.shape({', ' $0', '}).isRequired,'],
234+
body: ['PropTypes.shape({', ' $0', '}).isRequired'],
235235
description: 'An object taking on a particular shape required',
236236
};
237237

238238
const propTypeExact: PropTypesSnippet = {
239239
key: 'propTypeExact',
240240
prefix: 'ptex',
241-
body: ['PropTypes.exact({', ' $0', '}),'],
241+
body: ['PropTypes.exact({', ' $0', '})'],
242242
description: 'An object with warnings on extra properties',
243243
};
244244

245245
const propTypeExactRequired: PropTypesSnippet = {
246246
key: 'propTypeExactRequired',
247247
prefix: 'ptexr',
248-
body: ['PropTypes.exact({', ' $0', '}).isRequired,'],
248+
body: ['PropTypes.exact({', ' $0', '}).isRequired'],
249249
description: 'An object with warnings on extra properties required',
250250
};
251251

252252
const propTypeAny: PropTypesSnippet = {
253253
key: 'propTypeAny',
254254
prefix: 'ptany',
255-
body: ['PropTypes.any,'],
255+
body: ['PropTypes.any'],
256256
description: 'Any prop type',
257257
};
258258

‎src/sourceSnippets/sharedSnippets.ts

+10-9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { extensionConfig } from '../helpers';
12
import { SnippetPlaceholders } from '../types';
23

34
export const reactComponent = ["import React, { Component } from 'react'", ''];
@@ -60,16 +61,16 @@ export const exportDefault = [
6061
'',
6162
];
6263

63-
export const propsTypeInterface = [
64-
`${SnippetPlaceholders.TypeInterface} Props {}`,
65-
'',
66-
];
67-
export const stateTypeInterface = [
68-
`${SnippetPlaceholders.TypeInterface} State {}`,
69-
'',
70-
];
64+
const typeInterfacePrefix = (name: string) => {
65+
const { typescriptComponentPropsStatePrefix } = extensionConfig();
66+
return typescriptComponentPropsStatePrefix === 'type'
67+
? `type ${name} =`
68+
: `interface ${name} {`;
69+
};
70+
71+
export const propsTypeInterface = [`${typeInterfacePrefix('Props')} {}`, ''];
72+
export const stateTypeInterface = [`${typeInterfacePrefix('State')} {}`, ''];
7173
export const propsStateInterface = [
7274
...propsTypeInterface,
7375
...stateTypeInterface,
74-
'',
7576
];

‎src/sourceSnippets/typescript.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const exportInterface: TypescriptSnippet = {
4444
key: 'exportInterface',
4545
prefix: 'expint',
4646
body: [
47-
`export exportInterface ${SnippetPlaceholders.FirstTab} = {${SnippetPlaceholders.LastTab}}`,
47+
`export interface ${SnippetPlaceholders.FirstTab} {${SnippetPlaceholders.LastTab}}`,
4848
'',
4949
],
5050
};

‎src/types.ts

-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ export enum SnippetPlaceholders {
1111
SecondTab = 'SECOND_TAB',
1212
ThirdTab = 'THIRD_TAB',
1313
LastTab = 'LAST_TAB',
14-
TypeInterface = 'TYPE_INTERFACE',
1514
}

‎yarn.lock

+16-199
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,6 @@
267267
"@nodelib/fs.scandir" "2.1.5"
268268
fastq "^1.6.0"
269269

270-
"@tootallnate/once@1":
271-
version "1.1.2"
272-
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
273-
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
274-
275270
"@types/json-schema@^7.0.9":
276271
version "7.0.9"
277272
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
@@ -292,10 +287,10 @@
292287
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281"
293288
integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==
294289

295-
"@types/vscode@1.63.1":
296-
version "1.63.1"
297-
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.63.1.tgz#b40f9f18055e2c9498ae543d18c59fbd6ef2e8a3"
298-
integrity sha512-Z+ZqjRcnGfHP86dvx/BtSwWyZPKQ/LBdmAVImY82TphyjOw2KgTKcp7Nx92oNwCTsHzlshwexAG/WiY2JuUm3g==
290+
"@types/vscode@1.60.0":
291+
version "1.60.0"
292+
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.60.0.tgz#9330c317691b4f53441a18b598768faeeb71618a"
293+
integrity sha512-wZt3VTmzYrgZ0l/3QmEbCq4KAJ71K3/hmMQ/nfpv84oH8e81KKwPEoQ5v8dNCxfHFVJ1JabHKmCvqdYOoVm1Ow==
299294

300295
"@typescript-eslint/eslint-plugin@5.8.1":
301296
version "5.8.1"
@@ -377,20 +372,6 @@ acorn@^8.6.0:
377372
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
378373
integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
379374

380-
agent-base@4, agent-base@^4.3.0:
381-
version "4.3.0"
382-
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
383-
integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
384-
dependencies:
385-
es6-promisify "^5.0.0"
386-
387-
agent-base@6:
388-
version "6.0.2"
389-
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
390-
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
391-
dependencies:
392-
debug "4"
393-
394375
ajv@^6.10.0, ajv@^6.12.4:
395376
version "6.12.6"
396377
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -488,16 +469,6 @@ braces@^3.0.1, braces@~3.0.2:
488469
dependencies:
489470
fill-range "^7.0.1"
490471

491-
browser-stdout@1.3.1:
492-
version "1.3.1"
493-
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
494-
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
495-
496-
buffer-from@^1.0.0:
497-
version "1.1.2"
498-
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
499-
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
500-
501472
call-bind@^1.0.0, call-bind@^1.0.2:
502473
version "1.0.2"
503474
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -567,11 +538,6 @@ color-name@~1.1.4:
567538
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
568539
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
569540

570-
commander@2.15.1:
571-
version "2.15.1"
572-
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
573-
integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
574-
575541
commander@^4.0.1:
576542
version "4.1.1"
577543
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
@@ -598,34 +564,27 @@ cross-spawn@^7.0.2:
598564
shebang-command "^2.0.0"
599565
which "^2.0.1"
600566

601-
debug@3.1.0:
602-
version "3.1.0"
603-
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
604-
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
605-
dependencies:
606-
ms "2.0.0"
607-
608-
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
609-
version "4.3.3"
610-
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
611-
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
612-
dependencies:
613-
ms "2.1.2"
614-
615567
debug@^2.6.9:
616568
version "2.6.9"
617569
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
618570
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
619571
dependencies:
620572
ms "2.0.0"
621573

622-
debug@^3.1.0, debug@^3.2.7:
574+
debug@^3.2.7:
623575
version "3.2.7"
624576
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
625577
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
626578
dependencies:
627579
ms "^2.1.1"
628580

581+
debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
582+
version "4.3.3"
583+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
584+
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
585+
dependencies:
586+
ms "2.1.2"
587+
629588
deep-is@^0.1.3:
630589
version "0.1.4"
631590
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -638,11 +597,6 @@ define-properties@^1.1.3:
638597
dependencies:
639598
object-keys "^1.0.12"
640599

641-
diff@3.5.0:
642-
version "3.5.0"
643-
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
644-
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
645-
646600
dir-glob@^3.0.1:
647601
version "3.0.1"
648602
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -706,19 +660,7 @@ es-to-primitive@^1.2.1:
706660
is-date-object "^1.0.1"
707661
is-symbol "^1.0.2"
708662

709-
es6-promise@^4.0.3:
710-
version "4.2.8"
711-
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
712-
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
713-
714-
es6-promisify@^5.0.0:
715-
version "5.0.0"
716-
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
717-
integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
718-
dependencies:
719-
es6-promise "^4.0.3"
720-
721-
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
663+
escape-string-regexp@^1.0.5:
722664
version "1.0.5"
723665
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
724666
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -1051,19 +993,7 @@ glob-parent@^6.0.1:
1051993
dependencies:
1052994
is-glob "^4.0.3"
1053995

1054-
glob@7.1.2:
1055-
version "7.1.2"
1056-
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
1057-
integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
1058-
dependencies:
1059-
fs.realpath "^1.0.0"
1060-
inflight "^1.0.4"
1061-
inherits "2"
1062-
minimatch "^3.0.4"
1063-
once "^1.3.0"
1064-
path-is-absolute "^1.0.0"
1065-
1066-
glob@^7.0.0, glob@^7.1.2, glob@^7.1.3:
996+
glob@^7.0.0, glob@^7.1.3:
1067997
version "7.2.0"
1068998
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
1069999
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -1099,11 +1029,6 @@ globby@^11.0.4:
10991029
merge2 "^1.3.0"
11001030
slash "^3.0.0"
11011031

1102-
growl@1.10.5:
1103-
version "1.10.5"
1104-
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
1105-
integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
1106-
11071032
has-bigints@^1.0.1:
11081033
version "1.0.1"
11091034
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
@@ -1138,44 +1063,6 @@ has@^1.0.3:
11381063
dependencies:
11391064
function-bind "^1.1.1"
11401065

1141-
he@1.1.1:
1142-
version "1.1.1"
1143-
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
1144-
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
1145-
1146-
http-proxy-agent@^2.1.0:
1147-
version "2.1.0"
1148-
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
1149-
integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
1150-
dependencies:
1151-
agent-base "4"
1152-
debug "3.1.0"
1153-
1154-
http-proxy-agent@^4.0.1:
1155-
version "4.0.1"
1156-
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
1157-
integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
1158-
dependencies:
1159-
"@tootallnate/once" "1"
1160-
agent-base "6"
1161-
debug "4"
1162-
1163-
https-proxy-agent@^2.2.1:
1164-
version "2.2.4"
1165-
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
1166-
integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
1167-
dependencies:
1168-
agent-base "^4.3.0"
1169-
debug "^3.1.0"
1170-
1171-
https-proxy-agent@^5.0.0:
1172-
version "5.0.0"
1173-
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
1174-
integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
1175-
dependencies:
1176-
agent-base "6"
1177-
debug "4"
1178-
11791066
ignore@^4.0.6:
11801067
version "4.0.6"
11811068
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
@@ -1413,47 +1300,18 @@ micromatch@^4.0.4:
14131300
braces "^3.0.1"
14141301
picomatch "^2.2.3"
14151302

1416-
minimatch@3.0.4, minimatch@^3.0.4:
1303+
minimatch@^3.0.4:
14171304
version "3.0.4"
14181305
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
14191306
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
14201307
dependencies:
14211308
brace-expansion "^1.1.7"
14221309

1423-
minimist@0.0.8:
1424-
version "0.0.8"
1425-
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1426-
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
1427-
14281310
minimist@^1.2.0:
14291311
version "1.2.5"
14301312
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
14311313
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
14321314

1433-
mkdirp@0.5.1:
1434-
version "0.5.1"
1435-
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1436-
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
1437-
dependencies:
1438-
minimist "0.0.8"
1439-
1440-
mocha@^5.2.0:
1441-
version "5.2.0"
1442-
resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
1443-
integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==
1444-
dependencies:
1445-
browser-stdout "1.3.1"
1446-
commander "2.15.1"
1447-
debug "3.1.0"
1448-
diff "3.5.0"
1449-
escape-string-regexp "1.0.5"
1450-
glob "7.1.2"
1451-
growl "1.10.5"
1452-
he "1.1.1"
1453-
minimatch "3.0.4"
1454-
mkdirp "0.5.1"
1455-
supports-color "5.4.0"
1456-
14571315
ms@2.0.0:
14581316
version "2.0.0"
14591317
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -1676,7 +1534,7 @@ safe-buffer@~5.1.1:
16761534
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
16771535
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
16781536

1679-
semver@^5.4.1, semver@^5.6.0:
1537+
semver@^5.6.0:
16801538
version "5.7.1"
16811539
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
16821540
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -1724,24 +1582,11 @@ slash@^3.0.0:
17241582
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
17251583
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
17261584

1727-
source-map-support@^0.5.0:
1728-
version "0.5.21"
1729-
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
1730-
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
1731-
dependencies:
1732-
buffer-from "^1.0.0"
1733-
source-map "^0.6.0"
1734-
17351585
source-map@^0.5.0:
17361586
version "0.5.7"
17371587
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
17381588
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
17391589

1740-
source-map@^0.6.0:
1741-
version "0.6.1"
1742-
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1743-
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1744-
17451590
string.prototype.trimend@^1.0.4:
17461591
version "1.0.4"
17471592
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
@@ -1775,13 +1620,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
17751620
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
17761621
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
17771622

1778-
supports-color@5.4.0:
1779-
version "5.4.0"
1780-
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
1781-
integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==
1782-
dependencies:
1783-
has-flag "^3.0.0"
1784-
17851623
supports-color@^5.3.0:
17861624
version "5.5.0"
17871625
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -1874,27 +1712,6 @@ v8-compile-cache@^2.0.3:
18741712
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
18751713
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
18761714

1877-
vscode-test@^0.4.1:
1878-
version "0.4.3"
1879-
resolved "https://registry.yarnpkg.com/vscode-test/-/vscode-test-0.4.3.tgz#461ebf25fc4bc93d77d982aed556658a2e2b90b8"
1880-
integrity sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w==
1881-
dependencies:
1882-
http-proxy-agent "^2.1.0"
1883-
https-proxy-agent "^2.2.1"
1884-
1885-
vscode@1.1.37:
1886-
version "1.1.37"
1887-
resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.37.tgz#c2a770bee4bb3fff765e2b72c7bcc813b8a6bb0a"
1888-
integrity sha512-vJNj6IlN7IJPdMavlQa1KoFB3Ihn06q1AiN3ZFI/HfzPNzbKZWPPuiU+XkpNOfGU5k15m4r80nxNPlM7wcc0wg==
1889-
dependencies:
1890-
glob "^7.1.2"
1891-
http-proxy-agent "^4.0.1"
1892-
https-proxy-agent "^5.0.0"
1893-
mocha "^5.2.0"
1894-
semver "^5.4.1"
1895-
source-map-support "^0.5.0"
1896-
vscode-test "^0.4.1"
1897-
18981715
which-boxed-primitive@^1.0.2:
18991716
version "1.0.2"
19001717
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"

0 commit comments

Comments
 (0)
Please sign in to comment.