diff options
author | Zac Pullar-Strecker <[email protected]> | 2020-07-31 03:12:44 +0100 |
---|---|---|
committer | Zac Pullar-Strecker <[email protected]> | 2020-07-31 03:12:44 +0100 |
commit | f05d7b41a719d848844b054a16477b29d0f063c6 (patch) | |
tree | 0a8a0946e8aef2ce64d4c13d0035ba41cce2daf3 /editors/code | |
parent | 73ff610e41959e3e7c78a2b4b25b086883132956 (diff) | |
parent | 6b7cb8b5ab539fc4333ce34bc29bf77c976f232a (diff) |
Merge remote-tracking branch 'upstream/master' into 503-hover-doc-links
Hasn't fixed tests yet.
Diffstat (limited to 'editors/code')
-rw-r--r-- | editors/code/package-lock.json | 972 | ||||
-rw-r--r-- | editors/code/package.json | 111 | ||||
-rw-r--r-- | editors/code/rollup.config.js | 3 | ||||
-rw-r--r-- | editors/code/rust.tmGrammar.json | 4 | ||||
-rw-r--r-- | editors/code/src/client.ts | 8 | ||||
-rw-r--r-- | editors/code/src/commands.ts | 51 | ||||
-rw-r--r-- | editors/code/src/config.ts | 14 | ||||
-rw-r--r-- | editors/code/src/ctx.ts | 43 | ||||
-rw-r--r-- | editors/code/src/debug.ts | 16 | ||||
-rw-r--r-- | editors/code/src/lsp_ext.ts | 10 | ||||
-rw-r--r-- | editors/code/src/main.ts | 54 | ||||
-rw-r--r-- | editors/code/src/net.ts | 21 | ||||
-rw-r--r-- | editors/code/src/persistent_state.ts | 2 | ||||
-rw-r--r-- | editors/code/src/run.ts | 31 | ||||
-rw-r--r-- | editors/code/src/snippets.ts | 4 | ||||
-rw-r--r-- | editors/code/src/util.ts | 45 | ||||
-rw-r--r-- | editors/code/tests/unit/index.ts | 4 | ||||
-rw-r--r-- | editors/code/tests/unit/runnable_env.test.ts | 118 | ||||
-rw-r--r-- | editors/code/tsconfig.json | 2 |
19 files changed, 829 insertions, 684 deletions
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json index 3b4a31682..b0f24b10a 100644 --- a/editors/code/package-lock.json +++ b/editors/code/package-lock.json | |||
@@ -5,35 +5,35 @@ | |||
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | "@babel/code-frame": { | 7 | "@babel/code-frame": { |
8 | "version": "7.8.3", | 8 | "version": "7.10.3", |
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", |
10 | "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | 10 | "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", |
11 | "dev": true, | 11 | "dev": true, |
12 | "requires": { | 12 | "requires": { |
13 | "@babel/highlight": "^7.8.3" | 13 | "@babel/highlight": "^7.10.3" |
14 | } | 14 | } |
15 | }, | 15 | }, |
16 | "@babel/helper-validator-identifier": { | 16 | "@babel/helper-validator-identifier": { |
17 | "version": "7.9.5", | 17 | "version": "7.10.3", |
18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", | 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", |
19 | "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", | 19 | "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", |
20 | "dev": true | 20 | "dev": true |
21 | }, | 21 | }, |
22 | "@babel/highlight": { | 22 | "@babel/highlight": { |
23 | "version": "7.9.0", | 23 | "version": "7.10.3", |
24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", | 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", |
25 | "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", | 25 | "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", |
26 | "dev": true, | 26 | "dev": true, |
27 | "requires": { | 27 | "requires": { |
28 | "@babel/helper-validator-identifier": "^7.9.0", | 28 | "@babel/helper-validator-identifier": "^7.10.3", |
29 | "chalk": "^2.0.0", | 29 | "chalk": "^2.0.0", |
30 | "js-tokens": "^4.0.0" | 30 | "js-tokens": "^4.0.0" |
31 | } | 31 | } |
32 | }, | 32 | }, |
33 | "@rollup/plugin-commonjs": { | 33 | "@rollup/plugin-commonjs": { |
34 | "version": "12.0.0", | 34 | "version": "13.0.0", |
35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz", | 35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz", |
36 | "integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==", | 36 | "integrity": "sha512-Anxc3qgkAi7peAyesTqGYidG5GRim9jtg8xhmykNaZkImtvjA7Wsqep08D2mYsqw1IF7rA3lYfciLgzUSgRoqw==", |
37 | "dev": true, | 37 | "dev": true, |
38 | "requires": { | 38 | "requires": { |
39 | "@rollup/pluginutils": "^3.0.8", | 39 | "@rollup/pluginutils": "^3.0.8", |
@@ -46,9 +46,9 @@ | |||
46 | } | 46 | } |
47 | }, | 47 | }, |
48 | "@rollup/plugin-node-resolve": { | 48 | "@rollup/plugin-node-resolve": { |
49 | "version": "8.0.0", | 49 | "version": "8.1.0", |
50 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.0.tgz", | 50 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.1.0.tgz", |
51 | "integrity": "sha512-5poJCChrkVggXXND/sQ7yNqwjUNT4fP31gpRWCnSNnlXuUXTCMHT33xZrTGxgjm5Rl18MHj7iEzlCT8rYWwQSA==", | 51 | "integrity": "sha512-ovq7ZM3JJYUUmEjjO+H8tnUdmQmdQudJB7xruX8LFZ1W2q8jXdPUS6SsIYip8ByOApu4RR7729Am9WhCeCMiHA==", |
52 | "dev": true, | 52 | "dev": true, |
53 | "requires": { | 53 | "requires": { |
54 | "@rollup/pluginutils": "^3.0.8", | 54 | "@rollup/pluginutils": "^3.0.8", |
@@ -89,19 +89,12 @@ | |||
89 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", | 89 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", |
90 | "dev": true | 90 | "dev": true |
91 | }, | 91 | }, |
92 | "@types/events": { | ||
93 | "version": "3.0.0", | ||
94 | "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", | ||
95 | "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", | ||
96 | "dev": true | ||
97 | }, | ||
98 | "@types/glob": { | 92 | "@types/glob": { |
99 | "version": "7.1.1", | 93 | "version": "7.1.2", |
100 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", | 94 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", |
101 | "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", | 95 | "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", |
102 | "dev": true, | 96 | "dev": true, |
103 | "requires": { | 97 | "requires": { |
104 | "@types/events": "*", | ||
105 | "@types/minimatch": "*", | 98 | "@types/minimatch": "*", |
106 | "@types/node": "*" | 99 | "@types/node": "*" |
107 | } | 100 | } |
@@ -125,9 +118,9 @@ | |||
125 | "dev": true | 118 | "dev": true |
126 | }, | 119 | }, |
127 | "@types/node": { | 120 | "@types/node": { |
128 | "version": "14.0.5", | 121 | "version": "12.7.12", |
129 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", | 122 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", |
130 | "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==", | 123 | "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", |
131 | "dev": true | 124 | "dev": true |
132 | }, | 125 | }, |
133 | "@types/node-fetch": { | 126 | "@types/node-fetch": { |
@@ -156,18 +149,46 @@ | |||
156 | "dev": true | 149 | "dev": true |
157 | }, | 150 | }, |
158 | "@typescript-eslint/eslint-plugin": { | 151 | "@typescript-eslint/eslint-plugin": { |
159 | "version": "3.0.0", | 152 | "version": "3.4.0", |
160 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.0.tgz", | 153 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.4.0.tgz", |
161 | "integrity": "sha512-lcZ0M6jD4cqGccYOERKdMtg+VWpoq3NSnWVxpc/AwAy0zhkUYVioOUZmfNqiNH8/eBNGhCn6HXd6mKIGRgNc1Q==", | 154 | "integrity": "sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ==", |
162 | "dev": true, | 155 | "dev": true, |
163 | "requires": { | 156 | "requires": { |
164 | "@typescript-eslint/experimental-utils": "3.0.0", | 157 | "@typescript-eslint/experimental-utils": "3.4.0", |
158 | "debug": "^4.1.1", | ||
165 | "functional-red-black-tree": "^1.0.1", | 159 | "functional-red-black-tree": "^1.0.1", |
166 | "regexpp": "^3.0.0", | 160 | "regexpp": "^3.0.0", |
167 | "semver": "^7.3.2", | 161 | "semver": "^7.3.2", |
168 | "tsutils": "^3.17.1" | 162 | "tsutils": "^3.17.1" |
169 | }, | 163 | }, |
170 | "dependencies": { | 164 | "dependencies": { |
165 | "@typescript-eslint/experimental-utils": { | ||
166 | "version": "3.4.0", | ||
167 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz", | ||
168 | "integrity": "sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==", | ||
169 | "dev": true, | ||
170 | "requires": { | ||
171 | "@types/json-schema": "^7.0.3", | ||
172 | "@typescript-eslint/typescript-estree": "3.4.0", | ||
173 | "eslint-scope": "^5.0.0", | ||
174 | "eslint-utils": "^2.0.0" | ||
175 | } | ||
176 | }, | ||
177 | "@typescript-eslint/typescript-estree": { | ||
178 | "version": "3.4.0", | ||
179 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz", | ||
180 | "integrity": "sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==", | ||
181 | "dev": true, | ||
182 | "requires": { | ||
183 | "debug": "^4.1.1", | ||
184 | "eslint-visitor-keys": "^1.1.0", | ||
185 | "glob": "^7.1.6", | ||
186 | "is-glob": "^4.0.1", | ||
187 | "lodash": "^4.17.15", | ||
188 | "semver": "^7.3.2", | ||
189 | "tsutils": "^3.17.1" | ||
190 | } | ||
191 | }, | ||
171 | "semver": { | 192 | "semver": { |
172 | "version": "7.3.2", | 193 | "version": "7.3.2", |
173 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", | 194 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", |
@@ -177,33 +198,33 @@ | |||
177 | } | 198 | } |
178 | }, | 199 | }, |
179 | "@typescript-eslint/experimental-utils": { | 200 | "@typescript-eslint/experimental-utils": { |
180 | "version": "3.0.0", | 201 | "version": "3.4.0", |
181 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.0.tgz", | 202 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz", |
182 | "integrity": "sha512-BN0vmr9N79M9s2ctITtChRuP1+Dls0x/wlg0RXW1yQ7WJKPurg6X3Xirv61J2sjPif4F8SLsFMs5Nzte0WYoTQ==", | 203 | "integrity": "sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==", |
183 | "dev": true, | 204 | "dev": true, |
184 | "requires": { | 205 | "requires": { |
185 | "@types/json-schema": "^7.0.3", | 206 | "@types/json-schema": "^7.0.3", |
186 | "@typescript-eslint/typescript-estree": "3.0.0", | 207 | "@typescript-eslint/typescript-estree": "3.4.0", |
187 | "eslint-scope": "^5.0.0", | 208 | "eslint-scope": "^5.0.0", |
188 | "eslint-utils": "^2.0.0" | 209 | "eslint-utils": "^2.0.0" |
189 | } | 210 | } |
190 | }, | 211 | }, |
191 | "@typescript-eslint/parser": { | 212 | "@typescript-eslint/parser": { |
192 | "version": "3.0.0", | 213 | "version": "3.4.0", |
193 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.0.tgz", | 214 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.4.0.tgz", |
194 | "integrity": "sha512-8RRCA9KLxoFNO0mQlrLZA0reGPd/MsobxZS/yPFj+0/XgMdS8+mO8mF3BDj2ZYQj03rkayhSJtF1HAohQ3iylw==", | 215 | "integrity": "sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA==", |
195 | "dev": true, | 216 | "dev": true, |
196 | "requires": { | 217 | "requires": { |
197 | "@types/eslint-visitor-keys": "^1.0.0", | 218 | "@types/eslint-visitor-keys": "^1.0.0", |
198 | "@typescript-eslint/experimental-utils": "3.0.0", | 219 | "@typescript-eslint/experimental-utils": "3.4.0", |
199 | "@typescript-eslint/typescript-estree": "3.0.0", | 220 | "@typescript-eslint/typescript-estree": "3.4.0", |
200 | "eslint-visitor-keys": "^1.1.0" | 221 | "eslint-visitor-keys": "^1.1.0" |
201 | } | 222 | } |
202 | }, | 223 | }, |
203 | "@typescript-eslint/typescript-estree": { | 224 | "@typescript-eslint/typescript-estree": { |
204 | "version": "3.0.0", | 225 | "version": "3.4.0", |
205 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.0.tgz", | 226 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz", |
206 | "integrity": "sha512-nevQvHyNghsfLrrByzVIH4ZG3NROgJ8LZlfh3ddwPPH4CH7W4GAiSx5qu+xHuX5pWsq6q/eqMc1io840ZhAnUg==", | 227 | "integrity": "sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==", |
207 | "dev": true, | 228 | "dev": true, |
208 | "requires": { | 229 | "requires": { |
209 | "debug": "^4.1.1", | 230 | "debug": "^4.1.1", |
@@ -224,9 +245,9 @@ | |||
224 | } | 245 | } |
225 | }, | 246 | }, |
226 | "acorn": { | 247 | "acorn": { |
227 | "version": "7.2.0", | 248 | "version": "7.3.1", |
228 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", | 249 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", |
229 | "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", | 250 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", |
230 | "dev": true | 251 | "dev": true |
231 | }, | 252 | }, |
232 | "acorn-jsx": { | 253 | "acorn-jsx": { |
@@ -262,23 +283,6 @@ | |||
262 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", | 283 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", |
263 | "dev": true | 284 | "dev": true |
264 | }, | 285 | }, |
265 | "ansi-escapes": { | ||
266 | "version": "4.3.1", | ||
267 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", | ||
268 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", | ||
269 | "dev": true, | ||
270 | "requires": { | ||
271 | "type-fest": "^0.11.0" | ||
272 | }, | ||
273 | "dependencies": { | ||
274 | "type-fest": { | ||
275 | "version": "0.11.0", | ||
276 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", | ||
277 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", | ||
278 | "dev": true | ||
279 | } | ||
280 | } | ||
281 | }, | ||
282 | "ansi-regex": { | 286 | "ansi-regex": { |
283 | "version": "5.0.0", | 287 | "version": "5.0.0", |
284 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | 288 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", |
@@ -313,6 +317,18 @@ | |||
313 | "sprintf-js": "~1.0.2" | 317 | "sprintf-js": "~1.0.2" |
314 | } | 318 | } |
315 | }, | 319 | }, |
320 | "array.prototype.map": { | ||
321 | "version": "1.0.2", | ||
322 | "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", | ||
323 | "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", | ||
324 | "dev": true, | ||
325 | "requires": { | ||
326 | "define-properties": "^1.1.3", | ||
327 | "es-abstract": "^1.17.0-next.1", | ||
328 | "es-array-method-boxes-properly": "^1.0.0", | ||
329 | "is-string": "^1.0.4" | ||
330 | } | ||
331 | }, | ||
316 | "astral-regex": { | 332 | "astral-regex": { |
317 | "version": "1.0.0", | 333 | "version": "1.0.0", |
318 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | 334 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
@@ -344,9 +360,9 @@ | |||
344 | "dev": true | 360 | "dev": true |
345 | }, | 361 | }, |
346 | "binary-extensions": { | 362 | "binary-extensions": { |
347 | "version": "2.0.0", | 363 | "version": "2.1.0", |
348 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", | 364 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", |
349 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", | 365 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", |
350 | "dev": true | 366 | "dev": true |
351 | }, | 367 | }, |
352 | "boolbase": { | 368 | "boolbase": { |
@@ -415,12 +431,6 @@ | |||
415 | "supports-color": "^5.3.0" | 431 | "supports-color": "^5.3.0" |
416 | } | 432 | } |
417 | }, | 433 | }, |
418 | "chardet": { | ||
419 | "version": "0.7.0", | ||
420 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", | ||
421 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | ||
422 | "dev": true | ||
423 | }, | ||
424 | "cheerio": { | 434 | "cheerio": { |
425 | "version": "1.0.0-rc.3", | 435 | "version": "1.0.0-rc.3", |
426 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", | 436 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", |
@@ -436,36 +446,21 @@ | |||
436 | } | 446 | } |
437 | }, | 447 | }, |
438 | "chokidar": { | 448 | "chokidar": { |
439 | "version": "3.3.0", | 449 | "version": "3.3.1", |
440 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", | 450 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", |
441 | "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", | 451 | "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", |
442 | "dev": true, | 452 | "dev": true, |
443 | "requires": { | 453 | "requires": { |
444 | "anymatch": "~3.1.1", | 454 | "anymatch": "~3.1.1", |
445 | "braces": "~3.0.2", | 455 | "braces": "~3.0.2", |
446 | "fsevents": "~2.1.1", | 456 | "fsevents": "~2.1.2", |
447 | "glob-parent": "~5.1.0", | 457 | "glob-parent": "~5.1.0", |
448 | "is-binary-path": "~2.1.0", | 458 | "is-binary-path": "~2.1.0", |
449 | "is-glob": "~4.0.1", | 459 | "is-glob": "~4.0.1", |
450 | "normalize-path": "~3.0.0", | 460 | "normalize-path": "~3.0.0", |
451 | "readdirp": "~3.2.0" | 461 | "readdirp": "~3.3.0" |
452 | } | 462 | } |
453 | }, | 463 | }, |
454 | "cli-cursor": { | ||
455 | "version": "3.1.0", | ||
456 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | ||
457 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", | ||
458 | "dev": true, | ||
459 | "requires": { | ||
460 | "restore-cursor": "^3.1.0" | ||
461 | } | ||
462 | }, | ||
463 | "cli-width": { | ||
464 | "version": "2.2.1", | ||
465 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", | ||
466 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", | ||
467 | "dev": true | ||
468 | }, | ||
469 | "cliui": { | 464 | "cliui": { |
470 | "version": "5.0.0", | 465 | "version": "5.0.0", |
471 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | 466 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", |
@@ -483,29 +478,6 @@ | |||
483 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 478 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
484 | "dev": true | 479 | "dev": true |
485 | }, | 480 | }, |
486 | "emoji-regex": { | ||
487 | "version": "7.0.3", | ||
488 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
489 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
490 | "dev": true | ||
491 | }, | ||
492 | "is-fullwidth-code-point": { | ||
493 | "version": "2.0.0", | ||
494 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
495 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
496 | "dev": true | ||
497 | }, | ||
498 | "string-width": { | ||
499 | "version": "3.1.0", | ||
500 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
501 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
502 | "dev": true, | ||
503 | "requires": { | ||
504 | "emoji-regex": "^7.0.1", | ||
505 | "is-fullwidth-code-point": "^2.0.0", | ||
506 | "strip-ansi": "^5.1.0" | ||
507 | } | ||
508 | }, | ||
509 | "strip-ansi": { | 481 | "strip-ansi": { |
510 | "version": "5.2.0", | 482 | "version": "5.2.0", |
511 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 483 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
@@ -566,9 +538,9 @@ | |||
566 | "dev": true | 538 | "dev": true |
567 | }, | 539 | }, |
568 | "cross-spawn": { | 540 | "cross-spawn": { |
569 | "version": "7.0.2", | 541 | "version": "7.0.3", |
570 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", | 542 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", |
571 | "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", | 543 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", |
572 | "dev": true, | 544 | "dev": true, |
573 | "requires": { | 545 | "requires": { |
574 | "path-key": "^3.1.0", | 546 | "path-key": "^3.1.0", |
@@ -649,9 +621,9 @@ | |||
649 | "dev": true | 621 | "dev": true |
650 | }, | 622 | }, |
651 | "diff": { | 623 | "diff": { |
652 | "version": "3.5.0", | 624 | "version": "4.0.2", |
653 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | 625 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", |
654 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | 626 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", |
655 | "dev": true | 627 | "dev": true |
656 | }, | 628 | }, |
657 | "doctrine": { | 629 | "doctrine": { |
@@ -719,11 +691,20 @@ | |||
719 | } | 691 | } |
720 | }, | 692 | }, |
721 | "emoji-regex": { | 693 | "emoji-regex": { |
722 | "version": "8.0.0", | 694 | "version": "7.0.3", |
723 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | 695 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", |
724 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | 696 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", |
725 | "dev": true | 697 | "dev": true |
726 | }, | 698 | }, |
699 | "enquirer": { | ||
700 | "version": "2.3.5", | ||
701 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", | ||
702 | "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", | ||
703 | "dev": true, | ||
704 | "requires": { | ||
705 | "ansi-colors": "^3.2.1" | ||
706 | } | ||
707 | }, | ||
727 | "entities": { | 708 | "entities": { |
728 | "version": "1.1.2", | 709 | "version": "1.1.2", |
729 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | 710 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", |
@@ -731,22 +712,43 @@ | |||
731 | "dev": true | 712 | "dev": true |
732 | }, | 713 | }, |
733 | "es-abstract": { | 714 | "es-abstract": { |
734 | "version": "1.17.5", | 715 | "version": "1.17.6", |
735 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", | 716 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", |
736 | "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", | 717 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", |
737 | "dev": true, | 718 | "dev": true, |
738 | "requires": { | 719 | "requires": { |
739 | "es-to-primitive": "^1.2.1", | 720 | "es-to-primitive": "^1.2.1", |
740 | "function-bind": "^1.1.1", | 721 | "function-bind": "^1.1.1", |
741 | "has": "^1.0.3", | 722 | "has": "^1.0.3", |
742 | "has-symbols": "^1.0.1", | 723 | "has-symbols": "^1.0.1", |
743 | "is-callable": "^1.1.5", | 724 | "is-callable": "^1.2.0", |
744 | "is-regex": "^1.0.5", | 725 | "is-regex": "^1.1.0", |
745 | "object-inspect": "^1.7.0", | 726 | "object-inspect": "^1.7.0", |
746 | "object-keys": "^1.1.1", | 727 | "object-keys": "^1.1.1", |
747 | "object.assign": "^4.1.0", | 728 | "object.assign": "^4.1.0", |
748 | "string.prototype.trimleft": "^2.1.1", | 729 | "string.prototype.trimend": "^1.0.1", |
749 | "string.prototype.trimright": "^2.1.1" | 730 | "string.prototype.trimstart": "^1.0.1" |
731 | } | ||
732 | }, | ||
733 | "es-array-method-boxes-properly": { | ||
734 | "version": "1.0.0", | ||
735 | "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", | ||
736 | "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", | ||
737 | "dev": true | ||
738 | }, | ||
739 | "es-get-iterator": { | ||
740 | "version": "1.1.0", | ||
741 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", | ||
742 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", | ||
743 | "dev": true, | ||
744 | "requires": { | ||
745 | "es-abstract": "^1.17.4", | ||
746 | "has-symbols": "^1.0.1", | ||
747 | "is-arguments": "^1.0.4", | ||
748 | "is-map": "^2.0.1", | ||
749 | "is-set": "^2.0.1", | ||
750 | "is-string": "^1.0.5", | ||
751 | "isarray": "^2.0.5" | ||
750 | } | 752 | } |
751 | }, | 753 | }, |
752 | "es-to-primitive": { | 754 | "es-to-primitive": { |
@@ -782,9 +784,9 @@ | |||
782 | "dev": true | 784 | "dev": true |
783 | }, | 785 | }, |
784 | "eslint": { | 786 | "eslint": { |
785 | "version": "7.1.0", | 787 | "version": "7.3.1", |
786 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz", | 788 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz", |
787 | "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==", | 789 | "integrity": "sha512-cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==", |
788 | "dev": true, | 790 | "dev": true, |
789 | "requires": { | 791 | "requires": { |
790 | "@babel/code-frame": "^7.0.0", | 792 | "@babel/code-frame": "^7.0.0", |
@@ -793,10 +795,11 @@ | |||
793 | "cross-spawn": "^7.0.2", | 795 | "cross-spawn": "^7.0.2", |
794 | "debug": "^4.0.1", | 796 | "debug": "^4.0.1", |
795 | "doctrine": "^3.0.0", | 797 | "doctrine": "^3.0.0", |
796 | "eslint-scope": "^5.0.0", | 798 | "enquirer": "^2.3.5", |
799 | "eslint-scope": "^5.1.0", | ||
797 | "eslint-utils": "^2.0.0", | 800 | "eslint-utils": "^2.0.0", |
798 | "eslint-visitor-keys": "^1.1.0", | 801 | "eslint-visitor-keys": "^1.2.0", |
799 | "espree": "^7.0.0", | 802 | "espree": "^7.1.0", |
800 | "esquery": "^1.2.0", | 803 | "esquery": "^1.2.0", |
801 | "esutils": "^2.0.2", | 804 | "esutils": "^2.0.2", |
802 | "file-entry-cache": "^5.0.1", | 805 | "file-entry-cache": "^5.0.1", |
@@ -806,7 +809,6 @@ | |||
806 | "ignore": "^4.0.6", | 809 | "ignore": "^4.0.6", |
807 | "import-fresh": "^3.0.0", | 810 | "import-fresh": "^3.0.0", |
808 | "imurmurhash": "^0.1.4", | 811 | "imurmurhash": "^0.1.4", |
809 | "inquirer": "^7.0.0", | ||
810 | "is-glob": "^4.0.0", | 812 | "is-glob": "^4.0.0", |
811 | "js-yaml": "^3.13.1", | 813 | "js-yaml": "^3.13.1", |
812 | "json-stable-stringify-without-jsonify": "^1.0.1", | 814 | "json-stable-stringify-without-jsonify": "^1.0.1", |
@@ -836,9 +838,9 @@ | |||
836 | } | 838 | } |
837 | }, | 839 | }, |
838 | "chalk": { | 840 | "chalk": { |
839 | "version": "4.0.0", | 841 | "version": "4.1.0", |
840 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", | 842 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", |
841 | "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", | 843 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", |
842 | "dev": true, | 844 | "dev": true, |
843 | "requires": { | 845 | "requires": { |
844 | "ansi-styles": "^4.1.0", | 846 | "ansi-styles": "^4.1.0", |
@@ -860,6 +862,22 @@ | |||
860 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | 862 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
861 | "dev": true | 863 | "dev": true |
862 | }, | 864 | }, |
865 | "eslint-scope": { | ||
866 | "version": "5.1.0", | ||
867 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", | ||
868 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", | ||
869 | "dev": true, | ||
870 | "requires": { | ||
871 | "esrecurse": "^4.1.0", | ||
872 | "estraverse": "^4.1.1" | ||
873 | } | ||
874 | }, | ||
875 | "eslint-visitor-keys": { | ||
876 | "version": "1.3.0", | ||
877 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
878 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
879 | "dev": true | ||
880 | }, | ||
863 | "has-flag": { | 881 | "has-flag": { |
864 | "version": "4.0.0", | 882 | "version": "4.0.0", |
865 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | 883 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
@@ -909,14 +927,22 @@ | |||
909 | "dev": true | 927 | "dev": true |
910 | }, | 928 | }, |
911 | "espree": { | 929 | "espree": { |
912 | "version": "7.0.0", | 930 | "version": "7.1.0", |
913 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", | 931 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", |
914 | "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", | 932 | "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", |
915 | "dev": true, | 933 | "dev": true, |
916 | "requires": { | 934 | "requires": { |
917 | "acorn": "^7.1.1", | 935 | "acorn": "^7.2.0", |
918 | "acorn-jsx": "^5.2.0", | 936 | "acorn-jsx": "^5.2.0", |
919 | "eslint-visitor-keys": "^1.1.0" | 937 | "eslint-visitor-keys": "^1.2.0" |
938 | }, | ||
939 | "dependencies": { | ||
940 | "eslint-visitor-keys": { | ||
941 | "version": "1.3.0", | ||
942 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
943 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
944 | "dev": true | ||
945 | } | ||
920 | } | 946 | } |
921 | }, | 947 | }, |
922 | "esprima": { | 948 | "esprima": { |
@@ -969,21 +995,10 @@ | |||
969 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", | 995 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", |
970 | "dev": true | 996 | "dev": true |
971 | }, | 997 | }, |
972 | "external-editor": { | ||
973 | "version": "3.1.0", | ||
974 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", | ||
975 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", | ||
976 | "dev": true, | ||
977 | "requires": { | ||
978 | "chardet": "^0.7.0", | ||
979 | "iconv-lite": "^0.4.24", | ||
980 | "tmp": "^0.0.33" | ||
981 | } | ||
982 | }, | ||
983 | "fast-deep-equal": { | 998 | "fast-deep-equal": { |
984 | "version": "3.1.1", | 999 | "version": "3.1.3", |
985 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", | 1000 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", |
986 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", | 1001 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", |
987 | "dev": true | 1002 | "dev": true |
988 | }, | 1003 | }, |
989 | "fast-json-stable-stringify": { | 1004 | "fast-json-stable-stringify": { |
@@ -1007,15 +1022,6 @@ | |||
1007 | "pend": "~1.2.0" | 1022 | "pend": "~1.2.0" |
1008 | } | 1023 | } |
1009 | }, | 1024 | }, |
1010 | "figures": { | ||
1011 | "version": "3.2.0", | ||
1012 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", | ||
1013 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", | ||
1014 | "dev": true, | ||
1015 | "requires": { | ||
1016 | "escape-string-regexp": "^1.0.5" | ||
1017 | } | ||
1018 | }, | ||
1019 | "file-entry-cache": { | 1025 | "file-entry-cache": { |
1020 | "version": "5.0.1", | 1026 | "version": "5.0.1", |
1021 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", | 1027 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", |
@@ -1035,12 +1041,13 @@ | |||
1035 | } | 1041 | } |
1036 | }, | 1042 | }, |
1037 | "find-up": { | 1043 | "find-up": { |
1038 | "version": "3.0.0", | 1044 | "version": "4.1.0", |
1039 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", | 1045 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", |
1040 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", | 1046 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", |
1041 | "dev": true, | 1047 | "dev": true, |
1042 | "requires": { | 1048 | "requires": { |
1043 | "locate-path": "^3.0.0" | 1049 | "locate-path": "^5.0.0", |
1050 | "path-exists": "^4.0.0" | ||
1044 | } | 1051 | } |
1045 | }, | 1052 | }, |
1046 | "flat": { | 1053 | "flat": { |
@@ -1238,15 +1245,6 @@ | |||
1238 | } | 1245 | } |
1239 | } | 1246 | } |
1240 | }, | 1247 | }, |
1241 | "iconv-lite": { | ||
1242 | "version": "0.4.24", | ||
1243 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
1244 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
1245 | "dev": true, | ||
1246 | "requires": { | ||
1247 | "safer-buffer": ">= 2.1.2 < 3" | ||
1248 | } | ||
1249 | }, | ||
1250 | "ignore": { | 1248 | "ignore": { |
1251 | "version": "4.0.6", | 1249 | "version": "4.0.6", |
1252 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", | 1250 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", |
@@ -1285,78 +1283,11 @@ | |||
1285 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | 1283 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
1286 | "dev": true | 1284 | "dev": true |
1287 | }, | 1285 | }, |
1288 | "inquirer": { | 1286 | "is-arguments": { |
1289 | "version": "7.1.0", | 1287 | "version": "1.0.4", |
1290 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", | 1288 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", |
1291 | "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", | 1289 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", |
1292 | "dev": true, | 1290 | "dev": true |
1293 | "requires": { | ||
1294 | "ansi-escapes": "^4.2.1", | ||
1295 | "chalk": "^3.0.0", | ||
1296 | "cli-cursor": "^3.1.0", | ||
1297 | "cli-width": "^2.0.0", | ||
1298 | "external-editor": "^3.0.3", | ||
1299 | "figures": "^3.0.0", | ||
1300 | "lodash": "^4.17.15", | ||
1301 | "mute-stream": "0.0.8", | ||
1302 | "run-async": "^2.4.0", | ||
1303 | "rxjs": "^6.5.3", | ||
1304 | "string-width": "^4.1.0", | ||
1305 | "strip-ansi": "^6.0.0", | ||
1306 | "through": "^2.3.6" | ||
1307 | }, | ||
1308 | "dependencies": { | ||
1309 | "ansi-styles": { | ||
1310 | "version": "4.2.1", | ||
1311 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | ||
1312 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | ||
1313 | "dev": true, | ||
1314 | "requires": { | ||
1315 | "@types/color-name": "^1.1.1", | ||
1316 | "color-convert": "^2.0.1" | ||
1317 | } | ||
1318 | }, | ||
1319 | "chalk": { | ||
1320 | "version": "3.0.0", | ||
1321 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", | ||
1322 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", | ||
1323 | "dev": true, | ||
1324 | "requires": { | ||
1325 | "ansi-styles": "^4.1.0", | ||
1326 | "supports-color": "^7.1.0" | ||
1327 | } | ||
1328 | }, | ||
1329 | "color-convert": { | ||
1330 | "version": "2.0.1", | ||
1331 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
1332 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
1333 | "dev": true, | ||
1334 | "requires": { | ||
1335 | "color-name": "~1.1.4" | ||
1336 | } | ||
1337 | }, | ||
1338 | "color-name": { | ||
1339 | "version": "1.1.4", | ||
1340 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
1341 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
1342 | "dev": true | ||
1343 | }, | ||
1344 | "has-flag": { | ||
1345 | "version": "4.0.0", | ||
1346 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||
1347 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||
1348 | "dev": true | ||
1349 | }, | ||
1350 | "supports-color": { | ||
1351 | "version": "7.1.0", | ||
1352 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", | ||
1353 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", | ||
1354 | "dev": true, | ||
1355 | "requires": { | ||
1356 | "has-flag": "^4.0.0" | ||
1357 | } | ||
1358 | } | ||
1359 | } | ||
1360 | }, | 1291 | }, |
1361 | "is-binary-path": { | 1292 | "is-binary-path": { |
1362 | "version": "2.1.0", | 1293 | "version": "2.1.0", |
@@ -1374,9 +1305,9 @@ | |||
1374 | "dev": true | 1305 | "dev": true |
1375 | }, | 1306 | }, |
1376 | "is-callable": { | 1307 | "is-callable": { |
1377 | "version": "1.1.5", | 1308 | "version": "1.2.0", |
1378 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", | 1309 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", |
1379 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", | 1310 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", |
1380 | "dev": true | 1311 | "dev": true |
1381 | }, | 1312 | }, |
1382 | "is-date-object": { | 1313 | "is-date-object": { |
@@ -1392,9 +1323,9 @@ | |||
1392 | "dev": true | 1323 | "dev": true |
1393 | }, | 1324 | }, |
1394 | "is-fullwidth-code-point": { | 1325 | "is-fullwidth-code-point": { |
1395 | "version": "3.0.0", | 1326 | "version": "2.0.0", |
1396 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | 1327 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", |
1397 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | 1328 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", |
1398 | "dev": true | 1329 | "dev": true |
1399 | }, | 1330 | }, |
1400 | "is-glob": { | 1331 | "is-glob": { |
@@ -1406,6 +1337,12 @@ | |||
1406 | "is-extglob": "^2.1.1" | 1337 | "is-extglob": "^2.1.1" |
1407 | } | 1338 | } |
1408 | }, | 1339 | }, |
1340 | "is-map": { | ||
1341 | "version": "2.0.1", | ||
1342 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", | ||
1343 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", | ||
1344 | "dev": true | ||
1345 | }, | ||
1409 | "is-module": { | 1346 | "is-module": { |
1410 | "version": "1.0.0", | 1347 | "version": "1.0.0", |
1411 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", | 1348 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", |
@@ -1419,23 +1356,35 @@ | |||
1419 | "dev": true | 1356 | "dev": true |
1420 | }, | 1357 | }, |
1421 | "is-reference": { | 1358 | "is-reference": { |
1422 | "version": "1.1.4", | 1359 | "version": "1.2.1", |
1423 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", | 1360 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", |
1424 | "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", | 1361 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", |
1425 | "dev": true, | 1362 | "dev": true, |
1426 | "requires": { | 1363 | "requires": { |
1427 | "@types/estree": "0.0.39" | 1364 | "@types/estree": "*" |
1428 | } | 1365 | } |
1429 | }, | 1366 | }, |
1430 | "is-regex": { | 1367 | "is-regex": { |
1431 | "version": "1.0.5", | 1368 | "version": "1.1.0", |
1432 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", | 1369 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", |
1433 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", | 1370 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", |
1434 | "dev": true, | 1371 | "dev": true, |
1435 | "requires": { | 1372 | "requires": { |
1436 | "has": "^1.0.3" | 1373 | "has-symbols": "^1.0.1" |
1437 | } | 1374 | } |
1438 | }, | 1375 | }, |
1376 | "is-set": { | ||
1377 | "version": "2.0.1", | ||
1378 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", | ||
1379 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", | ||
1380 | "dev": true | ||
1381 | }, | ||
1382 | "is-string": { | ||
1383 | "version": "1.0.5", | ||
1384 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", | ||
1385 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", | ||
1386 | "dev": true | ||
1387 | }, | ||
1439 | "is-symbol": { | 1388 | "is-symbol": { |
1440 | "version": "1.0.3", | 1389 | "version": "1.0.3", |
1441 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | 1390 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", |
@@ -1445,12 +1394,34 @@ | |||
1445 | "has-symbols": "^1.0.1" | 1394 | "has-symbols": "^1.0.1" |
1446 | } | 1395 | } |
1447 | }, | 1396 | }, |
1397 | "isarray": { | ||
1398 | "version": "2.0.5", | ||
1399 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | ||
1400 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | ||
1401 | "dev": true | ||
1402 | }, | ||
1448 | "isexe": { | 1403 | "isexe": { |
1449 | "version": "2.0.0", | 1404 | "version": "2.0.0", |
1450 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | 1405 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
1451 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", | 1406 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", |
1452 | "dev": true | 1407 | "dev": true |
1453 | }, | 1408 | }, |
1409 | "iterate-iterator": { | ||
1410 | "version": "1.0.1", | ||
1411 | "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", | ||
1412 | "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", | ||
1413 | "dev": true | ||
1414 | }, | ||
1415 | "iterate-value": { | ||
1416 | "version": "1.0.2", | ||
1417 | "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", | ||
1418 | "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", | ||
1419 | "dev": true, | ||
1420 | "requires": { | ||
1421 | "es-get-iterator": "^1.0.2", | ||
1422 | "iterate-iterator": "^1.0.1" | ||
1423 | } | ||
1424 | }, | ||
1454 | "js-tokens": { | 1425 | "js-tokens": { |
1455 | "version": "4.0.0", | 1426 | "version": "4.0.0", |
1456 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | 1427 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
@@ -1505,19 +1476,18 @@ | |||
1505 | } | 1476 | } |
1506 | }, | 1477 | }, |
1507 | "locate-path": { | 1478 | "locate-path": { |
1508 | "version": "3.0.0", | 1479 | "version": "5.0.0", |
1509 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", | 1480 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", |
1510 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", | 1481 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", |
1511 | "dev": true, | 1482 | "dev": true, |
1512 | "requires": { | 1483 | "requires": { |
1513 | "p-locate": "^3.0.0", | 1484 | "p-locate": "^4.1.0" |
1514 | "path-exists": "^3.0.0" | ||
1515 | } | 1485 | } |
1516 | }, | 1486 | }, |
1517 | "lodash": { | 1487 | "lodash": { |
1518 | "version": "4.17.15", | 1488 | "version": "4.17.19", |
1519 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", | 1489 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", |
1520 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", | 1490 | "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", |
1521 | "dev": true | 1491 | "dev": true |
1522 | }, | 1492 | }, |
1523 | "log-symbols": { | 1493 | "log-symbols": { |
@@ -1596,12 +1566,6 @@ | |||
1596 | "mime-db": "1.44.0" | 1566 | "mime-db": "1.44.0" |
1597 | } | 1567 | } |
1598 | }, | 1568 | }, |
1599 | "mimic-fn": { | ||
1600 | "version": "2.1.0", | ||
1601 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | ||
1602 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", | ||
1603 | "dev": true | ||
1604 | }, | ||
1605 | "minimatch": { | 1569 | "minimatch": { |
1606 | "version": "3.0.4", | 1570 | "version": "3.0.4", |
1607 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | 1571 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
@@ -1627,37 +1591,44 @@ | |||
1627 | } | 1591 | } |
1628 | }, | 1592 | }, |
1629 | "mocha": { | 1593 | "mocha": { |
1630 | "version": "7.2.0", | 1594 | "version": "8.0.1", |
1631 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", | 1595 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz", |
1632 | "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", | 1596 | "integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==", |
1633 | "dev": true, | 1597 | "dev": true, |
1634 | "requires": { | 1598 | "requires": { |
1635 | "ansi-colors": "3.2.3", | 1599 | "ansi-colors": "4.1.1", |
1636 | "browser-stdout": "1.3.1", | 1600 | "browser-stdout": "1.3.1", |
1637 | "chokidar": "3.3.0", | 1601 | "chokidar": "3.3.1", |
1638 | "debug": "3.2.6", | 1602 | "debug": "3.2.6", |
1639 | "diff": "3.5.0", | 1603 | "diff": "4.0.2", |
1640 | "escape-string-regexp": "1.0.5", | 1604 | "escape-string-regexp": "1.0.5", |
1641 | "find-up": "3.0.0", | 1605 | "find-up": "4.1.0", |
1642 | "glob": "7.1.3", | 1606 | "glob": "7.1.6", |
1643 | "growl": "1.10.5", | 1607 | "growl": "1.10.5", |
1644 | "he": "1.2.0", | 1608 | "he": "1.2.0", |
1645 | "js-yaml": "3.13.1", | 1609 | "js-yaml": "3.13.1", |
1646 | "log-symbols": "3.0.0", | 1610 | "log-symbols": "3.0.0", |
1647 | "minimatch": "3.0.4", | 1611 | "minimatch": "3.0.4", |
1648 | "mkdirp": "0.5.5", | 1612 | "ms": "2.1.2", |
1649 | "ms": "2.1.1", | ||
1650 | "node-environment-flags": "1.0.6", | ||
1651 | "object.assign": "4.1.0", | 1613 | "object.assign": "4.1.0", |
1652 | "strip-json-comments": "2.0.1", | 1614 | "promise.allsettled": "1.0.2", |
1653 | "supports-color": "6.0.0", | 1615 | "serialize-javascript": "3.0.0", |
1654 | "which": "1.3.1", | 1616 | "strip-json-comments": "3.0.1", |
1617 | "supports-color": "7.1.0", | ||
1618 | "which": "2.0.2", | ||
1655 | "wide-align": "1.1.3", | 1619 | "wide-align": "1.1.3", |
1620 | "workerpool": "6.0.0", | ||
1656 | "yargs": "13.3.2", | 1621 | "yargs": "13.3.2", |
1657 | "yargs-parser": "13.1.2", | 1622 | "yargs-parser": "13.1.2", |
1658 | "yargs-unparser": "1.6.0" | 1623 | "yargs-unparser": "1.6.0" |
1659 | }, | 1624 | }, |
1660 | "dependencies": { | 1625 | "dependencies": { |
1626 | "ansi-colors": { | ||
1627 | "version": "4.1.1", | ||
1628 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", | ||
1629 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", | ||
1630 | "dev": true | ||
1631 | }, | ||
1661 | "debug": { | 1632 | "debug": { |
1662 | "version": "3.2.6", | 1633 | "version": "3.2.6", |
1663 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", | 1634 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", |
@@ -1667,19 +1638,11 @@ | |||
1667 | "ms": "^2.1.1" | 1638 | "ms": "^2.1.1" |
1668 | } | 1639 | } |
1669 | }, | 1640 | }, |
1670 | "glob": { | 1641 | "has-flag": { |
1671 | "version": "7.1.3", | 1642 | "version": "4.0.0", |
1672 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", | 1643 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
1673 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", | 1644 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
1674 | "dev": true, | 1645 | "dev": true |
1675 | "requires": { | ||
1676 | "fs.realpath": "^1.0.0", | ||
1677 | "inflight": "^1.0.4", | ||
1678 | "inherits": "2", | ||
1679 | "minimatch": "^3.0.4", | ||
1680 | "once": "^1.3.0", | ||
1681 | "path-is-absolute": "^1.0.0" | ||
1682 | } | ||
1683 | }, | 1646 | }, |
1684 | "js-yaml": { | 1647 | "js-yaml": { |
1685 | "version": "3.13.1", | 1648 | "version": "3.13.1", |
@@ -1691,34 +1654,19 @@ | |||
1691 | "esprima": "^4.0.0" | 1654 | "esprima": "^4.0.0" |
1692 | } | 1655 | } |
1693 | }, | 1656 | }, |
1694 | "ms": { | ||
1695 | "version": "2.1.1", | ||
1696 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | ||
1697 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", | ||
1698 | "dev": true | ||
1699 | }, | ||
1700 | "strip-json-comments": { | 1657 | "strip-json-comments": { |
1701 | "version": "2.0.1", | 1658 | "version": "3.0.1", |
1702 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", | 1659 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", |
1703 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", | 1660 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", |
1704 | "dev": true | 1661 | "dev": true |
1705 | }, | 1662 | }, |
1706 | "supports-color": { | 1663 | "supports-color": { |
1707 | "version": "6.0.0", | 1664 | "version": "7.1.0", |
1708 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", | 1665 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", |
1709 | "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", | 1666 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", |
1710 | "dev": true, | ||
1711 | "requires": { | ||
1712 | "has-flag": "^3.0.0" | ||
1713 | } | ||
1714 | }, | ||
1715 | "which": { | ||
1716 | "version": "1.3.1", | ||
1717 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ||
1718 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", | ||
1719 | "dev": true, | 1667 | "dev": true, |
1720 | "requires": { | 1668 | "requires": { |
1721 | "isexe": "^2.0.0" | 1669 | "has-flag": "^4.0.0" |
1722 | } | 1670 | } |
1723 | } | 1671 | } |
1724 | } | 1672 | } |
@@ -1741,24 +1689,6 @@ | |||
1741 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", | 1689 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", |
1742 | "dev": true | 1690 | "dev": true |
1743 | }, | 1691 | }, |
1744 | "node-environment-flags": { | ||
1745 | "version": "1.0.6", | ||
1746 | "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", | ||
1747 | "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", | ||
1748 | "dev": true, | ||
1749 | "requires": { | ||
1750 | "object.getownpropertydescriptors": "^2.0.3", | ||
1751 | "semver": "^5.7.0" | ||
1752 | }, | ||
1753 | "dependencies": { | ||
1754 | "semver": { | ||
1755 | "version": "5.7.1", | ||
1756 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
1757 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
1758 | "dev": true | ||
1759 | } | ||
1760 | } | ||
1761 | }, | ||
1762 | "node-fetch": { | 1692 | "node-fetch": { |
1763 | "version": "2.6.0", | 1693 | "version": "2.6.0", |
1764 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", | 1694 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", |
@@ -1780,9 +1710,9 @@ | |||
1780 | } | 1710 | } |
1781 | }, | 1711 | }, |
1782 | "object-inspect": { | 1712 | "object-inspect": { |
1783 | "version": "1.7.0", | 1713 | "version": "1.8.0", |
1784 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | 1714 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", |
1785 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", | 1715 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", |
1786 | "dev": true | 1716 | "dev": true |
1787 | }, | 1717 | }, |
1788 | "object-keys": { | 1718 | "object-keys": { |
@@ -1803,16 +1733,6 @@ | |||
1803 | "object-keys": "^1.0.11" | 1733 | "object-keys": "^1.0.11" |
1804 | } | 1734 | } |
1805 | }, | 1735 | }, |
1806 | "object.getownpropertydescriptors": { | ||
1807 | "version": "2.1.0", | ||
1808 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", | ||
1809 | "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", | ||
1810 | "dev": true, | ||
1811 | "requires": { | ||
1812 | "define-properties": "^1.1.3", | ||
1813 | "es-abstract": "^1.17.0-next.1" | ||
1814 | } | ||
1815 | }, | ||
1816 | "once": { | 1736 | "once": { |
1817 | "version": "1.4.0", | 1737 | "version": "1.4.0", |
1818 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | 1738 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
@@ -1822,15 +1742,6 @@ | |||
1822 | "wrappy": "1" | 1742 | "wrappy": "1" |
1823 | } | 1743 | } |
1824 | }, | 1744 | }, |
1825 | "onetime": { | ||
1826 | "version": "5.1.0", | ||
1827 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", | ||
1828 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", | ||
1829 | "dev": true, | ||
1830 | "requires": { | ||
1831 | "mimic-fn": "^2.1.0" | ||
1832 | } | ||
1833 | }, | ||
1834 | "optionator": { | 1745 | "optionator": { |
1835 | "version": "0.9.1", | 1746 | "version": "0.9.1", |
1836 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", | 1747 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", |
@@ -1883,12 +1794,12 @@ | |||
1883 | } | 1794 | } |
1884 | }, | 1795 | }, |
1885 | "p-locate": { | 1796 | "p-locate": { |
1886 | "version": "3.0.0", | 1797 | "version": "4.1.0", |
1887 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", | 1798 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", |
1888 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", | 1799 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", |
1889 | "dev": true, | 1800 | "dev": true, |
1890 | "requires": { | 1801 | "requires": { |
1891 | "p-limit": "^2.0.0" | 1802 | "p-limit": "^2.2.0" |
1892 | } | 1803 | } |
1893 | }, | 1804 | }, |
1894 | "p-try": { | 1805 | "p-try": { |
@@ -1933,9 +1844,9 @@ | |||
1933 | } | 1844 | } |
1934 | }, | 1845 | }, |
1935 | "path-exists": { | 1846 | "path-exists": { |
1936 | "version": "3.0.0", | 1847 | "version": "4.0.0", |
1937 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | 1848 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", |
1938 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | 1849 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", |
1939 | "dev": true | 1850 | "dev": true |
1940 | }, | 1851 | }, |
1941 | "path-is-absolute": { | 1852 | "path-is-absolute": { |
@@ -1980,6 +1891,19 @@ | |||
1980 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", | 1891 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", |
1981 | "dev": true | 1892 | "dev": true |
1982 | }, | 1893 | }, |
1894 | "promise.allsettled": { | ||
1895 | "version": "1.0.2", | ||
1896 | "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", | ||
1897 | "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", | ||
1898 | "dev": true, | ||
1899 | "requires": { | ||
1900 | "array.prototype.map": "^1.0.1", | ||
1901 | "define-properties": "^1.1.3", | ||
1902 | "es-abstract": "^1.17.0-next.1", | ||
1903 | "function-bind": "^1.1.1", | ||
1904 | "iterate-value": "^1.0.0" | ||
1905 | } | ||
1906 | }, | ||
1983 | "pseudomap": { | 1907 | "pseudomap": { |
1984 | "version": "1.0.2", | 1908 | "version": "1.0.2", |
1985 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", | 1909 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", |
@@ -2013,12 +1937,12 @@ | |||
2013 | } | 1937 | } |
2014 | }, | 1938 | }, |
2015 | "readdirp": { | 1939 | "readdirp": { |
2016 | "version": "3.2.0", | 1940 | "version": "3.3.0", |
2017 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", | 1941 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", |
2018 | "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", | 1942 | "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", |
2019 | "dev": true, | 1943 | "dev": true, |
2020 | "requires": { | 1944 | "requires": { |
2021 | "picomatch": "^2.0.4" | 1945 | "picomatch": "^2.0.7" |
2022 | } | 1946 | } |
2023 | }, | 1947 | }, |
2024 | "regexpp": { | 1948 | "regexpp": { |
@@ -2054,16 +1978,6 @@ | |||
2054 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", | 1978 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", |
2055 | "dev": true | 1979 | "dev": true |
2056 | }, | 1980 | }, |
2057 | "restore-cursor": { | ||
2058 | "version": "3.1.0", | ||
2059 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", | ||
2060 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", | ||
2061 | "dev": true, | ||
2062 | "requires": { | ||
2063 | "onetime": "^5.1.0", | ||
2064 | "signal-exit": "^3.0.2" | ||
2065 | } | ||
2066 | }, | ||
2067 | "rimraf": { | 1981 | "rimraf": { |
2068 | "version": "2.6.3", | 1982 | "version": "2.6.3", |
2069 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", | 1983 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", |
@@ -2074,54 +1988,31 @@ | |||
2074 | } | 1988 | } |
2075 | }, | 1989 | }, |
2076 | "rollup": { | 1990 | "rollup": { |
2077 | "version": "2.10.9", | 1991 | "version": "2.18.1", |
2078 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", | 1992 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.18.1.tgz", |
2079 | "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", | 1993 | "integrity": "sha512-w4X77ADA+WTGlapC8Z6yggdJtODw3SBl6R2LSkA7ZW5MtdkgcB7sfaSD1UWyx8diXbMcGIb0eI9gCx/dyqOgNQ==", |
2080 | "dev": true, | 1994 | "dev": true, |
2081 | "requires": { | 1995 | "requires": { |
2082 | "fsevents": "~2.1.2" | 1996 | "fsevents": "~2.1.2" |
2083 | } | 1997 | } |
2084 | }, | 1998 | }, |
2085 | "run-async": { | ||
2086 | "version": "2.4.1", | ||
2087 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", | ||
2088 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", | ||
2089 | "dev": true | ||
2090 | }, | ||
2091 | "rxjs": { | ||
2092 | "version": "6.5.5", | ||
2093 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", | ||
2094 | "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", | ||
2095 | "dev": true, | ||
2096 | "requires": { | ||
2097 | "tslib": "^1.9.0" | ||
2098 | }, | ||
2099 | "dependencies": { | ||
2100 | "tslib": { | ||
2101 | "version": "1.13.0", | ||
2102 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", | ||
2103 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", | ||
2104 | "dev": true | ||
2105 | } | ||
2106 | } | ||
2107 | }, | ||
2108 | "safe-buffer": { | 1999 | "safe-buffer": { |
2109 | "version": "5.2.0", | 2000 | "version": "5.2.0", |
2110 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", | 2001 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", |
2111 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", | 2002 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", |
2112 | "dev": true | 2003 | "dev": true |
2113 | }, | 2004 | }, |
2114 | "safer-buffer": { | ||
2115 | "version": "2.1.2", | ||
2116 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
2117 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", | ||
2118 | "dev": true | ||
2119 | }, | ||
2120 | "semver": { | 2005 | "semver": { |
2121 | "version": "6.3.0", | 2006 | "version": "6.3.0", |
2122 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | 2007 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", |
2123 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" | 2008 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" |
2124 | }, | 2009 | }, |
2010 | "serialize-javascript": { | ||
2011 | "version": "3.0.0", | ||
2012 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz", | ||
2013 | "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==", | ||
2014 | "dev": true | ||
2015 | }, | ||
2125 | "set-blocking": { | 2016 | "set-blocking": { |
2126 | "version": "2.0.0", | 2017 | "version": "2.0.0", |
2127 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", | 2018 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", |
@@ -2149,12 +2040,6 @@ | |||
2149 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", | 2040 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", |
2150 | "dev": true | 2041 | "dev": true |
2151 | }, | 2042 | }, |
2152 | "signal-exit": { | ||
2153 | "version": "3.0.3", | ||
2154 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", | ||
2155 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", | ||
2156 | "dev": true | ||
2157 | }, | ||
2158 | "slice-ansi": { | 2043 | "slice-ansi": { |
2159 | "version": "2.1.0", | 2044 | "version": "2.1.0", |
2160 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", | 2045 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", |
@@ -2164,14 +2049,6 @@ | |||
2164 | "ansi-styles": "^3.2.0", | 2049 | "ansi-styles": "^3.2.0", |
2165 | "astral-regex": "^1.0.0", | 2050 | "astral-regex": "^1.0.0", |
2166 | "is-fullwidth-code-point": "^2.0.0" | 2051 | "is-fullwidth-code-point": "^2.0.0" |
2167 | }, | ||
2168 | "dependencies": { | ||
2169 | "is-fullwidth-code-point": { | ||
2170 | "version": "2.0.0", | ||
2171 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2172 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2173 | "dev": true | ||
2174 | } | ||
2175 | } | 2052 | } |
2176 | }, | 2053 | }, |
2177 | "sourcemap-codec": { | 2054 | "sourcemap-codec": { |
@@ -2187,14 +2064,31 @@ | |||
2187 | "dev": true | 2064 | "dev": true |
2188 | }, | 2065 | }, |
2189 | "string-width": { | 2066 | "string-width": { |
2190 | "version": "4.2.0", | 2067 | "version": "3.1.0", |
2191 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", | 2068 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
2192 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", | 2069 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", |
2193 | "dev": true, | 2070 | "dev": true, |
2194 | "requires": { | 2071 | "requires": { |
2195 | "emoji-regex": "^8.0.0", | 2072 | "emoji-regex": "^7.0.1", |
2196 | "is-fullwidth-code-point": "^3.0.0", | 2073 | "is-fullwidth-code-point": "^2.0.0", |
2197 | "strip-ansi": "^6.0.0" | 2074 | "strip-ansi": "^5.1.0" |
2075 | }, | ||
2076 | "dependencies": { | ||
2077 | "ansi-regex": { | ||
2078 | "version": "4.1.0", | ||
2079 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
2080 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
2081 | "dev": true | ||
2082 | }, | ||
2083 | "strip-ansi": { | ||
2084 | "version": "5.2.0", | ||
2085 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2086 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2087 | "dev": true, | ||
2088 | "requires": { | ||
2089 | "ansi-regex": "^4.1.0" | ||
2090 | } | ||
2091 | } | ||
2198 | } | 2092 | } |
2199 | }, | 2093 | }, |
2200 | "string.prototype.trimend": { | 2094 | "string.prototype.trimend": { |
@@ -2207,28 +2101,6 @@ | |||
2207 | "es-abstract": "^1.17.5" | 2101 | "es-abstract": "^1.17.5" |
2208 | } | 2102 | } |
2209 | }, | 2103 | }, |
2210 | "string.prototype.trimleft": { | ||
2211 | "version": "2.1.2", | ||
2212 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", | ||
2213 | "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", | ||
2214 | "dev": true, | ||
2215 | "requires": { | ||
2216 | "define-properties": "^1.1.3", | ||
2217 | "es-abstract": "^1.17.5", | ||
2218 | "string.prototype.trimstart": "^1.0.0" | ||
2219 | } | ||
2220 | }, | ||
2221 | "string.prototype.trimright": { | ||
2222 | "version": "2.1.2", | ||
2223 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", | ||
2224 | "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", | ||
2225 | "dev": true, | ||
2226 | "requires": { | ||
2227 | "define-properties": "^1.1.3", | ||
2228 | "es-abstract": "^1.17.5", | ||
2229 | "string.prototype.trimend": "^1.0.0" | ||
2230 | } | ||
2231 | }, | ||
2232 | "string.prototype.trimstart": { | 2104 | "string.prototype.trimstart": { |
2233 | "version": "1.0.1", | 2105 | "version": "1.0.1", |
2234 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", | 2106 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", |
@@ -2282,46 +2154,6 @@ | |||
2282 | "lodash": "^4.17.14", | 2154 | "lodash": "^4.17.14", |
2283 | "slice-ansi": "^2.1.0", | 2155 | "slice-ansi": "^2.1.0", |
2284 | "string-width": "^3.0.0" | 2156 | "string-width": "^3.0.0" |
2285 | }, | ||
2286 | "dependencies": { | ||
2287 | "ansi-regex": { | ||
2288 | "version": "4.1.0", | ||
2289 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
2290 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
2291 | "dev": true | ||
2292 | }, | ||
2293 | "emoji-regex": { | ||
2294 | "version": "7.0.3", | ||
2295 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2296 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2297 | "dev": true | ||
2298 | }, | ||
2299 | "is-fullwidth-code-point": { | ||
2300 | "version": "2.0.0", | ||
2301 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2302 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2303 | "dev": true | ||
2304 | }, | ||
2305 | "string-width": { | ||
2306 | "version": "3.1.0", | ||
2307 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
2308 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
2309 | "dev": true, | ||
2310 | "requires": { | ||
2311 | "emoji-regex": "^7.0.1", | ||
2312 | "is-fullwidth-code-point": "^2.0.0", | ||
2313 | "strip-ansi": "^5.1.0" | ||
2314 | } | ||
2315 | }, | ||
2316 | "strip-ansi": { | ||
2317 | "version": "5.2.0", | ||
2318 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2319 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2320 | "dev": true, | ||
2321 | "requires": { | ||
2322 | "ansi-regex": "^4.1.0" | ||
2323 | } | ||
2324 | } | ||
2325 | } | 2157 | } |
2326 | }, | 2158 | }, |
2327 | "text-table": { | 2159 | "text-table": { |
@@ -2330,21 +2162,6 @@ | |||
2330 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", | 2162 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", |
2331 | "dev": true | 2163 | "dev": true |
2332 | }, | 2164 | }, |
2333 | "through": { | ||
2334 | "version": "2.3.8", | ||
2335 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | ||
2336 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", | ||
2337 | "dev": true | ||
2338 | }, | ||
2339 | "tmp": { | ||
2340 | "version": "0.0.33", | ||
2341 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", | ||
2342 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", | ||
2343 | "dev": true, | ||
2344 | "requires": { | ||
2345 | "os-tmpdir": "~1.0.2" | ||
2346 | } | ||
2347 | }, | ||
2348 | "to-regex-range": { | 2165 | "to-regex-range": { |
2349 | "version": "5.0.1", | 2166 | "version": "5.0.1", |
2350 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", | 2167 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", |
@@ -2409,9 +2226,9 @@ | |||
2409 | } | 2226 | } |
2410 | }, | 2227 | }, |
2411 | "typescript": { | 2228 | "typescript": { |
2412 | "version": "3.9.3", | 2229 | "version": "3.9.5", |
2413 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", | 2230 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", |
2414 | "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", | 2231 | "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", |
2415 | "dev": true | 2232 | "dev": true |
2416 | }, | 2233 | }, |
2417 | "typescript-formatter": { | 2234 | "typescript-formatter": { |
@@ -2458,9 +2275,9 @@ | |||
2458 | "dev": true | 2275 | "dev": true |
2459 | }, | 2276 | }, |
2460 | "v8-compile-cache": { | 2277 | "v8-compile-cache": { |
2461 | "version": "2.1.0", | 2278 | "version": "2.1.1", |
2462 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", | 2279 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", |
2463 | "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", | 2280 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", |
2464 | "dev": true | 2281 | "dev": true |
2465 | }, | 2282 | }, |
2466 | "vsce": { | 2283 | "vsce": { |
@@ -2537,9 +2354,9 @@ | |||
2537 | "integrity": "sha512-tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==" | 2354 | "integrity": "sha512-tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==" |
2538 | }, | 2355 | }, |
2539 | "vscode-test": { | 2356 | "vscode-test": { |
2540 | "version": "1.3.0", | 2357 | "version": "1.4.0", |
2541 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz", | 2358 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.4.0.tgz", |
2542 | "integrity": "sha512-LddukcBiSU2FVTDr3c1D8lwkiOvwlJdDL2hqVbn6gIz+rpTqUCkMZSKYm94Y1v0WXlHSDQBsXyY+tchWQgGVsw==", | 2359 | "integrity": "sha512-Jt7HNGvSE0+++Tvtq5wc4hiXLIr2OjDShz/gbAfM/mahQpy4rKBnmOK33D+MR67ATWviQhl+vpmU3p/qwSH/Pg==", |
2543 | "dev": true, | 2360 | "dev": true, |
2544 | "requires": { | 2361 | "requires": { |
2545 | "http-proxy-agent": "^2.1.0", | 2362 | "http-proxy-agent": "^2.1.0", |
@@ -2577,12 +2394,6 @@ | |||
2577 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", | 2394 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", |
2578 | "dev": true | 2395 | "dev": true |
2579 | }, | 2396 | }, |
2580 | "is-fullwidth-code-point": { | ||
2581 | "version": "2.0.0", | ||
2582 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2583 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2584 | "dev": true | ||
2585 | }, | ||
2586 | "string-width": { | 2397 | "string-width": { |
2587 | "version": "2.1.1", | 2398 | "version": "2.1.1", |
2588 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", | 2399 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", |
@@ -2610,6 +2421,12 @@ | |||
2610 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", | 2421 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", |
2611 | "dev": true | 2422 | "dev": true |
2612 | }, | 2423 | }, |
2424 | "workerpool": { | ||
2425 | "version": "6.0.0", | ||
2426 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", | ||
2427 | "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", | ||
2428 | "dev": true | ||
2429 | }, | ||
2613 | "wrap-ansi": { | 2430 | "wrap-ansi": { |
2614 | "version": "5.1.0", | 2431 | "version": "5.1.0", |
2615 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", | 2432 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", |
@@ -2627,29 +2444,6 @@ | |||
2627 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 2444 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
2628 | "dev": true | 2445 | "dev": true |
2629 | }, | 2446 | }, |
2630 | "emoji-regex": { | ||
2631 | "version": "7.0.3", | ||
2632 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2633 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2634 | "dev": true | ||
2635 | }, | ||
2636 | "is-fullwidth-code-point": { | ||
2637 | "version": "2.0.0", | ||
2638 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2639 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2640 | "dev": true | ||
2641 | }, | ||
2642 | "string-width": { | ||
2643 | "version": "3.1.0", | ||
2644 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
2645 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
2646 | "dev": true, | ||
2647 | "requires": { | ||
2648 | "emoji-regex": "^7.0.1", | ||
2649 | "is-fullwidth-code-point": "^2.0.0", | ||
2650 | "strip-ansi": "^5.1.0" | ||
2651 | } | ||
2652 | }, | ||
2653 | "strip-ansi": { | 2447 | "strip-ansi": { |
2654 | "version": "5.2.0", | 2448 | "version": "5.2.0", |
2655 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 2449 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
@@ -2706,43 +2500,39 @@ | |||
2706 | "yargs-parser": "^13.1.2" | 2500 | "yargs-parser": "^13.1.2" |
2707 | }, | 2501 | }, |
2708 | "dependencies": { | 2502 | "dependencies": { |
2709 | "ansi-regex": { | 2503 | "find-up": { |
2710 | "version": "4.1.0", | 2504 | "version": "3.0.0", |
2711 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | 2505 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", |
2712 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 2506 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", |
2713 | "dev": true | 2507 | "dev": true, |
2714 | }, | 2508 | "requires": { |
2715 | "emoji-regex": { | 2509 | "locate-path": "^3.0.0" |
2716 | "version": "7.0.3", | 2510 | } |
2717 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2718 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2719 | "dev": true | ||
2720 | }, | ||
2721 | "is-fullwidth-code-point": { | ||
2722 | "version": "2.0.0", | ||
2723 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2724 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2725 | "dev": true | ||
2726 | }, | 2511 | }, |
2727 | "string-width": { | 2512 | "locate-path": { |
2728 | "version": "3.1.0", | 2513 | "version": "3.0.0", |
2729 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | 2514 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", |
2730 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | 2515 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", |
2731 | "dev": true, | 2516 | "dev": true, |
2732 | "requires": { | 2517 | "requires": { |
2733 | "emoji-regex": "^7.0.1", | 2518 | "p-locate": "^3.0.0", |
2734 | "is-fullwidth-code-point": "^2.0.0", | 2519 | "path-exists": "^3.0.0" |
2735 | "strip-ansi": "^5.1.0" | ||
2736 | } | 2520 | } |
2737 | }, | 2521 | }, |
2738 | "strip-ansi": { | 2522 | "p-locate": { |
2739 | "version": "5.2.0", | 2523 | "version": "3.0.0", |
2740 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 2524 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", |
2741 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | 2525 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", |
2742 | "dev": true, | 2526 | "dev": true, |
2743 | "requires": { | 2527 | "requires": { |
2744 | "ansi-regex": "^4.1.0" | 2528 | "p-limit": "^2.0.0" |
2745 | } | 2529 | } |
2530 | }, | ||
2531 | "path-exists": { | ||
2532 | "version": "3.0.0", | ||
2533 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
2534 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
2535 | "dev": true | ||
2746 | } | 2536 | } |
2747 | } | 2537 | } |
2748 | }, | 2538 | }, |
diff --git a/editors/code/package.json b/editors/code/package.json index f542a490a..1adf055d0 100644 --- a/editors/code/package.json +++ b/editors/code/package.json | |||
@@ -39,29 +39,30 @@ | |||
39 | "vscode-languageclient": "7.0.0-next.1" | 39 | "vscode-languageclient": "7.0.0-next.1" |
40 | }, | 40 | }, |
41 | "devDependencies": { | 41 | "devDependencies": { |
42 | "@rollup/plugin-commonjs": "^12.0.0", | 42 | "@rollup/plugin-commonjs": "^13.0.0", |
43 | "@rollup/plugin-node-resolve": "^8.0.0", | 43 | "@rollup/plugin-node-resolve": "^8.1.0", |
44 | "@types/glob": "^7.1.1", | 44 | "@types/glob": "^7.1.2", |
45 | "@types/mocha": "^7.0.2", | 45 | "@types/mocha": "^7.0.2", |
46 | "@types/node": "^14.0.5", | 46 | "@types/node": "~12.7.0", |
47 | "@types/node-fetch": "^2.5.7", | 47 | "@types/node-fetch": "^2.5.7", |
48 | "@types/vscode": "^1.44.1", | 48 | "@types/vscode": "^1.44.1", |
49 | "@typescript-eslint/eslint-plugin": "^3.0.0", | 49 | "@typescript-eslint/eslint-plugin": "^3.4.0", |
50 | "@typescript-eslint/parser": "^3.0.0", | 50 | "@typescript-eslint/parser": "^3.4.0", |
51 | "eslint": "^7.0.0", | 51 | "eslint": "^7.3.1", |
52 | "glob": "^7.1.6", | 52 | "glob": "^7.1.6", |
53 | "mocha": "^7.1.2", | 53 | "mocha": "^8.0.1", |
54 | "rollup": "^2.10.7", | 54 | "rollup": "^2.18.1", |
55 | "tslib": "^2.0.0", | 55 | "tslib": "^2.0.0", |
56 | "typescript": "^3.9.3", | 56 | "typescript": "^3.9.5", |
57 | "typescript-formatter": "^7.2.2", | 57 | "typescript-formatter": "^7.2.2", |
58 | "vsce": "^1.75.0", | 58 | "vsce": "^1.75.0", |
59 | "vscode-test": "^1.3.0" | 59 | "vscode-test": "^1.4.0" |
60 | }, | 60 | }, |
61 | "activationEvents": [ | 61 | "activationEvents": [ |
62 | "onLanguage:rust", | 62 | "onLanguage:rust", |
63 | "onCommand:rust-analyzer.analyzerStatus", | 63 | "onCommand:rust-analyzer.analyzerStatus", |
64 | "onCommand:rust-analyzer.collectGarbage", | 64 | "onCommand:rust-analyzer.memoryUsage", |
65 | "onCommand:rust-analyzer.reloadWorkspace", | ||
65 | "workspaceContains:**/Cargo.toml" | 66 | "workspaceContains:**/Cargo.toml" |
66 | ], | 67 | ], |
67 | "main": "./out/src/main", | 68 | "main": "./out/src/main", |
@@ -143,8 +144,13 @@ | |||
143 | "category": "Rust Analyzer" | 144 | "category": "Rust Analyzer" |
144 | }, | 145 | }, |
145 | { | 146 | { |
146 | "command": "rust-analyzer.collectGarbage", | 147 | "command": "rust-analyzer.memoryUsage", |
147 | "title": "Run garbage collection", | 148 | "title": "Memory Usage (Clears Database)", |
149 | "category": "Rust Analyzer" | ||
150 | }, | ||
151 | { | ||
152 | "command": "rust-analyzer.reloadWorkspace", | ||
153 | "title": "Reload workspace", | ||
148 | "category": "Rust Analyzer" | 154 | "category": "Rust Analyzer" |
149 | }, | 155 | }, |
150 | { | 156 | { |
@@ -194,11 +200,6 @@ | |||
194 | "type": "object", | 200 | "type": "object", |
195 | "title": "Rust Analyzer", | 201 | "title": "Rust Analyzer", |
196 | "properties": { | 202 | "properties": { |
197 | "rust-analyzer.diagnostics.enable": { | ||
198 | "type": "boolean", | ||
199 | "default": true, | ||
200 | "markdownDescription": "Whether to show native rust-analyzer diagnostics." | ||
201 | }, | ||
202 | "rust-analyzer.lruCapacity": { | 203 | "rust-analyzer.lruCapacity": { |
203 | "type": [ | 204 | "type": [ |
204 | "null", | 205 | "null", |
@@ -231,6 +232,11 @@ | |||
231 | "default": true, | 232 | "default": true, |
232 | "markdownDescription": "Whether to show `can't find Cargo.toml` error message" | 233 | "markdownDescription": "Whether to show `can't find Cargo.toml` error message" |
233 | }, | 234 | }, |
235 | "rust-analyzer.cargo.autoreload": { | ||
236 | "type": "boolean", | ||
237 | "default": true, | ||
238 | "markdownDescription": "Automatically refresh project info via `cargo metadata` on Cargo.toml changes" | ||
239 | }, | ||
234 | "rust-analyzer.cargo.noDefaultFeatures": { | 240 | "rust-analyzer.cargo.noDefaultFeatures": { |
235 | "type": "boolean", | 241 | "type": "boolean", |
236 | "default": false, | 242 | "default": false, |
@@ -317,6 +323,14 @@ | |||
317 | "default": true, | 323 | "default": true, |
318 | "markdownDescription": "Check all targets and tests (will be passed as `--all-targets`)" | 324 | "markdownDescription": "Check all targets and tests (will be passed as `--all-targets`)" |
319 | }, | 325 | }, |
326 | "rust-analyzer.checkOnSave.noDefaultFeatures": { | ||
327 | "type": [ | ||
328 | "null", | ||
329 | "boolean" | ||
330 | ], | ||
331 | "default": null, | ||
332 | "markdownDescription": "Do not activate the `default` feature" | ||
333 | }, | ||
320 | "rust-analyzer.checkOnSave.allFeatures": { | 334 | "rust-analyzer.checkOnSave.allFeatures": { |
321 | "type": [ | 335 | "type": [ |
322 | "null", | 336 | "null", |
@@ -344,6 +358,35 @@ | |||
344 | "default": null, | 358 | "default": null, |
345 | "description": "Custom cargo runner extension ID." | 359 | "description": "Custom cargo runner extension ID." |
346 | }, | 360 | }, |
361 | "rust-analyzer.runnableEnv": { | ||
362 | "anyOf": [ | ||
363 | { | ||
364 | "type": "null" | ||
365 | }, | ||
366 | { | ||
367 | "type": "array", | ||
368 | "items": { | ||
369 | "type": "object", | ||
370 | "properties": { | ||
371 | "mask": { | ||
372 | "type": "string", | ||
373 | "description": "Runnable name mask" | ||
374 | }, | ||
375 | "env": { | ||
376 | "type": "object", | ||
377 | "description": "Variables in form of { \"key\": \"value\"}" | ||
378 | } | ||
379 | } | ||
380 | } | ||
381 | }, | ||
382 | { | ||
383 | "type": "object", | ||
384 | "description": "Variables in form of { \"key\": \"value\"}" | ||
385 | } | ||
386 | ], | ||
387 | "default": null, | ||
388 | "description": "Environment variables passed to the runnable launched using `Test ` or `Debug` lens or `rust-analyzer.run` command." | ||
389 | }, | ||
347 | "rust-analyzer.inlayHints.enable": { | 390 | "rust-analyzer.inlayHints.enable": { |
348 | "type": "boolean", | 391 | "type": "boolean", |
349 | "default": true, | 392 | "default": true, |
@@ -539,6 +582,16 @@ | |||
539 | "type": "boolean", | 582 | "type": "boolean", |
540 | "default": true | 583 | "default": true |
541 | }, | 584 | }, |
585 | "rust-analyzer.diagnostics.enable": { | ||
586 | "type": "boolean", | ||
587 | "default": true, | ||
588 | "markdownDescription": "Whether to show native rust-analyzer diagnostics." | ||
589 | }, | ||
590 | "rust-analyzer.diagnostics.enableExperimental": { | ||
591 | "type": "boolean", | ||
592 | "default": true, | ||
593 | "markdownDescription": "Whether to show experimental rust-analyzer diagnostics that might have more false positives than usual." | ||
594 | }, | ||
542 | "rust-analyzer.diagnostics.warningsAsInfo": { | 595 | "rust-analyzer.diagnostics.warningsAsInfo": { |
543 | "type": "array", | 596 | "type": "array", |
544 | "uniqueItems": true, | 597 | "uniqueItems": true, |
@@ -554,7 +607,7 @@ | |||
554 | "items": { | 607 | "items": { |
555 | "type": "string" | 608 | "type": "string" |
556 | }, | 609 | }, |
557 | "description": "List of warnings warnings that should be displayed with hint severity.\nThe warnings will be indicated by faded text or three dots in code and will not show up in te problems panel.", | 610 | "description": "List of warnings warnings that should be displayed with hint severity.\nThe warnings will be indicated by faded text or three dots in code and will not show up in the problems panel.", |
558 | "default": [] | 611 | "default": [] |
559 | } | 612 | } |
560 | } | 613 | } |
@@ -615,24 +668,30 @@ | |||
615 | "problemMatchers": [ | 668 | "problemMatchers": [ |
616 | { | 669 | { |
617 | "name": "rustc", | 670 | "name": "rustc", |
671 | "owner": "rustc", | ||
672 | "source": "rustc", | ||
618 | "fileLocation": [ | 673 | "fileLocation": [ |
619 | "relative", | 674 | "autoDetect", |
620 | "${workspaceRoot}" | 675 | "${workspaceRoot}" |
621 | ], | 676 | ], |
622 | "pattern": "$rustc" | 677 | "pattern": "$rustc" |
623 | }, | 678 | }, |
624 | { | 679 | { |
625 | "name": "rustc-json", | 680 | "name": "rustc-json", |
681 | "owner": "rustc", | ||
682 | "source": "rustc", | ||
626 | "fileLocation": [ | 683 | "fileLocation": [ |
627 | "relative", | 684 | "autoDetect", |
628 | "${workspaceRoot}" | 685 | "${workspaceRoot}" |
629 | ], | 686 | ], |
630 | "pattern": "$rustc-json" | 687 | "pattern": "$rustc-json" |
631 | }, | 688 | }, |
632 | { | 689 | { |
633 | "name": "rustc-watch", | 690 | "name": "rustc-watch", |
691 | "owner": "rustc", | ||
692 | "source": "rustc", | ||
634 | "fileLocation": [ | 693 | "fileLocation": [ |
635 | "relative", | 694 | "autoDetect", |
636 | "${workspaceRoot}" | 695 | "${workspaceRoot}" |
637 | ], | 696 | ], |
638 | "background": { | 697 | "background": { |
@@ -815,7 +874,11 @@ | |||
815 | "when": "inRustProject" | 874 | "when": "inRustProject" |
816 | }, | 875 | }, |
817 | { | 876 | { |
818 | "command": "rust-analyzer.collectGarbage", | 877 | "command": "rust-analyzer.memoryUsage", |
878 | "when": "inRustProject" | ||
879 | }, | ||
880 | { | ||
881 | "command": "rust-analyzer.reloadWorkspace", | ||
819 | "when": "inRustProject" | 882 | "when": "inRustProject" |
820 | }, | 883 | }, |
821 | { | 884 | { |
diff --git a/editors/code/rollup.config.js b/editors/code/rollup.config.js index 4b4c47f4a..27abf75ac 100644 --- a/editors/code/rollup.config.js +++ b/editors/code/rollup.config.js | |||
@@ -16,7 +16,6 @@ export default { | |||
16 | external: [...nodeBuiltins, 'vscode'], | 16 | external: [...nodeBuiltins, 'vscode'], |
17 | output: { | 17 | output: { |
18 | file: './out/src/main.js', | 18 | file: './out/src/main.js', |
19 | format: 'cjs', | 19 | format: 'cjs' |
20 | exports: 'named' | ||
21 | } | 20 | } |
22 | }; | 21 | }; |
diff --git a/editors/code/rust.tmGrammar.json b/editors/code/rust.tmGrammar.json index ab87cd39f..0be2583db 100644 --- a/editors/code/rust.tmGrammar.json +++ b/editors/code/rust.tmGrammar.json | |||
@@ -268,7 +268,7 @@ | |||
268 | "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!" | 268 | "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!" |
269 | }, | 269 | }, |
270 | { | 270 | { |
271 | "comment": "Invokation of a macro", | 271 | "comment": "Invocation of a macro", |
272 | "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]", | 272 | "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]", |
273 | "captures": { | 273 | "captures": { |
274 | "1": { | 274 | "1": { |
@@ -683,4 +683,4 @@ | |||
683 | ] | 683 | ] |
684 | } | 684 | } |
685 | } | 685 | } |
686 | } \ No newline at end of file | 686 | } |
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index 65ad573d8..18948cb3c 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts | |||
@@ -41,6 +41,7 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient | |||
41 | const clientOptions: lc.LanguageClientOptions = { | 41 | const clientOptions: lc.LanguageClientOptions = { |
42 | documentSelector: [{ scheme: 'file', language: 'rust' }], | 42 | documentSelector: [{ scheme: 'file', language: 'rust' }], |
43 | initializationOptions: vscode.workspace.getConfiguration("rust-analyzer"), | 43 | initializationOptions: vscode.workspace.getConfiguration("rust-analyzer"), |
44 | diagnosticCollectionName: "rustc", | ||
44 | traceOutputChannel, | 45 | traceOutputChannel, |
45 | middleware: { | 46 | middleware: { |
46 | // Workaround for https://github.com/microsoft/vscode-languageserver-node/issues/576 | 47 | // Workaround for https://github.com/microsoft/vscode-languageserver-node/issues/576 |
@@ -66,7 +67,7 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient | |||
66 | return Promise.resolve(null); | 67 | return Promise.resolve(null); |
67 | }); | 68 | }); |
68 | }, | 69 | }, |
69 | // Using custom handling of CodeActions where each code action is resloved lazily | 70 | // Using custom handling of CodeActions where each code action is resolved lazily |
70 | // That's why we are not waiting for any command or edits | 71 | // That's why we are not waiting for any command or edits |
71 | async provideCodeActions(document: vscode.TextDocument, range: vscode.Range, context: vscode.CodeActionContext, token: vscode.CancellationToken, _next: lc.ProvideCodeActionsSignature) { | 72 | async provideCodeActions(document: vscode.TextDocument, range: vscode.Range, context: vscode.CodeActionContext, token: vscode.CancellationToken, _next: lc.ProvideCodeActionsSignature) { |
72 | const params: lc.CodeActionParams = { | 73 | const params: lc.CodeActionParams = { |
@@ -87,7 +88,8 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient | |||
87 | continue; | 88 | continue; |
88 | } | 89 | } |
89 | assert(isCodeActionWithoutEditsAndCommands(item), "We don't expect edits or commands here"); | 90 | assert(isCodeActionWithoutEditsAndCommands(item), "We don't expect edits or commands here"); |
90 | const action = new vscode.CodeAction(item.title); | 91 | const kind = client.protocol2CodeConverter.asCodeActionKind((item as any).kind); |
92 | const action = new vscode.CodeAction(item.title, kind); | ||
91 | const group = (item as any).group; | 93 | const group = (item as any).group; |
92 | const id = (item as any).id; | 94 | const id = (item as any).id; |
93 | const resolveParams: ra.ResolveCodeActionParams = { | 95 | const resolveParams: ra.ResolveCodeActionParams = { |
@@ -116,6 +118,7 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient | |||
116 | result[index] = items[0]; | 118 | result[index] = items[0]; |
117 | } else { | 119 | } else { |
118 | const action = new vscode.CodeAction(group); | 120 | const action = new vscode.CodeAction(group); |
121 | action.kind = items[0].kind; | ||
119 | action.command = { | 122 | action.command = { |
120 | command: "rust-analyzer.applyActionGroup", | 123 | command: "rust-analyzer.applyActionGroup", |
121 | title: "", | 124 | title: "", |
@@ -161,6 +164,7 @@ class ExperimentalFeatures implements lc.StaticFeature { | |||
161 | caps.codeActionGroup = true; | 164 | caps.codeActionGroup = true; |
162 | caps.resolveCodeAction = true; | 165 | caps.resolveCodeAction = true; |
163 | caps.hoverActions = true; | 166 | caps.hoverActions = true; |
167 | caps.statusNotification = true; | ||
164 | capabilities.experimental = caps; | 168 | capabilities.experimental = caps; |
165 | } | 169 | } |
166 | initialize(_capabilities: lc.ServerCapabilities<any>, _documentSelector: lc.DocumentSelector | undefined): void { | 170 | initialize(_capabilities: lc.ServerCapabilities<any>, _documentSelector: lc.DocumentSelector | undefined): void { |
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts index 0e78f5101..d0faf4745 100644 --- a/editors/code/src/commands.ts +++ b/editors/code/src/commands.ts | |||
@@ -55,6 +55,38 @@ export function analyzerStatus(ctx: Ctx): Cmd { | |||
55 | }; | 55 | }; |
56 | } | 56 | } |
57 | 57 | ||
58 | export function memoryUsage(ctx: Ctx): Cmd { | ||
59 | const tdcp = new class implements vscode.TextDocumentContentProvider { | ||
60 | readonly uri = vscode.Uri.parse('rust-analyzer-memory://memory'); | ||
61 | readonly eventEmitter = new vscode.EventEmitter<vscode.Uri>(); | ||
62 | |||
63 | provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult<string> { | ||
64 | if (!vscode.window.activeTextEditor) return ''; | ||
65 | |||
66 | return ctx.client.sendRequest(ra.memoryUsage, null).then((mem) => { | ||
67 | return 'Per-query memory usage:\n' + mem + '\n(note: database has been cleared)'; | ||
68 | }); | ||
69 | } | ||
70 | |||
71 | get onDidChange(): vscode.Event<vscode.Uri> { | ||
72 | return this.eventEmitter.event; | ||
73 | } | ||
74 | }(); | ||
75 | |||
76 | ctx.pushCleanup( | ||
77 | vscode.workspace.registerTextDocumentContentProvider( | ||
78 | 'rust-analyzer-memory', | ||
79 | tdcp, | ||
80 | ), | ||
81 | ); | ||
82 | |||
83 | return async () => { | ||
84 | tdcp.eventEmitter.fire(tdcp.uri); | ||
85 | const document = await vscode.workspace.openTextDocument(tdcp.uri); | ||
86 | return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true); | ||
87 | }; | ||
88 | } | ||
89 | |||
58 | export function matchingBrace(ctx: Ctx): Cmd { | 90 | export function matchingBrace(ctx: Ctx): Cmd { |
59 | return async () => { | 91 | return async () => { |
60 | const editor = ctx.activeRustEditor; | 92 | const editor = ctx.activeRustEditor; |
@@ -153,15 +185,22 @@ export function parentModule(ctx: Ctx): Cmd { | |||
153 | 185 | ||
154 | export function ssr(ctx: Ctx): Cmd { | 186 | export function ssr(ctx: Ctx): Cmd { |
155 | return async () => { | 187 | return async () => { |
188 | const editor = vscode.window.activeTextEditor; | ||
156 | const client = ctx.client; | 189 | const client = ctx.client; |
157 | if (!client) return; | 190 | if (!editor || !client) return; |
191 | |||
192 | const position = editor.selection.active; | ||
193 | const selections = editor.selections; | ||
194 | const textDocument = { uri: editor.document.uri.toString() }; | ||
158 | 195 | ||
159 | const options: vscode.InputBoxOptions = { | 196 | const options: vscode.InputBoxOptions = { |
160 | value: "() ==>> ()", | 197 | value: "() ==>> ()", |
161 | prompt: "Enter request, for example 'Foo($a) ==> Foo::new($a)' ", | 198 | prompt: "Enter request, for example 'Foo($a) ==> Foo::new($a)' ", |
162 | validateInput: async (x: string) => { | 199 | validateInput: async (x: string) => { |
163 | try { | 200 | try { |
164 | await client.sendRequest(ra.ssr, { query: x, parseOnly: true }); | 201 | await client.sendRequest(ra.ssr, { |
202 | query: x, parseOnly: true, textDocument, position, selections, | ||
203 | }); | ||
165 | } catch (e) { | 204 | } catch (e) { |
166 | return e.toString(); | 205 | return e.toString(); |
167 | } | 206 | } |
@@ -176,7 +215,9 @@ export function ssr(ctx: Ctx): Cmd { | |||
176 | title: "Structured search replace in progress...", | 215 | title: "Structured search replace in progress...", |
177 | cancellable: false, | 216 | cancellable: false, |
178 | }, async (_progress, _token) => { | 217 | }, async (_progress, _token) => { |
179 | const edit = await client.sendRequest(ra.ssr, { query: request, parseOnly: false }); | 218 | const edit = await client.sendRequest(ra.ssr, { |
219 | query: request, parseOnly: false, textDocument, position, selections, | ||
220 | }); | ||
180 | 221 | ||
181 | await vscode.workspace.applyEdit(client.protocol2CodeConverter.asWorkspaceEdit(edit)); | 222 | await vscode.workspace.applyEdit(client.protocol2CodeConverter.asWorkspaceEdit(edit)); |
182 | }); | 223 | }); |
@@ -330,8 +371,8 @@ export function expandMacro(ctx: Ctx): Cmd { | |||
330 | }; | 371 | }; |
331 | } | 372 | } |
332 | 373 | ||
333 | export function collectGarbage(ctx: Ctx): Cmd { | 374 | export function reloadWorkspace(ctx: Ctx): Cmd { |
334 | return async () => ctx.client.sendRequest(ra.collectGarbage, null); | 375 | return async () => ctx.client.sendRequest(ra.reloadWorkspace, null); |
335 | } | 376 | } |
336 | 377 | ||
337 | export function showReferences(ctx: Ctx): Cmd { | 378 | export function showReferences(ctx: Ctx): Cmd { |
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index fc95a7de6..033b04b60 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts | |||
@@ -5,6 +5,8 @@ export type UpdatesChannel = "stable" | "nightly"; | |||
5 | 5 | ||
6 | export const NIGHTLY_TAG = "nightly"; | 6 | export const NIGHTLY_TAG = "nightly"; |
7 | 7 | ||
8 | export type RunnableEnvCfg = undefined | Record<string, string> | { mask?: string; env: Record<string, string> }[]; | ||
9 | |||
8 | export class Config { | 10 | export class Config { |
9 | readonly extensionId = "matklad.rust-analyzer"; | 11 | readonly extensionId = "matklad.rust-analyzer"; |
10 | 12 | ||
@@ -37,10 +39,10 @@ export class Config { | |||
37 | 39 | ||
38 | private refreshLogging() { | 40 | private refreshLogging() { |
39 | log.setEnabled(this.traceExtension); | 41 | log.setEnabled(this.traceExtension); |
40 | log.debug( | 42 | log.info("Extension version:", this.package.version); |
41 | "Extension version:", this.package.version, | 43 | |
42 | "using configuration:", this.cfg | 44 | const cfg = Object.entries(this.cfg).filter(([_, val]) => !(val instanceof Function)); |
43 | ); | 45 | log.info("Using configuration", Object.fromEntries(cfg)); |
44 | } | 46 | } |
45 | 47 | ||
46 | private async onDidChangeConfiguration(event: vscode.ConfigurationChangeEvent) { | 48 | private async onDidChangeConfiguration(event: vscode.ConfigurationChangeEvent) { |
@@ -114,6 +116,10 @@ export class Config { | |||
114 | return this.get<string | undefined>("cargoRunner"); | 116 | return this.get<string | undefined>("cargoRunner"); |
115 | } | 117 | } |
116 | 118 | ||
119 | get runnableEnv() { | ||
120 | return this.get<RunnableEnvCfg>("runnableEnv"); | ||
121 | } | ||
122 | |||
117 | get debug() { | 123 | get debug() { |
118 | // "/rustc/<id>" used by suggestions only. | 124 | // "/rustc/<id>" used by suggestions only. |
119 | const { ["/rustc/<id>"]: _, ...sourceFileMap } = this.get<Record<string, string>>("debug.sourceFileMap"); | 125 | const { ["/rustc/<id>"]: _, ...sourceFileMap } = this.get<Record<string, string>>("debug.sourceFileMap"); |
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts index 41df11991..6e767babf 100644 --- a/editors/code/src/ctx.ts +++ b/editors/code/src/ctx.ts | |||
@@ -1,9 +1,11 @@ | |||
1 | import * as vscode from 'vscode'; | 1 | import * as vscode from 'vscode'; |
2 | import * as lc from 'vscode-languageclient'; | 2 | import * as lc from 'vscode-languageclient'; |
3 | import * as ra from './lsp_ext'; | ||
3 | 4 | ||
4 | import { Config } from './config'; | 5 | import { Config } from './config'; |
5 | import { createClient } from './client'; | 6 | import { createClient } from './client'; |
6 | import { isRustEditor, RustEditor } from './util'; | 7 | import { isRustEditor, RustEditor } from './util'; |
8 | import { Status } from './lsp_ext'; | ||
7 | 9 | ||
8 | export class Ctx { | 10 | export class Ctx { |
9 | private constructor( | 11 | private constructor( |
@@ -11,6 +13,7 @@ export class Ctx { | |||
11 | private readonly extCtx: vscode.ExtensionContext, | 13 | private readonly extCtx: vscode.ExtensionContext, |
12 | readonly client: lc.LanguageClient, | 14 | readonly client: lc.LanguageClient, |
13 | readonly serverPath: string, | 15 | readonly serverPath: string, |
16 | readonly statusBar: vscode.StatusBarItem, | ||
14 | ) { | 17 | ) { |
15 | 18 | ||
16 | } | 19 | } |
@@ -22,9 +25,18 @@ export class Ctx { | |||
22 | cwd: string, | 25 | cwd: string, |
23 | ): Promise<Ctx> { | 26 | ): Promise<Ctx> { |
24 | const client = createClient(serverPath, cwd); | 27 | const client = createClient(serverPath, cwd); |
25 | const res = new Ctx(config, extCtx, client, serverPath); | 28 | |
29 | const statusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left); | ||
30 | extCtx.subscriptions.push(statusBar); | ||
31 | statusBar.text = "rust-analyzer"; | ||
32 | statusBar.tooltip = "ready"; | ||
33 | statusBar.show(); | ||
34 | |||
35 | const res = new Ctx(config, extCtx, client, serverPath, statusBar); | ||
36 | |||
26 | res.pushCleanup(client.start()); | 37 | res.pushCleanup(client.start()); |
27 | await client.onReady(); | 38 | await client.onReady(); |
39 | client.onNotification(ra.status, (status) => res.setStatus(status)); | ||
28 | return res; | 40 | return res; |
29 | } | 41 | } |
30 | 42 | ||
@@ -54,6 +66,35 @@ export class Ctx { | |||
54 | return this.extCtx.subscriptions; | 66 | return this.extCtx.subscriptions; |
55 | } | 67 | } |
56 | 68 | ||
69 | setStatus(status: Status) { | ||
70 | switch (status) { | ||
71 | case "loading": | ||
72 | this.statusBar.text = "$(sync~spin) rust-analyzer"; | ||
73 | this.statusBar.tooltip = "Loading the project"; | ||
74 | this.statusBar.command = undefined; | ||
75 | this.statusBar.color = undefined; | ||
76 | break; | ||
77 | case "ready": | ||
78 | this.statusBar.text = "rust-analyzer"; | ||
79 | this.statusBar.tooltip = "Ready"; | ||
80 | this.statusBar.command = undefined; | ||
81 | this.statusBar.color = undefined; | ||
82 | break; | ||
83 | case "invalid": | ||
84 | this.statusBar.text = "$(error) rust-analyzer"; | ||
85 | this.statusBar.tooltip = "Failed to load the project"; | ||
86 | this.statusBar.command = undefined; | ||
87 | this.statusBar.color = new vscode.ThemeColor("notificationsErrorIcon.foreground"); | ||
88 | break; | ||
89 | case "needsReload": | ||
90 | this.statusBar.text = "$(warning) rust-analyzer"; | ||
91 | this.statusBar.tooltip = "Click to reload"; | ||
92 | this.statusBar.command = "rust-analyzer.reloadWorkspace"; | ||
93 | this.statusBar.color = new vscode.ThemeColor("notificationsWarningIcon.foreground"); | ||
94 | break; | ||
95 | } | ||
96 | } | ||
97 | |||
57 | pushCleanup(d: Disposable) { | 98 | pushCleanup(d: Disposable) { |
58 | this.extCtx.subscriptions.push(d); | 99 | this.extCtx.subscriptions.push(d); |
59 | } | 100 | } |
diff --git a/editors/code/src/debug.ts b/editors/code/src/debug.ts index 61c12dbe0..bd92c5b6d 100644 --- a/editors/code/src/debug.ts +++ b/editors/code/src/debug.ts | |||
@@ -5,9 +5,10 @@ import * as ra from './lsp_ext'; | |||
5 | 5 | ||
6 | import { Cargo } from './toolchain'; | 6 | import { Cargo } from './toolchain'; |
7 | import { Ctx } from "./ctx"; | 7 | import { Ctx } from "./ctx"; |
8 | import { prepareEnv } from "./run"; | ||
8 | 9 | ||
9 | const debugOutput = vscode.window.createOutputChannel("Debug"); | 10 | const debugOutput = vscode.window.createOutputChannel("Debug"); |
10 | type DebugConfigProvider = (config: ra.Runnable, executable: string, sourceFileMap?: Record<string, string>) => vscode.DebugConfiguration; | 11 | type DebugConfigProvider = (config: ra.Runnable, executable: string, env: Record<string, string>, sourceFileMap?: Record<string, string>) => vscode.DebugConfiguration; |
11 | 12 | ||
12 | export async function makeDebugConfig(ctx: Ctx, runnable: ra.Runnable): Promise<void> { | 13 | export async function makeDebugConfig(ctx: Ctx, runnable: ra.Runnable): Promise<void> { |
13 | const scope = ctx.activeRustEditor?.document.uri; | 14 | const scope = ctx.activeRustEditor?.document.uri; |
@@ -92,7 +93,8 @@ async function getDebugConfiguration(ctx: Ctx, runnable: ra.Runnable): Promise<v | |||
92 | } | 93 | } |
93 | 94 | ||
94 | const executable = await getDebugExecutable(runnable); | 95 | const executable = await getDebugExecutable(runnable); |
95 | const debugConfig = knownEngines[debugEngine.id](runnable, simplifyPath(executable), debugOptions.sourceFileMap); | 96 | const env = prepareEnv(runnable, ctx.config.runnableEnv); |
97 | const debugConfig = knownEngines[debugEngine.id](runnable, simplifyPath(executable), env, debugOptions.sourceFileMap); | ||
96 | if (debugConfig.type in debugOptions.engineSettings) { | 98 | if (debugConfig.type in debugOptions.engineSettings) { |
97 | const settingsMap = (debugOptions.engineSettings as any)[debugConfig.type]; | 99 | const settingsMap = (debugOptions.engineSettings as any)[debugConfig.type]; |
98 | for (var key in settingsMap) { | 100 | for (var key in settingsMap) { |
@@ -121,7 +123,7 @@ async function getDebugExecutable(runnable: ra.Runnable): Promise<string> { | |||
121 | return executable; | 123 | return executable; |
122 | } | 124 | } |
123 | 125 | ||
124 | function getLldbDebugConfig(runnable: ra.Runnable, executable: string, sourceFileMap?: Record<string, string>): vscode.DebugConfiguration { | 126 | function getLldbDebugConfig(runnable: ra.Runnable, executable: string, env: Record<string, string>, sourceFileMap?: Record<string, string>): vscode.DebugConfiguration { |
125 | return { | 127 | return { |
126 | type: "lldb", | 128 | type: "lldb", |
127 | request: "launch", | 129 | request: "launch", |
@@ -130,11 +132,12 @@ function getLldbDebugConfig(runnable: ra.Runnable, executable: string, sourceFil | |||
130 | args: runnable.args.executableArgs, | 132 | args: runnable.args.executableArgs, |
131 | cwd: runnable.args.workspaceRoot, | 133 | cwd: runnable.args.workspaceRoot, |
132 | sourceMap: sourceFileMap, | 134 | sourceMap: sourceFileMap, |
133 | sourceLanguages: ["rust"] | 135 | sourceLanguages: ["rust"], |
136 | env | ||
134 | }; | 137 | }; |
135 | } | 138 | } |
136 | 139 | ||
137 | function getCppvsDebugConfig(runnable: ra.Runnable, executable: string, sourceFileMap?: Record<string, string>): vscode.DebugConfiguration { | 140 | function getCppvsDebugConfig(runnable: ra.Runnable, executable: string, env: Record<string, string>, sourceFileMap?: Record<string, string>): vscode.DebugConfiguration { |
138 | return { | 141 | return { |
139 | type: (os.platform() === "win32") ? "cppvsdbg" : "cppdbg", | 142 | type: (os.platform() === "win32") ? "cppvsdbg" : "cppdbg", |
140 | request: "launch", | 143 | request: "launch", |
@@ -142,6 +145,7 @@ function getCppvsDebugConfig(runnable: ra.Runnable, executable: string, sourceFi | |||
142 | program: executable, | 145 | program: executable, |
143 | args: runnable.args.executableArgs, | 146 | args: runnable.args.executableArgs, |
144 | cwd: runnable.args.workspaceRoot, | 147 | cwd: runnable.args.workspaceRoot, |
145 | sourceFileMap: sourceFileMap, | 148 | sourceFileMap, |
149 | env, | ||
146 | }; | 150 | }; |
147 | } | 151 | } |
diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts index e16ea799c..494d51c83 100644 --- a/editors/code/src/lsp_ext.ts +++ b/editors/code/src/lsp_ext.ts | |||
@@ -5,8 +5,12 @@ | |||
5 | import * as lc from "vscode-languageclient"; | 5 | import * as lc from "vscode-languageclient"; |
6 | 6 | ||
7 | export const analyzerStatus = new lc.RequestType<null, string, void>("rust-analyzer/analyzerStatus"); | 7 | export const analyzerStatus = new lc.RequestType<null, string, void>("rust-analyzer/analyzerStatus"); |
8 | export const memoryUsage = new lc.RequestType<null, string, void>("rust-analyzer/memoryUsage"); | ||
8 | 9 | ||
9 | export const collectGarbage = new lc.RequestType<null, null, void>("rust-analyzer/collectGarbage"); | 10 | export type Status = "loading" | "ready" | "invalid" | "needsReload"; |
11 | export const status = new lc.NotificationType<Status>("rust-analyzer/status"); | ||
12 | |||
13 | export const reloadWorkspace = new lc.RequestType<null, null, void>("rust-analyzer/reloadWorkspace"); | ||
10 | 14 | ||
11 | export interface SyntaxTreeParams { | 15 | export interface SyntaxTreeParams { |
12 | textDocument: lc.TextDocumentIdentifier; | 16 | textDocument: lc.TextDocumentIdentifier; |
@@ -60,6 +64,7 @@ export interface Runnable { | |||
60 | workspaceRoot?: string; | 64 | workspaceRoot?: string; |
61 | cargoArgs: string[]; | 65 | cargoArgs: string[]; |
62 | executableArgs: string[]; | 66 | executableArgs: string[]; |
67 | expectTest?: boolean; | ||
63 | }; | 68 | }; |
64 | } | 69 | } |
65 | export const runnables = new lc.RequestType<RunnablesParams, Runnable[], void>("experimental/runnables"); | 70 | export const runnables = new lc.RequestType<RunnablesParams, Runnable[], void>("experimental/runnables"); |
@@ -88,6 +93,9 @@ export const inlayHints = new lc.RequestType<InlayHintsParams, InlayHint[], void | |||
88 | export interface SsrParams { | 93 | export interface SsrParams { |
89 | query: string; | 94 | query: string; |
90 | parseOnly: boolean; | 95 | parseOnly: boolean; |
96 | textDocument: lc.TextDocumentIdentifier; | ||
97 | position: lc.Position; | ||
98 | selections: lc.Range[]; | ||
91 | } | 99 | } |
92 | export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, void>('experimental/ssr'); | 100 | export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, void>('experimental/ssr'); |
93 | 101 | ||
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 5ceab8b44..bd99d696a 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts | |||
@@ -19,6 +19,16 @@ let ctx: Ctx | undefined; | |||
19 | const RUST_PROJECT_CONTEXT_NAME = "inRustProject"; | 19 | const RUST_PROJECT_CONTEXT_NAME = "inRustProject"; |
20 | 20 | ||
21 | export async function activate(context: vscode.ExtensionContext) { | 21 | export async function activate(context: vscode.ExtensionContext) { |
22 | // For some reason vscode not always shows pop-up error notifications | ||
23 | // when an extension fails to activate, so we do it explicitly by ourselves. | ||
24 | // FIXME: remove this bit of code once vscode fixes this issue: https://github.com/microsoft/vscode/issues/101242 | ||
25 | await tryActivate(context).catch(err => { | ||
26 | void vscode.window.showErrorMessage(`Cannot activate rust-analyzer: ${err.message}`); | ||
27 | throw err; | ||
28 | }); | ||
29 | } | ||
30 | |||
31 | async function tryActivate(context: vscode.ExtensionContext) { | ||
22 | // Register a "dumb" onEnter command for the case where server fails to | 32 | // Register a "dumb" onEnter command for the case where server fails to |
23 | // start. | 33 | // start. |
24 | // | 34 | // |
@@ -44,13 +54,13 @@ export async function activate(context: vscode.ExtensionContext) { | |||
44 | const serverPath = await bootstrap(config, state).catch(err => { | 54 | const serverPath = await bootstrap(config, state).catch(err => { |
45 | let message = "bootstrap error. "; | 55 | let message = "bootstrap error. "; |
46 | 56 | ||
47 | if (err.code === "EBUSY" || err.code === "ETXTBSY") { | 57 | if (err.code === "EBUSY" || err.code === "ETXTBSY" || err.code === "EPERM") { |
48 | message += "Other vscode windows might be using rust-analyzer, "; | 58 | message += "Other vscode windows might be using rust-analyzer, "; |
49 | message += "you should close them and reload this window to retry. "; | 59 | message += "you should close them and reload this window to retry. "; |
50 | } | 60 | } |
51 | 61 | ||
52 | message += 'Open "Help > Toggle Developer Tools > Console" to see the logs '; | 62 | message += 'See the logs in "OUTPUT > Rust Analyzer Client" (should open automatically). '; |
53 | message += '(enable verbose logs with "rust-analyzer.trace.extension")'; | 63 | message += 'To enable verbose logs use { "rust-analyzer.trace.extension": true }'; |
54 | 64 | ||
55 | log.error("Bootstrap error", err); | 65 | log.error("Bootstrap error", err); |
56 | throw new Error(message); | 66 | throw new Error(message); |
@@ -58,9 +68,7 @@ export async function activate(context: vscode.ExtensionContext) { | |||
58 | 68 | ||
59 | const workspaceFolder = vscode.workspace.workspaceFolders?.[0]; | 69 | const workspaceFolder = vscode.workspace.workspaceFolders?.[0]; |
60 | if (workspaceFolder === undefined) { | 70 | if (workspaceFolder === undefined) { |
61 | const err = "Cannot activate rust-analyzer when no folder is opened"; | 71 | throw new Error("no folder is opened"); |
62 | void vscode.window.showErrorMessage(err); | ||
63 | throw new Error(err); | ||
64 | } | 72 | } |
65 | 73 | ||
66 | // Note: we try to start the server before we activate type hints so that it | 74 | // Note: we try to start the server before we activate type hints so that it |
@@ -88,7 +96,8 @@ export async function activate(context: vscode.ExtensionContext) { | |||
88 | }); | 96 | }); |
89 | 97 | ||
90 | ctx.registerCommand('analyzerStatus', commands.analyzerStatus); | 98 | ctx.registerCommand('analyzerStatus', commands.analyzerStatus); |
91 | ctx.registerCommand('collectGarbage', commands.collectGarbage); | 99 | ctx.registerCommand('memoryUsage', commands.memoryUsage); |
100 | ctx.registerCommand('reloadWorkspace', commands.reloadWorkspace); | ||
92 | ctx.registerCommand('matchingBrace', commands.matchingBrace); | 101 | ctx.registerCommand('matchingBrace', commands.matchingBrace); |
93 | ctx.registerCommand('joinLines', commands.joinLines); | 102 | ctx.registerCommand('joinLines', commands.joinLines); |
94 | ctx.registerCommand('parentModule', commands.parentModule); | 103 | ctx.registerCommand('parentModule', commands.parentModule); |
@@ -152,13 +161,17 @@ async function bootstrapExtension(config: Config, state: PersistentState): Promi | |||
152 | return; | 161 | return; |
153 | }; | 162 | }; |
154 | 163 | ||
155 | const lastCheck = state.lastCheck; | ||
156 | const now = Date.now(); | 164 | const now = Date.now(); |
165 | if (config.package.releaseTag === NIGHTLY_TAG) { | ||
166 | // Check if we should poll github api for the new nightly version | ||
167 | // if we haven't done it during the past hour | ||
168 | const lastCheck = state.lastCheck; | ||
157 | 169 | ||
158 | const anHour = 60 * 60 * 1000; | 170 | const anHour = 60 * 60 * 1000; |
159 | const shouldDownloadNightly = state.releaseId === undefined || (now - (lastCheck ?? 0)) > anHour; | 171 | const shouldCheckForNewNightly = state.releaseId === undefined || (now - (lastCheck ?? 0)) > anHour; |
160 | 172 | ||
161 | if (!shouldDownloadNightly) return; | 173 | if (!shouldCheckForNewNightly) return; |
174 | } | ||
162 | 175 | ||
163 | const release = await fetchRelease("nightly").catch((e) => { | 176 | const release = await fetchRelease("nightly").catch((e) => { |
164 | log.error(e); | 177 | log.error(e); |
@@ -202,7 +215,7 @@ async function bootstrapServer(config: Config, state: PersistentState): Promise< | |||
202 | ); | 215 | ); |
203 | } | 216 | } |
204 | 217 | ||
205 | log.debug("Using server binary at", path); | 218 | log.info("Using server binary at", path); |
206 | 219 | ||
207 | if (!isValidExecutable(path)) { | 220 | if (!isValidExecutable(path)) { |
208 | throw new Error(`Failed to execute ${path} --version`); | 221 | throw new Error(`Failed to execute ${path} --version`); |
@@ -261,13 +274,13 @@ async function getServer(config: Config, state: PersistentState): Promise<string | |||
261 | }; | 274 | }; |
262 | if (config.package.releaseTag === null) return "rust-analyzer"; | 275 | if (config.package.releaseTag === null) return "rust-analyzer"; |
263 | 276 | ||
264 | let binaryName: string | undefined = undefined; | 277 | let platform: string | undefined; |
265 | if (process.arch === "x64" || process.arch === "ia32") { | 278 | if (process.arch === "x64" || process.arch === "ia32") { |
266 | if (process.platform === "linux") binaryName = "rust-analyzer-linux"; | 279 | if (process.platform === "linux") platform = "linux"; |
267 | if (process.platform === "darwin") binaryName = "rust-analyzer-mac"; | 280 | if (process.platform === "darwin") platform = "mac"; |
268 | if (process.platform === "win32") binaryName = "rust-analyzer-windows.exe"; | 281 | if (process.platform === "win32") platform = "windows"; |
269 | } | 282 | } |
270 | if (binaryName === undefined) { | 283 | if (platform === undefined) { |
271 | vscode.window.showErrorMessage( | 284 | vscode.window.showErrorMessage( |
272 | "Unfortunately we don't ship binaries for your platform yet. " + | 285 | "Unfortunately we don't ship binaries for your platform yet. " + |
273 | "You need to manually clone rust-analyzer repository and " + | 286 | "You need to manually clone rust-analyzer repository and " + |
@@ -278,8 +291,8 @@ async function getServer(config: Config, state: PersistentState): Promise<string | |||
278 | ); | 291 | ); |
279 | return undefined; | 292 | return undefined; |
280 | } | 293 | } |
281 | 294 | const ext = platform === "windows" ? ".exe" : ""; | |
282 | const dest = path.join(config.globalStoragePath, binaryName); | 295 | const dest = path.join(config.globalStoragePath, `rust-analyzer-${platform}${ext}`); |
283 | const exists = await fs.stat(dest).then(() => true, () => false); | 296 | const exists = await fs.stat(dest).then(() => true, () => false); |
284 | if (!exists) { | 297 | if (!exists) { |
285 | await state.updateServerVersion(undefined); | 298 | await state.updateServerVersion(undefined); |
@@ -296,7 +309,7 @@ async function getServer(config: Config, state: PersistentState): Promise<string | |||
296 | } | 309 | } |
297 | 310 | ||
298 | const release = await fetchRelease(config.package.releaseTag); | 311 | const release = await fetchRelease(config.package.releaseTag); |
299 | const artifact = release.assets.find(artifact => artifact.name === binaryName); | 312 | const artifact = release.assets.find(artifact => artifact.name === `rust-analyzer-${platform}.gz`); |
300 | assert(!!artifact, `Bad release: ${JSON.stringify(release)}`); | 313 | assert(!!artifact, `Bad release: ${JSON.stringify(release)}`); |
301 | 314 | ||
302 | // Unlinking the exe file before moving new one on its place should prevent ETXTBSY error. | 315 | // Unlinking the exe file before moving new one on its place should prevent ETXTBSY error. |
@@ -308,6 +321,7 @@ async function getServer(config: Config, state: PersistentState): Promise<string | |||
308 | url: artifact.browser_download_url, | 321 | url: artifact.browser_download_url, |
309 | dest, | 322 | dest, |
310 | progressTitle: "Downloading rust-analyzer server", | 323 | progressTitle: "Downloading rust-analyzer server", |
324 | gunzip: true, | ||
311 | mode: 0o755 | 325 | mode: 0o755 |
312 | }); | 326 | }); |
313 | 327 | ||
diff --git a/editors/code/src/net.ts b/editors/code/src/net.ts index 866092882..681eaa9c9 100644 --- a/editors/code/src/net.ts +++ b/editors/code/src/net.ts | |||
@@ -1,8 +1,12 @@ | |||
1 | import fetch from "node-fetch"; | 1 | // Replace with `import fetch from "node-fetch"` once this is fixed in rollup: |
2 | // https://github.com/rollup/plugins/issues/491 | ||
3 | const fetch = require("node-fetch") as typeof import("node-fetch")["default"]; | ||
4 | |||
2 | import * as vscode from "vscode"; | 5 | import * as vscode from "vscode"; |
3 | import * as stream from "stream"; | 6 | import * as stream from "stream"; |
4 | import * as crypto from "crypto"; | 7 | import * as crypto from "crypto"; |
5 | import * as fs from "fs"; | 8 | import * as fs from "fs"; |
9 | import * as zlib from "zlib"; | ||
6 | import * as util from "util"; | 10 | import * as util from "util"; |
7 | import * as path from "path"; | 11 | import * as path from "path"; |
8 | import { log, assert } from "./util"; | 12 | import { log, assert } from "./util"; |
@@ -65,6 +69,7 @@ interface DownloadOpts { | |||
65 | url: string; | 69 | url: string; |
66 | dest: string; | 70 | dest: string; |
67 | mode?: number; | 71 | mode?: number; |
72 | gunzip?: boolean; | ||
68 | } | 73 | } |
69 | 74 | ||
70 | export async function download(opts: DownloadOpts) { | 75 | export async function download(opts: DownloadOpts) { |
@@ -82,7 +87,7 @@ export async function download(opts: DownloadOpts) { | |||
82 | }, | 87 | }, |
83 | async (progress, _cancellationToken) => { | 88 | async (progress, _cancellationToken) => { |
84 | let lastPercentage = 0; | 89 | let lastPercentage = 0; |
85 | await downloadFile(opts.url, tempFile, opts.mode, (readBytes, totalBytes) => { | 90 | await downloadFile(opts.url, tempFile, opts.mode, !!opts.gunzip, (readBytes, totalBytes) => { |
86 | const newPercentage = (readBytes / totalBytes) * 100; | 91 | const newPercentage = (readBytes / totalBytes) * 100; |
87 | progress.report({ | 92 | progress.report({ |
88 | message: newPercentage.toFixed(0) + "%", | 93 | message: newPercentage.toFixed(0) + "%", |
@@ -97,16 +102,11 @@ export async function download(opts: DownloadOpts) { | |||
97 | await fs.promises.rename(tempFile, opts.dest); | 102 | await fs.promises.rename(tempFile, opts.dest); |
98 | } | 103 | } |
99 | 104 | ||
100 | /** | ||
101 | * Downloads file from `url` and stores it at `destFilePath` with `mode` (unix permissions). | ||
102 | * `onProgress` callback is called on recieveing each chunk of bytes | ||
103 | * to track the progress of downloading, it gets the already read and total | ||
104 | * amount of bytes to read as its parameters. | ||
105 | */ | ||
106 | async function downloadFile( | 105 | async function downloadFile( |
107 | url: string, | 106 | url: string, |
108 | destFilePath: fs.PathLike, | 107 | destFilePath: fs.PathLike, |
109 | mode: number | undefined, | 108 | mode: number | undefined, |
109 | gunzip: boolean, | ||
110 | onProgress: (readBytes: number, totalBytes: number) => void | 110 | onProgress: (readBytes: number, totalBytes: number) => void |
111 | ): Promise<void> { | 111 | ): Promise<void> { |
112 | const res = await fetch(url); | 112 | const res = await fetch(url); |
@@ -130,7 +130,10 @@ async function downloadFile( | |||
130 | }); | 130 | }); |
131 | 131 | ||
132 | const destFileStream = fs.createWriteStream(destFilePath, { mode }); | 132 | const destFileStream = fs.createWriteStream(destFilePath, { mode }); |
133 | await pipeline(res.body, destFileStream); | 133 | const srcStream = gunzip ? res.body.pipe(zlib.createGunzip()) : res.body; |
134 | |||
135 | await pipeline(srcStream, destFileStream); | ||
136 | |||
134 | await new Promise<void>(resolve => { | 137 | await new Promise<void>(resolve => { |
135 | destFileStream.on("close", resolve); | 138 | destFileStream.on("close", resolve); |
136 | destFileStream.destroy(); | 139 | destFileStream.destroy(); |
diff --git a/editors/code/src/persistent_state.ts b/editors/code/src/persistent_state.ts index 138d11b89..5705eed81 100644 --- a/editors/code/src/persistent_state.ts +++ b/editors/code/src/persistent_state.ts | |||
@@ -4,7 +4,7 @@ import { log } from './util'; | |||
4 | export class PersistentState { | 4 | export class PersistentState { |
5 | constructor(private readonly globalState: vscode.Memento) { | 5 | constructor(private readonly globalState: vscode.Memento) { |
6 | const { lastCheck, releaseId, serverVersion } = this; | 6 | const { lastCheck, releaseId, serverVersion } = this; |
7 | log.debug("PersistentState: ", { lastCheck, releaseId, serverVersion }); | 7 | log.info("PersistentState:", { lastCheck, releaseId, serverVersion }); |
8 | } | 8 | } |
9 | 9 | ||
10 | /** | 10 | /** |
diff --git a/editors/code/src/run.ts b/editors/code/src/run.ts index 766b05112..de68f27ae 100644 --- a/editors/code/src/run.ts +++ b/editors/code/src/run.ts | |||
@@ -5,7 +5,7 @@ import * as tasks from './tasks'; | |||
5 | 5 | ||
6 | import { Ctx } from './ctx'; | 6 | import { Ctx } from './ctx'; |
7 | import { makeDebugConfig } from './debug'; | 7 | import { makeDebugConfig } from './debug'; |
8 | import { Config } from './config'; | 8 | import { Config, RunnableEnvCfg } from './config'; |
9 | 9 | ||
10 | const quickPickButtons = [{ iconPath: new vscode.ThemeIcon("save"), tooltip: "Save as a launch.json configurtation." }]; | 10 | const quickPickButtons = [{ iconPath: new vscode.ThemeIcon("save"), tooltip: "Save as a launch.json configurtation." }]; |
11 | 11 | ||
@@ -96,6 +96,30 @@ export class RunnableQuickPick implements vscode.QuickPickItem { | |||
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | ||
99 | export function prepareEnv(runnable: ra.Runnable, runnableEnvCfg: RunnableEnvCfg): Record<string, string> { | ||
100 | const env: Record<string, string> = { "RUST_BACKTRACE": "short" }; | ||
101 | |||
102 | if (runnable.args.expectTest) { | ||
103 | env["UPDATE_EXPECT"] = "1"; | ||
104 | } | ||
105 | |||
106 | Object.assign(env, process.env as { [key: string]: string }); | ||
107 | |||
108 | if (runnableEnvCfg) { | ||
109 | if (Array.isArray(runnableEnvCfg)) { | ||
110 | for (const it of runnableEnvCfg) { | ||
111 | if (!it.mask || new RegExp(it.mask).test(runnable.label)) { | ||
112 | Object.assign(env, it.env); | ||
113 | } | ||
114 | } | ||
115 | } else { | ||
116 | Object.assign(env, runnableEnvCfg); | ||
117 | } | ||
118 | } | ||
119 | |||
120 | return env; | ||
121 | } | ||
122 | |||
99 | export async function createTask(runnable: ra.Runnable, config: Config): Promise<vscode.Task> { | 123 | export async function createTask(runnable: ra.Runnable, config: Config): Promise<vscode.Task> { |
100 | if (runnable.kind !== "cargo") { | 124 | if (runnable.kind !== "cargo") { |
101 | // rust-analyzer supports only one kind, "cargo" | 125 | // rust-analyzer supports only one kind, "cargo" |
@@ -108,12 +132,13 @@ export async function createTask(runnable: ra.Runnable, config: Config): Promise | |||
108 | if (runnable.args.executableArgs.length > 0) { | 132 | if (runnable.args.executableArgs.length > 0) { |
109 | args.push('--', ...runnable.args.executableArgs); | 133 | args.push('--', ...runnable.args.executableArgs); |
110 | } | 134 | } |
135 | |||
111 | const definition: tasks.CargoTaskDefinition = { | 136 | const definition: tasks.CargoTaskDefinition = { |
112 | type: tasks.TASK_TYPE, | 137 | type: tasks.TASK_TYPE, |
113 | command: args[0], // run, test, etc... | 138 | command: args[0], // run, test, etc... |
114 | args: args.slice(1), | 139 | args: args.slice(1), |
115 | cwd: runnable.args.workspaceRoot, | 140 | cwd: runnable.args.workspaceRoot || ".", |
116 | env: Object.assign({}, process.env as { [key: string]: string }, { "RUST_BACKTRACE": "short" }), | 141 | env: prepareEnv(runnable, config.runnableEnv), |
117 | }; | 142 | }; |
118 | 143 | ||
119 | const target = vscode.workspace.workspaceFolders![0]; // safe, see main activate() | 144 | const target = vscode.workspace.workspaceFolders![0]; // safe, see main activate() |
diff --git a/editors/code/src/snippets.ts b/editors/code/src/snippets.ts index bcb3f2cc7..258b49982 100644 --- a/editors/code/src/snippets.ts +++ b/editors/code/src/snippets.ts | |||
@@ -6,6 +6,10 @@ export async function applySnippetWorkspaceEdit(edit: vscode.WorkspaceEdit) { | |||
6 | assert(edit.entries().length === 1, `bad ws edit: ${JSON.stringify(edit)}`); | 6 | assert(edit.entries().length === 1, `bad ws edit: ${JSON.stringify(edit)}`); |
7 | const [uri, edits] = edit.entries()[0]; | 7 | const [uri, edits] = edit.entries()[0]; |
8 | 8 | ||
9 | if (vscode.window.activeTextEditor?.document.uri !== uri) { | ||
10 | // `vscode.window.visibleTextEditors` only contains editors whose contents are being displayed | ||
11 | await vscode.window.showTextDocument(uri, {}); | ||
12 | } | ||
9 | const editor = vscode.window.visibleTextEditors.find((it) => it.document.uri.toString() === uri.toString()); | 13 | const editor = vscode.window.visibleTextEditors.find((it) => it.document.uri.toString() === uri.toString()); |
10 | if (!editor) return; | 14 | if (!editor) return; |
11 | await applySnippetTextEdits(editor, edits); | 15 | await applySnippetTextEdits(editor, edits); |
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts index fec4c3295..970fedb37 100644 --- a/editors/code/src/util.ts +++ b/editors/code/src/util.ts | |||
@@ -2,6 +2,7 @@ import * as lc from "vscode-languageclient"; | |||
2 | import * as vscode from "vscode"; | 2 | import * as vscode from "vscode"; |
3 | import { strict as nativeAssert } from "assert"; | 3 | import { strict as nativeAssert } from "assert"; |
4 | import { spawnSync } from "child_process"; | 4 | import { spawnSync } from "child_process"; |
5 | import { inspect } from "util"; | ||
5 | 6 | ||
6 | export function assert(condition: boolean, explanation: string): asserts condition { | 7 | export function assert(condition: boolean, explanation: string): asserts condition { |
7 | try { | 8 | try { |
@@ -14,21 +15,46 @@ export function assert(condition: boolean, explanation: string): asserts conditi | |||
14 | 15 | ||
15 | export const log = new class { | 16 | export const log = new class { |
16 | private enabled = true; | 17 | private enabled = true; |
18 | private readonly output = vscode.window.createOutputChannel("Rust Analyzer Client"); | ||
17 | 19 | ||
18 | setEnabled(yes: boolean): void { | 20 | setEnabled(yes: boolean): void { |
19 | log.enabled = yes; | 21 | log.enabled = yes; |
20 | } | 22 | } |
21 | 23 | ||
22 | debug(message?: any, ...optionalParams: any[]): void { | 24 | // Hint: the type [T, ...T[]] means a non-empty array |
25 | debug(...msg: [unknown, ...unknown[]]): void { | ||
23 | if (!log.enabled) return; | 26 | if (!log.enabled) return; |
24 | // eslint-disable-next-line no-console | 27 | log.write("DEBUG", ...msg); |
25 | console.log(message, ...optionalParams); | 28 | log.output.toString(); |
26 | } | 29 | } |
27 | 30 | ||
28 | error(message?: any, ...optionalParams: any[]): void { | 31 | info(...msg: [unknown, ...unknown[]]): void { |
32 | log.write("INFO", ...msg); | ||
33 | } | ||
34 | |||
35 | warn(...msg: [unknown, ...unknown[]]): void { | ||
36 | debugger; | ||
37 | log.write("WARN", ...msg); | ||
38 | } | ||
39 | |||
40 | error(...msg: [unknown, ...unknown[]]): void { | ||
29 | debugger; | 41 | debugger; |
30 | // eslint-disable-next-line no-console | 42 | log.write("ERROR", ...msg); |
31 | console.error(message, ...optionalParams); | 43 | log.output.show(true); |
44 | } | ||
45 | |||
46 | private write(label: string, ...messageParts: unknown[]): void { | ||
47 | const message = messageParts.map(log.stringify).join(" "); | ||
48 | const dateTime = new Date().toLocaleString(); | ||
49 | log.output.appendLine(`${label} [${dateTime}]: ${message}`); | ||
50 | } | ||
51 | |||
52 | private stringify(val: unknown): string { | ||
53 | if (typeof val === "string") return val; | ||
54 | return inspect(val, { | ||
55 | colors: false, | ||
56 | depth: 6, // heuristic | ||
57 | }); | ||
32 | } | 58 | } |
33 | }; | 59 | }; |
34 | 60 | ||
@@ -46,7 +72,7 @@ export async function sendRequestWithRetry<TParam, TRet>( | |||
46 | ); | 72 | ); |
47 | } catch (error) { | 73 | } catch (error) { |
48 | if (delay === null) { | 74 | if (delay === null) { |
49 | log.error("LSP request timed out", { method: reqType.method, param, error }); | 75 | log.warn("LSP request timed out", { method: reqType.method, param, error }); |
50 | throw error; | 76 | throw error; |
51 | } | 77 | } |
52 | 78 | ||
@@ -55,7 +81,7 @@ export async function sendRequestWithRetry<TParam, TRet>( | |||
55 | } | 81 | } |
56 | 82 | ||
57 | if (error.code !== lc.ErrorCodes.ContentModified) { | 83 | if (error.code !== lc.ErrorCodes.ContentModified) { |
58 | log.error("LSP request failed", { method: reqType.method, param, error }); | 84 | log.warn("LSP request failed", { method: reqType.method, param, error }); |
59 | throw error; | 85 | throw error; |
60 | } | 86 | } |
61 | 87 | ||
@@ -89,7 +115,8 @@ export function isValidExecutable(path: string): boolean { | |||
89 | 115 | ||
90 | const res = spawnSync(path, ["--version"], { encoding: 'utf8' }); | 116 | const res = spawnSync(path, ["--version"], { encoding: 'utf8' }); |
91 | 117 | ||
92 | log.debug(res, "--version output:", res.output); | 118 | const printOutput = res.error && (res.error as any).code !== 'ENOENT' ? log.warn : log.debug; |
119 | printOutput(path, "--version:", res); | ||
93 | 120 | ||
94 | return res.status === 0; | 121 | return res.status === 0; |
95 | } | 122 | } |
diff --git a/editors/code/tests/unit/index.ts b/editors/code/tests/unit/index.ts index 5165720b4..b7d8d2144 100644 --- a/editors/code/tests/unit/index.ts +++ b/editors/code/tests/unit/index.ts | |||
@@ -1,6 +1,6 @@ | |||
1 | import * as path from 'path'; | 1 | import * as path from 'path'; |
2 | import Mocha from 'mocha'; | 2 | import * as Mocha from 'mocha'; |
3 | import glob from 'glob'; | 3 | import * as glob from 'glob'; |
4 | 4 | ||
5 | export function run(): Promise<void> { | 5 | export function run(): Promise<void> { |
6 | // Create the mocha test | 6 | // Create the mocha test |
diff --git a/editors/code/tests/unit/runnable_env.test.ts b/editors/code/tests/unit/runnable_env.test.ts new file mode 100644 index 000000000..f2f53e91a --- /dev/null +++ b/editors/code/tests/unit/runnable_env.test.ts | |||
@@ -0,0 +1,118 @@ | |||
1 | import * as assert from 'assert'; | ||
2 | import { prepareEnv } from '../../src/run'; | ||
3 | import { RunnableEnvCfg } from '../../src/config'; | ||
4 | import * as ra from '../../src/lsp_ext'; | ||
5 | |||
6 | function makeRunnable(label: string): ra.Runnable { | ||
7 | return { | ||
8 | label, | ||
9 | kind: "cargo", | ||
10 | args: { | ||
11 | cargoArgs: [], | ||
12 | executableArgs: [] | ||
13 | } | ||
14 | }; | ||
15 | } | ||
16 | |||
17 | function fakePrepareEnv(runnableName: string, config: RunnableEnvCfg): Record<string, string> { | ||
18 | const runnable = makeRunnable(runnableName); | ||
19 | return prepareEnv(runnable, config); | ||
20 | } | ||
21 | |||
22 | suite('Runnable env', () => { | ||
23 | test('Global config works', () => { | ||
24 | const binEnv = fakePrepareEnv("run project_name", { "GLOBAL": "g" }); | ||
25 | assert.equal(binEnv["GLOBAL"], "g"); | ||
26 | |||
27 | const testEnv = fakePrepareEnv("test some::mod::test_name", { "GLOBAL": "g" }); | ||
28 | assert.equal(testEnv["GLOBAL"], "g"); | ||
29 | }); | ||
30 | |||
31 | test('null mask works', () => { | ||
32 | const config = [ | ||
33 | { | ||
34 | env: { DATA: "data" } | ||
35 | } | ||
36 | ]; | ||
37 | const binEnv = fakePrepareEnv("run project_name", config); | ||
38 | assert.equal(binEnv["DATA"], "data"); | ||
39 | |||
40 | const testEnv = fakePrepareEnv("test some::mod::test_name", config); | ||
41 | assert.equal(testEnv["DATA"], "data"); | ||
42 | }); | ||
43 | |||
44 | test('order works', () => { | ||
45 | const config = [ | ||
46 | { | ||
47 | env: { DATA: "data" } | ||
48 | }, | ||
49 | { | ||
50 | env: { DATA: "newdata" } | ||
51 | } | ||
52 | ]; | ||
53 | const binEnv = fakePrepareEnv("run project_name", config); | ||
54 | assert.equal(binEnv["DATA"], "newdata"); | ||
55 | |||
56 | const testEnv = fakePrepareEnv("test some::mod::test_name", config); | ||
57 | assert.equal(testEnv["DATA"], "newdata"); | ||
58 | }); | ||
59 | |||
60 | test('mask works', () => { | ||
61 | const config = [ | ||
62 | { | ||
63 | env: { DATA: "data" } | ||
64 | }, | ||
65 | { | ||
66 | mask: "^run", | ||
67 | env: { DATA: "rundata" } | ||
68 | }, | ||
69 | { | ||
70 | mask: "special_test$", | ||
71 | env: { DATA: "special_test" } | ||
72 | } | ||
73 | ]; | ||
74 | const binEnv = fakePrepareEnv("run project_name", config); | ||
75 | assert.equal(binEnv["DATA"], "rundata"); | ||
76 | |||
77 | const testEnv = fakePrepareEnv("test some::mod::test_name", config); | ||
78 | assert.equal(testEnv["DATA"], "data"); | ||
79 | |||
80 | const specialTestEnv = fakePrepareEnv("test some::mod::special_test", config); | ||
81 | assert.equal(specialTestEnv["DATA"], "special_test"); | ||
82 | }); | ||
83 | |||
84 | test('exact test name works', () => { | ||
85 | const config = [ | ||
86 | { | ||
87 | env: { DATA: "data" } | ||
88 | }, | ||
89 | { | ||
90 | mask: "some::mod::test_name", | ||
91 | env: { DATA: "test special" } | ||
92 | } | ||
93 | ]; | ||
94 | const testEnv = fakePrepareEnv("test some::mod::test_name", config); | ||
95 | assert.equal(testEnv["DATA"], "test special"); | ||
96 | |||
97 | const specialTestEnv = fakePrepareEnv("test some::mod::another_test", config); | ||
98 | assert.equal(specialTestEnv["DATA"], "data"); | ||
99 | }); | ||
100 | |||
101 | test('test mod name works', () => { | ||
102 | const config = [ | ||
103 | { | ||
104 | env: { DATA: "data" } | ||
105 | }, | ||
106 | { | ||
107 | mask: "some::mod", | ||
108 | env: { DATA: "mod special" } | ||
109 | } | ||
110 | ]; | ||
111 | const testEnv = fakePrepareEnv("test some::mod::test_name", config); | ||
112 | assert.equal(testEnv["DATA"], "mod special"); | ||
113 | |||
114 | const specialTestEnv = fakePrepareEnv("test some::mod::another_test", config); | ||
115 | assert.equal(specialTestEnv["DATA"], "mod special"); | ||
116 | }); | ||
117 | |||
118 | }); | ||
diff --git a/editors/code/tsconfig.json b/editors/code/tsconfig.json index 32d1a865f..c9f348241 100644 --- a/editors/code/tsconfig.json +++ b/editors/code/tsconfig.json | |||
@@ -6,8 +6,6 @@ | |||
6 | "lib": [ | 6 | "lib": [ |
7 | "es2019" | 7 | "es2019" |
8 | ], | 8 | ], |
9 | "esModuleInterop": true, | ||
10 | "allowSyntheticDefaultImports": true, | ||
11 | "sourceMap": true, | 9 | "sourceMap": true, |
12 | "rootDir": ".", | 10 | "rootDir": ".", |
13 | "strict": true, | 11 | "strict": true, |