@teambit/dependencies 1.0.173 → 1.0.174
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 +4 -4
- package/artifacts/schema.json +1 -1
- package/dependencies-loader/apply-overrides.ts +51 -11
- package/dependencies-loader/auto-detect-deps.ts +3 -14
- package/dependencies-loader/dependencies-data.ts +5 -1
- package/dependencies-loader/dependencies-loader.ts +1 -0
- package/dependencies-loader/dependencies-versions-resolver.ts +2 -1
- package/dist/dependencies-loader/apply-overrides.d.ts +1 -0
- package/dist/dependencies-loader/apply-overrides.js +48 -11
- package/dist/dependencies-loader/apply-overrides.js.map +1 -1
- package/dist/dependencies-loader/auto-detect-deps.d.ts +0 -1
- package/dist/dependencies-loader/auto-detect-deps.js +3 -18
- package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
- package/dist/dependencies-loader/dependencies-data.js +5 -2
- package/dist/dependencies-loader/dependencies-data.js.map +1 -1
- package/dist/dependencies-loader/dependencies-loader.js +1 -0
- package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.js +1 -0
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/package.json +8 -8
- /package/dist/{preview-1708466611462.js → preview-1708958940676.js} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<testsuites tests="38" failures="0" errors="0" skipped="0">
|
|
3
|
-
<testsuite name="teambit.dependencies/dependencies@1.0.
|
|
3
|
+
<testsuite name="teambit.dependencies/dependencies@1.0.174" tests="38" failures="0" errors="0" skipped="0">
|
|
4
4
|
<testcase classname="dist/dependencies.spec.js" name="should add the snap prefix" time="0.001"/>
|
|
5
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom"
|
|
5
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom"/>
|
|
6
6
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/chai"/>
|
|
7
7
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/mocha"/>
|
|
8
8
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/classnames"/>
|
|
9
9
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/cors"/>
|
|
10
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn"
|
|
10
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn"/>
|
|
11
11
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/dagre"/>
|
|
12
12
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/didyoumean"/>
|
|
13
13
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/eslint"/>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/socket.io-client"/>
|
|
36
36
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/ua-parser-js"/>
|
|
37
37
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-join"/>
|
|
38
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-parse"/>
|
|
38
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-parse" time="0.001"/>
|
|
39
39
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack"/>
|
|
40
40
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack-dev-server"/>
|
|
41
41
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack-merge"/>
|
package/artifacts/schema.json
CHANGED
|
@@ -19,6 +19,7 @@ import { DebugDependencies, FileType } from './auto-detect-deps';
|
|
|
19
19
|
export type AllDependencies = {
|
|
20
20
|
dependencies: Dependency[];
|
|
21
21
|
devDependencies: Dependency[];
|
|
22
|
+
peerDependencies: Dependency[];
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
export type AllPackagesDependencies = {
|
|
@@ -60,6 +61,7 @@ export class ApplyOverrides {
|
|
|
60
61
|
this.allDependencies = {
|
|
61
62
|
dependencies: [],
|
|
62
63
|
devDependencies: [],
|
|
64
|
+
peerDependencies: [],
|
|
63
65
|
};
|
|
64
66
|
this.allPackagesDependencies = {
|
|
65
67
|
packageDependencies: {},
|
|
@@ -203,12 +205,11 @@ export class ApplyOverrides {
|
|
|
203
205
|
}
|
|
204
206
|
|
|
205
207
|
private _getComponentIdToAdd(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
): { componentId?: ComponentID; packageName?: string
|
|
209
|
-
if (field === 'peerDependencies') return undefined;
|
|
208
|
+
dependency: string,
|
|
209
|
+
versionRange: string
|
|
210
|
+
): { componentId?: ComponentID; packageName?: string; versionRange: string } {
|
|
210
211
|
const packageData = this._resolvePackageData(dependency);
|
|
211
|
-
return { componentId: packageData?.componentId, packageName: packageData?.name };
|
|
212
|
+
return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };
|
|
212
213
|
}
|
|
213
214
|
|
|
214
215
|
getDependenciesToAddManually(
|
|
@@ -223,7 +224,7 @@ export class ApplyOverrides {
|
|
|
223
224
|
if (!overrides[depField]) return;
|
|
224
225
|
Object.keys(overrides[depField]).forEach((dependency) => {
|
|
225
226
|
const dependencyValue = overrides[depField][dependency];
|
|
226
|
-
const componentData = this._getComponentIdToAdd(
|
|
227
|
+
const componentData = this._getComponentIdToAdd(dependency, dependencyValue);
|
|
227
228
|
if (componentData?.componentId) {
|
|
228
229
|
const dependencyExist = existingDependencies[depField].find((d) =>
|
|
229
230
|
d.id.isEqualWithoutVersion(componentData.componentId)
|
|
@@ -259,7 +260,9 @@ export class ApplyOverrides {
|
|
|
259
260
|
DEPENDENCIES_FIELDS.forEach((depField) => {
|
|
260
261
|
if (components[depField] && components[depField].length) {
|
|
261
262
|
components[depField].forEach((depData) =>
|
|
262
|
-
this.allDependencies[depField].push(
|
|
263
|
+
this.allDependencies[depField].push(
|
|
264
|
+
new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)
|
|
265
|
+
)
|
|
263
266
|
);
|
|
264
267
|
}
|
|
265
268
|
if (packages[depField] && !isEmpty(packages[depField])) {
|
|
@@ -278,6 +281,12 @@ export class ApplyOverrides {
|
|
|
278
281
|
delete this.allPackagesDependencies.packageDependencies[peerName];
|
|
279
282
|
}
|
|
280
283
|
}
|
|
284
|
+
if (components.peerDependencies) {
|
|
285
|
+
const componentPeers = new Set(components.peerDependencies.map(({ packageName }) => packageName));
|
|
286
|
+
this.allDependencies.dependencies = this.allDependencies.dependencies.filter(
|
|
287
|
+
(dep) => !dep.packageName || !componentPeers.has(dep.packageName)
|
|
288
|
+
);
|
|
289
|
+
}
|
|
281
290
|
}
|
|
282
291
|
|
|
283
292
|
/**
|
|
@@ -353,7 +362,7 @@ export class ApplyOverrides {
|
|
|
353
362
|
if (!wsPolicy) return;
|
|
354
363
|
const wsPeer = wsPolicy.peerDependencies || {};
|
|
355
364
|
const wsRegular = wsPolicy.dependencies || {};
|
|
356
|
-
const
|
|
365
|
+
const peerPackageDeps = this.allPackagesDependencies.peerPackageDependencies || {};
|
|
357
366
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
358
367
|
// the policy used for installation only in that case
|
|
359
368
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {
|
|
@@ -362,14 +371,31 @@ export class ApplyOverrides {
|
|
|
362
371
|
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
363
372
|
if (peerVersionFromWsPolicy) {
|
|
364
373
|
delete this.allPackagesDependencies[field][pkgName];
|
|
365
|
-
|
|
374
|
+
peerPackageDeps[pkgName] = peerVersionFromWsPolicy;
|
|
366
375
|
} else if (regularVersionFromWsPolicy) {
|
|
367
376
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
368
377
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;
|
|
369
378
|
}
|
|
370
379
|
});
|
|
371
380
|
});
|
|
372
|
-
this.allPackagesDependencies.peerPackageDependencies =
|
|
381
|
+
this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;
|
|
382
|
+
|
|
383
|
+
const peerDeps = this.allDependencies.peerDependencies ?? [];
|
|
384
|
+
['dependencies', 'devDependencies'].forEach((field) => {
|
|
385
|
+
for (const dep of this.allDependencies[field]) {
|
|
386
|
+
const pkgName = dep.packageName;
|
|
387
|
+
const peerVersionFromWsPolicy = wsPeer[pkgName];
|
|
388
|
+
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
389
|
+
if (peerVersionFromWsPolicy) {
|
|
390
|
+
dep.versionRange = peerVersionFromWsPolicy;
|
|
391
|
+
peerDeps.push(dep);
|
|
392
|
+
} else if (regularVersionFromWsPolicy) {
|
|
393
|
+
dep.versionRange = regularVersionFromWsPolicy;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
this.allDependencies[field] = this.allDependencies[field].filter(({ packageName }) => !wsPeer[packageName]);
|
|
397
|
+
});
|
|
398
|
+
this.allDependencies.peerDependencies = peerDeps;
|
|
373
399
|
}
|
|
374
400
|
|
|
375
401
|
/**
|
|
@@ -419,6 +445,10 @@ export class ApplyOverrides {
|
|
|
419
445
|
return dep.packageName === pkgName;
|
|
420
446
|
});
|
|
421
447
|
|
|
448
|
+
const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => {
|
|
449
|
+
return dep.packageName === pkgName;
|
|
450
|
+
});
|
|
451
|
+
|
|
422
452
|
if (
|
|
423
453
|
// We are checking originAllPackagesDependencies instead of allPackagesDependencies
|
|
424
454
|
// as it might be already removed from allPackagesDependencies at this point if it was set with
|
|
@@ -429,6 +459,7 @@ export class ApplyOverrides {
|
|
|
429
459
|
!this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&
|
|
430
460
|
!existsInCompsDeps &&
|
|
431
461
|
!existsInCompsDevDeps &&
|
|
462
|
+
!existsInCompsPeerDeps &&
|
|
432
463
|
// Check if it was orignally exists in the component
|
|
433
464
|
// as we might have a policy which looks like this:
|
|
434
465
|
// "components": {
|
|
@@ -479,7 +510,16 @@ export class ApplyOverrides {
|
|
|
479
510
|
pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&
|
|
480
511
|
((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')
|
|
481
512
|
) {
|
|
482
|
-
|
|
513
|
+
if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {
|
|
514
|
+
const comp = (existsInCompsDeps ?? existsInCompsDevDeps) as Dependency;
|
|
515
|
+
comp.versionRange = pkgVal;
|
|
516
|
+
this.allDependencies.peerDependencies.push(comp);
|
|
517
|
+
} else {
|
|
518
|
+
this.allPackagesDependencies[key][pkgName] = pkgVal;
|
|
519
|
+
}
|
|
520
|
+
if (existsInCompsPeerDeps) {
|
|
521
|
+
existsInCompsPeerDeps.versionRange = pkgVal;
|
|
522
|
+
}
|
|
483
523
|
}
|
|
484
524
|
});
|
|
485
525
|
});
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/types/dependency-tree-type';
|
|
25
25
|
import { DevFilesMain } from '@teambit/dev-files';
|
|
26
26
|
import { Workspace } from '@teambit/workspace';
|
|
27
|
-
import { AspectLoaderMain
|
|
27
|
+
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
28
28
|
import { ResolvedPackageData } from '@teambit/legacy/dist/utils/packages';
|
|
29
29
|
import { DependencyDetector } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/detector-hook';
|
|
30
30
|
import { packageToDefinetlyTyped } from './package-to-definetly-typed';
|
|
@@ -81,6 +81,7 @@ export class AutoDetectDeps {
|
|
|
81
81
|
this.allDependencies = {
|
|
82
82
|
dependencies: [],
|
|
83
83
|
devDependencies: [],
|
|
84
|
+
peerDependencies: [],
|
|
84
85
|
};
|
|
85
86
|
this.allPackagesDependencies = {
|
|
86
87
|
packageDependencies: {},
|
|
@@ -506,18 +507,6 @@ export class AutoDetectDeps {
|
|
|
506
507
|
} else this.issues.getOrCreate(IssuesClasses.ResolveErrors).data[originFile] = error.message;
|
|
507
508
|
}
|
|
508
509
|
|
|
509
|
-
private getCoreAspectsPackagesAndIds(): Record<string, string> {
|
|
510
|
-
const allCoreAspectsIds = this.aspectLoader.getCoreAspectIds();
|
|
511
|
-
const coreAspectsPackagesAndIds = {};
|
|
512
|
-
|
|
513
|
-
allCoreAspectsIds.forEach((id) => {
|
|
514
|
-
const packageName = getCoreAspectPackageName(id);
|
|
515
|
-
coreAspectsPackagesAndIds[packageName] = id;
|
|
516
|
-
});
|
|
517
|
-
|
|
518
|
-
return coreAspectsPackagesAndIds;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
510
|
/**
|
|
522
511
|
* when a user uses core-extensions these core-extensions should not be dependencies.
|
|
523
512
|
* here, we filter them out from all places they could entered as dependencies.
|
|
@@ -525,7 +514,7 @@ export class AutoDetectDeps {
|
|
|
525
514
|
* which case we recognizes that the current originFile is a core-extension and avoid filtering.
|
|
526
515
|
*/
|
|
527
516
|
private processCoreAspects(originFile: PathLinuxRelative) {
|
|
528
|
-
const coreAspects = this.getCoreAspectsPackagesAndIds();
|
|
517
|
+
const coreAspects = this.aspectLoader.getCoreAspectsPackagesAndIds();
|
|
529
518
|
|
|
530
519
|
// const scopes = coreAspects.map((id) => {
|
|
531
520
|
// const id = id.split()
|
|
@@ -25,6 +25,7 @@ export class DependenciesData {
|
|
|
25
25
|
allDependencies: {
|
|
26
26
|
dependencies: allDependencies.dependencies.map((dep) => dep.serialize()),
|
|
27
27
|
devDependencies: allDependencies.devDependencies.map((dep) => dep.serialize()),
|
|
28
|
+
peerDependencies: allDependencies.peerDependencies.map((dep) => dep.serialize()),
|
|
28
29
|
},
|
|
29
30
|
// for backward compatibility. version < 1.5.1 expected this to be saved in the fs cache.
|
|
30
31
|
overridesDependencies: {
|
|
@@ -39,8 +40,11 @@ export class DependenciesData {
|
|
|
39
40
|
const dataParsed = JSON.parse(data);
|
|
40
41
|
const dependencies = dataParsed.allDependencies.dependencies.map((dep) => Dependency.deserialize(dep));
|
|
41
42
|
const devDependencies = dataParsed.allDependencies.devDependencies.map((dep) => Dependency.deserialize(dep));
|
|
43
|
+
const peerDependencies = (dataParsed.allDependencies.peerDependencies ?? []).map((dep) =>
|
|
44
|
+
Dependency.deserialize(dep)
|
|
45
|
+
);
|
|
42
46
|
const issuesList = IssuesList.deserialize(dataParsed.issues);
|
|
43
|
-
const allDependencies = { dependencies, devDependencies };
|
|
47
|
+
const allDependencies = { dependencies, devDependencies, peerDependencies };
|
|
44
48
|
const coreAspects = dataParsed.coreAspects;
|
|
45
49
|
return new DependenciesData(allDependencies, dataParsed.allPackagesDependencies, issuesList, coreAspects);
|
|
46
50
|
}
|
|
@@ -138,6 +138,7 @@ export class DependenciesLoader {
|
|
|
138
138
|
) {
|
|
139
139
|
this.component.setDependencies(dependenciesData.allDependencies.dependencies);
|
|
140
140
|
this.component.setDevDependencies(dependenciesData.allDependencies.devDependencies);
|
|
141
|
+
this.component.setPeerDependencies(dependenciesData.allDependencies.peerDependencies);
|
|
141
142
|
this.component.packageDependencies = dependenciesData.allPackagesDependencies.packageDependencies ?? {};
|
|
142
143
|
this.component.devPackageDependencies = dependenciesData.allPackagesDependencies.devPackageDependencies ?? {};
|
|
143
144
|
this.component.peerPackageDependencies = dependenciesData.allPackagesDependencies.peerPackageDependencies ?? {};
|
|
@@ -12,7 +12,7 @@ import Dependency from '@teambit/legacy/dist/consumer/component/dependencies/dep
|
|
|
12
12
|
import OverridesDependencies from './overrides-dependencies';
|
|
13
13
|
import { DebugComponentsDependency, getValidVersion } from './auto-detect-deps';
|
|
14
14
|
|
|
15
|
-
type DepType = 'dependencies' | 'devDependencies';
|
|
15
|
+
type DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';
|
|
16
16
|
|
|
17
17
|
export function updateDependenciesVersions(
|
|
18
18
|
depsResolver: DependencyResolverMain,
|
|
@@ -28,6 +28,7 @@ export function updateDependenciesVersions(
|
|
|
28
28
|
|
|
29
29
|
updateDependencies(component.dependencies, 'dependencies');
|
|
30
30
|
updateDependencies(component.devDependencies, 'devDependencies');
|
|
31
|
+
updateDependencies(component.peerDependencies, 'peerDependencies');
|
|
31
32
|
if (updateExtensionsVersions) {
|
|
32
33
|
updateExtensions(component.extensions);
|
|
33
34
|
}
|
|
@@ -11,6 +11,7 @@ import { DebugDependencies } from './auto-detect-deps';
|
|
|
11
11
|
export type AllDependencies = {
|
|
12
12
|
dependencies: Dependency[];
|
|
13
13
|
devDependencies: Dependency[];
|
|
14
|
+
peerDependencies: Dependency[];
|
|
14
15
|
};
|
|
15
16
|
export type AllPackagesDependencies = {
|
|
16
17
|
packageDependencies: Record<string, string>;
|
|
@@ -108,7 +108,8 @@ class ApplyOverrides {
|
|
|
108
108
|
this.componentFromModel = this.component.componentFromModel;
|
|
109
109
|
this.allDependencies = {
|
|
110
110
|
dependencies: [],
|
|
111
|
-
devDependencies: []
|
|
111
|
+
devDependencies: [],
|
|
112
|
+
peerDependencies: []
|
|
112
113
|
};
|
|
113
114
|
this.allPackagesDependencies = {
|
|
114
115
|
packageDependencies: {},
|
|
@@ -222,12 +223,12 @@ class ApplyOverrides {
|
|
|
222
223
|
const packageObject = (0, _packages().resolvePackageData)(basePath, modulePath);
|
|
223
224
|
return packageObject;
|
|
224
225
|
}
|
|
225
|
-
_getComponentIdToAdd(
|
|
226
|
-
if (field === 'peerDependencies') return undefined;
|
|
226
|
+
_getComponentIdToAdd(dependency, versionRange) {
|
|
227
227
|
const packageData = this._resolvePackageData(dependency);
|
|
228
228
|
return {
|
|
229
229
|
componentId: packageData?.componentId,
|
|
230
|
-
packageName: packageData?.name
|
|
230
|
+
packageName: packageData?.name,
|
|
231
|
+
versionRange
|
|
231
232
|
};
|
|
232
233
|
}
|
|
233
234
|
getDependenciesToAddManually(packageJson, existingDependencies) {
|
|
@@ -239,7 +240,7 @@ class ApplyOverrides {
|
|
|
239
240
|
if (!overrides[depField]) return;
|
|
240
241
|
Object.keys(overrides[depField]).forEach(dependency => {
|
|
241
242
|
const dependencyValue = overrides[depField][dependency];
|
|
242
|
-
const componentData = this._getComponentIdToAdd(
|
|
243
|
+
const componentData = this._getComponentIdToAdd(dependency, dependencyValue);
|
|
243
244
|
if (componentData?.componentId) {
|
|
244
245
|
const dependencyExist = existingDependencies[depField].find(d => d.id.isEqualWithoutVersion(componentData.componentId));
|
|
245
246
|
if (!dependencyExist) {
|
|
@@ -272,7 +273,7 @@ class ApplyOverrides {
|
|
|
272
273
|
} = dependencies;
|
|
273
274
|
_constants().DEPENDENCIES_FIELDS.forEach(depField => {
|
|
274
275
|
if (components[depField] && components[depField].length) {
|
|
275
|
-
components[depField].forEach(depData => this.allDependencies[depField].push(new (_dependencies().Dependency)(depData.componentId, [], depData.packageName)));
|
|
276
|
+
components[depField].forEach(depData => this.allDependencies[depField].push(new (_dependencies().Dependency)(depData.componentId, [], depData.packageName, depData.versionRange)));
|
|
276
277
|
}
|
|
277
278
|
if (packages[depField] && !(0, _lodash().isEmpty)(packages[depField])) {
|
|
278
279
|
Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);
|
|
@@ -290,6 +291,12 @@ class ApplyOverrides {
|
|
|
290
291
|
delete this.allPackagesDependencies.packageDependencies[peerName];
|
|
291
292
|
}
|
|
292
293
|
}
|
|
294
|
+
if (components.peerDependencies) {
|
|
295
|
+
const componentPeers = new Set(components.peerDependencies.map(({
|
|
296
|
+
packageName
|
|
297
|
+
}) => packageName));
|
|
298
|
+
this.allDependencies.dependencies = this.allDependencies.dependencies.filter(dep => !dep.packageName || !componentPeers.has(dep.packageName));
|
|
299
|
+
}
|
|
293
300
|
}
|
|
294
301
|
|
|
295
302
|
/**
|
|
@@ -356,7 +363,7 @@ class ApplyOverrides {
|
|
|
356
363
|
if (!wsPolicy) return;
|
|
357
364
|
const wsPeer = wsPolicy.peerDependencies || {};
|
|
358
365
|
const wsRegular = wsPolicy.dependencies || {};
|
|
359
|
-
const
|
|
366
|
+
const peerPackageDeps = this.allPackagesDependencies.peerPackageDependencies || {};
|
|
360
367
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
361
368
|
// the policy used for installation only in that case
|
|
362
369
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
@@ -365,14 +372,32 @@ class ApplyOverrides {
|
|
|
365
372
|
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
366
373
|
if (peerVersionFromWsPolicy) {
|
|
367
374
|
delete this.allPackagesDependencies[field][pkgName];
|
|
368
|
-
|
|
375
|
+
peerPackageDeps[pkgName] = peerVersionFromWsPolicy;
|
|
369
376
|
} else if (regularVersionFromWsPolicy) {
|
|
370
377
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
371
378
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;
|
|
372
379
|
}
|
|
373
380
|
});
|
|
374
381
|
});
|
|
375
|
-
this.allPackagesDependencies.peerPackageDependencies =
|
|
382
|
+
this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;
|
|
383
|
+
const peerDeps = this.allDependencies.peerDependencies ?? [];
|
|
384
|
+
['dependencies', 'devDependencies'].forEach(field => {
|
|
385
|
+
for (const dep of this.allDependencies[field]) {
|
|
386
|
+
const pkgName = dep.packageName;
|
|
387
|
+
const peerVersionFromWsPolicy = wsPeer[pkgName];
|
|
388
|
+
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
389
|
+
if (peerVersionFromWsPolicy) {
|
|
390
|
+
dep.versionRange = peerVersionFromWsPolicy;
|
|
391
|
+
peerDeps.push(dep);
|
|
392
|
+
} else if (regularVersionFromWsPolicy) {
|
|
393
|
+
dep.versionRange = regularVersionFromWsPolicy;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
this.allDependencies[field] = this.allDependencies[field].filter(({
|
|
397
|
+
packageName
|
|
398
|
+
}) => !wsPeer[packageName]);
|
|
399
|
+
});
|
|
400
|
+
this.allDependencies.peerDependencies = peerDeps;
|
|
376
401
|
}
|
|
377
402
|
|
|
378
403
|
/**
|
|
@@ -415,12 +440,15 @@ class ApplyOverrides {
|
|
|
415
440
|
const existsInCompsDevDeps = this.allDependencies.devDependencies.find(dep => {
|
|
416
441
|
return dep.packageName === pkgName;
|
|
417
442
|
});
|
|
443
|
+
const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find(dep => {
|
|
444
|
+
return dep.packageName === pkgName;
|
|
445
|
+
});
|
|
418
446
|
if (
|
|
419
447
|
// We are checking originAllPackagesDependencies instead of allPackagesDependencies
|
|
420
448
|
// as it might be already removed from allPackagesDependencies at this point if it was set with
|
|
421
449
|
// "-" in runtime/dev
|
|
422
450
|
// in such case we still want to apply it here
|
|
423
|
-
!this.originAllPackagesDependencies.packageDependencies[pkgName] && !this.originAllPackagesDependencies.devPackageDependencies[pkgName] && !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] && !existsInCompsDeps && !existsInCompsDevDeps &&
|
|
451
|
+
!this.originAllPackagesDependencies.packageDependencies[pkgName] && !this.originAllPackagesDependencies.devPackageDependencies[pkgName] && !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] && !existsInCompsDeps && !existsInCompsDevDeps && !existsInCompsPeerDeps &&
|
|
424
452
|
// Check if it was orignally exists in the component
|
|
425
453
|
// as we might have a policy which looks like this:
|
|
426
454
|
// "components": {
|
|
@@ -461,7 +489,16 @@ class ApplyOverrides {
|
|
|
461
489
|
// also the version here might have a range (^ or ~ for example) so we can't
|
|
462
490
|
// just put it as is, as it is not valid for component deps to have range
|
|
463
491
|
if (pkgVal !== _constants().MANUALLY_REMOVE_DEPENDENCY && (!existsInCompsDeps && !existsInCompsDevDeps || field === 'peerDependencies')) {
|
|
464
|
-
|
|
492
|
+
if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {
|
|
493
|
+
const comp = existsInCompsDeps ?? existsInCompsDevDeps;
|
|
494
|
+
comp.versionRange = pkgVal;
|
|
495
|
+
this.allDependencies.peerDependencies.push(comp);
|
|
496
|
+
} else {
|
|
497
|
+
this.allPackagesDependencies[key][pkgName] = pkgVal;
|
|
498
|
+
}
|
|
499
|
+
if (existsInCompsPeerDeps) {
|
|
500
|
+
existsInCompsPeerDeps.versionRange = pkgVal;
|
|
501
|
+
}
|
|
465
502
|
}
|
|
466
503
|
});
|
|
467
504
|
});
|