@teambit/dependency-resolver 1.0.494 → 1.0.495
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/artifacts/__bit_junit.xml +28 -28
- package/artifacts/preview/teambit_dependencies_dependency_resolver-preview.js +1 -1
- package/artifacts/schema.json +1812 -1562
- package/dist/dependency-resolver.main.runtime.d.ts +5 -5
- package/dist/dependency-resolver.main.runtime.js +25 -13
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/{preview-1734260112091.js → preview-1734279612846.js} +2 -2
- package/package.json +21 -21
|
@@ -9,7 +9,7 @@ import { Logger } from '@teambit/logger';
|
|
|
9
9
|
import { ExtensionDataList } from '@teambit/legacy.extension-data';
|
|
10
10
|
import { ProxyConfig, NetworkConfig } from '@teambit/scope.network';
|
|
11
11
|
import { onTagIdTransformer } from '@teambit/snapping';
|
|
12
|
-
import { ConsumerComponent as LegacyComponent } from '@teambit/legacy.consumer-component';
|
|
12
|
+
import { ConsumerComponent as LegacyComponent, Dependency as LegacyDependency } from '@teambit/legacy.consumer-component';
|
|
13
13
|
import { ComponentID } from '@teambit/component-id';
|
|
14
14
|
import { SourceFile } from '@teambit/component.sources';
|
|
15
15
|
import { ProjectManifest } from '@pnpm/types';
|
|
@@ -302,13 +302,13 @@ export declare class DependencyResolverMain {
|
|
|
302
302
|
*/
|
|
303
303
|
registerRootPolicy(policy: WorkspacePolicy): void;
|
|
304
304
|
getComponentEnvPolicyFromExtension(configuredExtensions: ExtensionDataList): Promise<EnvPolicy>;
|
|
305
|
-
getEnvPolicyFromEnvId(id: ComponentID, legacyFiles?: SourceFile[]): Promise<EnvPolicy | undefined>;
|
|
305
|
+
getEnvPolicyFromEnvId(id: ComponentID, legacyFiles?: SourceFile[], envExtendsDeps?: LegacyDependency[]): Promise<EnvPolicy | undefined>;
|
|
306
306
|
/**
|
|
307
307
|
* @deprecated use getEnvPolicyFromEnvId instead (it's the same)
|
|
308
308
|
*/
|
|
309
309
|
getEnvPolicyFromEnvLegacyId(id: ComponentID, legacyFiles?: SourceFile[]): Promise<EnvPolicy | undefined>;
|
|
310
310
|
getComponentEnvPolicy(component: Component): Promise<EnvPolicy>;
|
|
311
|
-
getEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[]): EnvPolicy | undefined
|
|
311
|
+
getEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[], envExtendsDeps?: LegacyDependency[]): Promise<EnvPolicy | undefined>;
|
|
312
312
|
/**
|
|
313
313
|
* Merge policy from parent and child env.jsonc files
|
|
314
314
|
* The rule is that for each type of dependency (dev, runtime, peer) we check each item.
|
|
@@ -339,12 +339,12 @@ export declare class DependencyResolverMain {
|
|
|
339
339
|
* 3. props defined by the user (they are the strongest one)
|
|
340
340
|
* @param configuredExtensions
|
|
341
341
|
*/
|
|
342
|
-
mergeVariantPolicies(configuredExtensions: ExtensionDataList, id: ComponentID, legacyFiles?: SourceFile[]): Promise<VariantPolicy>;
|
|
342
|
+
mergeVariantPolicies(configuredExtensions: ExtensionDataList, id: ComponentID, legacyFiles?: SourceFile[], envExtendsDeps?: LegacyDependency[]): Promise<VariantPolicy>;
|
|
343
343
|
/**
|
|
344
344
|
* These are the policies that the env itself defines for itself.
|
|
345
345
|
* So policies installed only locally for the env, not to any components that use the env.
|
|
346
346
|
*/
|
|
347
|
-
getPoliciesFromEnvForItself(id: ComponentID, legacyFiles?: SourceFile[]): Promise<VariantPolicy | undefined>;
|
|
347
|
+
getPoliciesFromEnvForItself(id: ComponentID, legacyFiles?: SourceFile[], envExtendsDeps?: LegacyDependency[]): Promise<VariantPolicy | undefined>;
|
|
348
348
|
updateDepsOnLegacyTag(component: LegacyComponent, idTransformer: onTagIdTransformer): LegacyComponent;
|
|
349
349
|
/**
|
|
350
350
|
* Register a new dependency detector. Detectors allow to extend Bit's dependency detection
|
|
@@ -1030,8 +1030,8 @@ class DependencyResolverMain {
|
|
|
1030
1030
|
envId
|
|
1031
1031
|
});
|
|
1032
1032
|
}
|
|
1033
|
-
async getEnvPolicyFromEnvId(id, legacyFiles) {
|
|
1034
|
-
const fromFile = await this.getEnvPolicyFromFile(id.toString(), legacyFiles);
|
|
1033
|
+
async getEnvPolicyFromEnvId(id, legacyFiles, envExtendsDeps) {
|
|
1034
|
+
const fromFile = await this.getEnvPolicyFromFile(id.toString(), legacyFiles, envExtendsDeps);
|
|
1035
1035
|
if (fromFile) return fromFile;
|
|
1036
1036
|
const envDef = this.envs.getEnvDefinitionById(id);
|
|
1037
1037
|
if (!envDef) return undefined;
|
|
@@ -1065,9 +1065,15 @@ class DependencyResolverMain {
|
|
|
1065
1065
|
envId: envIdWithoutVersion
|
|
1066
1066
|
});
|
|
1067
1067
|
}
|
|
1068
|
-
getEnvManifest(envComponent, legacyFiles) {
|
|
1069
|
-
|
|
1070
|
-
|
|
1068
|
+
async getEnvManifest(envComponent, legacyFiles, envExtendsDeps) {
|
|
1069
|
+
let envManifest;
|
|
1070
|
+
if (envComponent) {
|
|
1071
|
+
envManifest = await this.envs.getOrCalculateEnvManifest(envComponent, legacyFiles, envExtendsDeps);
|
|
1072
|
+
}
|
|
1073
|
+
if (!envManifest && legacyFiles) {
|
|
1074
|
+
envManifest = await this.envs.calculateEnvManifest(undefined, legacyFiles, envExtendsDeps);
|
|
1075
|
+
}
|
|
1076
|
+
const policy = envManifest?.policy;
|
|
1071
1077
|
if (!policy) return undefined;
|
|
1072
1078
|
const allPoliciesFromEnv = _envPolicy().EnvPolicy.fromConfigObject(policy, {
|
|
1073
1079
|
includeLegacyPeersInSelfPolicy: envComponent && this.envs.isCoreEnv(envComponent.id.toStringWithoutVersion())
|
|
@@ -1102,11 +1108,15 @@ class DependencyResolverMain {
|
|
|
1102
1108
|
policy
|
|
1103
1109
|
};
|
|
1104
1110
|
}
|
|
1105
|
-
async getEnvPolicyFromFile(envId, legacyFiles) {
|
|
1111
|
+
async getEnvPolicyFromFile(envId, legacyFiles, envExtendsDeps) {
|
|
1106
1112
|
const isCoreEnv = this.envs.isCoreEnv(envId);
|
|
1107
1113
|
if (isCoreEnv) return undefined;
|
|
1108
1114
|
if (legacyFiles) {
|
|
1109
|
-
|
|
1115
|
+
const envJsonc = legacyFiles.find(file => file.basename === 'env.jsonc');
|
|
1116
|
+
if (envJsonc) {
|
|
1117
|
+
return this.getEnvManifest(undefined, legacyFiles, envExtendsDeps);
|
|
1118
|
+
}
|
|
1119
|
+
return undefined;
|
|
1110
1120
|
}
|
|
1111
1121
|
const envComponent = await this.envs.getEnvComponentByEnvId(envId, envId);
|
|
1112
1122
|
return this.getEnvManifest(envComponent);
|
|
@@ -1156,7 +1166,7 @@ class DependencyResolverMain {
|
|
|
1156
1166
|
* 3. props defined by the user (they are the strongest one)
|
|
1157
1167
|
* @param configuredExtensions
|
|
1158
1168
|
*/
|
|
1159
|
-
async mergeVariantPolicies(configuredExtensions, id, legacyFiles) {
|
|
1169
|
+
async mergeVariantPolicies(configuredExtensions, id, legacyFiles, envExtendsDeps) {
|
|
1160
1170
|
let policiesFromSlots = _policy().VariantPolicy.getEmpty();
|
|
1161
1171
|
let policiesFromConfig = _policy().VariantPolicy.getEmpty();
|
|
1162
1172
|
const policiesFromEnv = await this.getComponentEnvPolicyFromExtension(configuredExtensions);
|
|
@@ -1185,7 +1195,7 @@ class DependencyResolverMain {
|
|
|
1185
1195
|
source: 'config'
|
|
1186
1196
|
});
|
|
1187
1197
|
}
|
|
1188
|
-
const policiesFromEnvForItself = (await this.getPoliciesFromEnvForItself(id, legacyFiles)) ?? _policy().VariantPolicy.getEmpty();
|
|
1198
|
+
const policiesFromEnvForItself = (await this.getPoliciesFromEnvForItself(id, legacyFiles, envExtendsDeps)) ?? _policy().VariantPolicy.getEmpty();
|
|
1189
1199
|
const result = _policy().VariantPolicy.mergePolices([policiesFromEnv, policiesFromEnvForItself, policiesFromSlots, policiesFromConfig]);
|
|
1190
1200
|
return result;
|
|
1191
1201
|
}
|
|
@@ -1194,8 +1204,8 @@ class DependencyResolverMain {
|
|
|
1194
1204
|
* These are the policies that the env itself defines for itself.
|
|
1195
1205
|
* So policies installed only locally for the env, not to any components that use the env.
|
|
1196
1206
|
*/
|
|
1197
|
-
async getPoliciesFromEnvForItself(id, legacyFiles) {
|
|
1198
|
-
const envPolicy = await this.getEnvPolicyFromEnvId(id, legacyFiles);
|
|
1207
|
+
async getPoliciesFromEnvForItself(id, legacyFiles, envExtendsDeps) {
|
|
1208
|
+
const envPolicy = await this.getEnvPolicyFromEnvId(id, legacyFiles, envExtendsDeps);
|
|
1199
1209
|
return envPolicy?.selfPolicy;
|
|
1200
1210
|
}
|
|
1201
1211
|
updateDepsOnLegacyTag(component, idTransformer) {
|
|
@@ -1426,12 +1436,14 @@ class DependencyResolverMain {
|
|
|
1426
1436
|
// const packageManager = new PackageManagerLegacy(config.packageManager, logger);
|
|
1427
1437
|
const logger = loggerExt.createLogger(_dependencyResolver().DependencyResolverAspect.id);
|
|
1428
1438
|
const dependencyResolver = new DependencyResolverMain(config, rootPolicyRegistry, policiesRegistry, envs, logger, configMain, aspectLoader, globalConfig, componentAspect, packageManagerSlot, dependencyFactorySlot, preInstallSlot, postInstallSlot);
|
|
1439
|
+
const envJsoncDetector = envs.getEnvJsoncDetector();
|
|
1440
|
+
dependencyResolver.registerDetector(envJsoncDetector);
|
|
1429
1441
|
componentAspect.registerShowFragments([new (_showFragments().DependenciesFragment)(dependencyResolver), new (_showFragments().DevDependenciesFragment)(dependencyResolver), new (_showFragments().PeerDependenciesFragment)(dependencyResolver)]);
|
|
1430
1442
|
// TODO: solve this generics issue and remove the ts-ignore
|
|
1431
1443
|
// @ts-ignore
|
|
1432
1444
|
dependencyResolver.registerDependencyFactories([new (_dependencies2().ComponentDependencyFactory)(componentAspect)]);
|
|
1433
|
-
_legacy3().ConsumerComponent.registerOnComponentOverridesLoading(_dependencyResolver().DependencyResolverAspect.id, async (configuredExtensions, id, legacyFiles) => {
|
|
1434
|
-
const policy = await dependencyResolver.mergeVariantPolicies(configuredExtensions, id, legacyFiles);
|
|
1445
|
+
_legacy3().ConsumerComponent.registerOnComponentOverridesLoading(_dependencyResolver().DependencyResolverAspect.id, async (configuredExtensions, id, legacyFiles, envExtendsDeps) => {
|
|
1446
|
+
const policy = await dependencyResolver.mergeVariantPolicies(configuredExtensions, id, legacyFiles, envExtendsDeps);
|
|
1435
1447
|
return policy.toLegacyDepsOverrides();
|
|
1436
1448
|
});
|
|
1437
1449
|
if (aspectLoader) aspectLoader.registerOnLoadRequireableExtensionSlot(dependencyResolver.onLoadRequireableExtensionSubscriber.bind(dependencyResolver));
|