submodule-version 3.2.5 → 3.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/src/sv.d.ts +2 -0
- package/dist/src/sv.js +59 -7
- package/dist/src/sv.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/sv.test.ts +75 -18
- package/src/sv.ts +77 -7
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ By default, `put` and `delete` first run a check resolve and touch the working t
|
|
|
123
123
|
- With `parentName` the module is added to (or updated in) the parent module and the range is written to the parent's own `package.json#sv`, so the change survives publishing the parent.
|
|
124
124
|
- Without `version` the highest possible version is selected, as if `'*'` was passed.
|
|
125
125
|
- `sv.delete(name, parentName?)` - Delete a module from its parent (the project root when `parentName` is omitted); the dependency is removed from the corresponding `package.json#sv` and the submodule is uninstalled.
|
|
126
|
-
- `sv.dangerousPut(url, version?, parentName?)` and `sv.dangerousDelete(name, parentName?)`
|
|
126
|
+
- `sv.dangerousPut(url, version?, parentName?)` and `sv.dangerousDelete(name, parentName?)` apply their Git and `package.json` mutations without using PubGrub as a compatibility gate. Afterwards they perform a non-blocking resolve and store its complete or best-effort partial result before running `npm install`. `dangerousPut` checks out the newest local Git tag matching the requested range; an untagged module remains on its cloned HEAD.
|
|
127
127
|
- `sv.listVersions(name?)` - With `name` returns the available versions of one package (`string[]`); without it returns `{ [pkgName]: string[] }` for every resolved package.
|
|
128
128
|
|
|
129
129
|
### Simulating changes
|
package/dist/src/sv.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { TPubGrubResult } from './PubGrub';
|
|
|
2
2
|
export declare class SV {
|
|
3
3
|
private resolution;
|
|
4
4
|
private verifiedResolution;
|
|
5
|
+
private failedPut;
|
|
5
6
|
private store;
|
|
6
7
|
private explicitModulesDir?;
|
|
7
8
|
constructor(projectDir: string, modulesDir?: string, options?: {
|
|
@@ -13,6 +14,7 @@ export declare class SV {
|
|
|
13
14
|
private verify;
|
|
14
15
|
private findModuleUrl;
|
|
15
16
|
private prepareBaseJson;
|
|
17
|
+
private refreshBestEffortResolution;
|
|
16
18
|
init: () => Promise<void>;
|
|
17
19
|
getResolution: () => TPubGrubResult;
|
|
18
20
|
put: (url: string, versionOrParent?: string, parentName?: string) => Promise<void>;
|
package/dist/src/sv.js
CHANGED
|
@@ -85,6 +85,11 @@ class SV {
|
|
|
85
85
|
this.resolution = null;
|
|
86
86
|
/* Safe put передаёт сюда уже выбранную PubGrub версию на время мутации. */
|
|
87
87
|
this.verifiedResolution = null;
|
|
88
|
+
/* Если safe put не смог разрешить предложенный override, PubGrub уже
|
|
89
|
+
* оставил partial resolution. Следующий dangerousPut с теми же аргументами
|
|
90
|
+
* (явный Use anyway вызывающей стороны) должен применить mutation, не
|
|
91
|
+
* запуская тот же конфликтный resolve повторно. */
|
|
92
|
+
this.failedPut = null;
|
|
88
93
|
this.store = new entryStore_1.EntryStore();
|
|
89
94
|
/*
|
|
90
95
|
* Директория модулей: явно переданная (CLI/JS) → записанная в
|
|
@@ -166,6 +171,23 @@ class SV {
|
|
|
166
171
|
const workspaceChanged = ensureWorkspaces(baseJson);
|
|
167
172
|
return dirChanged || workspaceChanged;
|
|
168
173
|
};
|
|
174
|
+
/*
|
|
175
|
+
* Dangerous-мутация не валидирует дерево, но после записи manifest'а
|
|
176
|
+
* сохраняет обычный либо частичный результат для внешних менеджеров.
|
|
177
|
+
*/
|
|
178
|
+
this.refreshBestEffortResolution = async (baseJson) => {
|
|
179
|
+
if (this.verifiedResolution) {
|
|
180
|
+
this.resolution = this.verifiedResolution;
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
this.store.clear();
|
|
184
|
+
try {
|
|
185
|
+
this.resolution = await this.resolveDeps((baseJson.sv || {}));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
/* resolveDeps уже сохранил partial resolution. */
|
|
189
|
+
}
|
|
190
|
+
};
|
|
169
191
|
this.init = async () => {
|
|
170
192
|
const previousResolution = this.resolution || {};
|
|
171
193
|
/* Сам вызов init переводит экземпляр в инициализированное состояние. */
|
|
@@ -210,6 +232,7 @@ class SV {
|
|
|
210
232
|
* версия, если это валидный semver-диапазон, иначе имя родителя.
|
|
211
233
|
*/
|
|
212
234
|
this.put = async (url, versionOrParent, parentName) => {
|
|
235
|
+
this.failedPut = null;
|
|
213
236
|
const { range, parent } = parsePutArgs(versionOrParent, parentName);
|
|
214
237
|
const baseJson = await pkgJSONManager_1.pkgJSONManager.read();
|
|
215
238
|
if (!baseJson)
|
|
@@ -223,11 +246,25 @@ class SV {
|
|
|
223
246
|
if (parent && !this.getResolution()[parent]) {
|
|
224
247
|
throw new errors_1.SVError('ADDON_NOT_FOUND', { name: parent });
|
|
225
248
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
249
|
+
let resolution;
|
|
250
|
+
try {
|
|
251
|
+
resolution = await this.verify(baseJson, {
|
|
252
|
+
parent,
|
|
253
|
+
add: moduleUrl,
|
|
254
|
+
version: range,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
if (error instanceof errors_1.SVError && error.error === 'VERSION_CONFLICT') {
|
|
259
|
+
this.failedPut = {
|
|
260
|
+
url: moduleUrl,
|
|
261
|
+
range,
|
|
262
|
+
parent,
|
|
263
|
+
resolution: this.resolution || {},
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
throw error;
|
|
267
|
+
}
|
|
231
268
|
const previousResolution = this.resolution || {};
|
|
232
269
|
this.resolution = resolution;
|
|
233
270
|
await this.syncModules(resolution, previousResolution);
|
|
@@ -253,6 +290,14 @@ class SV {
|
|
|
253
290
|
const baseChanged = await this.prepareBaseJson(baseJson);
|
|
254
291
|
const moduleUrl = await this.findModuleUrl(url, parent);
|
|
255
292
|
const { name } = git_1.git.parseUrl(moduleUrl);
|
|
293
|
+
const failedPut = this.failedPut;
|
|
294
|
+
this.failedPut = null;
|
|
295
|
+
const failedResolution = failedPut
|
|
296
|
+
&& failedPut.url === moduleUrl
|
|
297
|
+
&& failedPut.range === range
|
|
298
|
+
&& failedPut.parent === parent
|
|
299
|
+
? failedPut.resolution
|
|
300
|
+
: null;
|
|
256
301
|
const targetJson = parent
|
|
257
302
|
? await pkgJSONManager_1.pkgJSONManager.read(parent)
|
|
258
303
|
: baseJson;
|
|
@@ -280,7 +325,12 @@ class SV {
|
|
|
280
325
|
}
|
|
281
326
|
if (parent && baseChanged)
|
|
282
327
|
await pkgJSONManager_1.pkgJSONManager.write(baseJson);
|
|
283
|
-
|
|
328
|
+
if (failedResolution) {
|
|
329
|
+
this.resolution = failedResolution;
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
await this.refreshBestEffortResolution(parent ? baseJson : nextTargetJson);
|
|
333
|
+
}
|
|
284
334
|
await npm_1.npm.install();
|
|
285
335
|
};
|
|
286
336
|
/* Удаление модуля из родителя (без parentName — из корня проекта). */
|
|
@@ -302,11 +352,13 @@ class SV {
|
|
|
302
352
|
const resolution = await this.verify(baseJson, override);
|
|
303
353
|
const previousResolution = this.resolution || {};
|
|
304
354
|
this.resolution = resolution;
|
|
355
|
+
this.verifiedResolution = resolution;
|
|
305
356
|
try {
|
|
306
357
|
await this.syncModules(resolution, previousResolution);
|
|
307
358
|
await this.dangerousDelete(name, parentName);
|
|
308
359
|
}
|
|
309
360
|
finally {
|
|
361
|
+
this.verifiedResolution = null;
|
|
310
362
|
this.resolution = resolution;
|
|
311
363
|
}
|
|
312
364
|
};
|
|
@@ -341,7 +393,7 @@ class SV {
|
|
|
341
393
|
}
|
|
342
394
|
if (parentName && baseChanged)
|
|
343
395
|
await pkgJSONManager_1.pkgJSONManager.write(baseJson);
|
|
344
|
-
this.
|
|
396
|
+
await this.refreshBestEffortResolution(parentName ? baseJson : nextTargetJson);
|
|
345
397
|
await npm_1.npm.install();
|
|
346
398
|
};
|
|
347
399
|
this.listVersions = (name) => {
|
package/dist/src/sv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/__tests__/sv.test.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { git } from '../git';
|
|
|
4
4
|
import { npm } from '../npm';
|
|
5
5
|
import { pkgJSONManager } from '../pkgJSONManager';
|
|
6
6
|
import { readFile } from 'fs/promises';
|
|
7
|
+
import { SVError } from '../errors';
|
|
7
8
|
|
|
8
9
|
jest.mock('../PubGrub', () => ({
|
|
9
10
|
PubGrub: jest.fn(),
|
|
@@ -486,16 +487,47 @@ describe('SV.put', () => {
|
|
|
486
487
|
});
|
|
487
488
|
|
|
488
489
|
describe('SV.dangerousPut', () => {
|
|
489
|
-
it('
|
|
490
|
+
it('reuses the failed put partial resolution without resolving again',
|
|
491
|
+
async () => {
|
|
492
|
+
const partial = {
|
|
493
|
+
B: entry('B', { '2.1.0': {} }, '2.1.0'),
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
readMock.mockResolvedValue({ sv: { [url('B')]: '^1.0.0' } });
|
|
497
|
+
resolveMock.mockRejectedValueOnce(new SVError('VERSION_CONFLICT'));
|
|
498
|
+
getResolutionMock.mockReturnValue(partial);
|
|
499
|
+
const sv = new SV('/project');
|
|
500
|
+
|
|
501
|
+
await expect(sv.put('B', '^2.0.0'))
|
|
502
|
+
.rejects.toMatchObject({ error: 'VERSION_CONFLICT' });
|
|
503
|
+
await sv.dangerousPut('B', '^2.0.0');
|
|
504
|
+
|
|
505
|
+
expect(resolveMock).toHaveBeenCalledTimes(1);
|
|
506
|
+
expect(sv.getResolution()).toBe(partial);
|
|
507
|
+
expect(writeMock).toHaveBeenCalledWith({
|
|
508
|
+
sv: { [url('B')]: '^2.0.0' },
|
|
509
|
+
workspaces: ['modules/*'],
|
|
510
|
+
'sv-dir': 'modules',
|
|
511
|
+
});
|
|
512
|
+
expect(npmInstallMock).toHaveBeenCalledTimes(1);
|
|
513
|
+
});
|
|
514
|
+
|
|
515
|
+
it('adds a module and keeps partial resolution on a conflict', async () => {
|
|
516
|
+
const partial = {
|
|
517
|
+
B: entry('B', { '2.1.0': {} }, '2.1.0'),
|
|
518
|
+
};
|
|
519
|
+
|
|
490
520
|
readMock.mockResolvedValue({ sv: {} });
|
|
491
521
|
localMock.isGitRepo.mockResolvedValue(false);
|
|
492
522
|
localMock.listVersions.mockResolvedValue(['1.9.0', '2.0.0', '2.1.0']);
|
|
493
|
-
resolveMock.
|
|
523
|
+
resolveMock.mockRejectedValueOnce(new Error('version conflict'));
|
|
524
|
+
getResolutionMock.mockReturnValue(partial);
|
|
494
525
|
const sv = new SV('/project');
|
|
495
526
|
|
|
496
527
|
await sv.dangerousPut(url('B'), '^2.0.0');
|
|
497
528
|
|
|
498
|
-
expect(resolveMock).
|
|
529
|
+
expect(resolveMock).toHaveBeenCalledWith({ [url('B')]: '^2.0.0' });
|
|
530
|
+
expect(sv.getResolution()).toBe(partial);
|
|
499
531
|
expect(localMock.addSubmodule).toHaveBeenCalledWith(url('B'));
|
|
500
532
|
expect(localMock.checkout).toHaveBeenCalledWith('B', '2.1.0');
|
|
501
533
|
expect(writeMock).toHaveBeenCalledWith({
|
|
@@ -533,9 +565,25 @@ describe('SV.dangerousPut', () => {
|
|
|
533
565
|
workspaces: ['modules/*'],
|
|
534
566
|
'sv-dir': 'modules',
|
|
535
567
|
});
|
|
536
|
-
expect(resolveMock).
|
|
568
|
+
expect(resolveMock).toHaveBeenCalledWith({ [url('B')]: '^2.0.0' });
|
|
537
569
|
});
|
|
538
570
|
|
|
571
|
+
it('keeps refreshed resolution when npm install fails', async () => {
|
|
572
|
+
const result = {
|
|
573
|
+
B: entry('B', { '2.0.0': {} }, '2.0.0'),
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
readMock.mockResolvedValue({ sv: {} });
|
|
577
|
+
resolveMock.mockResolvedValue(result);
|
|
578
|
+
npmInstallMock.mockRejectedValueOnce(new Error('npm failed'));
|
|
579
|
+
const sv = new SV('/project');
|
|
580
|
+
|
|
581
|
+
await expect(sv.dangerousPut(url('B'), '^2.0.0'))
|
|
582
|
+
.rejects.toThrow('npm failed');
|
|
583
|
+
|
|
584
|
+
expect(sv.getResolution()).toBe(result);
|
|
585
|
+
});
|
|
586
|
+
|
|
539
587
|
it('uses the recorded modules dir before touching git', async () => {
|
|
540
588
|
readMock.mockResolvedValue({
|
|
541
589
|
sv: {},
|
|
@@ -640,22 +688,31 @@ describe('SV.delete', () => {
|
|
|
640
688
|
});
|
|
641
689
|
|
|
642
690
|
describe('SV.dangerousDelete', () => {
|
|
643
|
-
it(
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
691
|
+
it(
|
|
692
|
+
'removes a module and keeps partial resolution on a conflict',
|
|
693
|
+
async () => {
|
|
694
|
+
const partial = {
|
|
695
|
+
B: entry('B', { '1.0.0': {} }, '1.0.0'),
|
|
696
|
+
};
|
|
647
697
|
|
|
648
|
-
|
|
698
|
+
readMock.mockResolvedValue({ sv: { [url('A')]: '*' } });
|
|
699
|
+
resolveMock.mockRejectedValueOnce(new Error('version conflict'));
|
|
700
|
+
getResolutionMock.mockReturnValue(partial);
|
|
701
|
+
const sv = new SV('/project');
|
|
649
702
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
sv
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
703
|
+
await sv.dangerousDelete('A');
|
|
704
|
+
|
|
705
|
+
expect(resolveMock).toHaveBeenCalledWith({});
|
|
706
|
+
expect(sv.getResolution()).toBe(partial);
|
|
707
|
+
expect(localMock.rm).toHaveBeenCalledWith('A');
|
|
708
|
+
expect(writeMock).toHaveBeenCalledWith({
|
|
709
|
+
sv: {},
|
|
710
|
+
workspaces: ['modules/*'],
|
|
711
|
+
'sv-dir': 'modules',
|
|
712
|
+
});
|
|
713
|
+
expect(npmInstallMock).toHaveBeenCalledTimes(1);
|
|
714
|
+
},
|
|
715
|
+
);
|
|
659
716
|
|
|
660
717
|
it(
|
|
661
718
|
'removes only the parent dependency and keeps the shared module',
|
package/src/sv.ts
CHANGED
|
@@ -111,6 +111,17 @@ export class SV {
|
|
|
111
111
|
/* Safe put передаёт сюда уже выбранную PubGrub версию на время мутации. */
|
|
112
112
|
private verifiedResolution: TPubGrubResult | null = null;
|
|
113
113
|
|
|
114
|
+
/* Если safe put не смог разрешить предложенный override, PubGrub уже
|
|
115
|
+
* оставил partial resolution. Следующий dangerousPut с теми же аргументами
|
|
116
|
+
* (явный Use anyway вызывающей стороны) должен применить mutation, не
|
|
117
|
+
* запуская тот же конфликтный resolve повторно. */
|
|
118
|
+
private failedPut: {
|
|
119
|
+
url: string;
|
|
120
|
+
range: string;
|
|
121
|
+
parent?: string;
|
|
122
|
+
resolution: TPubGrubResult;
|
|
123
|
+
} | null = null;
|
|
124
|
+
|
|
114
125
|
private store = new EntryStore();
|
|
115
126
|
|
|
116
127
|
private explicitModulesDir?: string;
|
|
@@ -247,6 +258,30 @@ export class SV {
|
|
|
247
258
|
return dirChanged || workspaceChanged;
|
|
248
259
|
};
|
|
249
260
|
|
|
261
|
+
/*
|
|
262
|
+
* Dangerous-мутация не валидирует дерево, но после записи manifest'а
|
|
263
|
+
* сохраняет обычный либо частичный результат для внешних менеджеров.
|
|
264
|
+
*/
|
|
265
|
+
private refreshBestEffortResolution = async (
|
|
266
|
+
baseJson: any,
|
|
267
|
+
): Promise<void> => {
|
|
268
|
+
if (this.verifiedResolution) {
|
|
269
|
+
this.resolution = this.verifiedResolution;
|
|
270
|
+
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
this.store.clear();
|
|
275
|
+
|
|
276
|
+
try {
|
|
277
|
+
this.resolution = await this.resolveDeps(
|
|
278
|
+
(baseJson.sv || {}) as TDependencies,
|
|
279
|
+
);
|
|
280
|
+
} catch {
|
|
281
|
+
/* resolveDeps уже сохранил partial resolution. */
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
|
|
250
285
|
public init = async (): Promise<void> => {
|
|
251
286
|
const previousResolution = this.resolution || {};
|
|
252
287
|
|
|
@@ -309,6 +344,7 @@ export class SV {
|
|
|
309
344
|
versionOrParent?: string,
|
|
310
345
|
parentName?: string,
|
|
311
346
|
): Promise<void> => {
|
|
347
|
+
this.failedPut = null;
|
|
312
348
|
const { range, parent } = parsePutArgs(versionOrParent, parentName);
|
|
313
349
|
const baseJson = await pkgJSONManager.read();
|
|
314
350
|
|
|
@@ -326,11 +362,25 @@ export class SV {
|
|
|
326
362
|
throw new SVError('ADDON_NOT_FOUND', { name: parent });
|
|
327
363
|
}
|
|
328
364
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
365
|
+
let resolution: TPubGrubResult;
|
|
366
|
+
|
|
367
|
+
try {
|
|
368
|
+
resolution = await this.verify(baseJson, {
|
|
369
|
+
parent,
|
|
370
|
+
add: moduleUrl,
|
|
371
|
+
version: range,
|
|
372
|
+
});
|
|
373
|
+
} catch (error) {
|
|
374
|
+
if (error instanceof SVError && error.error === 'VERSION_CONFLICT') {
|
|
375
|
+
this.failedPut = {
|
|
376
|
+
url: moduleUrl,
|
|
377
|
+
range,
|
|
378
|
+
parent,
|
|
379
|
+
resolution: this.resolution || {},
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
throw error;
|
|
383
|
+
}
|
|
334
384
|
|
|
335
385
|
const previousResolution = this.resolution || {};
|
|
336
386
|
|
|
@@ -364,6 +414,15 @@ export class SV {
|
|
|
364
414
|
const baseChanged = await this.prepareBaseJson(baseJson);
|
|
365
415
|
const moduleUrl = await this.findModuleUrl(url, parent);
|
|
366
416
|
const { name } = git.parseUrl(moduleUrl);
|
|
417
|
+
const failedPut = this.failedPut;
|
|
418
|
+
this.failedPut = null;
|
|
419
|
+
|
|
420
|
+
const failedResolution = failedPut
|
|
421
|
+
&& failedPut.url === moduleUrl
|
|
422
|
+
&& failedPut.range === range
|
|
423
|
+
&& failedPut.parent === parent
|
|
424
|
+
? failedPut.resolution
|
|
425
|
+
: null;
|
|
367
426
|
|
|
368
427
|
const targetJson = parent
|
|
369
428
|
? await pkgJSONManager.read(parent)
|
|
@@ -402,7 +461,13 @@ export class SV {
|
|
|
402
461
|
|
|
403
462
|
if (parent && baseChanged) await pkgJSONManager.write(baseJson);
|
|
404
463
|
|
|
405
|
-
|
|
464
|
+
if (failedResolution) {
|
|
465
|
+
this.resolution = failedResolution;
|
|
466
|
+
} else {
|
|
467
|
+
await this.refreshBestEffortResolution(
|
|
468
|
+
parent ? baseJson : nextTargetJson,
|
|
469
|
+
);
|
|
470
|
+
}
|
|
406
471
|
await npm.install();
|
|
407
472
|
};
|
|
408
473
|
|
|
@@ -431,11 +496,13 @@ export class SV {
|
|
|
431
496
|
const previousResolution = this.resolution || {};
|
|
432
497
|
|
|
433
498
|
this.resolution = resolution;
|
|
499
|
+
this.verifiedResolution = resolution;
|
|
434
500
|
|
|
435
501
|
try {
|
|
436
502
|
await this.syncModules(resolution, previousResolution);
|
|
437
503
|
await this.dangerousDelete(name, parentName);
|
|
438
504
|
} finally {
|
|
505
|
+
this.verifiedResolution = null;
|
|
439
506
|
this.resolution = resolution;
|
|
440
507
|
}
|
|
441
508
|
};
|
|
@@ -479,7 +546,10 @@ export class SV {
|
|
|
479
546
|
}
|
|
480
547
|
|
|
481
548
|
if (parentName && baseChanged) await pkgJSONManager.write(baseJson);
|
|
482
|
-
|
|
549
|
+
|
|
550
|
+
await this.refreshBestEffortResolution(
|
|
551
|
+
parentName ? baseJson : nextTargetJson,
|
|
552
|
+
);
|
|
483
553
|
await npm.install();
|
|
484
554
|
};
|
|
485
555
|
|