@teambit/dependencies 1.0.140 → 1.0.142
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 +14 -14
- package/dependencies-loader/apply-overrides.ts +22 -23
- package/dependencies-loader/auto-detect-deps.ts +11 -12
- package/dependencies-loader/dependencies-loader.ts +1 -2
- package/dependencies-loader/dependencies-versions-resolver.ts +2 -2
- package/dist/dependencies-loader/apply-overrides.js +15 -64
- package/dist/dependencies-loader/apply-overrides.js.map +1 -1
- package/dist/dependencies-loader/auto-detect-deps.js +11 -39
- package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
- package/dist/dependencies-loader/dependencies-loader.js +1 -8
- package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.js +7 -7
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/package.json +6 -7
- /package/dist/{preview-1705634165230.js → preview-1705806923881.js} +0 -0
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<testsuites>
|
|
3
|
-
<testsuite name="teambit.dependencies/dependencies@1.0.
|
|
4
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.
|
|
3
|
+
<testsuite name="teambit.dependencies/dependencies@1.0.142" timestamp="2024-01-21T03:40:54.195Z" tests="37" failures="0" errors="0" skipped="0">
|
|
4
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.126"/>
|
|
5
5
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/chai" time="0.001"/>
|
|
6
6
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mocha"/>
|
|
7
7
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/classnames"/>
|
|
8
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cors"
|
|
8
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cors"/>
|
|
9
9
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn"/>
|
|
10
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/dagre"/>
|
|
11
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/didyoumean"
|
|
12
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/eslint"/>
|
|
13
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/express"/>
|
|
10
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/dagre" time="0.001"/>
|
|
11
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/didyoumean"/>
|
|
12
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/eslint" time="0.001"/>
|
|
13
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/express" time="0.001"/>
|
|
14
14
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir"/>
|
|
15
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-root"
|
|
15
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-root"/>
|
|
16
16
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/history"/>
|
|
17
17
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/http-proxy-agent" time="0.001"/>
|
|
18
18
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash"/>
|
|
19
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.compact"/>
|
|
20
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.flatten"
|
|
19
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.compact" time="0.001"/>
|
|
20
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.flatten"/>
|
|
21
21
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.head"/>
|
|
22
22
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.pick"/>
|
|
23
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mdx-js__react"/>
|
|
23
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mdx-js__react" time="0.001"/>
|
|
24
24
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/memoizee"/>
|
|
25
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mime"
|
|
25
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mime"/>
|
|
26
26
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mousetrap"/>
|
|
27
27
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/node" time="0.001"/>
|
|
28
28
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/puppeteer"/>
|
|
29
29
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react"/>
|
|
30
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-dom"
|
|
30
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-dom"/>
|
|
31
31
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-router-dom"/>
|
|
32
32
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tabs"/>
|
|
33
33
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tooltip"/>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/ua-parser-js"/>
|
|
36
36
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/url-join"/>
|
|
37
37
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/url-parse"/>
|
|
38
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack"
|
|
38
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack"/>
|
|
39
39
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack-dev-server"/>
|
|
40
40
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack-merge"/>
|
|
41
41
|
</testsuite>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import R from 'ramda';
|
|
2
1
|
import path from 'path';
|
|
3
2
|
import { ComponentID, ComponentIdList } from '@teambit/component-id';
|
|
4
|
-
import { cloneDeep, uniq } from 'lodash';
|
|
3
|
+
import { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';
|
|
5
4
|
import { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';
|
|
6
5
|
import { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';
|
|
7
6
|
import Component from '@teambit/legacy/dist/consumer/component/consumer-component';
|
|
@@ -135,7 +134,7 @@ export class ApplyOverrides {
|
|
|
135
134
|
// the custom react uses the "teambit.envs/env" env, which will add react ^17.0.0 to every component that uses it
|
|
136
135
|
// we want to make sure that the custom react is using 16.4.0 not 17.
|
|
137
136
|
await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();
|
|
138
|
-
this.coreAspects =
|
|
137
|
+
this.coreAspects = uniq(this.coreAspects);
|
|
139
138
|
}
|
|
140
139
|
|
|
141
140
|
private removeIgnoredComponentsByOverrides() {
|
|
@@ -178,13 +177,13 @@ export class ApplyOverrides {
|
|
|
178
177
|
const shouldBeIncludedDev = (pkgVersion, pkgName) =>
|
|
179
178
|
!this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');
|
|
180
179
|
|
|
181
|
-
this.allPackagesDependencies.packageDependencies =
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
this.allPackagesDependencies.packageDependencies = pickBy(
|
|
181
|
+
this.allPackagesDependencies.packageDependencies,
|
|
182
|
+
shouldBeIncluded
|
|
184
183
|
);
|
|
185
|
-
this.allPackagesDependencies.devPackageDependencies =
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
this.allPackagesDependencies.devPackageDependencies = pickBy(
|
|
185
|
+
this.allPackagesDependencies.devPackageDependencies,
|
|
186
|
+
shouldBeIncludedDev
|
|
188
187
|
);
|
|
189
188
|
}
|
|
190
189
|
|
|
@@ -263,7 +262,7 @@ export class ApplyOverrides {
|
|
|
263
262
|
this.allDependencies[depField].push(new Dependency(depData.componentId, [], depData.packageName))
|
|
264
263
|
);
|
|
265
264
|
}
|
|
266
|
-
if (packages[depField] && !
|
|
265
|
+
if (packages[depField] && !isEmpty(packages[depField])) {
|
|
267
266
|
Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);
|
|
268
267
|
}
|
|
269
268
|
});
|
|
@@ -289,10 +288,10 @@ export class ApplyOverrides {
|
|
|
289
288
|
private removeDevAndEnvDepsIfTheyAlsoRegulars() {
|
|
290
289
|
// remove dev and env packages that are also regular packages
|
|
291
290
|
const getNotRegularPackages = (packages) =>
|
|
292
|
-
|
|
293
|
-
this.allPackagesDependencies.devPackageDependencies =
|
|
294
|
-
|
|
295
|
-
this.allPackagesDependencies.devPackageDependencies
|
|
291
|
+
difference(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));
|
|
292
|
+
this.allPackagesDependencies.devPackageDependencies = pick(
|
|
293
|
+
this.allPackagesDependencies.devPackageDependencies,
|
|
294
|
+
getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies)
|
|
296
295
|
);
|
|
297
296
|
// remove dev dependencies that are also regular dependencies
|
|
298
297
|
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
@@ -310,7 +309,7 @@ export class ApplyOverrides {
|
|
|
310
309
|
};
|
|
311
310
|
const projectPeerDependencies = getPeerDependencies();
|
|
312
311
|
const peerPackages = {};
|
|
313
|
-
if (
|
|
312
|
+
if (isEmpty(projectPeerDependencies)) return;
|
|
314
313
|
|
|
315
314
|
// check whether the peer-dependencies was actually require in the code. if so, remove it from
|
|
316
315
|
// the packages/dev-packages and add it as a peer-package.
|
|
@@ -334,7 +333,7 @@ export class ApplyOverrides {
|
|
|
334
333
|
const pkgJsonRegularDeps = packageJson.dependencies || {};
|
|
335
334
|
const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};
|
|
336
335
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {
|
|
337
|
-
|
|
336
|
+
forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
338
337
|
const peerVersionFromPkgJson = pkgJsonPeer[pkgName];
|
|
339
338
|
const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];
|
|
340
339
|
if (peerVersionFromPkgJson) {
|
|
@@ -344,7 +343,7 @@ export class ApplyOverrides {
|
|
|
344
343
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
345
344
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;
|
|
346
345
|
}
|
|
347
|
-
}
|
|
346
|
+
});
|
|
348
347
|
});
|
|
349
348
|
this.allPackagesDependencies.peerPackageDependencies = peerDeps;
|
|
350
349
|
}
|
|
@@ -358,7 +357,7 @@ export class ApplyOverrides {
|
|
|
358
357
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
359
358
|
// the policy used for installation only in that case
|
|
360
359
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {
|
|
361
|
-
|
|
360
|
+
forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
362
361
|
const peerVersionFromWsPolicy = wsPeer[pkgName];
|
|
363
362
|
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
364
363
|
if (peerVersionFromWsPolicy) {
|
|
@@ -368,7 +367,7 @@ export class ApplyOverrides {
|
|
|
368
367
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
369
368
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;
|
|
370
369
|
}
|
|
371
|
-
}
|
|
370
|
+
});
|
|
372
371
|
});
|
|
373
372
|
this.allPackagesDependencies.peerPackageDependencies = peerDeps;
|
|
374
373
|
}
|
|
@@ -409,7 +408,7 @@ export class ApplyOverrides {
|
|
|
409
408
|
missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());
|
|
410
409
|
}
|
|
411
410
|
['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {
|
|
412
|
-
|
|
411
|
+
forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {
|
|
413
412
|
if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;
|
|
414
413
|
// Validate it was auto detected, we only affect stuff that were detected
|
|
415
414
|
const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {
|
|
@@ -482,7 +481,7 @@ export class ApplyOverrides {
|
|
|
482
481
|
) {
|
|
483
482
|
this.allPackagesDependencies[key][pkgName] = pkgVal;
|
|
484
483
|
}
|
|
485
|
-
}
|
|
484
|
+
});
|
|
486
485
|
});
|
|
487
486
|
}
|
|
488
487
|
|
|
@@ -498,12 +497,12 @@ export class ApplyOverrides {
|
|
|
498
497
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
499
498
|
// the policy used for installation only in that case
|
|
500
499
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {
|
|
501
|
-
|
|
500
|
+
forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
502
501
|
const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];
|
|
503
502
|
if (peerVersionFromEnvPolicy) {
|
|
504
503
|
delete this.allPackagesDependencies[field][pkgName];
|
|
505
504
|
}
|
|
506
|
-
}
|
|
505
|
+
});
|
|
507
506
|
});
|
|
508
507
|
Object.assign(deps, envPolicyManifest);
|
|
509
508
|
// TODO: handle component deps once we support peers between components
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
|
-
import R from 'ramda';
|
|
4
3
|
import semver from 'semver';
|
|
5
4
|
import { isSnap } from '@teambit/component-version';
|
|
6
5
|
import { ComponentID } from '@teambit/component-id';
|
|
7
|
-
import { uniq, isEmpty } from 'lodash';
|
|
6
|
+
import { uniq, isEmpty, forEach, differenceWith } from 'lodash';
|
|
8
7
|
import { IssuesList, IssuesClasses } from '@teambit/component-issues';
|
|
9
8
|
import { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';
|
|
10
9
|
import { DEFAULT_DIST_DIRNAME, DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';
|
|
@@ -242,7 +241,7 @@ export class AutoDetectDeps {
|
|
|
242
241
|
return;
|
|
243
242
|
}
|
|
244
243
|
const allDepsFiles = this.tree[originFile].files;
|
|
245
|
-
if (!allDepsFiles ||
|
|
244
|
+
if (!allDepsFiles || isEmpty(allDepsFiles)) return;
|
|
246
245
|
allDepsFiles.forEach((depFile: FileObject) => {
|
|
247
246
|
const isDepFileUntracked = this.processOneDepFile(
|
|
248
247
|
originFile,
|
|
@@ -358,7 +357,7 @@ export class AutoDetectDeps {
|
|
|
358
357
|
*/
|
|
359
358
|
private processComponents(originFile: PathLinuxRelative, fileType: FileType) {
|
|
360
359
|
const components = this.tree[originFile].components;
|
|
361
|
-
if (!components ||
|
|
360
|
+
if (!components || isEmpty(components)) return;
|
|
362
361
|
components.forEach((compDep) => {
|
|
363
362
|
let componentId = this.getComponentIdByResolvedPackageData(compDep);
|
|
364
363
|
if (componentId.isEqual(this.componentId)) {
|
|
@@ -451,7 +450,7 @@ export class AutoDetectDeps {
|
|
|
451
450
|
}
|
|
452
451
|
const packageNames = Object.keys(packages).concat(this.tree[originFile].missing?.packages ?? []);
|
|
453
452
|
this._addTypesPackagesForTypeScript(packageNames, originFile);
|
|
454
|
-
if (!packages ||
|
|
453
|
+
if (!packages || isEmpty(packages)) return;
|
|
455
454
|
if (fileType.isTestFile) {
|
|
456
455
|
Object.assign(this.allPackagesDependencies.devPackageDependencies, packages);
|
|
457
456
|
} else {
|
|
@@ -477,13 +476,13 @@ export class AutoDetectDeps {
|
|
|
477
476
|
const existWithDifferentExt = compFilesWithoutExt.some((f) => f === relativeToCompDirWithoutExt);
|
|
478
477
|
return !existWithDifferentExt;
|
|
479
478
|
});
|
|
480
|
-
if (
|
|
479
|
+
if (isEmpty(missingFiles)) return;
|
|
481
480
|
this._pushToMissingDependenciesOnFs(originFile, missingFiles);
|
|
482
481
|
};
|
|
483
482
|
const processMissingPackages = () => {
|
|
484
483
|
if (isEmpty(missing.packages)) return;
|
|
485
484
|
const missingPackages = missing.packages;
|
|
486
|
-
if (!
|
|
485
|
+
if (!isEmpty(missingPackages)) {
|
|
487
486
|
this._pushToMissingPackagesDependenciesIssues(originFile, missingPackages, fileType);
|
|
488
487
|
}
|
|
489
488
|
};
|
|
@@ -561,7 +560,7 @@ export class AutoDetectDeps {
|
|
|
561
560
|
|
|
562
561
|
this.tree[originFile].unidentifiedPackages = unidentifiedPackagesFiltered;
|
|
563
562
|
this.tree[originFile].components = bitsFiltered;
|
|
564
|
-
this.coreAspects.push(...
|
|
563
|
+
this.coreAspects.push(...uniq(usedCoreAspects));
|
|
565
564
|
}
|
|
566
565
|
|
|
567
566
|
/**
|
|
@@ -623,7 +622,7 @@ export class AutoDetectDeps {
|
|
|
623
622
|
}
|
|
624
623
|
|
|
625
624
|
private getExistingDepRelativePaths(dependency: Dependency, relativePath: RelativePath) {
|
|
626
|
-
if (!dependency.relativePaths ||
|
|
625
|
+
if (!dependency.relativePaths || isEmpty(dependency.relativePaths)) return null;
|
|
627
626
|
return dependency.relativePaths.find(
|
|
628
627
|
(paths) =>
|
|
629
628
|
paths.sourceRelativePath === relativePath.sourceRelativePath &&
|
|
@@ -633,7 +632,7 @@ export class AutoDetectDeps {
|
|
|
633
632
|
|
|
634
633
|
private getDiffSpecifiers(originSpecifiers: ImportSpecifier[], targetSpecifiers: ImportSpecifier[]) {
|
|
635
634
|
const cmp = (specifier1, specifier2) => specifier1.mainFile.name === specifier2.mainFile.name;
|
|
636
|
-
return
|
|
635
|
+
return differenceWith(targetSpecifiers, originSpecifiers, cmp);
|
|
637
636
|
}
|
|
638
637
|
|
|
639
638
|
/**
|
|
@@ -682,14 +681,14 @@ export class AutoDetectDeps {
|
|
|
682
681
|
private _pushToUntrackDependenciesIssues(originFile: PathLinuxRelative, depFileRelative, nested = false) {
|
|
683
682
|
const findExisting = () => {
|
|
684
683
|
let result;
|
|
685
|
-
|
|
684
|
+
forEach(this.issues.getIssue(IssuesClasses.UntrackedDependencies)?.data || {}, (currentUntracked) => {
|
|
686
685
|
const found = currentUntracked.untrackedFiles.find((file) => {
|
|
687
686
|
return file.relativePath === depFileRelative;
|
|
688
687
|
});
|
|
689
688
|
if (found) {
|
|
690
689
|
result = found;
|
|
691
690
|
}
|
|
692
|
-
}
|
|
691
|
+
});
|
|
693
692
|
return result;
|
|
694
693
|
};
|
|
695
694
|
const existing = findExisting();
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import R from 'ramda';
|
|
2
1
|
import path from 'path';
|
|
3
2
|
import { uniq } from 'lodash';
|
|
4
3
|
import { IssuesClasses } from '@teambit/component-issues';
|
|
@@ -143,7 +142,7 @@ export class DependenciesLoader {
|
|
|
143
142
|
this.component.devPackageDependencies = dependenciesData.allPackagesDependencies.devPackageDependencies ?? {};
|
|
144
143
|
this.component.peerPackageDependencies = dependenciesData.allPackagesDependencies.peerPackageDependencies ?? {};
|
|
145
144
|
const missingFromOverrides = overridesDependencies.missingPackageDependencies;
|
|
146
|
-
if (
|
|
145
|
+
if (missingFromOverrides.length) {
|
|
147
146
|
dependenciesData.issues.getOrCreate(IssuesClasses.MissingManuallyConfiguredPackages).data =
|
|
148
147
|
uniq(missingFromOverrides);
|
|
149
148
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import R from 'ramda';
|
|
2
1
|
import { ComponentID } from '@teambit/component-id';
|
|
3
2
|
import Consumer from '@teambit/legacy/dist/consumer/consumer';
|
|
4
3
|
import { Workspace } from '@teambit/workspace';
|
|
5
4
|
import logger from '@teambit/legacy/dist/logger/logger';
|
|
5
|
+
import { isEmpty } from 'lodash';
|
|
6
6
|
import Component from '@teambit/legacy/dist/consumer/component/consumer-component';
|
|
7
7
|
import { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
|
|
8
8
|
import Dependencies from '@teambit/legacy/dist/consumer/component/dependencies/dependencies';
|
|
@@ -127,7 +127,7 @@ export function updateDependenciesVersions(
|
|
|
127
127
|
|
|
128
128
|
function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {
|
|
129
129
|
const dependencies = component.overrides.getComponentDependenciesWithVersion();
|
|
130
|
-
if (
|
|
130
|
+
if (isEmpty(dependencies)) return undefined;
|
|
131
131
|
const dependency = Object.keys(dependencies).find((idStr) => componentId.toStringWithoutVersion() === idStr);
|
|
132
132
|
if (!dependency) return undefined;
|
|
133
133
|
return componentId.changeVersion(dependencies[dependency]);
|
|
@@ -4,55 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ApplyOverrides = void 0;
|
|
7
|
-
function _forEachObjIndexed2() {
|
|
8
|
-
const data = _interopRequireDefault(require("ramda/src/forEachObjIndexed"));
|
|
9
|
-
_forEachObjIndexed2 = function () {
|
|
10
|
-
return data;
|
|
11
|
-
};
|
|
12
|
-
return data;
|
|
13
|
-
}
|
|
14
|
-
function _pick2() {
|
|
15
|
-
const data = _interopRequireDefault(require("ramda/src/pick"));
|
|
16
|
-
_pick2 = function () {
|
|
17
|
-
return data;
|
|
18
|
-
};
|
|
19
|
-
return data;
|
|
20
|
-
}
|
|
21
|
-
function _keys2() {
|
|
22
|
-
const data = _interopRequireDefault(require("ramda/src/keys"));
|
|
23
|
-
_keys2 = function () {
|
|
24
|
-
return data;
|
|
25
|
-
};
|
|
26
|
-
return data;
|
|
27
|
-
}
|
|
28
|
-
function _difference2() {
|
|
29
|
-
const data = _interopRequireDefault(require("ramda/src/difference"));
|
|
30
|
-
_difference2 = function () {
|
|
31
|
-
return data;
|
|
32
|
-
};
|
|
33
|
-
return data;
|
|
34
|
-
}
|
|
35
|
-
function _isEmpty2() {
|
|
36
|
-
const data = _interopRequireDefault(require("ramda/src/isEmpty"));
|
|
37
|
-
_isEmpty2 = function () {
|
|
38
|
-
return data;
|
|
39
|
-
};
|
|
40
|
-
return data;
|
|
41
|
-
}
|
|
42
|
-
function _pickBy2() {
|
|
43
|
-
const data = _interopRequireDefault(require("ramda/src/pickBy"));
|
|
44
|
-
_pickBy2 = function () {
|
|
45
|
-
return data;
|
|
46
|
-
};
|
|
47
|
-
return data;
|
|
48
|
-
}
|
|
49
|
-
function _uniq2() {
|
|
50
|
-
const data = _interopRequireDefault(require("ramda/src/uniq"));
|
|
51
|
-
_uniq2 = function () {
|
|
52
|
-
return data;
|
|
53
|
-
};
|
|
54
|
-
return data;
|
|
55
|
-
}
|
|
56
7
|
function _path() {
|
|
57
8
|
const data = _interopRequireDefault(require("path"));
|
|
58
9
|
_path = function () {
|
|
@@ -223,7 +174,7 @@ class ApplyOverrides {
|
|
|
223
174
|
// the custom react uses the "teambit.envs/env" env, which will add react ^17.0.0 to every component that uses it
|
|
224
175
|
// we want to make sure that the custom react is using 16.4.0 not 17.
|
|
225
176
|
await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();
|
|
226
|
-
this.coreAspects = (0,
|
|
177
|
+
this.coreAspects = (0, _lodash().uniq)(this.coreAspects);
|
|
227
178
|
}
|
|
228
179
|
removeIgnoredComponentsByOverrides() {
|
|
229
180
|
const shouldBeIncluded = (dep, fileType) => !this.overridesDependencies.shouldIgnorePackage(dep.packageName, fileType);
|
|
@@ -253,8 +204,8 @@ class ApplyOverrides {
|
|
|
253
204
|
removeIgnoredPackagesByOverrides() {
|
|
254
205
|
const shouldBeIncluded = (pkgVersion, pkgName) => !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');
|
|
255
206
|
const shouldBeIncludedDev = (pkgVersion, pkgName) => !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');
|
|
256
|
-
this.allPackagesDependencies.packageDependencies = (0,
|
|
257
|
-
this.allPackagesDependencies.devPackageDependencies = (0,
|
|
207
|
+
this.allPackagesDependencies.packageDependencies = (0, _lodash().pickBy)(this.allPackagesDependencies.packageDependencies, shouldBeIncluded);
|
|
208
|
+
this.allPackagesDependencies.devPackageDependencies = (0, _lodash().pickBy)(this.allPackagesDependencies.devPackageDependencies, shouldBeIncludedDev);
|
|
258
209
|
}
|
|
259
210
|
|
|
260
211
|
// TODO: maybe cache those results??
|
|
@@ -323,7 +274,7 @@ class ApplyOverrides {
|
|
|
323
274
|
if (components[depField] && components[depField].length) {
|
|
324
275
|
components[depField].forEach(depData => this.allDependencies[depField].push(new (_dependencies().Dependency)(depData.componentId, [], depData.packageName)));
|
|
325
276
|
}
|
|
326
|
-
if (packages[depField] && !(0,
|
|
277
|
+
if (packages[depField] && !(0, _lodash().isEmpty)(packages[depField])) {
|
|
327
278
|
Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);
|
|
328
279
|
}
|
|
329
280
|
});
|
|
@@ -348,8 +299,8 @@ class ApplyOverrides {
|
|
|
348
299
|
*/
|
|
349
300
|
removeDevAndEnvDepsIfTheyAlsoRegulars() {
|
|
350
301
|
// remove dev and env packages that are also regular packages
|
|
351
|
-
const getNotRegularPackages = packages => (0,
|
|
352
|
-
this.allPackagesDependencies.devPackageDependencies = (0,
|
|
302
|
+
const getNotRegularPackages = packages => (0, _lodash().difference)(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));
|
|
303
|
+
this.allPackagesDependencies.devPackageDependencies = (0, _lodash().pick)(this.allPackagesDependencies.devPackageDependencies, getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies));
|
|
353
304
|
// remove dev dependencies that are also regular dependencies
|
|
354
305
|
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
355
306
|
const componentDepsIds = new (_componentId().ComponentIdList)(...this.allDependencies.dependencies.map(c => c.id));
|
|
@@ -363,7 +314,7 @@ class ApplyOverrides {
|
|
|
363
314
|
};
|
|
364
315
|
const projectPeerDependencies = getPeerDependencies();
|
|
365
316
|
const peerPackages = {};
|
|
366
|
-
if ((0,
|
|
317
|
+
if ((0, _lodash().isEmpty)(projectPeerDependencies)) return;
|
|
367
318
|
|
|
368
319
|
// check whether the peer-dependencies was actually require in the code. if so, remove it from
|
|
369
320
|
// the packages/dev-packages and add it as a peer-package.
|
|
@@ -386,7 +337,7 @@ class ApplyOverrides {
|
|
|
386
337
|
const pkgJsonRegularDeps = packageJson.dependencies || {};
|
|
387
338
|
const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};
|
|
388
339
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
389
|
-
(0,
|
|
340
|
+
(0, _lodash().forEach)(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
390
341
|
const peerVersionFromPkgJson = pkgJsonPeer[pkgName];
|
|
391
342
|
const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];
|
|
392
343
|
if (peerVersionFromPkgJson) {
|
|
@@ -396,7 +347,7 @@ class ApplyOverrides {
|
|
|
396
347
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
397
348
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;
|
|
398
349
|
}
|
|
399
|
-
}
|
|
350
|
+
});
|
|
400
351
|
});
|
|
401
352
|
this.allPackagesDependencies.peerPackageDependencies = peerDeps;
|
|
402
353
|
}
|
|
@@ -409,7 +360,7 @@ class ApplyOverrides {
|
|
|
409
360
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
410
361
|
// the policy used for installation only in that case
|
|
411
362
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
412
|
-
(0,
|
|
363
|
+
(0, _lodash().forEach)(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
413
364
|
const peerVersionFromWsPolicy = wsPeer[pkgName];
|
|
414
365
|
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
415
366
|
if (peerVersionFromWsPolicy) {
|
|
@@ -419,7 +370,7 @@ class ApplyOverrides {
|
|
|
419
370
|
delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
|
|
420
371
|
this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;
|
|
421
372
|
}
|
|
422
|
-
}
|
|
373
|
+
});
|
|
423
374
|
});
|
|
424
375
|
this.allPackagesDependencies.peerPackageDependencies = peerDeps;
|
|
425
376
|
}
|
|
@@ -455,7 +406,7 @@ class ApplyOverrides {
|
|
|
455
406
|
missingPackages = (0, _lodash().uniq)(missingData.map(d => d.missingPackages).flat());
|
|
456
407
|
}
|
|
457
408
|
['dependencies', 'devDependencies', 'peerDependencies'].forEach(field => {
|
|
458
|
-
(0,
|
|
409
|
+
(0, _lodash().forEach)(autoDetectOverrides[field], (pkgVal, pkgName) => {
|
|
459
410
|
if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;
|
|
460
411
|
// Validate it was auto detected, we only affect stuff that were detected
|
|
461
412
|
const existsInCompsDeps = this.allDependencies.dependencies.find(dep => {
|
|
@@ -512,7 +463,7 @@ class ApplyOverrides {
|
|
|
512
463
|
if (pkgVal !== _constants().MANUALLY_REMOVE_DEPENDENCY && (!existsInCompsDeps && !existsInCompsDevDeps || field === 'peerDependencies')) {
|
|
513
464
|
this.allPackagesDependencies[key][pkgName] = pkgVal;
|
|
514
465
|
}
|
|
515
|
-
}
|
|
466
|
+
});
|
|
516
467
|
});
|
|
517
468
|
}
|
|
518
469
|
async applyAutoDetectedPeersFromEnvOnEnvItSelf() {
|
|
@@ -526,12 +477,12 @@ class ApplyOverrides {
|
|
|
526
477
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
527
478
|
// the policy used for installation only in that case
|
|
528
479
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
529
|
-
(0,
|
|
480
|
+
(0, _lodash().forEach)(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {
|
|
530
481
|
const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];
|
|
531
482
|
if (peerVersionFromEnvPolicy) {
|
|
532
483
|
delete this.allPackagesDependencies[field][pkgName];
|
|
533
484
|
}
|
|
534
|
-
}
|
|
485
|
+
});
|
|
535
486
|
});
|
|
536
487
|
Object.assign(deps, envPolicyManifest);
|
|
537
488
|
// TODO: handle component deps once we support peers between components
|