@teambit/install 0.0.1

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.
Files changed (80) hide show
  1. package/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
  2. package/dist/__snapshots__/pick-outdated-pkgs.spec.js.snap +171 -0
  3. package/dist/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
  4. package/dist/exceptions/dependency-type-not-supported-in-policy.d.ts +4 -0
  5. package/dist/exceptions/dependency-type-not-supported-in-policy.js +27 -0
  6. package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +1 -0
  7. package/dist/exceptions/index.d.ts +1 -0
  8. package/dist/exceptions/index.js +23 -0
  9. package/dist/exceptions/index.js.map +1 -0
  10. package/dist/index.d.ts +4 -0
  11. package/dist/index.js +28 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/install.aspect.d.ts +2 -0
  14. package/dist/install.aspect.js +24 -0
  15. package/dist/install.aspect.js.map +1 -0
  16. package/dist/install.cmd.d.ts +46 -0
  17. package/dist/install.cmd.js +86 -0
  18. package/dist/install.cmd.js.map +1 -0
  19. package/dist/install.main.runtime.d.ts +76 -0
  20. package/dist/install.main.runtime.js +580 -0
  21. package/dist/install.main.runtime.js.map +1 -0
  22. package/dist/link/component-list-links.d.ts +7 -0
  23. package/dist/link/component-list-links.js +98 -0
  24. package/dist/link/component-list-links.js.map +1 -0
  25. package/dist/link/core-aspects-links.d.ts +7 -0
  26. package/dist/link/core-aspects-links.js +95 -0
  27. package/dist/link/core-aspects-links.js.map +1 -0
  28. package/dist/link/get-package-name-from-target.d.ts +1 -0
  29. package/dist/link/get-package-name-from-target.js +16 -0
  30. package/dist/link/get-package-name-from-target.js.map +1 -0
  31. package/dist/link/index.d.ts +1 -0
  32. package/dist/link/index.js +23 -0
  33. package/dist/link/index.js.map +1 -0
  34. package/dist/link/link-row.d.ts +12 -0
  35. package/dist/link/link-row.js +38 -0
  36. package/dist/link/link-row.js.map +1 -0
  37. package/dist/link/link-to-dir.d.ts +2 -0
  38. package/dist/link/link-to-dir.js +45 -0
  39. package/dist/link/link-to-dir.js.map +1 -0
  40. package/dist/link/link.cmd.d.ts +46 -0
  41. package/dist/link/link.cmd.js +177 -0
  42. package/dist/link/link.cmd.js.map +1 -0
  43. package/dist/link/nested-deps-in-nm-links.d.ts +7 -0
  44. package/dist/link/nested-deps-in-nm-links.js +74 -0
  45. package/dist/link/nested-deps-in-nm-links.js.map +1 -0
  46. package/dist/link/rewire-row.d.ts +6 -0
  47. package/dist/link/rewire-row.js +31 -0
  48. package/dist/link/rewire-row.js.map +1 -0
  49. package/dist/pick-outdated-pkgs.d.ts +16 -0
  50. package/dist/pick-outdated-pkgs.js +308 -0
  51. package/dist/pick-outdated-pkgs.js.map +1 -0
  52. package/dist/pick-outdated-pkgs.spec.d.ts +1 -0
  53. package/dist/pick-outdated-pkgs.spec.js +121 -0
  54. package/dist/pick-outdated-pkgs.spec.js.map +1 -0
  55. package/dist/uninstall.cmd.d.ts +12 -0
  56. package/dist/uninstall.cmd.js +43 -0
  57. package/dist/uninstall.cmd.js.map +1 -0
  58. package/dist/update.cmd.d.ts +16 -0
  59. package/dist/update.cmd.js +43 -0
  60. package/dist/update.cmd.js.map +1 -0
  61. package/exceptions/dependency-type-not-supported-in-policy.ts +7 -0
  62. package/exceptions/index.ts +1 -0
  63. package/install.cmd.tsx +74 -0
  64. package/link/component-list-links.ts +50 -0
  65. package/link/core-aspects-links.ts +50 -0
  66. package/link/get-package-name-from-target.ts +5 -0
  67. package/link/index.ts +1 -0
  68. package/link/link-row.ts +20 -0
  69. package/link/link-to-dir.ts +13 -0
  70. package/link/link.cmd.ts +102 -0
  71. package/link/nested-deps-in-nm-links.ts +47 -0
  72. package/link/rewire-row.ts +17 -0
  73. package/package-tar/teambit-install-0.0.1.tgz +0 -0
  74. package/package.json +59 -0
  75. package/preview-1662608124038.js +5 -0
  76. package/tsconfig.json +40 -0
  77. package/types/asset.d.ts +29 -0
  78. package/types/style.d.ts +42 -0
  79. package/uninstall.cmd.tsx +18 -0
  80. package/update.cmd.tsx +24 -0
@@ -0,0 +1,580 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ exports.default = exports.InstallMain = void 0;
13
+
14
+ function _defineProperty2() {
15
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ _defineProperty2 = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _community() {
25
+ const data = require("@teambit/community");
26
+
27
+ _community = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _manyComponentsWriter() {
35
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component-ops/many-components-writer"));
36
+
37
+ _manyComponentsWriter = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _cli() {
45
+ const data = require("@teambit/cli");
46
+
47
+ _cli = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _chalk() {
55
+ const data = _interopRequireDefault(require("chalk"));
56
+
57
+ _chalk = function () {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ function _workspace() {
65
+ const data = require("@teambit/workspace");
66
+
67
+ _workspace = function () {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
74
+ function _lodash() {
75
+ const data = require("lodash");
76
+
77
+ _lodash = function () {
78
+ return data;
79
+ };
80
+
81
+ return data;
82
+ }
83
+
84
+ function _exceptions() {
85
+ const data = require("@teambit/legacy/dist/consumer/exceptions");
86
+
87
+ _exceptions = function () {
88
+ return data;
89
+ };
90
+
91
+ return data;
92
+ }
93
+
94
+ function _variants() {
95
+ const data = require("@teambit/variants");
96
+
97
+ _variants = function () {
98
+ return data;
99
+ };
100
+
101
+ return data;
102
+ }
103
+
104
+ function _component() {
105
+ const data = require("@teambit/component");
106
+
107
+ _component = function () {
108
+ return data;
109
+ };
110
+
111
+ return data;
112
+ }
113
+
114
+ function _dependencyResolver() {
115
+ const data = require("@teambit/dependency-resolver");
116
+
117
+ _dependencyResolver = function () {
118
+ return data;
119
+ };
120
+
121
+ return data;
122
+ }
123
+
124
+ function _importer() {
125
+ const data = require("@teambit/importer");
126
+
127
+ _importer = function () {
128
+ return data;
129
+ };
130
+
131
+ return data;
132
+ }
133
+
134
+ function _logger() {
135
+ const data = require("@teambit/logger");
136
+
137
+ _logger = function () {
138
+ return data;
139
+ };
140
+
141
+ return data;
142
+ }
143
+
144
+ function _exceptions2() {
145
+ const data = require("./exceptions");
146
+
147
+ _exceptions2 = function () {
148
+ return data;
149
+ };
150
+
151
+ return data;
152
+ }
153
+
154
+ function _install() {
155
+ const data = require("./install.aspect");
156
+
157
+ _install = function () {
158
+ return data;
159
+ };
160
+
161
+ return data;
162
+ }
163
+
164
+ function _pickOutdatedPkgs() {
165
+ const data = require("./pick-outdated-pkgs");
166
+
167
+ _pickOutdatedPkgs = function () {
168
+ return data;
169
+ };
170
+
171
+ return data;
172
+ }
173
+
174
+ function _link() {
175
+ const data = require("./link");
176
+
177
+ _link = function () {
178
+ return data;
179
+ };
180
+
181
+ return data;
182
+ }
183
+
184
+ function _install2() {
185
+ const data = _interopRequireDefault(require("./install.cmd"));
186
+
187
+ _install2 = function () {
188
+ return data;
189
+ };
190
+
191
+ return data;
192
+ }
193
+
194
+ function _uninstall() {
195
+ const data = _interopRequireDefault(require("./uninstall.cmd"));
196
+
197
+ _uninstall = function () {
198
+ return data;
199
+ };
200
+
201
+ return data;
202
+ }
203
+
204
+ function _update() {
205
+ const data = _interopRequireDefault(require("./update.cmd"));
206
+
207
+ _update = function () {
208
+ return data;
209
+ };
210
+
211
+ return data;
212
+ }
213
+
214
+ class InstallMain {
215
+ constructor(dependencyResolver, logger, workspace, variants) {
216
+ this.dependencyResolver = dependencyResolver;
217
+ this.logger = logger;
218
+ this.workspace = workspace;
219
+ this.variants = variants;
220
+ }
221
+ /**
222
+ * Install dependencies for all components in the workspace
223
+ *
224
+ * @returns
225
+ * @memberof Workspace
226
+ */
227
+
228
+
229
+ async install(packages, options) {
230
+ if (packages && packages.length) {
231
+ await this._addPackages(packages, options);
232
+ }
233
+
234
+ if (options !== null && options !== void 0 && options.addMissingPeers) {
235
+ var _options$copyPeerToRu, _options$copyPeerToRu2;
236
+
237
+ const compDirMap = await this.getComponentsDirectory([]);
238
+ const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
239
+ const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();
240
+ const pmInstallOptions = {
241
+ dedupe: options === null || options === void 0 ? void 0 : options.dedupe,
242
+ copyPeerToRuntimeOnRoot: (_options$copyPeerToRu = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnRoot) !== null && _options$copyPeerToRu !== void 0 ? _options$copyPeerToRu : true,
243
+ copyPeerToRuntimeOnComponents: (_options$copyPeerToRu2 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnComponents) !== null && _options$copyPeerToRu2 !== void 0 ? _options$copyPeerToRu2 : false,
244
+ dependencyFilterFn: depsFilterFn,
245
+ overrides: this.dependencyResolver.config.overrides,
246
+ packageImportMethod: this.dependencyResolver.config.packageImportMethod
247
+ };
248
+ const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(this.workspace.path, mergedRootPolicy, compDirMap, pmInstallOptions);
249
+
250
+ if (missingPeers) {
251
+ const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);
252
+ await this._addPackages(missingPeerPackages, options);
253
+ } else {
254
+ this.logger.console('No missing peer dependencies found.');
255
+ }
256
+ }
257
+
258
+ if (options !== null && options !== void 0 && options.import) {
259
+ this.logger.setStatusLine('importing missing objects');
260
+ await this.importObjects();
261
+ this.logger.consoleSuccess();
262
+ }
263
+
264
+ return this._installModules(options);
265
+ }
266
+
267
+ async _addPackages(packages, options) {
268
+ if (!(options !== null && options !== void 0 && options.variants) && (options === null || options === void 0 ? void 0 : options.lifecycleType) === 'dev') {
269
+ throw new (_exceptions2().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
270
+ }
271
+
272
+ this.logger.debug(`installing the following packages: ${packages.join()}`);
273
+ const resolver = await this.dependencyResolver.getVersionResolver();
274
+ const resolvedPackagesP = packages.map(packageName => resolver.resolveRemoteVersion(packageName, {
275
+ rootDir: this.workspace.path
276
+ }));
277
+ const resolvedPackages = await Promise.all(resolvedPackagesP);
278
+ const newWorkspacePolicyEntries = [];
279
+ resolvedPackages.forEach(resolvedPackage => {
280
+ if (resolvedPackage.version) {
281
+ const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix(resolvedPackage.version, options === null || options === void 0 ? void 0 : options.savePrefix);
282
+ newWorkspacePolicyEntries.push({
283
+ dependencyId: resolvedPackage.packageName,
284
+ value: {
285
+ version: versionWithPrefix
286
+ },
287
+ lifecycleType: (options === null || options === void 0 ? void 0 : options.lifecycleType) || 'runtime'
288
+ });
289
+ }
290
+ });
291
+
292
+ if (!(options !== null && options !== void 0 && options.variants)) {
293
+ var _options$updateExisti;
294
+
295
+ this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {
296
+ updateExisting: (_options$updateExisti = options === null || options === void 0 ? void 0 : options.updateExisting) !== null && _options$updateExisti !== void 0 ? _options$updateExisti : false
297
+ });
298
+ } else {// TODO: implement
299
+ }
300
+
301
+ await this.dependencyResolver.persistConfig(this.workspace.path);
302
+ }
303
+
304
+ async _installModules(options) {
305
+ var _options$copyPeerToRu3, _options$copyPeerToRu4;
306
+
307
+ this.logger.console(`installing dependencies in workspace using ${_chalk().default.cyan(this.dependencyResolver.getPackageManagerName())}`);
308
+ this.logger.debug(`installing dependencies in workspace with options`, options);
309
+ const hasRootComponents = this.dependencyResolver.hasRootComponents(); // TODO: this make duplicate
310
+ // this.logger.consoleSuccess();
311
+ // TODO: add the links results to the output
312
+
313
+ await this.link({
314
+ linkTeambitBit: true,
315
+ legacyLink: true,
316
+ linkCoreAspects: false,
317
+ linkDepsResolvedFromEnv: !hasRootComponents,
318
+ linkNestedDepsInNM: false
319
+ });
320
+ this.workspace.consumer.componentLoader.clearComponentsCache();
321
+ this.workspace.clearCache(); // TODO: pass get install options
322
+
323
+ const installer = this.dependencyResolver.getInstaller({});
324
+ const compDirMap = await this.getComponentsDirectory([]);
325
+ const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
326
+ const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();
327
+ const pmInstallOptions = {
328
+ dedupe: !hasRootComponents && (options === null || options === void 0 ? void 0 : options.dedupe),
329
+ copyPeerToRuntimeOnRoot: (_options$copyPeerToRu3 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnRoot) !== null && _options$copyPeerToRu3 !== void 0 ? _options$copyPeerToRu3 : true,
330
+ copyPeerToRuntimeOnComponents: (_options$copyPeerToRu4 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnComponents) !== null && _options$copyPeerToRu4 !== void 0 ? _options$copyPeerToRu4 : false,
331
+ dependencyFilterFn: depsFilterFn,
332
+ overrides: this.dependencyResolver.config.overrides,
333
+ packageImportMethod: this.dependencyResolver.config.packageImportMethod,
334
+ rootComponents: hasRootComponents
335
+ };
336
+ await installer.install(this.workspace.path, mergedRootPolicy, compDirMap, {
337
+ installTeambitBit: false
338
+ }, pmInstallOptions);
339
+ await this.link({
340
+ linkTeambitBit: false,
341
+ legacyLink: true,
342
+ linkCoreAspects: this.dependencyResolver.linkCoreAspects(),
343
+ linkDepsResolvedFromEnv: !hasRootComponents,
344
+ linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents
345
+ });
346
+ await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
347
+ return compDirMap;
348
+ }
349
+ /**
350
+ * Updates out-of-date dependencies in the workspace.
351
+ *
352
+ * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.
353
+ */
354
+
355
+
356
+ async updateDependencies(options) {
357
+ const {
358
+ componentConfigFiles,
359
+ componentPoliciesById
360
+ } = await this._getComponentsWithDependencyPolicies();
361
+ const variantPatterns = this.variants.raw();
362
+
363
+ const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);
364
+
365
+ const components = await this.workspace.list();
366
+ const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({
367
+ rootDir: this.workspace.path,
368
+ variantPoliciesByPatterns,
369
+ componentPoliciesById,
370
+ components
371
+ });
372
+ let outdatedPkgsToUpdate;
373
+
374
+ if (options.all) {
375
+ outdatedPkgsToUpdate = outdatedPkgs;
376
+ } else {
377
+ this.logger.off();
378
+ outdatedPkgsToUpdate = await (0, _pickOutdatedPkgs().pickOutdatedPkgs)(outdatedPkgs);
379
+ this.logger.on();
380
+ }
381
+
382
+ const {
383
+ updatedVariants,
384
+ updatedComponents
385
+ } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {
386
+ variantPoliciesByPatterns,
387
+ componentPoliciesById
388
+ });
389
+ await this._updateVariantsPolicies(variantPatterns, updatedVariants);
390
+ const updatedComponentConfigFiles = Object.values((0, _lodash().pick)(componentConfigFiles, updatedComponents));
391
+ await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);
392
+ await this.workspace._reloadConsumer();
393
+ return this._installModules({
394
+ dedupe: true
395
+ });
396
+ }
397
+
398
+ async _getComponentsWithDependencyPolicies() {
399
+ const allComponentIds = await this.workspace.listIds();
400
+ const componentConfigFiles = {};
401
+ const componentPoliciesById = {};
402
+ (await Promise.all(allComponentIds.map(componentId => this.workspace.componentConfigFile(componentId)))).forEach((componentConfigFile, index) => {
403
+ if (!componentConfigFile) return;
404
+ const depResolverConfig = componentConfigFile.aspects.get(_dependencyResolver().DependencyResolverAspect.id);
405
+ if (!depResolverConfig) return;
406
+ const componentId = allComponentIds[index].toString();
407
+ componentConfigFiles[componentId] = componentConfigFile;
408
+ componentPoliciesById[componentId] = depResolverConfig.config.policy;
409
+ });
410
+ return {
411
+ componentConfigFiles,
412
+ componentPoliciesById
413
+ };
414
+ }
415
+
416
+ _variantPatternsToDepPolicesDict(variantPatterns) {
417
+ const variantPoliciesByPatterns = {};
418
+
419
+ for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {
420
+ var _extensions$Dependenc;
421
+
422
+ if ((_extensions$Dependenc = extensions[_dependencyResolver().DependencyResolverAspect.id]) !== null && _extensions$Dependenc !== void 0 && _extensions$Dependenc.policy) {
423
+ var _extensions$Dependenc2;
424
+
425
+ variantPoliciesByPatterns[variantPattern] = (_extensions$Dependenc2 = extensions[_dependencyResolver().DependencyResolverAspect.id]) === null || _extensions$Dependenc2 === void 0 ? void 0 : _extensions$Dependenc2.policy;
426
+ }
427
+ }
428
+
429
+ return variantPoliciesByPatterns;
430
+ }
431
+
432
+ _updateVariantsPolicies(variantPatterns, updateVariantPolicies) {
433
+ for (const variantPattern of updateVariantPolicies) {
434
+ this.variants.setExtension(variantPattern, _dependencyResolver().DependencyResolverAspect.id, variantPatterns[variantPattern][_dependencyResolver().DependencyResolverAspect.id], {
435
+ overrideExisting: true
436
+ });
437
+ }
438
+
439
+ return this.dependencyResolver.persistConfig(this.workspace.path);
440
+ }
441
+
442
+ async _saveManyComponentConfigFiles(componentConfigFiles) {
443
+ await Promise.all(Array.from(componentConfigFiles).map(async componentConfigFile => {
444
+ await componentConfigFile.write({
445
+ override: true
446
+ });
447
+ }));
448
+ }
449
+ /**
450
+ * Uninstall the specified packages from dependencies.
451
+ *
452
+ * @param {string[]} the list of packages that should be removed from dependencies.
453
+ */
454
+
455
+
456
+ async uninstallDependencies(packages) {
457
+ this.dependencyResolver.removeFromRootPolicy(packages);
458
+ await this.dependencyResolver.persistConfig(this.workspace.path);
459
+ return this._installModules({
460
+ dedupe: true
461
+ });
462
+ }
463
+
464
+ async link(options = {}) {
465
+ if (options.fetchObject) {
466
+ await this.importObjects();
467
+ }
468
+
469
+ options.consumer = this.workspace.consumer;
470
+ const compDirMap = await this.getComponentsDirectory([]);
471
+ const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
472
+ const linker = this.dependencyResolver.getLinker({
473
+ rootDir: this.workspace.path,
474
+ linkingOptions: options
475
+ });
476
+ const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);
477
+ return res;
478
+ } // TODO: replace with a proper import API on the workspace
479
+
480
+
481
+ async importObjects() {
482
+ const importOptions = {
483
+ ids: [],
484
+ verbose: false,
485
+ merge: false,
486
+ objectsOnly: true,
487
+ override: false,
488
+ writeDists: false,
489
+ writeConfig: false,
490
+ installNpmPackages: false,
491
+ importDependenciesDirectly: false,
492
+ importDependents: false
493
+ };
494
+ const importer = new (_importer().Importer)(this.workspace, this.dependencyResolver);
495
+
496
+ try {
497
+ const res = await importer.import(importOptions, []);
498
+ return res;
499
+ } catch (err) {
500
+ // TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy
501
+ if (err instanceof _exceptions().NothingToImport) {
502
+ // Do not write nothing to import warning
503
+ return undefined;
504
+ }
505
+
506
+ throw err;
507
+ }
508
+ }
509
+ /**
510
+ * Generate a filter to pass to the installer
511
+ * This will filter deps which are come from remotes which defined in scope.json
512
+ * those components comes from local remotes, usually doesn't have a package in a registry
513
+ * so no reason to try to install them (it will fail)
514
+ */
515
+
516
+
517
+ async generateFilterFnForDepsFromLocalRemote() {
518
+ // TODO: once scope create a new API for this, replace it with the new one
519
+ const remotes = await this.workspace.scope._legacyRemotes();
520
+ const reg = await this.dependencyResolver.getRegistries();
521
+ const packageScopes = Object.keys(reg.scopes);
522
+ return dependencyList => {
523
+ const filtered = dependencyList.filter(dep => {
524
+ if (!(dep instanceof _dependencyResolver().ComponentDependency)) {
525
+ return true;
526
+ }
527
+
528
+ if (remotes.isHub(dep.componentId.scope)) {
529
+ return true;
530
+ }
531
+
532
+ if (packageScopes.some(scope => dep.packageName.startsWith(`@${scope}/`))) {
533
+ return true;
534
+ }
535
+
536
+ return false;
537
+ });
538
+ return filtered;
539
+ };
540
+ }
541
+
542
+ async getComponentsDirectory(ids) {
543
+ const components = ids.length ? await this.workspace.getMany(ids) : await this.workspace.list();
544
+ return _component().ComponentMap.as(components, component => this.workspace.componentDir(component.id));
545
+ }
546
+
547
+ static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]) {
548
+ const logger = loggerExt.createLogger('teambit.bit/install');
549
+ const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);
550
+
551
+ _manyComponentsWriter().default.registerExternalInstaller({
552
+ install: async () => {
553
+ // TODO: think how we should pass this options
554
+ const installOpts = {
555
+ dedupe: true,
556
+ updateExisting: false,
557
+ import: false
558
+ };
559
+ return installExt.install(undefined, installOpts);
560
+ }
561
+ });
562
+
563
+ const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link().LinkCommand)(installExt, workspace, logger, community.getDocsDomain())];
564
+ cli.register(...commands);
565
+ return installExt;
566
+ }
567
+
568
+ }
569
+
570
+ exports.InstallMain = InstallMain;
571
+ (0, _defineProperty2().default)(InstallMain, "slots", []);
572
+ (0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect, _community().CommunityAspect]);
573
+ (0, _defineProperty2().default)(InstallMain, "runtime", _cli().MainRuntime);
574
+
575
+ _install().InstallAspect.addRuntime(InstallMain);
576
+
577
+ var _default = InstallMain;
578
+ exports.default = _default;
579
+
580
+ //# sourceMappingURL=install.main.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","install","packages","options","length","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","Object","entries","map","peerName","range","console","import","setStatusLine","importObjects","consoleSuccess","_installModules","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","savePrefix","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","chalk","cyan","getPackageManagerName","hasRootComponents","link","linkTeambitBit","legacyLink","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","consumer","componentLoader","clearComponentsCache","clearCache","installer","getInstaller","rootComponents","installTeambitBit","isLegacy","componentFsCache","deleteAllDependenciesDataCache","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","values","pick","_saveManyComponentConfigFiles","_reloadConsumer","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","fetchObject","linker","getLinker","linkingOptions","res","importOptions","ids","verbose","merge","objectsOnly","writeDists","writeConfig","installNpmPackages","importDependenciesDirectly","importDependents","importer","Importer","err","NothingToImport","undefined","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","getMany","ComponentMap","as","component","componentDir","provider","loggerExt","cli","community","createLogger","installExt","ManyComponentsWriter","registerExternalInstaller","installOpts","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","register","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","MainRuntime","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { pick } from 'lodash';\nimport { NothingToImport } from '@teambit/legacy/dist/consumer/exceptions';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n} from '@teambit/dependency-resolver';\nimport { Importer } from '@teambit/importer';\nimport { ImportOptions } from '@teambit/legacy/dist/consumer/component-ops/import-components';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\nimport { DependencyTypeNotSupportedInPolicy } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions;\n\nexport type WorkspaceInstallOptions = {\n addMissingPeers?: boolean;\n variants?: string;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe: boolean;\n import: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting: boolean;\n savePrefix?: string;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\nexport class InstallMain {\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n if (options?.import) {\n this.logger.setStatusLine('importing missing objects');\n await this.importObjects();\n this.logger.consoleSuccess();\n }\n return this._installModules(options);\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if (!options?.variants && (options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map((packageName) =>\n resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n })\n );\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix(\n resolvedPackage.version,\n options?.savePrefix\n );\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n if (!options?.variants) {\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n });\n } else {\n // TODO: implement\n }\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n this.logger.console(\n `installing dependencies in workspace using ${chalk.cyan(this.dependencyResolver.getPackageManagerName())}`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n // TODO: add the links results to the output\n await this.link({\n linkTeambitBit: true,\n legacyLink: true,\n linkCoreAspects: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: !hasRootComponents && options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n };\n await installer.install(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n await this.link({\n linkTeambitBit: false,\n legacyLink: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n });\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n return compDirMap;\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: { all: boolean }) {\n const { componentConfigFiles, componentPoliciesById } = await this._getComponentsWithDependencyPolicies();\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPoliciesById,\n components,\n });\n let outdatedPkgsToUpdate!: OutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n componentPoliciesById,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n const updatedComponentConfigFiles = Object.values(pick(componentConfigFiles, updatedComponents));\n await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);\n await this.workspace._reloadConsumer();\n return this._installModules({ dedupe: true });\n }\n\n private async _getComponentsWithDependencyPolicies() {\n const allComponentIds = await this.workspace.listIds();\n const componentConfigFiles: Record<string, ComponentConfigFile> = {};\n const componentPoliciesById: Record<string, any> = {};\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.workspace.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index].toString();\n componentConfigFiles[componentId] = componentConfigFile;\n componentPoliciesById[componentId] = depResolverConfig.config.policy;\n });\n return {\n componentConfigFiles,\n componentPoliciesById,\n };\n }\n\n private _variantPatternsToDepPolicesDict(variantPatterns: Patterns): Record<string, VariantPolicyConfigObject> {\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n private _updateVariantsPolicies(variantPatterns: Record<string, any>, updateVariantPolicies: string[]) {\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n return this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _saveManyComponentConfigFiles(componentConfigFiles: ComponentConfigFile[]) {\n await Promise.all(\n Array.from(componentConfigFiles).map(async (componentConfigFile) => {\n await componentConfigFile.write({ override: true });\n })\n );\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig(this.workspace.path);\n return this._installModules({ dedupe: true });\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n if (options.fetchObject) {\n await this.importObjects();\n }\n options.consumer = this.workspace.consumer;\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);\n return res;\n }\n\n // TODO: replace with a proper import API on the workspace\n private async importObjects() {\n const importOptions: ImportOptions = {\n ids: [],\n verbose: false,\n merge: false,\n objectsOnly: true,\n override: false,\n writeDists: false,\n writeConfig: false,\n installNpmPackages: false,\n importDependenciesDirectly: false,\n importDependents: false,\n };\n const importer = new Importer(this.workspace, this.dependencyResolver);\n try {\n const res = await importer.import(importOptions, []);\n return res;\n } catch (err: any) {\n // TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy\n if (err instanceof NothingToImport) {\n // Do not write nothing to import warning\n return undefined;\n }\n throw err;\n }\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n // TODO: once scope create a new API for this, replace it with the new one\n const remotes = await this.workspace.scope._legacyRemotes();\n const reg = await this.dependencyResolver.getRegistries();\n const packageScopes = Object.keys(reg.scopes);\n return (dependencyList: DependencyList): DependencyList => {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n if (remotes.isHub(dep.componentId.scope)) {\n return true;\n }\n if (packageScopes.some((scope) => dep.packageName.startsWith(`@${scope}/`))) {\n return true;\n }\n return false;\n });\n return filtered;\n };\n }\n\n private async getComponentsDirectory(ids: ComponentID[]): Promise<ComponentMap<string>> {\n const components = ids.length ? await this.workspace.getMany(ids) : await this.workspace.list();\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n static slots = [];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain\n ]) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return installExt.install(undefined, installOpts);\n },\n });\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger, community.getDocsDomain()),\n ];\n cli.register(...commands);\n return installExt;\n }\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { LinksResult as LegacyLinksResult } from '@teambit/legacy/dist/links/node-modules-linker';
2
+ declare type ComponentListLinksProps = {
3
+ componentListLinks?: LegacyLinksResult[];
4
+ verbose: boolean;
5
+ };
6
+ export declare function ComponentListLinks({ componentListLinks, verbose }: ComponentListLinksProps): string;
7
+ export {};