@teambit/dependency-resolver 1.0.107 → 1.0.108

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 (78) hide show
  1. package/apply-updates.spec.ts +215 -0
  2. package/apply-updates.ts +81 -0
  3. package/dependency-detector.ts +5 -0
  4. package/dependency-env.ts +6 -0
  5. package/dependency-installer.ts +347 -0
  6. package/dependency-linker.ts +719 -0
  7. package/dependency-resolver.aspect.ts +7 -0
  8. package/dependency-resolver.graphql.ts +99 -0
  9. package/dependency-resolver.main.runtime.spec.ts +530 -0
  10. package/dependency-resolver.main.runtime.ts +1797 -0
  11. package/dependency-version-resolver.ts +42 -0
  12. package/dist/apply-updates.js +2 -4
  13. package/dist/apply-updates.js.map +1 -1
  14. package/dist/dependencies/base-dependency.d.ts +7 -7
  15. package/dist/dependencies/base-dependency.js +1 -2
  16. package/dist/dependencies/base-dependency.js.map +1 -1
  17. package/dist/dependencies/component-dependency/component-dependency.js +1 -2
  18. package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
  19. package/dist/dependencies/dependency-list-factory.js +2 -4
  20. package/dist/dependencies/dependency-list-factory.js.map +1 -1
  21. package/dist/dependencies/dependency-list.d.ts +2 -2
  22. package/dist/dependencies/dependency-list.js +1 -4
  23. package/dist/dependencies/dependency-list.js.map +1 -1
  24. package/dist/dependencies/dependency.d.ts +5 -5
  25. package/dist/dependencies.service.d.ts +4 -4
  26. package/dist/dependencies.service.js +3 -3
  27. package/dist/dependencies.service.js.map +1 -1
  28. package/dist/dependency-installer.d.ts +10 -9
  29. package/dist/dependency-installer.js +5 -8
  30. package/dist/dependency-installer.js.map +1 -1
  31. package/dist/dependency-linker.d.ts +10 -9
  32. package/dist/dependency-linker.js +7 -11
  33. package/dist/dependency-linker.js.map +1 -1
  34. package/dist/dependency-resolver.composition.d.ts +2 -2
  35. package/dist/dependency-resolver.main.runtime.d.ts +15 -15
  36. package/dist/dependency-resolver.main.runtime.js +33 -39
  37. package/dist/dependency-resolver.main.runtime.js.map +1 -1
  38. package/dist/dependency-version-resolver.d.ts +2 -1
  39. package/dist/get-all-policy-pkgs.d.ts +4 -4
  40. package/dist/manifest/deduping/dedupe-dependencies.d.ts +4 -4
  41. package/dist/manifest/deduping/dedupe-dependencies.js +1 -1
  42. package/dist/manifest/deduping/dedupe-dependencies.js.map +1 -1
  43. package/dist/manifest/deduping/hoist-dependencies.js +2 -3
  44. package/dist/manifest/deduping/hoist-dependencies.js.map +1 -1
  45. package/dist/manifest/deduping/hoist-dependencies.spec.js +6 -8
  46. package/dist/manifest/deduping/hoist-dependencies.spec.js.map +1 -1
  47. package/dist/manifest/deduping/index-by-dep-id.d.ts +4 -4
  48. package/dist/manifest/deduping/index-by-dep-id.js +1 -2
  49. package/dist/manifest/deduping/index-by-dep-id.js.map +1 -1
  50. package/dist/manifest/manifest.d.ts +4 -4
  51. package/dist/manifest/update-dependency-version.js +2 -2
  52. package/dist/manifest/update-dependency-version.js.map +1 -1
  53. package/dist/manifest/workspace-manifest-factory.d.ts +3 -3
  54. package/dist/manifest/workspace-manifest-factory.js +3 -5
  55. package/dist/manifest/workspace-manifest-factory.js.map +1 -1
  56. package/dist/manifest/workspace-manifest.js +1 -2
  57. package/dist/manifest/workspace-manifest.js.map +1 -1
  58. package/dist/package-manager-legacy.d.ts +1 -1
  59. package/dist/package-manager.d.ts +5 -5
  60. package/dist/policy/env-policy/env-policy.d.ts +7 -7
  61. package/dist/policy/policy.d.ts +9 -9
  62. package/dist/policy/variant-policy/variant-policy.d.ts +9 -9
  63. package/dist/policy/workspace-policy/workspace-policy.d.ts +11 -11
  64. package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
  65. package/dist/registry/registry.d.ts +6 -6
  66. package/dist/show-fragments/serialize-by-lifecycle.js +1 -2
  67. package/dist/show-fragments/serialize-by-lifecycle.js.map +1 -1
  68. package/dist/types.d.ts +8 -8
  69. package/extend-with-components-from-dir.ts +29 -0
  70. package/get-all-policy-pkgs.spec.ts +82 -0
  71. package/get-all-policy-pkgs.ts +126 -0
  72. package/index.ts +70 -0
  73. package/package-manager-legacy.ts +137 -0
  74. package/package-manager.ts +174 -0
  75. package/package.json +27 -34
  76. package/tsconfig.json +16 -21
  77. package/types/asset.d.ts +15 -3
  78. package/types.ts +77 -0
@@ -385,9 +385,8 @@ class DependencyResolverMain {
385
385
  * Here is the PR where initially dedupe was turned off for pnpm: https://github.com/teambit/bit/pull/5410
386
386
  */
387
387
  supportsDedupingOnExistingRoot() {
388
- var _packageManager$suppo;
389
388
  const packageManager = this.getPackageManager();
390
- return (packageManager === null || packageManager === void 0 || (_packageManager$suppo = packageManager.supportsDedupingOnExistingRoot) === null || _packageManager$suppo === void 0 ? void 0 : _packageManager$suppo.call(packageManager)) === true && !this.isolatedCapsules();
389
+ return packageManager?.supportsDedupingOnExistingRoot?.() === true && !this.isolatedCapsules();
391
390
  }
392
391
  setConfig(config) {
393
392
  this.config = config;
@@ -477,9 +476,9 @@ class DependencyResolverMain {
477
476
  dependencyList.forEach(dep => {
478
477
  const found = componentPolicy.find(dep.id);
479
478
  // if no policy found, the dependency was auto-resolved from the source code
480
- dep.source = (found === null || found === void 0 ? void 0 : found.source) || 'auto';
481
- dep.hidden = found === null || found === void 0 ? void 0 : found.hidden;
482
- dep.optional = found === null || found === void 0 ? void 0 : found.optional;
479
+ dep.source = found?.source || 'auto';
480
+ dep.hidden = found?.hidden;
481
+ dep.optional = found?.optional;
483
482
  });
484
483
  return dependencyList;
485
484
  }
@@ -500,12 +499,11 @@ class DependencyResolverMain {
500
499
  async getDependencies(component, {
501
500
  includeHidden = false
502
501
  } = {}) {
503
- var _entry$data;
504
502
  const entry = component.get(_dependencyResolver().DependencyResolverAspect.id);
505
503
  if (!entry) {
506
504
  return _dependencies().DependencyList.fromArray([]);
507
505
  }
508
- const serializedDependencies = (entry === null || entry === void 0 || (_entry$data = entry.data) === null || _entry$data === void 0 ? void 0 : _entry$data.dependencies) || [];
506
+ const serializedDependencies = entry?.data?.dependencies || [];
509
507
  const depList = await this.getDependenciesFromSerializedDependencies(serializedDependencies);
510
508
  if (includeHidden) return depList;
511
509
  return depList.filterHidden();
@@ -587,14 +585,14 @@ class DependencyResolverMain {
587
585
  * @memberof DependencyResolverMain
588
586
  */
589
587
  async getWorkspaceManifest(name = _constants2().ROOT_NAME, version = new (_semver().SemVer)('1.0.0'), rootPolicy, rootDir, components, options = defaultCreateFromComponentsOptions, context = {}) {
590
- const statusMessage = context !== null && context !== void 0 && context.inCapsule ? `(capsule) deduping dependencies for installation in root dir ${rootDir}` : 'deduping dependencies for installation';
591
- if (!(context !== null && context !== void 0 && context.inCapsule)) {
588
+ const statusMessage = context?.inCapsule ? `(capsule) deduping dependencies for installation in root dir ${rootDir}` : 'deduping dependencies for installation';
589
+ if (!context?.inCapsule) {
592
590
  this.logger.setStatusLine(statusMessage);
593
591
  }
594
592
  const concreteOpts = _objectSpread(_objectSpread({}, defaultCreateFromComponentsOptions), options);
595
593
  const workspaceManifestFactory = new (_manifest().WorkspaceManifestFactory)(this, this.aspectLoader);
596
594
  const res = await workspaceManifestFactory.createFromComponents(name, version, rootPolicy, rootDir, components, concreteOpts);
597
- if (!(context !== null && context !== void 0 && context.inCapsule)) {
595
+ if (!context?.inCapsule) {
598
596
  this.logger.consoleSuccess();
599
597
  }
600
598
  return res;
@@ -604,12 +602,10 @@ class DependencyResolverMain {
604
602
  * get the package name of a component.
605
603
  */
606
604
  getPackageName(component) {
607
- var _this$getDepResolverD;
608
- return ((_this$getDepResolverD = this.getDepResolverData(component)) === null || _this$getDepResolverD === void 0 ? void 0 : _this$getDepResolverD.packageName) ?? this.calcPackageName(component);
605
+ return this.getDepResolverData(component)?.packageName ?? this.calcPackageName(component);
609
606
  }
610
607
  getDepResolverData(component) {
611
- var _component$state$aspe;
612
- return (_component$state$aspe = component.state.aspects.get(_dependencyResolver().DependencyResolverAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.data;
608
+ return component.state.aspects.get(_dependencyResolver().DependencyResolverAspect.id)?.data;
613
609
  }
614
610
  calcPackageName(component) {
615
611
  return (0, _componentIdToPackageName().default)(component.state._consumer);
@@ -680,7 +676,7 @@ class DependencyResolverMain {
680
676
  * get a component dependency linker.
681
677
  */
682
678
  getLinker(options = {}) {
683
- const linkingOptions = Object.assign({}, defaultLinkingOptions, (options === null || options === void 0 ? void 0 : options.linkingOptions) || {});
679
+ const linkingOptions = Object.assign({}, defaultLinkingOptions, options?.linkingOptions || {});
684
680
  // TODO: we should somehow pass the cache root dir to the package manager constructor
685
681
  return new (_dependencyLinker().DependencyLinker)(this, this.aspectLoader, this.componentAspect, this.envs, this.logger, options.rootDir, linkingOptions, options.linkingContext);
686
682
  }
@@ -745,7 +741,7 @@ class DependencyResolverMain {
745
741
 
746
742
  // Take config from the package manager (npmrc) config if defined
747
743
  const proxyConfigFromPackageManager = await this.getProxyConfigFromPackageManager();
748
- if (proxyConfigFromPackageManager !== null && proxyConfigFromPackageManager !== void 0 && proxyConfigFromPackageManager.httpProxy || proxyConfigFromPackageManager !== null && proxyConfigFromPackageManager !== void 0 && proxyConfigFromPackageManager.httpsProxy) {
744
+ if (proxyConfigFromPackageManager?.httpProxy || proxyConfigFromPackageManager?.httpsProxy) {
749
745
  this.logger.debug(`proxy config taken from the package manager config (npmrc). proxy: ${proxyConfigFromPackageManager.httpProxy} httpsProxy: ${proxyConfigFromPackageManager.httpsProxy}`);
750
746
  return proxyConfigFromPackageManager;
751
747
  }
@@ -791,8 +787,8 @@ class DependencyResolverMain {
791
787
  async getNetworkConfigFromPackageManager() {
792
788
  const packageManager = this.getPackageManager();
793
789
  let networkConfigFromPackageManager = {};
794
- if (typeof (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getNetworkConfig) === 'function') {
795
- networkConfigFromPackageManager = await (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getNetworkConfig());
790
+ if (typeof packageManager?.getNetworkConfig === 'function') {
791
+ networkConfigFromPackageManager = await packageManager?.getNetworkConfig();
796
792
  } else {
797
793
  const systemPm = this.getSystemPackageManager();
798
794
  if (!systemPm.getNetworkConfig) throw new Error('system package manager must implement `getNetworkConfig()`');
@@ -803,8 +799,8 @@ class DependencyResolverMain {
803
799
  async getProxyConfigFromPackageManager() {
804
800
  const packageManager = this.getPackageManager();
805
801
  let proxyConfigFromPackageManager = {};
806
- if (packageManager !== null && packageManager !== void 0 && packageManager.getProxyConfig && typeof (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getProxyConfig) === 'function') {
807
- proxyConfigFromPackageManager = await (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getProxyConfig());
802
+ if (packageManager?.getProxyConfig && typeof packageManager?.getProxyConfig === 'function') {
803
+ proxyConfigFromPackageManager = await packageManager?.getProxyConfig();
808
804
  } else {
809
805
  const systemPm = this.getSystemPackageManager();
810
806
  if (!systemPm.getProxyConfig) throw new Error('system package manager must implement `getProxyConfig()`');
@@ -821,7 +817,6 @@ class DependencyResolverMain {
821
817
  * without causing unmet peer dependency issues in some of the dependencies.
822
818
  */
823
819
  async getMissingPeerDependencies(rootDir, rootPolicy, componentDirectoryMap, options) {
824
- var _peerDependencyIssues;
825
820
  this.logger.setStatusLine('finding missing peer dependencies');
826
821
  const packageManager = this.getPackageManager();
827
822
  let peerDependencyIssues;
@@ -831,21 +826,21 @@ class DependencyResolverMain {
831
826
  rootPolicy,
832
827
  rootDir
833
828
  }));
834
- if (packageManager !== null && packageManager !== void 0 && packageManager.getPeerDependencyIssues && typeof (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getPeerDependencyIssues) === 'function') {
835
- peerDependencyIssues = await (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getPeerDependencyIssues(rootDir, manifests, options));
829
+ if (packageManager?.getPeerDependencyIssues && typeof packageManager?.getPeerDependencyIssues === 'function') {
830
+ peerDependencyIssues = await packageManager?.getPeerDependencyIssues(rootDir, manifests, options);
836
831
  } else {
837
832
  const systemPm = this.getSystemPackageManager();
838
833
  if (!systemPm.getPeerDependencyIssues) throw new Error('system package manager must implement `getPeerDependencyIssues()`');
839
- peerDependencyIssues = await (systemPm === null || systemPm === void 0 ? void 0 : systemPm.getPeerDependencyIssues(rootDir, manifests, options));
834
+ peerDependencyIssues = await systemPm?.getPeerDependencyIssues(rootDir, manifests, options);
840
835
  }
841
836
  this.logger.consoleSuccess();
842
- return (_peerDependencyIssues = peerDependencyIssues['.']) === null || _peerDependencyIssues === void 0 ? void 0 : _peerDependencyIssues.intersections;
837
+ return peerDependencyIssues['.']?.intersections;
843
838
  }
844
839
  async getRegistries() {
845
840
  const packageManager = this.getPackageManager();
846
841
  let registries;
847
- if (packageManager !== null && packageManager !== void 0 && packageManager.getRegistries && typeof (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getRegistries) === 'function') {
848
- registries = await (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getRegistries());
842
+ if (packageManager?.getRegistries && typeof packageManager?.getRegistries === 'function') {
843
+ registries = await packageManager?.getRegistries();
849
844
  } else {
850
845
  const systemPm = this.getSystemPackageManager();
851
846
  if (!systemPm.getRegistries) throw new Error('system package manager must implement `getRegistries()`');
@@ -938,10 +933,9 @@ class DependencyResolverMain {
938
933
  });
939
934
  }
940
935
  async persistConfig(workspaceDir) {
941
- var _this$configAspect$wo;
942
- await ((_this$configAspect$wo = this.configAspect.workspaceConfig) === null || _this$configAspect$wo === void 0 ? void 0 : _this$configAspect$wo.write({
936
+ await this.configAspect.workspaceConfig?.write({
943
937
  dir: workspaceDir
944
- }));
938
+ });
945
939
  this.clearCache();
946
940
  }
947
941
 
@@ -1014,7 +1008,7 @@ class DependencyResolverMain {
1014
1008
  }
1015
1009
  getEnvManifest(envComponent, legacyFiles) {
1016
1010
  const object = this.envs.getEnvManifest(envComponent, legacyFiles);
1017
- const policy = object === null || object === void 0 ? void 0 : object.policy;
1011
+ const policy = object?.policy;
1018
1012
  if (!policy) return undefined;
1019
1013
  const allPoliciesFromEnv = _envPolicy().EnvPolicy.fromConfigObject(policy, {
1020
1014
  includeLegacyPeersInSelfPolicy: envComponent && this.envs.isCoreEnv(envComponent.id.toStringWithoutVersion())
@@ -1098,7 +1092,7 @@ class DependencyResolverMain {
1098
1092
  }
1099
1093
  });
1100
1094
  const currentExtension = configuredExtensions.findExtension(_dependencyResolver().DependencyResolverAspect.id);
1101
- const currentConfig = currentExtension === null || currentExtension === void 0 ? void 0 : currentExtension.config;
1095
+ const currentConfig = currentExtension?.config;
1102
1096
  if (currentConfig && currentConfig.policy) {
1103
1097
  policiesFromConfig = _policy().VariantPolicy.fromConfigObject(currentConfig.policy, {
1104
1098
  source: 'config'
@@ -1115,7 +1109,7 @@ class DependencyResolverMain {
1115
1109
  */
1116
1110
  async getPoliciesFromEnvForItself(id, legacyFiles) {
1117
1111
  const envPolicy = await this.getEnvPolicyFromEnvLegacyId(id, legacyFiles);
1118
- return envPolicy === null || envPolicy === void 0 ? void 0 : envPolicy.selfPolicy;
1112
+ return envPolicy?.selfPolicy;
1119
1113
  }
1120
1114
  updateDepsOnLegacyTag(component, idTransformer) {
1121
1115
  const entry = component.extensions.findCoreExtension(_dependencyResolver().DependencyResolverAspect.id);
@@ -1155,7 +1149,7 @@ class DependencyResolverMain {
1155
1149
  async calcComponentEnvDepDetectors(extensions) {
1156
1150
  const envDef = await this.envs.calculateEnvFromExtensions(extensions);
1157
1151
  const depEnv = envDef.env;
1158
- if (typeof (depEnv === null || depEnv === void 0 ? void 0 : depEnv.getDepDetectors) === 'function') {
1152
+ if (typeof depEnv?.getDepDetectors === 'function') {
1159
1153
  return depEnv.getDepDetectors();
1160
1154
  }
1161
1155
  return null;
@@ -1213,7 +1207,7 @@ class DependencyResolverMain {
1213
1207
  const resolvedDep = resolvedParentDeps.findDependency(dep.id, {
1214
1208
  ignoreVersion: true
1215
1209
  });
1216
- dep.id = (resolvedDep === null || resolvedDep === void 0 ? void 0 : resolvedDep.id) ?? dep.id;
1210
+ dep.id = resolvedDep?.id ?? dep.id;
1217
1211
  await this.resolveRequireableExtensionManifestDepsVersionsRecursively(dep.id, dep);
1218
1212
  });
1219
1213
  };
@@ -1222,9 +1216,9 @@ class DependencyResolverMain {
1222
1216
  await updateDirectDepsVersions(manifest.dependencies);
1223
1217
  }
1224
1218
  // @ts-ignore
1225
- if (manifest !== null && manifest !== void 0 && manifest._runtimes) {
1219
+ if (manifest?._runtimes) {
1226
1220
  // @ts-ignore
1227
- await (0, _pMapSeries().default)(manifest === null || manifest === void 0 ? void 0 : manifest._runtimes, async runtime => {
1221
+ await (0, _pMapSeries().default)(manifest?._runtimes, async runtime => {
1228
1222
  if (runtime.dependencies) {
1229
1223
  runtime.dependencies = runtime.dependencies.map(dep => this.aspectLoader.cloneManifest(dep));
1230
1224
  await updateDirectDepsVersions(runtime.dependencies);
@@ -1267,7 +1261,7 @@ class DependencyResolverMain {
1267
1261
  componentPolicies,
1268
1262
  componentModelVersions
1269
1263
  });
1270
- if (patterns !== null && patterns !== void 0 && patterns.length) {
1264
+ if (patterns?.length) {
1271
1265
  const selectedPkgNames = new Set((0, _multimatch().default)(allPkgs.map(({
1272
1266
  name
1273
1267
  }) => name), patterns));
@@ -1399,7 +1393,7 @@ class DependencyResolverMain {
1399
1393
  */
1400
1394
  async getInjectedDirs(rootDir, componentDir, packageName) {
1401
1395
  const packageManager = this.getPackageManager();
1402
- if (typeof (packageManager === null || packageManager === void 0 ? void 0 : packageManager.getInjectedDirs) === 'function') {
1396
+ if (typeof packageManager?.getInjectedDirs === 'function') {
1403
1397
  return packageManager.getInjectedDirs(rootDir, componentDir, packageName);
1404
1398
  }
1405
1399
  return [];