@teambit/dependencies 1.0.127 → 1.0.129
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 +16 -16
- package/dist/dependencies-loader/apply-overrides.js +56 -14
- package/dist/dependencies-loader/apply-overrides.js.map +1 -1
- package/dist/dependencies-loader/auto-detect-deps.js +38 -17
- package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
- package/dist/dependencies-loader/dependencies-loader.js +4 -4
- package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.js +4 -4
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/package.json +8 -8
- /package/dist/{preview-1704597827703.js → preview-1704778620686.js} +0 -0
|
@@ -1,42 +1,42 @@
|
|
|
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.
|
|
5
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/chai"/>
|
|
3
|
+
<testsuite name="teambit.dependencies/dependencies@1.0.129" timestamp="2024-01-09T06:07:41.493Z" 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.237"/>
|
|
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"
|
|
9
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn"/>
|
|
8
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cors"/>
|
|
9
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn" time="0.001"/>
|
|
10
10
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/dagre"/>
|
|
11
11
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/didyoumean" time="0.001"/>
|
|
12
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"/>
|
|
14
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir"
|
|
13
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/express" time="0.001"/>
|
|
14
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir"/>
|
|
15
15
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-root"/>
|
|
16
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/history"/>
|
|
16
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/history" time="0.001"/>
|
|
17
17
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/http-proxy-agent"/>
|
|
18
18
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash"/>
|
|
19
19
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.compact" time="0.001"/>
|
|
20
20
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.flatten"/>
|
|
21
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.head"
|
|
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
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
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/node"/>
|
|
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
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react"
|
|
29
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react"/>
|
|
30
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
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tabs"
|
|
33
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tooltip"/>
|
|
32
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tabs"/>
|
|
33
|
+
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tooltip" time="0.001"/>
|
|
34
34
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/socket.io-client"/>
|
|
35
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/ua-parser-js"
|
|
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
38
|
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack"/>
|
|
39
|
-
<testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack-dev-server"
|
|
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>
|
|
42
42
|
</testsuites>
|
|
@@ -4,9 +4,51 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ApplyOverrides = void 0;
|
|
7
|
-
function
|
|
8
|
-
const data = _interopRequireDefault(require("ramda"));
|
|
9
|
-
|
|
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 () {
|
|
10
52
|
return data;
|
|
11
53
|
};
|
|
12
54
|
return data;
|
|
@@ -181,7 +223,7 @@ class ApplyOverrides {
|
|
|
181
223
|
// the custom react uses the "teambit.envs/env" env, which will add react ^17.0.0 to every component that uses it
|
|
182
224
|
// we want to make sure that the custom react is using 16.4.0 not 17.
|
|
183
225
|
await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();
|
|
184
|
-
this.coreAspects =
|
|
226
|
+
this.coreAspects = (0, _uniq2().default)(this.coreAspects);
|
|
185
227
|
}
|
|
186
228
|
removeIgnoredComponentsByOverrides() {
|
|
187
229
|
const shouldBeIncluded = (dep, fileType) => !this.overridesDependencies.shouldIgnorePackage(dep.packageName, fileType);
|
|
@@ -211,8 +253,8 @@ class ApplyOverrides {
|
|
|
211
253
|
removeIgnoredPackagesByOverrides() {
|
|
212
254
|
const shouldBeIncluded = (pkgVersion, pkgName) => !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');
|
|
213
255
|
const shouldBeIncludedDev = (pkgVersion, pkgName) => !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');
|
|
214
|
-
this.allPackagesDependencies.packageDependencies =
|
|
215
|
-
this.allPackagesDependencies.devPackageDependencies =
|
|
256
|
+
this.allPackagesDependencies.packageDependencies = (0, _pickBy2().default)(shouldBeIncluded, this.allPackagesDependencies.packageDependencies);
|
|
257
|
+
this.allPackagesDependencies.devPackageDependencies = (0, _pickBy2().default)(shouldBeIncludedDev, this.allPackagesDependencies.devPackageDependencies);
|
|
216
258
|
}
|
|
217
259
|
|
|
218
260
|
// TODO: maybe cache those results??
|
|
@@ -281,7 +323,7 @@ class ApplyOverrides {
|
|
|
281
323
|
if (components[depField] && components[depField].length) {
|
|
282
324
|
components[depField].forEach(depData => this.allDependencies[depField].push(new (_dependencies().Dependency)(depData.componentId, [], depData.packageName)));
|
|
283
325
|
}
|
|
284
|
-
if (packages[depField] && !
|
|
326
|
+
if (packages[depField] && !(0, _isEmpty2().default)(packages[depField])) {
|
|
285
327
|
Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);
|
|
286
328
|
}
|
|
287
329
|
});
|
|
@@ -306,8 +348,8 @@ class ApplyOverrides {
|
|
|
306
348
|
*/
|
|
307
349
|
removeDevAndEnvDepsIfTheyAlsoRegulars() {
|
|
308
350
|
// remove dev and env packages that are also regular packages
|
|
309
|
-
const getNotRegularPackages = packages =>
|
|
310
|
-
this.allPackagesDependencies.devPackageDependencies =
|
|
351
|
+
const getNotRegularPackages = packages => (0, _difference2().default)((0, _keys2().default)(packages), (0, _keys2().default)(this.allPackagesDependencies.packageDependencies));
|
|
352
|
+
this.allPackagesDependencies.devPackageDependencies = (0, _pick2().default)(getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies), this.allPackagesDependencies.devPackageDependencies);
|
|
311
353
|
// remove dev dependencies that are also regular dependencies
|
|
312
354
|
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
313
355
|
const componentDepsIds = new (_componentId().ComponentIdList)(...this.allDependencies.dependencies.map(c => c.id));
|
|
@@ -321,7 +363,7 @@ class ApplyOverrides {
|
|
|
321
363
|
};
|
|
322
364
|
const projectPeerDependencies = getPeerDependencies();
|
|
323
365
|
const peerPackages = {};
|
|
324
|
-
if (
|
|
366
|
+
if ((0, _isEmpty2().default)(projectPeerDependencies)) return;
|
|
325
367
|
|
|
326
368
|
// check whether the peer-dependencies was actually require in the code. if so, remove it from
|
|
327
369
|
// the packages/dev-packages and add it as a peer-package.
|
|
@@ -344,7 +386,7 @@ class ApplyOverrides {
|
|
|
344
386
|
const pkgJsonRegularDeps = packageJson.dependencies || {};
|
|
345
387
|
const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};
|
|
346
388
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
347
|
-
|
|
389
|
+
(0, _forEachObjIndexed2().default)((_pkgVal, pkgName) => {
|
|
348
390
|
const peerVersionFromPkgJson = pkgJsonPeer[pkgName];
|
|
349
391
|
const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];
|
|
350
392
|
if (peerVersionFromPkgJson) {
|
|
@@ -367,7 +409,7 @@ class ApplyOverrides {
|
|
|
367
409
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
368
410
|
// the policy used for installation only in that case
|
|
369
411
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
370
|
-
|
|
412
|
+
(0, _forEachObjIndexed2().default)((_pkgVal, pkgName) => {
|
|
371
413
|
const peerVersionFromWsPolicy = wsPeer[pkgName];
|
|
372
414
|
const regularVersionFromWsPolicy = wsRegular[pkgName];
|
|
373
415
|
if (peerVersionFromWsPolicy) {
|
|
@@ -413,7 +455,7 @@ class ApplyOverrides {
|
|
|
413
455
|
missingPackages = (0, _lodash().uniq)(missingData.map(d => d.missingPackages).flat());
|
|
414
456
|
}
|
|
415
457
|
['dependencies', 'devDependencies', 'peerDependencies'].forEach(field => {
|
|
416
|
-
|
|
458
|
+
(0, _forEachObjIndexed2().default)((pkgVal, pkgName) => {
|
|
417
459
|
if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;
|
|
418
460
|
// Validate it was auto detected, we only affect stuff that were detected
|
|
419
461
|
const existsInCompsDeps = this.allDependencies.dependencies.find(dep => {
|
|
@@ -484,7 +526,7 @@ class ApplyOverrides {
|
|
|
484
526
|
// we are not iterate component deps since they are resolved from what actually installed
|
|
485
527
|
// the policy used for installation only in that case
|
|
486
528
|
['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach(field => {
|
|
487
|
-
|
|
529
|
+
(0, _forEachObjIndexed2().default)((_pkgVal, pkgName) => {
|
|
488
530
|
const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];
|
|
489
531
|
if (peerVersionFromEnvPolicy) {
|
|
490
532
|
delete this.allPackagesDependencies[field][pkgName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ramda","data","_interopRequireDefault","require","_path","_componentId","_lodash","_componentIssues","_constants","_packageJsonFile","_packages","_dependencies","_overridesDependencies","_dependenciesData","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","consumer","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","manuallyAddDependencies","applyAutoDetectedPeersFromEnvOnEnvItSelf","R","uniq","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","field","dependency","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","dependencyExist","find","d","isEqualWithoutVersion","_addManuallyAddedDep","toString","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","isEmpty","_pkgFieldMapping","peerName","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","map","c","has","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","forEachObjIndexed","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerVersionFromWsPolicy","regularVersionFromWsPolicy","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","MANUALLY_REMOVE_DEPENDENCY","envPolicy","getEnvPolicyFromEnvLegacyId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport { ResolvedPackageData, resolvePackageData, resolvePackagePath } from '@teambit/legacy/dist/utils/packages';\nimport { PathLinux } from '@teambit/legacy/dist/utils/path';\nimport { Workspace } from '@teambit/workspace';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n this.manuallyAddDependencies();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.coreAspects = R.uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = R.pickBy(\n shouldBeIncluded,\n this.allPackagesDependencies.packageDependencies\n );\n this.allPackagesDependencies.devPackageDependencies = R.pickBy(\n shouldBeIncludedDev,\n this.allPackagesDependencies.devPackageDependencies\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n field: string,\n dependency: string\n ): { componentId?: ComponentID; packageName?: string } | undefined {\n if (field === 'peerDependencies') return undefined;\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name };\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(depField, dependency);\n if (componentData?.componentId) {\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n }\n });\n });\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) =>\n this.allDependencies[depField].push(new Dependency(depData.componentId, [], depData.packageName))\n );\n }\n if (packages[depField] && !R.isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n R.difference(R.keys(packages), R.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = R.pick(\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies),\n this.allPackagesDependencies.devPackageDependencies\n );\n // remove dev dependencies that are also regular dependencies\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (R.isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n R.forEachObjIndexed((pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n }\n // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\n ) {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n }, autoDetectOverrides[field]);\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvLegacyId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n }, this.allPackagesDependencies[field]);\n });\n Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","_componentId","_lodash","_componentIssues","_constants","_packageJsonFile","_packages","_dependencies","_overridesDependencies","_dependenciesData","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","consumer","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","manuallyAddDependencies","applyAutoDetectedPeersFromEnvOnEnvItSelf","_uniq2","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","_pickBy2","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","field","dependency","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","dependencyExist","find","d","isEqualWithoutVersion","_addManuallyAddedDep","toString","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","_isEmpty2","_pkgFieldMapping","peerName","getNotRegularPackages","_difference2","_keys2","_pick2","componentDepsIds","ComponentIdList","map","c","has","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","_forEachObjIndexed2","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerVersionFromWsPolicy","regularVersionFromWsPolicy","version","isNaN","originallyExists","uniq","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","MANUALLY_REMOVE_DEPENDENCY","envPolicy","getEnvPolicyFromEnvLegacyId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport { ResolvedPackageData, resolvePackageData, resolvePackagePath } from '@teambit/legacy/dist/utils/packages';\nimport { PathLinux } from '@teambit/legacy/dist/utils/path';\nimport { Workspace } from '@teambit/workspace';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n this.manuallyAddDependencies();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.coreAspects = R.uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = R.pickBy(\n shouldBeIncluded,\n this.allPackagesDependencies.packageDependencies\n );\n this.allPackagesDependencies.devPackageDependencies = R.pickBy(\n shouldBeIncludedDev,\n this.allPackagesDependencies.devPackageDependencies\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n field: string,\n dependency: string\n ): { componentId?: ComponentID; packageName?: string } | undefined {\n if (field === 'peerDependencies') return undefined;\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name };\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(depField, dependency);\n if (componentData?.componentId) {\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n }\n });\n });\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) =>\n this.allDependencies[depField].push(new Dependency(depData.componentId, [], depData.packageName))\n );\n }\n if (packages[depField] && !R.isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n R.difference(R.keys(packages), R.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = R.pick(\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies),\n this.allPackagesDependencies.devPackageDependencies\n );\n // remove dev dependencies that are also regular dependencies\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (R.isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n R.forEachObjIndexed((pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n }\n // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\n ) {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n }, autoDetectOverrides[field]);\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvLegacyId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n }, this.allPackagesDependencies[field]);\n });\n Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,6 +5,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.AutoDetectDeps = void 0;
|
|
7
7
|
exports.getValidVersion = getValidVersion;
|
|
8
|
+
function _forEachObjIndexed2() {
|
|
9
|
+
const data = _interopRequireDefault(require("ramda/src/forEachObjIndexed"));
|
|
10
|
+
_forEachObjIndexed2 = function () {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function _differenceWith2() {
|
|
16
|
+
const data = _interopRequireDefault(require("ramda/src/differenceWith"));
|
|
17
|
+
_differenceWith2 = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
function _uniq2() {
|
|
23
|
+
const data = _interopRequireDefault(require("ramda/src/uniq"));
|
|
24
|
+
_uniq2 = function () {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _isEmpty2() {
|
|
30
|
+
const data = _interopRequireDefault(require("ramda/src/isEmpty"));
|
|
31
|
+
_isEmpty2 = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
8
36
|
function path() {
|
|
9
37
|
const data = _interopRequireWildcard(require("path"));
|
|
10
38
|
path = function () {
|
|
@@ -19,13 +47,6 @@ function _fsExtra() {
|
|
|
19
47
|
};
|
|
20
48
|
return data;
|
|
21
49
|
}
|
|
22
|
-
function _ramda() {
|
|
23
|
-
const data = _interopRequireDefault(require("ramda"));
|
|
24
|
-
_ramda = function () {
|
|
25
|
-
return data;
|
|
26
|
-
};
|
|
27
|
-
return data;
|
|
28
|
-
}
|
|
29
50
|
function _semver() {
|
|
30
51
|
const data = _interopRequireDefault(require("semver"));
|
|
31
52
|
_semver = function () {
|
|
@@ -117,9 +138,9 @@ function _dependenciesData() {
|
|
|
117
138
|
};
|
|
118
139
|
return data;
|
|
119
140
|
}
|
|
120
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
121
141
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
122
142
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
143
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
123
144
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
124
145
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
125
146
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -299,7 +320,7 @@ class AutoDetectDeps {
|
|
|
299
320
|
return;
|
|
300
321
|
}
|
|
301
322
|
const allDepsFiles = this.tree[originFile].files;
|
|
302
|
-
if (!allDepsFiles ||
|
|
323
|
+
if (!allDepsFiles || (0, _isEmpty2().default)(allDepsFiles)) return;
|
|
303
324
|
allDepsFiles.forEach(depFile => {
|
|
304
325
|
const isDepFileUntracked = this.processOneDepFile(originFile, depFile.file, depFile.importSpecifiers, fileType, depFile, nested);
|
|
305
326
|
// Only continue recursively if the dep file is untracked
|
|
@@ -393,7 +414,7 @@ class AutoDetectDeps {
|
|
|
393
414
|
*/
|
|
394
415
|
processComponents(originFile, fileType) {
|
|
395
416
|
const components = this.tree[originFile].components;
|
|
396
|
-
if (!components ||
|
|
417
|
+
if (!components || (0, _isEmpty2().default)(components)) return;
|
|
397
418
|
components.forEach(compDep => {
|
|
398
419
|
let componentId = this.getComponentIdByResolvedPackageData(compDep);
|
|
399
420
|
if (componentId.isEqual(this.componentId)) {
|
|
@@ -482,7 +503,7 @@ class AutoDetectDeps {
|
|
|
482
503
|
}
|
|
483
504
|
const packageNames = Object.keys(packages).concat(this.tree[originFile].missing?.packages ?? []);
|
|
484
505
|
this._addTypesPackagesForTypeScript(packageNames, originFile);
|
|
485
|
-
if (!packages ||
|
|
506
|
+
if (!packages || (0, _isEmpty2().default)(packages)) return;
|
|
486
507
|
if (fileType.isTestFile) {
|
|
487
508
|
Object.assign(this.allPackagesDependencies.devPackageDependencies, packages);
|
|
488
509
|
} else {
|
|
@@ -507,13 +528,13 @@ class AutoDetectDeps {
|
|
|
507
528
|
const existWithDifferentExt = compFilesWithoutExt.some(f => f === relativeToCompDirWithoutExt);
|
|
508
529
|
return !existWithDifferentExt;
|
|
509
530
|
});
|
|
510
|
-
if (
|
|
531
|
+
if ((0, _isEmpty2().default)(missingFiles)) return;
|
|
511
532
|
this._pushToMissingDependenciesOnFs(originFile, missingFiles);
|
|
512
533
|
};
|
|
513
534
|
const processMissingPackages = () => {
|
|
514
535
|
if ((0, _lodash().isEmpty)(missing.packages)) return;
|
|
515
536
|
const missingPackages = missing.packages;
|
|
516
|
-
if (!
|
|
537
|
+
if (!(0, _isEmpty2().default)(missingPackages)) {
|
|
517
538
|
this._pushToMissingPackagesDependenciesIssues(originFile, missingPackages, fileType);
|
|
518
539
|
}
|
|
519
540
|
};
|
|
@@ -580,7 +601,7 @@ class AutoDetectDeps {
|
|
|
580
601
|
});
|
|
581
602
|
this.tree[originFile].unidentifiedPackages = unidentifiedPackagesFiltered;
|
|
582
603
|
this.tree[originFile].components = bitsFiltered;
|
|
583
|
-
this.coreAspects.push(...
|
|
604
|
+
this.coreAspects.push(...(0, _uniq2().default)(usedCoreAspects));
|
|
584
605
|
}
|
|
585
606
|
|
|
586
607
|
/**
|
|
@@ -630,12 +651,12 @@ class AutoDetectDeps {
|
|
|
630
651
|
return dependencies.find(d => d.id.isEqualWithoutVersion(id));
|
|
631
652
|
}
|
|
632
653
|
getExistingDepRelativePaths(dependency, relativePath) {
|
|
633
|
-
if (!dependency.relativePaths ||
|
|
654
|
+
if (!dependency.relativePaths || (0, _isEmpty2().default)(dependency.relativePaths)) return null;
|
|
634
655
|
return dependency.relativePaths.find(paths => paths.sourceRelativePath === relativePath.sourceRelativePath && paths.destinationRelativePath === relativePath.destinationRelativePath);
|
|
635
656
|
}
|
|
636
657
|
getDiffSpecifiers(originSpecifiers, targetSpecifiers) {
|
|
637
658
|
const cmp = (specifier1, specifier2) => specifier1.mainFile.name === specifier2.mainFile.name;
|
|
638
|
-
return
|
|
659
|
+
return (0, _differenceWith2().default)(cmp, targetSpecifiers, originSpecifiers);
|
|
639
660
|
}
|
|
640
661
|
|
|
641
662
|
/**
|
|
@@ -682,7 +703,7 @@ class AutoDetectDeps {
|
|
|
682
703
|
_pushToUntrackDependenciesIssues(originFile, depFileRelative, nested = false) {
|
|
683
704
|
const findExisting = () => {
|
|
684
705
|
let result;
|
|
685
|
-
|
|
706
|
+
(0, _forEachObjIndexed2().default)(currentUntracked => {
|
|
686
707
|
const found = currentUntracked.untrackedFiles.find(file => {
|
|
687
708
|
return file.relativePath === depFileRelative;
|
|
688
709
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["path","data","_interopRequireWildcard","require","_fsExtra","_interopRequireDefault","_ramda","_semver","_componentVersion","_lodash","_componentIssues","_dependencies","_constants","_logger","_utils","_path2","_filesDependencyBuilder","_aspectLoader","_packageToDefinetlyTyped","_dependenciesData","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","AutoDetectDeps","constructor","component","workspace","devFiles","depsResolver","aspectLoader","componentId","componentMap","componentFromModel","consumerPath","consumer","getPath","allDependencies","dependencies","devDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","debugDependenciesData","components","setTree","tree","getDependenciesData","cacheResolvedDependencies","cacheProjectAst","componentDir","join","rootDir","nonTestsFiles","testsFiles","getFilesGroupedByBeingTests","allFiles","envDetectors","getEnvDetectors","dependenciesTree","getDependencyTree","workspacePath","filePaths","visited","getDevFilesForConsumerComp","populateDependencies","dependenciesData","DependenciesData","coreAspects","calcComponentEnvDepDetectors","extensions","files","forEach","file","fileType","isTestFile","includes","throwForNonExistFile","processCoreAspects","processMissing","processErrors","processPackages","processComponents","processDepFiles","processUnidentifiedPackages","Error","getComponentIdByResolvedPackageData","bit","getComponentIdByDepFile","depFile","depFileRelative","destination","rootDirFullPath","fullDepFile","resolve","pathNormalizeToLinux","relative","bitMap","getComponentIdByPath","originFile","nested","push","allDepsFiles","R","isEmpty","isDepFileUntracked","processOneDepFile","importSpecifiers","dummyFileType","depFileObject","importSource","_pushToUntrackDependenciesIssues","isEqual","ignoreVersion","depComponentMap","getComponentIfExist","depRootDir","undefined","destinationRelativePath","startsWith","pathRelativeLinux","sourceRelativePath","depsPaths","importSpecifier","mainFile","exported","currentComponentsDeps","Dependency","_pushToRelativeComponentsAuthoredIssues","existingDependency","getExistingDependency","existingDepRelativePaths","getExistingDepRelativePaths","relativePaths","nonExistingImportSpecifiers","getDiffSpecifiers","depDebug","id","pushToDependenciesArray","compDep","dependencyPackageJsonPath","packageJsonPath","dependentPackageJsonPath","componentIdResolvedFrom","packageName","name","getVersionFromPkgJson","versionFromDependencyPkgJson","getValidVersion","concreteVersion","versionResolvedFrom","versionFromDependentPkgJson","versionUsedByDependent","version","changeVersion","existingId","addImportNonMainIssueIfNeeded","_pushToDependenciesIfNotExist","isPkgInWorkspacePolicies","pkgName","getWorkspacePolicyManifest","filePath","dependencyPkgData","depMain","packageJsonContent","main","depFullPath","fullPath","endsWith","extDisallowNonMain","extname","pkgRootDir","componentRootFolder","fs","existsSync","DEFAULT_DIST_DIRNAME","nonMainFileSplit","split","nonMainFileShort","getOrCreate","IssuesClasses","ImportNonMainFiles","packages","modelDeps","getAllPackageDependencies","keys","packageNames","concat","missing","_addTypesPackagesForTypeScript","assign","processMissingFiles","missingFiles","filter","hasExtension","Boolean","rootDirAbs","toAbsolutePath","filePathAbs","relativeToCompDir","relativeToCompDirWithoutExt","removeFileExtension","compFilesWithoutExt","getAllFilesPaths","map","f","existWithDifferentExt","some","_pushToMissingDependenciesOnFs","processMissingPackages","missingPackages","_pushToMissingPackagesDependenciesIssues","error","logger","errorAndAddBreadCrumb","code","location","lineNumber","column","ParseErrors","message","ResolveErrors","getCoreAspectsPackagesAndIds","allCoreAspectsIds","getCoreAspectIds","coreAspectsPackagesAndIds","getCoreAspectPackageName","coreAspectIds","values","toStringWithoutVersion","coreAspectsPackages","unidentifiedPackages","usedCoreAspects","findMatchingCoreAspect","find","coreAspectName","unidentifiedPackagesFiltered","matchingCoreAspectPackageName","bitsFiltered","packageInfo","uniq","length","dependency","existingDevDependency","d","isEqualWithoutVersion","relativePath","paths","originSpecifiers","targetSpecifiers","cmp","specifier1","specifier2","differenceWith","isTypeScript","getExt","depsHost","addFromConfig","DEPENDENCIES_FIELDS","depField","typesPackage","packageToDefinetlyTyped","addFromModel","typedPackageFromModel","added","findExisting","result","forEachObjIndexed","currentUntracked","found","untrackedFiles","getIssue","UntrackedDependencies","existing","newUntrackedFile","untrackIssue","untrackedCurrentFile","RelativeComponentsAuthored","MissingDependenciesOnFs","MissingPackagesDependenciesOnFs","foundFile","isDevFile","exports","semver","valid","validRange","coerced","coerce","isSnap"],"sources":["auto-detect-deps.ts"],"sourcesContent":["import * as path from 'path';\nimport fs from 'fs-extra';\nimport R from 'ramda';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport { ComponentID } from '@teambit/component-id';\nimport { uniq, isEmpty } from 'lodash';\nimport { IssuesList, IssuesClasses } from '@teambit/component-issues';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DEFAULT_DIST_DIRNAME, DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { getExt, pathNormalizeToLinux, pathRelativeLinux } from '@teambit/legacy/dist/utils';\nimport { PathLinux, PathLinuxRelative, PathOsBased, removeFileExtension } from '@teambit/legacy/dist/utils/path';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { RelativePath } from '@teambit/legacy/dist/consumer/component/dependencies/dependency';\nimport { getDependencyTree } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder';\nimport {\n FileObject,\n ImportSpecifier,\n DependenciesTree,\n} from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/types/dependency-tree-type';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { Workspace } from '@teambit/workspace';\nimport { AspectLoaderMain, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport { ResolvedPackageData } from '@teambit/legacy/dist/utils/packages';\nimport { DependencyDetector } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/detector-hook';\nimport { packageToDefinetlyTyped } from './package-to-definetly-typed';\nimport { DependenciesData } from './dependencies-data';\nimport { AllDependencies, AllPackagesDependencies } from './apply-overrides';\n\nexport type FileType = {\n isTestFile: boolean;\n};\n\nexport type DebugDependencies = {\n components: DebugComponentsDependency[];\n unidentifiedPackages?: string[];\n};\n\nexport type DebugComponentsDependency = {\n id: ComponentID;\n importSource?: string;\n dependencyPackageJsonPath?: string;\n dependentPackageJsonPath?: string;\n // can be resolved here or can be any one of the strategies in dependencies-version-resolver\n versionResolvedFrom?: 'DependencyPkgJson' | 'DependentPkgJson' | 'BitMap' | 'Model' | 'MergeConfig' | string;\n version?: string;\n componentIdResolvedFrom?: 'DependencyPkgJson' | 'DependencyPath';\n packageName?: string;\n};\n\nexport class AutoDetectDeps {\n componentId: ComponentID;\n componentMap: ComponentMap;\n componentFromModel: Component;\n consumerPath: PathOsBased;\n tree: DependenciesTree;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n debugDependenciesData: DebugDependencies;\n autoDetectConfigMerge: Record<string, any>;\n constructor(\n private component: Component,\n private workspace: Workspace,\n private devFiles: DevFilesMain,\n private depsResolver: DependencyResolverMain,\n private aspectLoader: AspectLoaderMain\n ) {\n this.componentId = component.componentId;\n // the consumerComponent is coming from the workspace, so it must have the componentMap prop\n this.componentMap = this.component.componentMap as ComponentMap;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.consumerPath = this.consumer.getPath();\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n private setTree(tree: DependenciesTree) {\n this.tree = tree;\n // console.log(JSON.stringify(tree, null, 4)); // uncomment to easily watch the tree received from bit-javascript\n }\n\n /**\n * Resolve components and packages dependencies for a component.\n * This method should NOT have any side-effect on the component. the DependenciesLoader class is\n * responsible for saving this data on the component object.\n *\n * The process is as follows:\n * 1) Use the language driver to parse the component files and find for each file its dependencies.\n * 2) The results we get from the driver per file tells us what are the files and packages that depend on our file.\n * and also whether there are missing packages and files.\n * 3) Using the information from the driver, we go over each one of the dependencies files and find its counterpart\n * component. The way how we find it, is by using the bit.map file which has a mapping between the component name and\n * the file paths.\n * 4) If we find a component to the file dependency, we add it to component.dependencies. Otherwise, it's added to\n * component.issues.untrackedDependencies\n * 5) Similarly, when we find the packages dependencies, they are added to component.packageDependencies. Otherwise,\n * they're added to component.issues.missingPackagesDependenciesOnFs\n * 6) In case the driver found a file dependency that is not on the file-system, we add that file to\n * component.issues.missingDependenciesOnFs\n */\n async getDependenciesData(\n cacheResolvedDependencies: Record<string, any>,\n cacheProjectAst: Record<string, any> | undefined\n ): Promise<{ dependenciesData: DependenciesData; debugDependenciesData: DebugDependencies }> {\n const componentDir = path.join(this.consumerPath, this.componentMap.rootDir);\n const { nonTestsFiles, testsFiles } = this.componentMap.getFilesGroupedByBeingTests();\n const allFiles = [...nonTestsFiles, ...testsFiles];\n const envDetectors = await this.getEnvDetectors();\n // find the dependencies (internal files and packages) through automatic dependency resolution\n const dependenciesTree = await getDependencyTree({\n componentDir,\n workspacePath: this.consumerPath,\n filePaths: allFiles,\n visited: cacheResolvedDependencies,\n cacheProjectAst,\n envDetectors,\n });\n // we have the files dependencies, these files should be components that are registered in bit.map. Otherwise,\n // they are referred as \"untracked components\" and the user should add them later on in order to tag\n this.setTree(dependenciesTree.tree);\n const devFiles = await this.devFiles.getDevFilesForConsumerComp(this.component);\n await this.populateDependencies(allFiles, devFiles);\n return {\n dependenciesData: new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n ),\n debugDependenciesData: this.debugDependenciesData,\n };\n }\n\n async getEnvDetectors(): Promise<DependencyDetector[] | null> {\n return this.depsResolver.calcComponentEnvDepDetectors(this.component.extensions);\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies(files: string[], testsFiles: string[]) {\n files.forEach((file) => {\n const fileType: FileType = {\n isTestFile: testsFiles.includes(file),\n };\n this.throwForNonExistFile(file);\n this.processCoreAspects(file);\n this.processMissing(file, fileType);\n this.processErrors(file);\n this.processPackages(file, fileType);\n this.processComponents(file, fileType);\n this.processDepFiles(file, fileType);\n this.processUnidentifiedPackages(file);\n });\n }\n\n private throwForNonExistFile(file: string) {\n if (!this.tree[file]) {\n throw new Error(\n `DependencyResolver: a file \"${file}\" was not returned from the driver, its dependencies are unknown`\n );\n }\n }\n\n private getComponentIdByResolvedPackageData(bit: ResolvedPackageData): ComponentID {\n if (!bit.componentId) {\n throw new Error(`resolved Bit component must have componentId prop in the package.json file`);\n }\n return bit.componentId;\n }\n\n /**\n * this happens when using relative paths between components, which is allowed on Legacy only.\n * on Harmony, during the execution of this function, it recognizes the use of relative-paths, enter\n * it to the \"issues\", then, later, it shows a warning on bit-status and block tagging.\n */\n private getComponentIdByDepFile(depFile: PathLinux): {\n componentId: ComponentID | undefined;\n depFileRelative: PathLinux;\n destination: string | null | undefined;\n } {\n let depFileRelative: PathLinux = depFile; // dependency file path relative to consumer root\n let destination: string | null | undefined;\n const rootDir = this.componentMap.rootDir;\n // The depFileRelative is relative to rootDir, change it to be relative to current consumer.\n // We can't use path.resolve(rootDir, fileDep) because this might not work when running\n // bit commands not from root, because resolve take by default the process.cwd\n const rootDirFullPath = path.join(this.consumerPath, rootDir);\n const fullDepFile = path.resolve(rootDirFullPath, depFile);\n depFileRelative = pathNormalizeToLinux(path.relative(this.consumerPath, fullDepFile));\n\n const componentId = this.consumer.bitMap.getComponentIdByPath(depFileRelative);\n\n return { componentId, depFileRelative, destination };\n }\n\n private processDepFiles(originFile: PathLinuxRelative, fileType: FileType, nested = false) {\n // We don't just return because different files of the component might import different things from the depFile\n // See more info here: https://github.com/teambit/bit/issues/1796\n if (!this.processedFiles.includes(originFile)) {\n this.processedFiles.push(originFile);\n // We don't want to calculate nested files again after they calculated as direct files\n } else if (nested) {\n return;\n }\n const allDepsFiles = this.tree[originFile].files;\n if (!allDepsFiles || R.isEmpty(allDepsFiles)) return;\n allDepsFiles.forEach((depFile: FileObject) => {\n const isDepFileUntracked = this.processOneDepFile(\n originFile,\n depFile.file,\n depFile.importSpecifiers,\n fileType,\n depFile,\n nested\n );\n // Only continue recursively if the dep file is untracked\n // for tracked deps if they have untracked deps they will be shown under their own components\n if (isDepFileUntracked) {\n // Recursively check for untracked files (to show them all in bit status)\n // for nested files we don't really care about the file types since we won't do all the checking\n const dummyFileType: FileType = {\n isTestFile: false,\n };\n this.processDepFiles(depFile.file, dummyFileType, true);\n }\n });\n }\n\n // return true if the dep file is untracked\n private processOneDepFile(\n originFile: PathLinuxRelative,\n depFile: string,\n importSpecifiers: ImportSpecifier[] | undefined,\n fileType: FileType,\n depFileObject: FileObject,\n nested = false\n ): boolean {\n const { componentId, depFileRelative, destination } = this.getComponentIdByDepFile(depFile);\n const importSource: string = depFileObject.importSource as string;\n // the file dependency doesn't have any counterpart component. Add it to this.issues.untrackedDependencies\n if (!componentId) {\n this._pushToUntrackDependenciesIssues(originFile, depFileRelative, nested);\n return true;\n }\n // happens when in the same component one file requires another one. In this case, there is\n // noting to do regarding the dependencies\n if (componentId.isEqual(this.componentId, { ignoreVersion: true })) {\n return false;\n }\n\n const depComponentMap = this.consumer.bitMap.getComponentIfExist(componentId);\n // found a dependency component. Add it to this.allDependencies.dependencies\n const depRootDir = depComponentMap ? depComponentMap.rootDir : undefined;\n const destinationRelativePath =\n destination ||\n (depRootDir && depFileRelative.startsWith(depRootDir)\n ? pathRelativeLinux(depRootDir, depFileRelative)\n : depFileRelative);\n\n // when there is no rootDir for the current dependency (it happens when it's AUTHORED), keep the original path\n const sourceRelativePath = depRootDir ? depFileRelative : depFile;\n\n const depsPaths: RelativePath = {\n sourceRelativePath,\n destinationRelativePath,\n };\n if (importSpecifiers) {\n importSpecifiers.forEach((importSpecifier) => {\n if (importSpecifier.mainFile) delete importSpecifier.mainFile.exported;\n });\n depsPaths.importSpecifiers = importSpecifiers;\n }\n const currentComponentsDeps = new Dependency(componentId, [depsPaths]);\n this._pushToRelativeComponentsAuthoredIssues(originFile, componentId, importSource, depsPaths);\n\n const allDependencies: Dependency[] = [\n ...this.allDependencies.dependencies,\n ...this.allDependencies.devDependencies,\n ];\n const existingDependency = this.getExistingDependency(allDependencies, componentId);\n if (existingDependency) {\n const existingDepRelativePaths = this.getExistingDepRelativePaths(existingDependency, depsPaths);\n if (!existingDepRelativePaths) {\n // it is another file of an already existing component. Just add the new path\n existingDependency.relativePaths.push(depsPaths);\n return false;\n }\n // The dep path already exists but maybe this dep-file has more importSpecifiers\n if (depsPaths.importSpecifiers) {\n // add them to the existing dep\n if (!existingDepRelativePaths.importSpecifiers) {\n existingDepRelativePaths.importSpecifiers = [...depsPaths.importSpecifiers];\n } else {\n // both have importSpecifiers\n const nonExistingImportSpecifiers = this.getDiffSpecifiers(\n existingDepRelativePaths.importSpecifiers,\n depsPaths.importSpecifiers\n );\n existingDepRelativePaths.importSpecifiers.push(...nonExistingImportSpecifiers);\n }\n }\n\n if (depsPaths.importSource && !existingDepRelativePaths.importSource) {\n existingDepRelativePaths.importSource = depsPaths.importSource;\n }\n } else {\n const depDebug: DebugComponentsDependency = {\n id: currentComponentsDeps.id,\n importSource,\n };\n this.pushToDependenciesArray(currentComponentsDeps, fileType, depDebug);\n }\n return false;\n }\n\n /**\n * process require/import of Bit components where the require statement is not a relative path\n * but a module path, such as `require('@bit/bit.envs/compiler/babel');`\n */\n private processComponents(originFile: PathLinuxRelative, fileType: FileType) {\n const components = this.tree[originFile].components;\n if (!components || R.isEmpty(components)) return;\n components.forEach((compDep) => {\n let componentId = this.getComponentIdByResolvedPackageData(compDep);\n if (componentId.isEqual(this.componentId)) {\n // the component is importing itself, so ignore it. although currently it doesn't cause any issues, (probably\n // because it filtered out later), it's better to remove it as soon as possible, for less-confusing debugging.\n return;\n }\n const depDebug: DebugComponentsDependency = {\n id: componentId,\n dependencyPackageJsonPath: compDep.packageJsonPath,\n dependentPackageJsonPath: compDep.dependentPackageJsonPath,\n componentIdResolvedFrom: 'DependencyPkgJson',\n packageName: compDep.name,\n };\n const getVersionFromPkgJson = (): string | null => {\n const versionFromDependencyPkgJson = getValidVersion(compDep.concreteVersion);\n if (versionFromDependencyPkgJson) {\n depDebug.versionResolvedFrom = 'DependencyPkgJson';\n return versionFromDependencyPkgJson;\n }\n const versionFromDependentPkgJson = getValidVersion(compDep.versionUsedByDependent);\n if (versionFromDependentPkgJson) {\n depDebug.versionResolvedFrom = 'DependentPkgJson';\n return versionFromDependentPkgJson;\n }\n return null;\n };\n const version = getVersionFromPkgJson();\n if (version) {\n componentId = componentId.changeVersion(version);\n }\n const existingId = componentId;\n if (existingId.isEqual(this.componentId)) {\n // happens when one of the component files requires another using module path\n // no need to enter anything to the dependencies\n return;\n }\n this.addImportNonMainIssueIfNeeded(originFile, compDep);\n const currentComponentsDeps = new Dependency(existingId, [], compDep.name);\n this._pushToDependenciesIfNotExist(currentComponentsDeps, fileType, depDebug);\n });\n }\n\n private isPkgInWorkspacePolicies(pkgName: string) {\n return this.depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n private addImportNonMainIssueIfNeeded(filePath: PathLinuxRelative, dependencyPkgData: ResolvedPackageData) {\n const depMain: PathLinuxRelative | undefined = dependencyPkgData.packageJsonContent?.main;\n if (!depMain) {\n return;\n }\n const depFullPath = pathNormalizeToLinux(dependencyPkgData.fullPath);\n\n if (depFullPath.endsWith(depMain)) {\n // it requires the main-file. all is good.\n return;\n }\n const extDisallowNonMain = ['.ts', '.tsx', '.js', '.jsx'];\n if (!extDisallowNonMain.includes(path.extname(depFullPath))) {\n // some files such as scss/json are needed to be imported as non-main\n return;\n }\n const pkgRootDir = dependencyPkgData.packageJsonContent?.componentRootFolder;\n if (pkgRootDir && !fs.existsSync(path.join(pkgRootDir, DEFAULT_DIST_DIRNAME))) {\n // the dependency wasn't compiled yet. the issue is probably because depMain points to the dist\n // and depFullPath is in the source.\n return;\n }\n const nonMainFileSplit = depFullPath.split(`node_modules/`);\n const nonMainFileShort = nonMainFileSplit[1] || nonMainFileSplit[0];\n if (nonMainFileShort.includes('eslintrc')) {\n // a temporary workaround for envs that don't expose eslintrc config in their index file.\n // this is needed for a future change of detecting require.resolve syntax\n return;\n }\n (this.issues.getOrCreate(IssuesClasses.ImportNonMainFiles).data[filePath] ||= []).push(nonMainFileShort);\n }\n\n private processPackages(originFile: PathLinuxRelative, fileType: FileType) {\n const packages = this.tree[originFile].packages;\n if (this.componentFromModel) {\n const modelDeps = this.componentFromModel.getAllPackageDependencies();\n // If a package is not in the policies, then we resolve the package from the model.\n for (const pkgName of Object.keys(packages)) {\n if (!this.isPkgInWorkspacePolicies(pkgName) && modelDeps[pkgName]) {\n packages[pkgName] = modelDeps[pkgName];\n }\n }\n }\n const packageNames = Object.keys(packages).concat(this.tree[originFile].missing?.packages ?? []);\n this._addTypesPackagesForTypeScript(packageNames, originFile);\n if (!packages || R.isEmpty(packages)) return;\n if (fileType.isTestFile) {\n Object.assign(this.allPackagesDependencies.devPackageDependencies, packages);\n } else {\n Object.assign(this.allPackagesDependencies.packageDependencies, packages);\n }\n }\n\n private processMissing(originFile: PathLinuxRelative, fileType: FileType) {\n const missing = this.tree[originFile].missing;\n if (!missing) return;\n const processMissingFiles = () => {\n if (isEmpty(missing.files)) return;\n const missingFiles = missing.files.filter((file) => {\n const hasExtension = Boolean(path.extname(file));\n if (!hasExtension) return true;\n // the missing file has extension, e.g. \"index.js\". It's possible that this file doesn't exist in the source\n // but will be available in the dists. so if found same filename without the extension, we assume it's fine.\n const rootDirAbs = this.consumer.toAbsolutePath(this.componentMap.rootDir);\n const filePathAbs = path.resolve(rootDirAbs, file);\n const relativeToCompDir = path.relative(rootDirAbs, filePathAbs);\n const relativeToCompDirWithoutExt = removeFileExtension(relativeToCompDir);\n const compFilesWithoutExt = this.componentMap.getAllFilesPaths().map((f) => removeFileExtension(f));\n const existWithDifferentExt = compFilesWithoutExt.some((f) => f === relativeToCompDirWithoutExt);\n return !existWithDifferentExt;\n });\n if (R.isEmpty(missingFiles)) return;\n this._pushToMissingDependenciesOnFs(originFile, missingFiles);\n };\n const processMissingPackages = () => {\n if (isEmpty(missing.packages)) return;\n const missingPackages = missing.packages;\n if (!R.isEmpty(missingPackages)) {\n this._pushToMissingPackagesDependenciesIssues(originFile, missingPackages, fileType);\n }\n };\n processMissingFiles();\n processMissingPackages();\n }\n\n private processErrors(originFile: PathLinuxRelative) {\n const error: any = this.tree[originFile].error;\n if (!error) return;\n logger.errorAndAddBreadCrumb(\n 'dependency-resolver.processErrors',\n 'got an error from the driver while resolving dependencies'\n );\n logger.error('dependency-resolver.processErrors', error);\n if (error.code === 'PARSING_ERROR') {\n const location = error.lineNumber && error.column ? ` (line: ${error.lineNumber}, column: ${error.column})` : '';\n this.issues.getOrCreate(IssuesClasses.ParseErrors).data[originFile] = error.message + location;\n } else this.issues.getOrCreate(IssuesClasses.ResolveErrors).data[originFile] = error.message;\n }\n\n private getCoreAspectsPackagesAndIds(): Record<string, string> {\n const allCoreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const coreAspectsPackagesAndIds = {};\n\n allCoreAspectsIds.forEach((id) => {\n const packageName = getCoreAspectPackageName(id);\n coreAspectsPackagesAndIds[packageName] = id;\n });\n\n return coreAspectsPackagesAndIds;\n }\n\n /**\n * when a user uses core-extensions these core-extensions should not be dependencies.\n * here, we filter them out from all places they could entered as dependencies.\n * an exception is when running this method on bit-core-extensions themselves (dogfooding), in\n * which case we recognizes that the current originFile is a core-extension and avoid filtering.\n */\n private processCoreAspects(originFile: PathLinuxRelative) {\n const coreAspects = this.getCoreAspectsPackagesAndIds();\n\n // const scopes = coreAspects.map((id) => {\n // const id = id.split()\n // });\n\n const coreAspectIds = Object.values(coreAspects);\n if (coreAspectIds.includes(this.component.id.toStringWithoutVersion())) {\n return;\n }\n\n const coreAspectsPackages = Object.keys(coreAspects);\n\n const components = this.tree[originFile].components;\n const unidentifiedPackages = this.tree[originFile].unidentifiedPackages;\n const usedCoreAspects: string[] = [];\n\n const findMatchingCoreAspect = (packageName: string) => {\n return coreAspectsPackages.find((coreAspectName) => packageName === coreAspectName);\n };\n const unidentifiedPackagesFiltered = unidentifiedPackages?.filter((packageName) => {\n const matchingCoreAspectPackageName = findMatchingCoreAspect(packageName);\n if (matchingCoreAspectPackageName) {\n usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);\n }\n return !matchingCoreAspectPackageName;\n });\n const bitsFiltered = components?.filter((packageInfo) => {\n const matchingCoreAspectPackageName = findMatchingCoreAspect(packageInfo.name);\n if (matchingCoreAspectPackageName) {\n usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);\n }\n return !matchingCoreAspectPackageName;\n });\n\n this.tree[originFile].unidentifiedPackages = unidentifiedPackagesFiltered;\n this.tree[originFile].components = bitsFiltered;\n this.coreAspects.push(...R.uniq(usedCoreAspects));\n }\n\n /**\n * ** LEGACY ONLY **\n * This is related to a legacy feature \"custom-module-resolution\". the code was removed, only the debug is still there, just in case.\n *\n * ** OLD COMMENT **\n * currently the only unidentified packages being process are the ones coming from custom-modules-resolution.\n * assuming the author used custom-resolution, which enable using non-relative import syntax,\n * for example, requiring the file 'src/utils/is-string' from anywhere as require('utils/is-string');\n * now, when the component is imported, the driver recognizes 'utils/is-string' as a package,\n * because it's not relative.\n * the goal here is to use the 'package' the driver found and match it with one of the\n * dependencies from the model. In the example above, we might find in the model, a dependency\n * is-string with importSource of 'utils/is-string'.\n * Once a match is found, copy the relativePaths from the model.\n *\n * keep in mind that this custom-modules-resolution supported on legacy components only.\n * as such, no need to find the packageName to pass to _pushToDependenciesIfNotExist method.\n */\n private processUnidentifiedPackages(originFile: PathLinuxRelative) {\n const unidentifiedPackages = this.tree[originFile].unidentifiedPackages;\n if (!unidentifiedPackages || !unidentifiedPackages.length) return;\n this.debugDependenciesData.unidentifiedPackages = unidentifiedPackages;\n }\n\n private _pushToDependenciesIfNotExist(\n dependency: Dependency,\n fileType: FileType,\n depDebug: DebugComponentsDependency\n ) {\n const existingDependency = this.getExistingDependency(this.allDependencies.dependencies, dependency.id);\n const existingDevDependency = this.getExistingDependency(this.allDependencies.devDependencies, dependency.id);\n // no need to enter dev dependency to devDependencies if it exists already in dependencies\n if (existingDependency || (existingDevDependency && fileType.isTestFile)) {\n return;\n }\n // at this point, either, it doesn't exist at all and should be entered.\n // or it exists in devDependencies but now it comes from non-dev file, which should be entered\n // as non-dev.\n this.pushToDependenciesArray(dependency, fileType, depDebug);\n }\n\n private pushToDependenciesArray(\n currentComponentsDeps: Dependency,\n fileType: FileType,\n depDebug: DebugComponentsDependency\n ) {\n if (fileType.isTestFile) {\n this.allDependencies.devDependencies.push(currentComponentsDeps);\n } else {\n this.allDependencies.dependencies.push(currentComponentsDeps);\n }\n this.debugDependenciesData.components.push(depDebug);\n }\n\n private getExistingDependency(dependencies: Dependency[], id: ComponentID): Dependency | null | undefined {\n return dependencies.find((d) => d.id.isEqualWithoutVersion(id));\n }\n\n private getExistingDepRelativePaths(dependency: Dependency, relativePath: RelativePath) {\n if (!dependency.relativePaths || R.isEmpty(dependency.relativePaths)) return null;\n return dependency.relativePaths.find(\n (paths) =>\n paths.sourceRelativePath === relativePath.sourceRelativePath &&\n paths.destinationRelativePath === relativePath.destinationRelativePath\n );\n }\n\n private getDiffSpecifiers(originSpecifiers: ImportSpecifier[], targetSpecifiers: ImportSpecifier[]) {\n const cmp = (specifier1, specifier2) => specifier1.mainFile.name === specifier2.mainFile.name;\n return R.differenceWith(cmp, targetSpecifiers, originSpecifiers);\n }\n\n /**\n * when requiring packages in typescript, sometimes there are the types packages with the same\n * name, which the user probably wants as well. for example, requiring `foo` package, will also\n * add `@types/foo` to the devDependencies if it has been found in the user `package.json` file.\n *\n * ideally this should be in bit-javascript. however, the decision where to put these `@types`\n * packages (dependencies/devDependencies) is done here according to the user `package.json`\n * and can't be done there because the `Tree` we get from bit-javascript doesn't have this\n * distinction.\n */\n private _addTypesPackagesForTypeScript(packageNames: string[], originFile: PathLinuxRelative): void {\n if (packageNames.length === 0) return;\n const isTypeScript = getExt(originFile) === 'ts' || getExt(originFile) === 'tsx';\n if (!isTypeScript) return;\n const depsHost = this.depsResolver.getWorkspacePolicyManifest();\n const addFromConfig = (packageName: string): boolean => {\n if (!depsHost) return false;\n return DEPENDENCIES_FIELDS.some((depField) => {\n if (!depsHost[depField]) return false;\n const typesPackage = packageToDefinetlyTyped(packageName);\n if (!depsHost[depField][typesPackage]) return false;\n Object.assign(this.allPackagesDependencies.devPackageDependencies, {\n [typesPackage]: depsHost[depField][typesPackage],\n });\n return true;\n });\n };\n const addFromModel = (packageName: string) => {\n if (!this.componentFromModel) return;\n const typesPackage = packageToDefinetlyTyped(packageName);\n const typedPackageFromModel = this.componentFromModel.devPackageDependencies[typesPackage];\n if (!typedPackageFromModel) return;\n Object.assign(this.allPackagesDependencies.devPackageDependencies, {\n [typesPackage]: typedPackageFromModel,\n });\n };\n\n packageNames.forEach((packageName) => {\n const added = addFromConfig(packageName);\n if (!added) addFromModel(packageName);\n });\n }\n\n private _pushToUntrackDependenciesIssues(originFile: PathLinuxRelative, depFileRelative, nested = false) {\n const findExisting = () => {\n let result;\n R.forEachObjIndexed((currentUntracked) => {\n const found = currentUntracked.untrackedFiles.find((file) => {\n return file.relativePath === depFileRelative;\n });\n if (found) {\n result = found;\n }\n }, this.issues.getIssue(IssuesClasses.UntrackedDependencies)?.data || {});\n return result;\n };\n const existing = findExisting();\n const newUntrackedFile = { relativePath: depFileRelative, existing: false };\n // If it's already found mark them both as existing\n if (existing) {\n newUntrackedFile.existing = true;\n existing.existing = true;\n }\n const untrackIssue = this.issues.getOrCreate(IssuesClasses.UntrackedDependencies);\n const untrackedCurrentFile = untrackIssue?.data[originFile];\n if (untrackedCurrentFile) {\n untrackedCurrentFile.untrackedFiles.push(newUntrackedFile);\n } else {\n untrackIssue.data[originFile] = { nested, untrackedFiles: [newUntrackedFile] };\n }\n }\n private _pushToRelativeComponentsAuthoredIssues(\n originFile,\n componentId: ComponentID,\n importSource: string,\n relativePath: RelativePath\n ) {\n (this.issues.getOrCreate(IssuesClasses.RelativeComponentsAuthored).data[originFile] ||= []).push({\n importSource,\n componentId,\n relativePath,\n });\n }\n private _pushToMissingDependenciesOnFs(originFile: PathLinuxRelative, missingFiles: string[]) {\n (this.issues.getOrCreate(IssuesClasses.MissingDependenciesOnFs).data[originFile] ||= []).push(...missingFiles);\n }\n private _pushToMissingPackagesDependenciesIssues(\n originFile: PathLinuxRelative,\n missingPackages: string[],\n fileType: FileType\n ) {\n const data = this.issues.getOrCreate(IssuesClasses.MissingPackagesDependenciesOnFs).data;\n const foundFile = data.find((file) => file.filePath === originFile);\n if (foundFile) {\n foundFile.missingPackages = uniq([...missingPackages, ...foundFile.missingPackages]);\n } else {\n data.push({ filePath: originFile, missingPackages, isDevFile: fileType.isTestFile });\n }\n }\n}\n\nexport function getValidVersion(version: string | undefined) {\n if (!version) {\n return null;\n }\n if (semver.valid(version)) {\n // this takes care of pre-releases as well, as they're considered valid semver.\n return version;\n }\n if (semver.validRange(version)) {\n // if this is a range, e.g. ^1.0.0, return a valid version: 1.0.0.\n const coerced = semver.coerce(version);\n if (coerced) {\n return coerced.version;\n }\n }\n if (isSnap(version)) {\n return version;\n }\n // it's probably a relative path to the component\n return null;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["path","data","_interopRequireWildcard","require","_fsExtra","_interopRequireDefault","_semver","_componentVersion","_lodash","_componentIssues","_dependencies","_constants","_logger","_utils","_path2","_filesDependencyBuilder","_aspectLoader","_packageToDefinetlyTyped","_dependenciesData","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","AutoDetectDeps","constructor","component","workspace","devFiles","depsResolver","aspectLoader","componentId","componentMap","componentFromModel","consumerPath","consumer","getPath","allDependencies","dependencies","devDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","debugDependenciesData","components","setTree","tree","getDependenciesData","cacheResolvedDependencies","cacheProjectAst","componentDir","join","rootDir","nonTestsFiles","testsFiles","getFilesGroupedByBeingTests","allFiles","envDetectors","getEnvDetectors","dependenciesTree","getDependencyTree","workspacePath","filePaths","visited","getDevFilesForConsumerComp","populateDependencies","dependenciesData","DependenciesData","coreAspects","calcComponentEnvDepDetectors","extensions","files","forEach","file","fileType","isTestFile","includes","throwForNonExistFile","processCoreAspects","processMissing","processErrors","processPackages","processComponents","processDepFiles","processUnidentifiedPackages","Error","getComponentIdByResolvedPackageData","bit","getComponentIdByDepFile","depFile","depFileRelative","destination","rootDirFullPath","fullDepFile","resolve","pathNormalizeToLinux","relative","bitMap","getComponentIdByPath","originFile","nested","push","allDepsFiles","_isEmpty2","isDepFileUntracked","processOneDepFile","importSpecifiers","dummyFileType","depFileObject","importSource","_pushToUntrackDependenciesIssues","isEqual","ignoreVersion","depComponentMap","getComponentIfExist","depRootDir","undefined","destinationRelativePath","startsWith","pathRelativeLinux","sourceRelativePath","depsPaths","importSpecifier","mainFile","exported","currentComponentsDeps","Dependency","_pushToRelativeComponentsAuthoredIssues","existingDependency","getExistingDependency","existingDepRelativePaths","getExistingDepRelativePaths","relativePaths","nonExistingImportSpecifiers","getDiffSpecifiers","depDebug","id","pushToDependenciesArray","compDep","dependencyPackageJsonPath","packageJsonPath","dependentPackageJsonPath","componentIdResolvedFrom","packageName","name","getVersionFromPkgJson","versionFromDependencyPkgJson","getValidVersion","concreteVersion","versionResolvedFrom","versionFromDependentPkgJson","versionUsedByDependent","version","changeVersion","existingId","addImportNonMainIssueIfNeeded","_pushToDependenciesIfNotExist","isPkgInWorkspacePolicies","pkgName","getWorkspacePolicyManifest","filePath","dependencyPkgData","depMain","packageJsonContent","main","depFullPath","fullPath","endsWith","extDisallowNonMain","extname","pkgRootDir","componentRootFolder","fs","existsSync","DEFAULT_DIST_DIRNAME","nonMainFileSplit","split","nonMainFileShort","getOrCreate","IssuesClasses","ImportNonMainFiles","packages","modelDeps","getAllPackageDependencies","keys","packageNames","concat","missing","_addTypesPackagesForTypeScript","assign","processMissingFiles","isEmpty","missingFiles","filter","hasExtension","Boolean","rootDirAbs","toAbsolutePath","filePathAbs","relativeToCompDir","relativeToCompDirWithoutExt","removeFileExtension","compFilesWithoutExt","getAllFilesPaths","map","f","existWithDifferentExt","some","_pushToMissingDependenciesOnFs","processMissingPackages","missingPackages","_pushToMissingPackagesDependenciesIssues","error","logger","errorAndAddBreadCrumb","code","location","lineNumber","column","ParseErrors","message","ResolveErrors","getCoreAspectsPackagesAndIds","allCoreAspectsIds","getCoreAspectIds","coreAspectsPackagesAndIds","getCoreAspectPackageName","coreAspectIds","values","toStringWithoutVersion","coreAspectsPackages","unidentifiedPackages","usedCoreAspects","findMatchingCoreAspect","find","coreAspectName","unidentifiedPackagesFiltered","matchingCoreAspectPackageName","bitsFiltered","packageInfo","_uniq2","length","dependency","existingDevDependency","d","isEqualWithoutVersion","relativePath","paths","originSpecifiers","targetSpecifiers","cmp","specifier1","specifier2","_differenceWith2","isTypeScript","getExt","depsHost","addFromConfig","DEPENDENCIES_FIELDS","depField","typesPackage","packageToDefinetlyTyped","addFromModel","typedPackageFromModel","added","findExisting","result","_forEachObjIndexed2","currentUntracked","found","untrackedFiles","getIssue","UntrackedDependencies","existing","newUntrackedFile","untrackIssue","untrackedCurrentFile","RelativeComponentsAuthored","MissingDependenciesOnFs","MissingPackagesDependenciesOnFs","foundFile","uniq","isDevFile","exports","semver","valid","validRange","coerced","coerce","isSnap"],"sources":["auto-detect-deps.ts"],"sourcesContent":["import * as path from 'path';\nimport fs from 'fs-extra';\nimport R from 'ramda';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport { ComponentID } from '@teambit/component-id';\nimport { uniq, isEmpty } from 'lodash';\nimport { IssuesList, IssuesClasses } from '@teambit/component-issues';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DEFAULT_DIST_DIRNAME, DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { getExt, pathNormalizeToLinux, pathRelativeLinux } from '@teambit/legacy/dist/utils';\nimport { PathLinux, PathLinuxRelative, PathOsBased, removeFileExtension } from '@teambit/legacy/dist/utils/path';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { RelativePath } from '@teambit/legacy/dist/consumer/component/dependencies/dependency';\nimport { getDependencyTree } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder';\nimport {\n FileObject,\n ImportSpecifier,\n DependenciesTree,\n} from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/types/dependency-tree-type';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { Workspace } from '@teambit/workspace';\nimport { AspectLoaderMain, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport { ResolvedPackageData } from '@teambit/legacy/dist/utils/packages';\nimport { DependencyDetector } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/detector-hook';\nimport { packageToDefinetlyTyped } from './package-to-definetly-typed';\nimport { DependenciesData } from './dependencies-data';\nimport { AllDependencies, AllPackagesDependencies } from './apply-overrides';\n\nexport type FileType = {\n isTestFile: boolean;\n};\n\nexport type DebugDependencies = {\n components: DebugComponentsDependency[];\n unidentifiedPackages?: string[];\n};\n\nexport type DebugComponentsDependency = {\n id: ComponentID;\n importSource?: string;\n dependencyPackageJsonPath?: string;\n dependentPackageJsonPath?: string;\n // can be resolved here or can be any one of the strategies in dependencies-version-resolver\n versionResolvedFrom?: 'DependencyPkgJson' | 'DependentPkgJson' | 'BitMap' | 'Model' | 'MergeConfig' | string;\n version?: string;\n componentIdResolvedFrom?: 'DependencyPkgJson' | 'DependencyPath';\n packageName?: string;\n};\n\nexport class AutoDetectDeps {\n componentId: ComponentID;\n componentMap: ComponentMap;\n componentFromModel: Component;\n consumerPath: PathOsBased;\n tree: DependenciesTree;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n debugDependenciesData: DebugDependencies;\n autoDetectConfigMerge: Record<string, any>;\n constructor(\n private component: Component,\n private workspace: Workspace,\n private devFiles: DevFilesMain,\n private depsResolver: DependencyResolverMain,\n private aspectLoader: AspectLoaderMain\n ) {\n this.componentId = component.componentId;\n // the consumerComponent is coming from the workspace, so it must have the componentMap prop\n this.componentMap = this.component.componentMap as ComponentMap;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.consumerPath = this.consumer.getPath();\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n private setTree(tree: DependenciesTree) {\n this.tree = tree;\n // console.log(JSON.stringify(tree, null, 4)); // uncomment to easily watch the tree received from bit-javascript\n }\n\n /**\n * Resolve components and packages dependencies for a component.\n * This method should NOT have any side-effect on the component. the DependenciesLoader class is\n * responsible for saving this data on the component object.\n *\n * The process is as follows:\n * 1) Use the language driver to parse the component files and find for each file its dependencies.\n * 2) The results we get from the driver per file tells us what are the files and packages that depend on our file.\n * and also whether there are missing packages and files.\n * 3) Using the information from the driver, we go over each one of the dependencies files and find its counterpart\n * component. The way how we find it, is by using the bit.map file which has a mapping between the component name and\n * the file paths.\n * 4) If we find a component to the file dependency, we add it to component.dependencies. Otherwise, it's added to\n * component.issues.untrackedDependencies\n * 5) Similarly, when we find the packages dependencies, they are added to component.packageDependencies. Otherwise,\n * they're added to component.issues.missingPackagesDependenciesOnFs\n * 6) In case the driver found a file dependency that is not on the file-system, we add that file to\n * component.issues.missingDependenciesOnFs\n */\n async getDependenciesData(\n cacheResolvedDependencies: Record<string, any>,\n cacheProjectAst: Record<string, any> | undefined\n ): Promise<{ dependenciesData: DependenciesData; debugDependenciesData: DebugDependencies }> {\n const componentDir = path.join(this.consumerPath, this.componentMap.rootDir);\n const { nonTestsFiles, testsFiles } = this.componentMap.getFilesGroupedByBeingTests();\n const allFiles = [...nonTestsFiles, ...testsFiles];\n const envDetectors = await this.getEnvDetectors();\n // find the dependencies (internal files and packages) through automatic dependency resolution\n const dependenciesTree = await getDependencyTree({\n componentDir,\n workspacePath: this.consumerPath,\n filePaths: allFiles,\n visited: cacheResolvedDependencies,\n cacheProjectAst,\n envDetectors,\n });\n // we have the files dependencies, these files should be components that are registered in bit.map. Otherwise,\n // they are referred as \"untracked components\" and the user should add them later on in order to tag\n this.setTree(dependenciesTree.tree);\n const devFiles = await this.devFiles.getDevFilesForConsumerComp(this.component);\n await this.populateDependencies(allFiles, devFiles);\n return {\n dependenciesData: new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n ),\n debugDependenciesData: this.debugDependenciesData,\n };\n }\n\n async getEnvDetectors(): Promise<DependencyDetector[] | null> {\n return this.depsResolver.calcComponentEnvDepDetectors(this.component.extensions);\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies(files: string[], testsFiles: string[]) {\n files.forEach((file) => {\n const fileType: FileType = {\n isTestFile: testsFiles.includes(file),\n };\n this.throwForNonExistFile(file);\n this.processCoreAspects(file);\n this.processMissing(file, fileType);\n this.processErrors(file);\n this.processPackages(file, fileType);\n this.processComponents(file, fileType);\n this.processDepFiles(file, fileType);\n this.processUnidentifiedPackages(file);\n });\n }\n\n private throwForNonExistFile(file: string) {\n if (!this.tree[file]) {\n throw new Error(\n `DependencyResolver: a file \"${file}\" was not returned from the driver, its dependencies are unknown`\n );\n }\n }\n\n private getComponentIdByResolvedPackageData(bit: ResolvedPackageData): ComponentID {\n if (!bit.componentId) {\n throw new Error(`resolved Bit component must have componentId prop in the package.json file`);\n }\n return bit.componentId;\n }\n\n /**\n * this happens when using relative paths between components, which is allowed on Legacy only.\n * on Harmony, during the execution of this function, it recognizes the use of relative-paths, enter\n * it to the \"issues\", then, later, it shows a warning on bit-status and block tagging.\n */\n private getComponentIdByDepFile(depFile: PathLinux): {\n componentId: ComponentID | undefined;\n depFileRelative: PathLinux;\n destination: string | null | undefined;\n } {\n let depFileRelative: PathLinux = depFile; // dependency file path relative to consumer root\n let destination: string | null | undefined;\n const rootDir = this.componentMap.rootDir;\n // The depFileRelative is relative to rootDir, change it to be relative to current consumer.\n // We can't use path.resolve(rootDir, fileDep) because this might not work when running\n // bit commands not from root, because resolve take by default the process.cwd\n const rootDirFullPath = path.join(this.consumerPath, rootDir);\n const fullDepFile = path.resolve(rootDirFullPath, depFile);\n depFileRelative = pathNormalizeToLinux(path.relative(this.consumerPath, fullDepFile));\n\n const componentId = this.consumer.bitMap.getComponentIdByPath(depFileRelative);\n\n return { componentId, depFileRelative, destination };\n }\n\n private processDepFiles(originFile: PathLinuxRelative, fileType: FileType, nested = false) {\n // We don't just return because different files of the component might import different things from the depFile\n // See more info here: https://github.com/teambit/bit/issues/1796\n if (!this.processedFiles.includes(originFile)) {\n this.processedFiles.push(originFile);\n // We don't want to calculate nested files again after they calculated as direct files\n } else if (nested) {\n return;\n }\n const allDepsFiles = this.tree[originFile].files;\n if (!allDepsFiles || R.isEmpty(allDepsFiles)) return;\n allDepsFiles.forEach((depFile: FileObject) => {\n const isDepFileUntracked = this.processOneDepFile(\n originFile,\n depFile.file,\n depFile.importSpecifiers,\n fileType,\n depFile,\n nested\n );\n // Only continue recursively if the dep file is untracked\n // for tracked deps if they have untracked deps they will be shown under their own components\n if (isDepFileUntracked) {\n // Recursively check for untracked files (to show them all in bit status)\n // for nested files we don't really care about the file types since we won't do all the checking\n const dummyFileType: FileType = {\n isTestFile: false,\n };\n this.processDepFiles(depFile.file, dummyFileType, true);\n }\n });\n }\n\n // return true if the dep file is untracked\n private processOneDepFile(\n originFile: PathLinuxRelative,\n depFile: string,\n importSpecifiers: ImportSpecifier[] | undefined,\n fileType: FileType,\n depFileObject: FileObject,\n nested = false\n ): boolean {\n const { componentId, depFileRelative, destination } = this.getComponentIdByDepFile(depFile);\n const importSource: string = depFileObject.importSource as string;\n // the file dependency doesn't have any counterpart component. Add it to this.issues.untrackedDependencies\n if (!componentId) {\n this._pushToUntrackDependenciesIssues(originFile, depFileRelative, nested);\n return true;\n }\n // happens when in the same component one file requires another one. In this case, there is\n // noting to do regarding the dependencies\n if (componentId.isEqual(this.componentId, { ignoreVersion: true })) {\n return false;\n }\n\n const depComponentMap = this.consumer.bitMap.getComponentIfExist(componentId);\n // found a dependency component. Add it to this.allDependencies.dependencies\n const depRootDir = depComponentMap ? depComponentMap.rootDir : undefined;\n const destinationRelativePath =\n destination ||\n (depRootDir && depFileRelative.startsWith(depRootDir)\n ? pathRelativeLinux(depRootDir, depFileRelative)\n : depFileRelative);\n\n // when there is no rootDir for the current dependency (it happens when it's AUTHORED), keep the original path\n const sourceRelativePath = depRootDir ? depFileRelative : depFile;\n\n const depsPaths: RelativePath = {\n sourceRelativePath,\n destinationRelativePath,\n };\n if (importSpecifiers) {\n importSpecifiers.forEach((importSpecifier) => {\n if (importSpecifier.mainFile) delete importSpecifier.mainFile.exported;\n });\n depsPaths.importSpecifiers = importSpecifiers;\n }\n const currentComponentsDeps = new Dependency(componentId, [depsPaths]);\n this._pushToRelativeComponentsAuthoredIssues(originFile, componentId, importSource, depsPaths);\n\n const allDependencies: Dependency[] = [\n ...this.allDependencies.dependencies,\n ...this.allDependencies.devDependencies,\n ];\n const existingDependency = this.getExistingDependency(allDependencies, componentId);\n if (existingDependency) {\n const existingDepRelativePaths = this.getExistingDepRelativePaths(existingDependency, depsPaths);\n if (!existingDepRelativePaths) {\n // it is another file of an already existing component. Just add the new path\n existingDependency.relativePaths.push(depsPaths);\n return false;\n }\n // The dep path already exists but maybe this dep-file has more importSpecifiers\n if (depsPaths.importSpecifiers) {\n // add them to the existing dep\n if (!existingDepRelativePaths.importSpecifiers) {\n existingDepRelativePaths.importSpecifiers = [...depsPaths.importSpecifiers];\n } else {\n // both have importSpecifiers\n const nonExistingImportSpecifiers = this.getDiffSpecifiers(\n existingDepRelativePaths.importSpecifiers,\n depsPaths.importSpecifiers\n );\n existingDepRelativePaths.importSpecifiers.push(...nonExistingImportSpecifiers);\n }\n }\n\n if (depsPaths.importSource && !existingDepRelativePaths.importSource) {\n existingDepRelativePaths.importSource = depsPaths.importSource;\n }\n } else {\n const depDebug: DebugComponentsDependency = {\n id: currentComponentsDeps.id,\n importSource,\n };\n this.pushToDependenciesArray(currentComponentsDeps, fileType, depDebug);\n }\n return false;\n }\n\n /**\n * process require/import of Bit components where the require statement is not a relative path\n * but a module path, such as `require('@bit/bit.envs/compiler/babel');`\n */\n private processComponents(originFile: PathLinuxRelative, fileType: FileType) {\n const components = this.tree[originFile].components;\n if (!components || R.isEmpty(components)) return;\n components.forEach((compDep) => {\n let componentId = this.getComponentIdByResolvedPackageData(compDep);\n if (componentId.isEqual(this.componentId)) {\n // the component is importing itself, so ignore it. although currently it doesn't cause any issues, (probably\n // because it filtered out later), it's better to remove it as soon as possible, for less-confusing debugging.\n return;\n }\n const depDebug: DebugComponentsDependency = {\n id: componentId,\n dependencyPackageJsonPath: compDep.packageJsonPath,\n dependentPackageJsonPath: compDep.dependentPackageJsonPath,\n componentIdResolvedFrom: 'DependencyPkgJson',\n packageName: compDep.name,\n };\n const getVersionFromPkgJson = (): string | null => {\n const versionFromDependencyPkgJson = getValidVersion(compDep.concreteVersion);\n if (versionFromDependencyPkgJson) {\n depDebug.versionResolvedFrom = 'DependencyPkgJson';\n return versionFromDependencyPkgJson;\n }\n const versionFromDependentPkgJson = getValidVersion(compDep.versionUsedByDependent);\n if (versionFromDependentPkgJson) {\n depDebug.versionResolvedFrom = 'DependentPkgJson';\n return versionFromDependentPkgJson;\n }\n return null;\n };\n const version = getVersionFromPkgJson();\n if (version) {\n componentId = componentId.changeVersion(version);\n }\n const existingId = componentId;\n if (existingId.isEqual(this.componentId)) {\n // happens when one of the component files requires another using module path\n // no need to enter anything to the dependencies\n return;\n }\n this.addImportNonMainIssueIfNeeded(originFile, compDep);\n const currentComponentsDeps = new Dependency(existingId, [], compDep.name);\n this._pushToDependenciesIfNotExist(currentComponentsDeps, fileType, depDebug);\n });\n }\n\n private isPkgInWorkspacePolicies(pkgName: string) {\n return this.depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n private addImportNonMainIssueIfNeeded(filePath: PathLinuxRelative, dependencyPkgData: ResolvedPackageData) {\n const depMain: PathLinuxRelative | undefined = dependencyPkgData.packageJsonContent?.main;\n if (!depMain) {\n return;\n }\n const depFullPath = pathNormalizeToLinux(dependencyPkgData.fullPath);\n\n if (depFullPath.endsWith(depMain)) {\n // it requires the main-file. all is good.\n return;\n }\n const extDisallowNonMain = ['.ts', '.tsx', '.js', '.jsx'];\n if (!extDisallowNonMain.includes(path.extname(depFullPath))) {\n // some files such as scss/json are needed to be imported as non-main\n return;\n }\n const pkgRootDir = dependencyPkgData.packageJsonContent?.componentRootFolder;\n if (pkgRootDir && !fs.existsSync(path.join(pkgRootDir, DEFAULT_DIST_DIRNAME))) {\n // the dependency wasn't compiled yet. the issue is probably because depMain points to the dist\n // and depFullPath is in the source.\n return;\n }\n const nonMainFileSplit = depFullPath.split(`node_modules/`);\n const nonMainFileShort = nonMainFileSplit[1] || nonMainFileSplit[0];\n if (nonMainFileShort.includes('eslintrc')) {\n // a temporary workaround for envs that don't expose eslintrc config in their index file.\n // this is needed for a future change of detecting require.resolve syntax\n return;\n }\n (this.issues.getOrCreate(IssuesClasses.ImportNonMainFiles).data[filePath] ||= []).push(nonMainFileShort);\n }\n\n private processPackages(originFile: PathLinuxRelative, fileType: FileType) {\n const packages = this.tree[originFile].packages;\n if (this.componentFromModel) {\n const modelDeps = this.componentFromModel.getAllPackageDependencies();\n // If a package is not in the policies, then we resolve the package from the model.\n for (const pkgName of Object.keys(packages)) {\n if (!this.isPkgInWorkspacePolicies(pkgName) && modelDeps[pkgName]) {\n packages[pkgName] = modelDeps[pkgName];\n }\n }\n }\n const packageNames = Object.keys(packages).concat(this.tree[originFile].missing?.packages ?? []);\n this._addTypesPackagesForTypeScript(packageNames, originFile);\n if (!packages || R.isEmpty(packages)) return;\n if (fileType.isTestFile) {\n Object.assign(this.allPackagesDependencies.devPackageDependencies, packages);\n } else {\n Object.assign(this.allPackagesDependencies.packageDependencies, packages);\n }\n }\n\n private processMissing(originFile: PathLinuxRelative, fileType: FileType) {\n const missing = this.tree[originFile].missing;\n if (!missing) return;\n const processMissingFiles = () => {\n if (isEmpty(missing.files)) return;\n const missingFiles = missing.files.filter((file) => {\n const hasExtension = Boolean(path.extname(file));\n if (!hasExtension) return true;\n // the missing file has extension, e.g. \"index.js\". It's possible that this file doesn't exist in the source\n // but will be available in the dists. so if found same filename without the extension, we assume it's fine.\n const rootDirAbs = this.consumer.toAbsolutePath(this.componentMap.rootDir);\n const filePathAbs = path.resolve(rootDirAbs, file);\n const relativeToCompDir = path.relative(rootDirAbs, filePathAbs);\n const relativeToCompDirWithoutExt = removeFileExtension(relativeToCompDir);\n const compFilesWithoutExt = this.componentMap.getAllFilesPaths().map((f) => removeFileExtension(f));\n const existWithDifferentExt = compFilesWithoutExt.some((f) => f === relativeToCompDirWithoutExt);\n return !existWithDifferentExt;\n });\n if (R.isEmpty(missingFiles)) return;\n this._pushToMissingDependenciesOnFs(originFile, missingFiles);\n };\n const processMissingPackages = () => {\n if (isEmpty(missing.packages)) return;\n const missingPackages = missing.packages;\n if (!R.isEmpty(missingPackages)) {\n this._pushToMissingPackagesDependenciesIssues(originFile, missingPackages, fileType);\n }\n };\n processMissingFiles();\n processMissingPackages();\n }\n\n private processErrors(originFile: PathLinuxRelative) {\n const error: any = this.tree[originFile].error;\n if (!error) return;\n logger.errorAndAddBreadCrumb(\n 'dependency-resolver.processErrors',\n 'got an error from the driver while resolving dependencies'\n );\n logger.error('dependency-resolver.processErrors', error);\n if (error.code === 'PARSING_ERROR') {\n const location = error.lineNumber && error.column ? ` (line: ${error.lineNumber}, column: ${error.column})` : '';\n this.issues.getOrCreate(IssuesClasses.ParseErrors).data[originFile] = error.message + location;\n } else this.issues.getOrCreate(IssuesClasses.ResolveErrors).data[originFile] = error.message;\n }\n\n private getCoreAspectsPackagesAndIds(): Record<string, string> {\n const allCoreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const coreAspectsPackagesAndIds = {};\n\n allCoreAspectsIds.forEach((id) => {\n const packageName = getCoreAspectPackageName(id);\n coreAspectsPackagesAndIds[packageName] = id;\n });\n\n return coreAspectsPackagesAndIds;\n }\n\n /**\n * when a user uses core-extensions these core-extensions should not be dependencies.\n * here, we filter them out from all places they could entered as dependencies.\n * an exception is when running this method on bit-core-extensions themselves (dogfooding), in\n * which case we recognizes that the current originFile is a core-extension and avoid filtering.\n */\n private processCoreAspects(originFile: PathLinuxRelative) {\n const coreAspects = this.getCoreAspectsPackagesAndIds();\n\n // const scopes = coreAspects.map((id) => {\n // const id = id.split()\n // });\n\n const coreAspectIds = Object.values(coreAspects);\n if (coreAspectIds.includes(this.component.id.toStringWithoutVersion())) {\n return;\n }\n\n const coreAspectsPackages = Object.keys(coreAspects);\n\n const components = this.tree[originFile].components;\n const unidentifiedPackages = this.tree[originFile].unidentifiedPackages;\n const usedCoreAspects: string[] = [];\n\n const findMatchingCoreAspect = (packageName: string) => {\n return coreAspectsPackages.find((coreAspectName) => packageName === coreAspectName);\n };\n const unidentifiedPackagesFiltered = unidentifiedPackages?.filter((packageName) => {\n const matchingCoreAspectPackageName = findMatchingCoreAspect(packageName);\n if (matchingCoreAspectPackageName) {\n usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);\n }\n return !matchingCoreAspectPackageName;\n });\n const bitsFiltered = components?.filter((packageInfo) => {\n const matchingCoreAspectPackageName = findMatchingCoreAspect(packageInfo.name);\n if (matchingCoreAspectPackageName) {\n usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);\n }\n return !matchingCoreAspectPackageName;\n });\n\n this.tree[originFile].unidentifiedPackages = unidentifiedPackagesFiltered;\n this.tree[originFile].components = bitsFiltered;\n this.coreAspects.push(...R.uniq(usedCoreAspects));\n }\n\n /**\n * ** LEGACY ONLY **\n * This is related to a legacy feature \"custom-module-resolution\". the code was removed, only the debug is still there, just in case.\n *\n * ** OLD COMMENT **\n * currently the only unidentified packages being process are the ones coming from custom-modules-resolution.\n * assuming the author used custom-resolution, which enable using non-relative import syntax,\n * for example, requiring the file 'src/utils/is-string' from anywhere as require('utils/is-string');\n * now, when the component is imported, the driver recognizes 'utils/is-string' as a package,\n * because it's not relative.\n * the goal here is to use the 'package' the driver found and match it with one of the\n * dependencies from the model. In the example above, we might find in the model, a dependency\n * is-string with importSource of 'utils/is-string'.\n * Once a match is found, copy the relativePaths from the model.\n *\n * keep in mind that this custom-modules-resolution supported on legacy components only.\n * as such, no need to find the packageName to pass to _pushToDependenciesIfNotExist method.\n */\n private processUnidentifiedPackages(originFile: PathLinuxRelative) {\n const unidentifiedPackages = this.tree[originFile].unidentifiedPackages;\n if (!unidentifiedPackages || !unidentifiedPackages.length) return;\n this.debugDependenciesData.unidentifiedPackages = unidentifiedPackages;\n }\n\n private _pushToDependenciesIfNotExist(\n dependency: Dependency,\n fileType: FileType,\n depDebug: DebugComponentsDependency\n ) {\n const existingDependency = this.getExistingDependency(this.allDependencies.dependencies, dependency.id);\n const existingDevDependency = this.getExistingDependency(this.allDependencies.devDependencies, dependency.id);\n // no need to enter dev dependency to devDependencies if it exists already in dependencies\n if (existingDependency || (existingDevDependency && fileType.isTestFile)) {\n return;\n }\n // at this point, either, it doesn't exist at all and should be entered.\n // or it exists in devDependencies but now it comes from non-dev file, which should be entered\n // as non-dev.\n this.pushToDependenciesArray(dependency, fileType, depDebug);\n }\n\n private pushToDependenciesArray(\n currentComponentsDeps: Dependency,\n fileType: FileType,\n depDebug: DebugComponentsDependency\n ) {\n if (fileType.isTestFile) {\n this.allDependencies.devDependencies.push(currentComponentsDeps);\n } else {\n this.allDependencies.dependencies.push(currentComponentsDeps);\n }\n this.debugDependenciesData.components.push(depDebug);\n }\n\n private getExistingDependency(dependencies: Dependency[], id: ComponentID): Dependency | null | undefined {\n return dependencies.find((d) => d.id.isEqualWithoutVersion(id));\n }\n\n private getExistingDepRelativePaths(dependency: Dependency, relativePath: RelativePath) {\n if (!dependency.relativePaths || R.isEmpty(dependency.relativePaths)) return null;\n return dependency.relativePaths.find(\n (paths) =>\n paths.sourceRelativePath === relativePath.sourceRelativePath &&\n paths.destinationRelativePath === relativePath.destinationRelativePath\n );\n }\n\n private getDiffSpecifiers(originSpecifiers: ImportSpecifier[], targetSpecifiers: ImportSpecifier[]) {\n const cmp = (specifier1, specifier2) => specifier1.mainFile.name === specifier2.mainFile.name;\n return R.differenceWith(cmp, targetSpecifiers, originSpecifiers);\n }\n\n /**\n * when requiring packages in typescript, sometimes there are the types packages with the same\n * name, which the user probably wants as well. for example, requiring `foo` package, will also\n * add `@types/foo` to the devDependencies if it has been found in the user `package.json` file.\n *\n * ideally this should be in bit-javascript. however, the decision where to put these `@types`\n * packages (dependencies/devDependencies) is done here according to the user `package.json`\n * and can't be done there because the `Tree` we get from bit-javascript doesn't have this\n * distinction.\n */\n private _addTypesPackagesForTypeScript(packageNames: string[], originFile: PathLinuxRelative): void {\n if (packageNames.length === 0) return;\n const isTypeScript = getExt(originFile) === 'ts' || getExt(originFile) === 'tsx';\n if (!isTypeScript) return;\n const depsHost = this.depsResolver.getWorkspacePolicyManifest();\n const addFromConfig = (packageName: string): boolean => {\n if (!depsHost) return false;\n return DEPENDENCIES_FIELDS.some((depField) => {\n if (!depsHost[depField]) return false;\n const typesPackage = packageToDefinetlyTyped(packageName);\n if (!depsHost[depField][typesPackage]) return false;\n Object.assign(this.allPackagesDependencies.devPackageDependencies, {\n [typesPackage]: depsHost[depField][typesPackage],\n });\n return true;\n });\n };\n const addFromModel = (packageName: string) => {\n if (!this.componentFromModel) return;\n const typesPackage = packageToDefinetlyTyped(packageName);\n const typedPackageFromModel = this.componentFromModel.devPackageDependencies[typesPackage];\n if (!typedPackageFromModel) return;\n Object.assign(this.allPackagesDependencies.devPackageDependencies, {\n [typesPackage]: typedPackageFromModel,\n });\n };\n\n packageNames.forEach((packageName) => {\n const added = addFromConfig(packageName);\n if (!added) addFromModel(packageName);\n });\n }\n\n private _pushToUntrackDependenciesIssues(originFile: PathLinuxRelative, depFileRelative, nested = false) {\n const findExisting = () => {\n let result;\n R.forEachObjIndexed((currentUntracked) => {\n const found = currentUntracked.untrackedFiles.find((file) => {\n return file.relativePath === depFileRelative;\n });\n if (found) {\n result = found;\n }\n }, this.issues.getIssue(IssuesClasses.UntrackedDependencies)?.data || {});\n return result;\n };\n const existing = findExisting();\n const newUntrackedFile = { relativePath: depFileRelative, existing: false };\n // If it's already found mark them both as existing\n if (existing) {\n newUntrackedFile.existing = true;\n existing.existing = true;\n }\n const untrackIssue = this.issues.getOrCreate(IssuesClasses.UntrackedDependencies);\n const untrackedCurrentFile = untrackIssue?.data[originFile];\n if (untrackedCurrentFile) {\n untrackedCurrentFile.untrackedFiles.push(newUntrackedFile);\n } else {\n untrackIssue.data[originFile] = { nested, untrackedFiles: [newUntrackedFile] };\n }\n }\n private _pushToRelativeComponentsAuthoredIssues(\n originFile,\n componentId: ComponentID,\n importSource: string,\n relativePath: RelativePath\n ) {\n (this.issues.getOrCreate(IssuesClasses.RelativeComponentsAuthored).data[originFile] ||= []).push({\n importSource,\n componentId,\n relativePath,\n });\n }\n private _pushToMissingDependenciesOnFs(originFile: PathLinuxRelative, missingFiles: string[]) {\n (this.issues.getOrCreate(IssuesClasses.MissingDependenciesOnFs).data[originFile] ||= []).push(...missingFiles);\n }\n private _pushToMissingPackagesDependenciesIssues(\n originFile: PathLinuxRelative,\n missingPackages: string[],\n fileType: FileType\n ) {\n const data = this.issues.getOrCreate(IssuesClasses.MissingPackagesDependenciesOnFs).data;\n const foundFile = data.find((file) => file.filePath === originFile);\n if (foundFile) {\n foundFile.missingPackages = uniq([...missingPackages, ...foundFile.missingPackages]);\n } else {\n data.push({ filePath: originFile, missingPackages, isDevFile: fileType.isTestFile });\n }\n }\n}\n\nexport function getValidVersion(version: string | undefined) {\n if (!version) {\n return null;\n }\n if (semver.valid(version)) {\n // this takes care of pre-releases as well, as they're considered valid semver.\n return version;\n }\n if (semver.validRange(version)) {\n // if this is a range, e.g. ^1.0.0, return a valid version: 1.0.0.\n const coerced = semver.coerce(version);\n if (coerced) {\n return coerced.version;\n }\n }\n if (isSnap(version)) {\n return version;\n }\n // it's probably a relative path to the component\n return null;\n}\n"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DependenciesLoader = void 0;
|
|
7
|
-
function
|
|
8
|
-
const data = _interopRequireDefault(require("ramda"));
|
|
9
|
-
|
|
7
|
+
function _isEmpty2() {
|
|
8
|
+
const data = _interopRequireDefault(require("ramda/src/isEmpty"));
|
|
9
|
+
_isEmpty2 = function () {
|
|
10
10
|
return data;
|
|
11
11
|
};
|
|
12
12
|
return data;
|
|
@@ -195,7 +195,7 @@ class DependenciesLoader {
|
|
|
195
195
|
this.component.devPackageDependencies = dependenciesData.allPackagesDependencies.devPackageDependencies ?? {};
|
|
196
196
|
this.component.peerPackageDependencies = dependenciesData.allPackagesDependencies.peerPackageDependencies ?? {};
|
|
197
197
|
const missingFromOverrides = overridesDependencies.missingPackageDependencies;
|
|
198
|
-
if (!
|
|
198
|
+
if (!(0, _isEmpty2().default)(missingFromOverrides)) {
|
|
199
199
|
dependenciesData.issues.getOrCreate(_componentIssues().IssuesClasses.MissingManuallyConfiguredPackages).data = (0, _lodash().uniq)(missingFromOverrides);
|
|
200
200
|
}
|
|
201
201
|
if (!dependenciesData.issues.isEmpty()) this.component.issues = dependenciesData.issues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ramda","data","_interopRequireDefault","require","_path","_lodash","_componentIssues","_logger","_lastModified","_config","_constants","_dependencyResolver","_dependenciesData","_dependenciesVersionsResolver","_autoDetectDeps","_applyOverrides","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DependenciesLoader","constructor","component","depsResolver","devFiles","aspectLoader","idStr","id","toString","load","workspace","opts","dependenciesData","debugDependenciesData","getDependenciesData","applyOverrides","ApplyOverrides","allDependencies","allPackagesDependencies","issues","results","setDependenciesDataOnComponent","overridesDependencies","updateDependenciesVersions","autoDetectOverrides","components","resolveExtensionsVersions","loadFromScope","depsDataFromCache","getDependenciesDataFromCacheIfPossible","autoDetectDeps","AutoDetectDeps","cacheResolvedDependencies","cacheProjectAst","shouldSaveInCache","storeInFsCache","consumer","componentFsCache","saveDependenciesDataInCache","serialize","useDependenciesCache","cacheData","getDependenciesDataFromCache","rootDir","componentMap","getComponentDir","filesPaths","files","map","f","path","componentConfigPath","join","COMPONENT_CONFIG_FILE_NAME","push","lastModifiedComponent","getLastModifiedComponentTimestampMs","wasModifiedAfterCache","timestamp","logger","debug","DependenciesData","deserialize","shouldBlockSavingInCache","setDependencies","dependencies","setDevDependencies","devDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","missingFromOverrides","missingPackageDependencies","R","isEmpty","getOrCreate","IssuesClasses","MissingManuallyConfiguredPackages","uniq","manuallyRemovedDependencies","manuallyAddedDependencies","coreAspects","length","pushToDependencyResolverExtension","dataField","operation","depResolverAspectName","DependencyResolverAspect","extExistOnComponent","ext","extensions","findCoreExtension","ExtensionDataEntry","undefined","existing","find","c","packageName","componentId","exports"],"sources":["dependencies-loader.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { uniq } from 'lodash';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { getLastModifiedComponentTimestampMs } from '@teambit/legacy/dist/utils/fs/last-modified';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DependencyLoaderOpts } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';\nimport { Workspace } from '@teambit/workspace';\nimport DependencyResolverAspect, { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { DependenciesData } from './dependencies-data';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\nimport { AutoDetectDeps, DebugDependencies } from './auto-detect-deps';\nimport OverridesDependencies from './overrides-dependencies';\nimport { ApplyOverrides } from './apply-overrides';\n\nexport class DependenciesLoader {\n private idStr: string;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain\n ) {\n this.idStr = this.component.id.toString();\n }\n async load(workspace: Workspace, opts: DependencyLoaderOpts) {\n const { dependenciesData, debugDependenciesData } = await this.getDependenciesData(workspace, opts);\n const applyOverrides = new ApplyOverrides(this.component, this.depsResolver, workspace);\n applyOverrides.allDependencies = dependenciesData.allDependencies;\n applyOverrides.allPackagesDependencies = dependenciesData.allPackagesDependencies;\n if (debugDependenciesData) {\n // if it's coming from the cache, it's empty\n applyOverrides.debugDependenciesData = debugDependenciesData;\n }\n applyOverrides.issues = dependenciesData.issues;\n const results = await applyOverrides.getDependenciesData();\n this.setDependenciesDataOnComponent(results.dependenciesData, results.overridesDependencies);\n updateDependenciesVersions(\n this.depsResolver,\n workspace,\n this.component,\n results.overridesDependencies,\n results.autoDetectOverrides,\n applyOverrides.debugDependenciesData.components,\n opts.resolveExtensionsVersions\n );\n\n return {\n dependenciesData: results.dependenciesData,\n overridesDependencies: results.overridesDependencies,\n debugDependenciesData: applyOverrides.debugDependenciesData,\n };\n }\n\n async loadFromScope(dependenciesData: Partial<DependenciesData>) {\n const applyOverrides = new ApplyOverrides(this.component, this.depsResolver);\n const { allDependencies, allPackagesDependencies, issues } = dependenciesData;\n if (allDependencies) applyOverrides.allDependencies = allDependencies;\n if (allPackagesDependencies) applyOverrides.allPackagesDependencies = allPackagesDependencies;\n if (issues) applyOverrides.issues = issues;\n const results = await applyOverrides.getDependenciesData();\n this.setDependenciesDataOnComponent(results.dependenciesData, results.overridesDependencies);\n }\n\n private async getDependenciesData(\n workspace: Workspace,\n opts: DependencyLoaderOpts\n ): Promise<{\n dependenciesData: DependenciesData;\n debugDependenciesData?: DebugDependencies;\n }> {\n const depsDataFromCache = await this.getDependenciesDataFromCacheIfPossible(workspace, opts);\n if (depsDataFromCache) {\n return { dependenciesData: depsDataFromCache };\n }\n\n const autoDetectDeps = new AutoDetectDeps(\n this.component,\n workspace,\n this.devFiles,\n this.depsResolver,\n this.aspectLoader\n );\n const results = await autoDetectDeps.getDependenciesData(opts.cacheResolvedDependencies, opts.cacheProjectAst);\n if (this.shouldSaveInCache(results.dependenciesData, opts.storeInFsCache)) {\n await workspace.consumer.componentFsCache.saveDependenciesDataInCache(\n this.idStr,\n results.dependenciesData.serialize()\n );\n }\n\n return results;\n }\n\n private async getDependenciesDataFromCacheIfPossible(\n workspace: Workspace,\n opts: DependencyLoaderOpts\n ): Promise<DependenciesData | null> {\n if (!opts.useDependenciesCache) {\n return null;\n }\n const cacheData = await workspace.consumer.componentFsCache.getDependenciesDataFromCache(this.idStr);\n if (!cacheData) {\n return null; // probably the first time, so it wasn't entered to the cache yet.\n }\n const rootDir = this.component.componentMap?.getComponentDir();\n if (!rootDir) {\n // could happen on legacy only and when there is no trackDir, in which case, we can't\n // determine whether or not a component file has been deleted, as a result, we are unable\n // to invalidate the cache in such a case.\n return null;\n }\n const filesPaths = this.component.files.map((f) => f.path);\n const componentConfigPath = path.join(workspace.path, rootDir, COMPONENT_CONFIG_FILE_NAME);\n filesPaths.push(componentConfigPath);\n const lastModifiedComponent = await getLastModifiedComponentTimestampMs(rootDir, filesPaths);\n const wasModifiedAfterCache = lastModifiedComponent > cacheData.timestamp;\n if (wasModifiedAfterCache) {\n return null; // cache is invalid.\n }\n logger.debug(`dependencies-loader, getting the dependencies data for ${this.idStr} from the cache`);\n return DependenciesData.deserialize(cacheData.data);\n }\n\n private shouldSaveInCache(dependenciesData: DependenciesData, storeInFsCache = true) {\n if (!storeInFsCache) return false;\n if (!dependenciesData.issues) return true;\n return !dependenciesData.issues.shouldBlockSavingInCache();\n }\n\n private setDependenciesDataOnComponent(\n dependenciesData: DependenciesData,\n overridesDependencies: OverridesDependencies\n ) {\n this.component.setDependencies(dependenciesData.allDependencies.dependencies);\n this.component.setDevDependencies(dependenciesData.allDependencies.devDependencies);\n this.component.packageDependencies = dependenciesData.allPackagesDependencies.packageDependencies ?? {};\n this.component.devPackageDependencies = dependenciesData.allPackagesDependencies.devPackageDependencies ?? {};\n this.component.peerPackageDependencies = dependenciesData.allPackagesDependencies.peerPackageDependencies ?? {};\n const missingFromOverrides = overridesDependencies.missingPackageDependencies;\n if (!R.isEmpty(missingFromOverrides)) {\n dependenciesData.issues.getOrCreate(IssuesClasses.MissingManuallyConfiguredPackages).data =\n uniq(missingFromOverrides);\n }\n if (!dependenciesData.issues.isEmpty()) this.component.issues = dependenciesData.issues;\n this.component.manuallyRemovedDependencies = overridesDependencies.manuallyRemovedDependencies;\n this.component.manuallyAddedDependencies = overridesDependencies.manuallyAddedDependencies;\n if (dependenciesData.coreAspects.length) {\n this.pushToDependencyResolverExtension('coreAspects', dependenciesData.coreAspects, 'set');\n }\n }\n\n private pushToDependencyResolverExtension(dataField: string, data: any, operation: 'add' | 'set' = 'add') {\n const depResolverAspectName = DependencyResolverAspect.id;\n let extExistOnComponent = true;\n let ext = this.component.extensions.findCoreExtension(depResolverAspectName);\n if (!ext) {\n extExistOnComponent = false;\n // Create new deps resolver extension entry to add to the component with data only\n ext = new ExtensionDataEntry(undefined, undefined, depResolverAspectName, undefined, {});\n }\n\n if (!ext.data[dataField]) ext.data[dataField] = [];\n if (operation === 'add') {\n const existing = ext.data[dataField].find((c) => c.packageName === data.packageName);\n if (existing) {\n existing.componentId = data.componentId;\n } else {\n ext.data[dataField].push(data);\n }\n }\n if (operation === 'set') {\n ext.data[dataField] = data;\n }\n if (!extExistOnComponent) {\n this.component.extensions.push(ext);\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","_lodash","_componentIssues","_logger","_lastModified","_config","_constants","_dependencyResolver","_dependenciesData","_dependenciesVersionsResolver","_autoDetectDeps","_applyOverrides","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DependenciesLoader","constructor","component","depsResolver","devFiles","aspectLoader","idStr","id","toString","load","workspace","opts","dependenciesData","debugDependenciesData","getDependenciesData","applyOverrides","ApplyOverrides","allDependencies","allPackagesDependencies","issues","results","setDependenciesDataOnComponent","overridesDependencies","updateDependenciesVersions","autoDetectOverrides","components","resolveExtensionsVersions","loadFromScope","depsDataFromCache","getDependenciesDataFromCacheIfPossible","autoDetectDeps","AutoDetectDeps","cacheResolvedDependencies","cacheProjectAst","shouldSaveInCache","storeInFsCache","consumer","componentFsCache","saveDependenciesDataInCache","serialize","useDependenciesCache","cacheData","getDependenciesDataFromCache","rootDir","componentMap","getComponentDir","filesPaths","files","map","f","path","componentConfigPath","join","COMPONENT_CONFIG_FILE_NAME","push","lastModifiedComponent","getLastModifiedComponentTimestampMs","wasModifiedAfterCache","timestamp","logger","debug","DependenciesData","deserialize","shouldBlockSavingInCache","setDependencies","dependencies","setDevDependencies","devDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","missingFromOverrides","missingPackageDependencies","_isEmpty2","getOrCreate","IssuesClasses","MissingManuallyConfiguredPackages","uniq","isEmpty","manuallyRemovedDependencies","manuallyAddedDependencies","coreAspects","length","pushToDependencyResolverExtension","dataField","operation","depResolverAspectName","DependencyResolverAspect","extExistOnComponent","ext","extensions","findCoreExtension","ExtensionDataEntry","undefined","existing","find","c","packageName","componentId","exports"],"sources":["dependencies-loader.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { uniq } from 'lodash';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { getLastModifiedComponentTimestampMs } from '@teambit/legacy/dist/utils/fs/last-modified';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DependencyLoaderOpts } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';\nimport { Workspace } from '@teambit/workspace';\nimport DependencyResolverAspect, { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { DependenciesData } from './dependencies-data';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\nimport { AutoDetectDeps, DebugDependencies } from './auto-detect-deps';\nimport OverridesDependencies from './overrides-dependencies';\nimport { ApplyOverrides } from './apply-overrides';\n\nexport class DependenciesLoader {\n private idStr: string;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain\n ) {\n this.idStr = this.component.id.toString();\n }\n async load(workspace: Workspace, opts: DependencyLoaderOpts) {\n const { dependenciesData, debugDependenciesData } = await this.getDependenciesData(workspace, opts);\n const applyOverrides = new ApplyOverrides(this.component, this.depsResolver, workspace);\n applyOverrides.allDependencies = dependenciesData.allDependencies;\n applyOverrides.allPackagesDependencies = dependenciesData.allPackagesDependencies;\n if (debugDependenciesData) {\n // if it's coming from the cache, it's empty\n applyOverrides.debugDependenciesData = debugDependenciesData;\n }\n applyOverrides.issues = dependenciesData.issues;\n const results = await applyOverrides.getDependenciesData();\n this.setDependenciesDataOnComponent(results.dependenciesData, results.overridesDependencies);\n updateDependenciesVersions(\n this.depsResolver,\n workspace,\n this.component,\n results.overridesDependencies,\n results.autoDetectOverrides,\n applyOverrides.debugDependenciesData.components,\n opts.resolveExtensionsVersions\n );\n\n return {\n dependenciesData: results.dependenciesData,\n overridesDependencies: results.overridesDependencies,\n debugDependenciesData: applyOverrides.debugDependenciesData,\n };\n }\n\n async loadFromScope(dependenciesData: Partial<DependenciesData>) {\n const applyOverrides = new ApplyOverrides(this.component, this.depsResolver);\n const { allDependencies, allPackagesDependencies, issues } = dependenciesData;\n if (allDependencies) applyOverrides.allDependencies = allDependencies;\n if (allPackagesDependencies) applyOverrides.allPackagesDependencies = allPackagesDependencies;\n if (issues) applyOverrides.issues = issues;\n const results = await applyOverrides.getDependenciesData();\n this.setDependenciesDataOnComponent(results.dependenciesData, results.overridesDependencies);\n }\n\n private async getDependenciesData(\n workspace: Workspace,\n opts: DependencyLoaderOpts\n ): Promise<{\n dependenciesData: DependenciesData;\n debugDependenciesData?: DebugDependencies;\n }> {\n const depsDataFromCache = await this.getDependenciesDataFromCacheIfPossible(workspace, opts);\n if (depsDataFromCache) {\n return { dependenciesData: depsDataFromCache };\n }\n\n const autoDetectDeps = new AutoDetectDeps(\n this.component,\n workspace,\n this.devFiles,\n this.depsResolver,\n this.aspectLoader\n );\n const results = await autoDetectDeps.getDependenciesData(opts.cacheResolvedDependencies, opts.cacheProjectAst);\n if (this.shouldSaveInCache(results.dependenciesData, opts.storeInFsCache)) {\n await workspace.consumer.componentFsCache.saveDependenciesDataInCache(\n this.idStr,\n results.dependenciesData.serialize()\n );\n }\n\n return results;\n }\n\n private async getDependenciesDataFromCacheIfPossible(\n workspace: Workspace,\n opts: DependencyLoaderOpts\n ): Promise<DependenciesData | null> {\n if (!opts.useDependenciesCache) {\n return null;\n }\n const cacheData = await workspace.consumer.componentFsCache.getDependenciesDataFromCache(this.idStr);\n if (!cacheData) {\n return null; // probably the first time, so it wasn't entered to the cache yet.\n }\n const rootDir = this.component.componentMap?.getComponentDir();\n if (!rootDir) {\n // could happen on legacy only and when there is no trackDir, in which case, we can't\n // determine whether or not a component file has been deleted, as a result, we are unable\n // to invalidate the cache in such a case.\n return null;\n }\n const filesPaths = this.component.files.map((f) => f.path);\n const componentConfigPath = path.join(workspace.path, rootDir, COMPONENT_CONFIG_FILE_NAME);\n filesPaths.push(componentConfigPath);\n const lastModifiedComponent = await getLastModifiedComponentTimestampMs(rootDir, filesPaths);\n const wasModifiedAfterCache = lastModifiedComponent > cacheData.timestamp;\n if (wasModifiedAfterCache) {\n return null; // cache is invalid.\n }\n logger.debug(`dependencies-loader, getting the dependencies data for ${this.idStr} from the cache`);\n return DependenciesData.deserialize(cacheData.data);\n }\n\n private shouldSaveInCache(dependenciesData: DependenciesData, storeInFsCache = true) {\n if (!storeInFsCache) return false;\n if (!dependenciesData.issues) return true;\n return !dependenciesData.issues.shouldBlockSavingInCache();\n }\n\n private setDependenciesDataOnComponent(\n dependenciesData: DependenciesData,\n overridesDependencies: OverridesDependencies\n ) {\n this.component.setDependencies(dependenciesData.allDependencies.dependencies);\n this.component.setDevDependencies(dependenciesData.allDependencies.devDependencies);\n this.component.packageDependencies = dependenciesData.allPackagesDependencies.packageDependencies ?? {};\n this.component.devPackageDependencies = dependenciesData.allPackagesDependencies.devPackageDependencies ?? {};\n this.component.peerPackageDependencies = dependenciesData.allPackagesDependencies.peerPackageDependencies ?? {};\n const missingFromOverrides = overridesDependencies.missingPackageDependencies;\n if (!R.isEmpty(missingFromOverrides)) {\n dependenciesData.issues.getOrCreate(IssuesClasses.MissingManuallyConfiguredPackages).data =\n uniq(missingFromOverrides);\n }\n if (!dependenciesData.issues.isEmpty()) this.component.issues = dependenciesData.issues;\n this.component.manuallyRemovedDependencies = overridesDependencies.manuallyRemovedDependencies;\n this.component.manuallyAddedDependencies = overridesDependencies.manuallyAddedDependencies;\n if (dependenciesData.coreAspects.length) {\n this.pushToDependencyResolverExtension('coreAspects', dependenciesData.coreAspects, 'set');\n }\n }\n\n private pushToDependencyResolverExtension(dataField: string, data: any, operation: 'add' | 'set' = 'add') {\n const depResolverAspectName = DependencyResolverAspect.id;\n let extExistOnComponent = true;\n let ext = this.component.extensions.findCoreExtension(depResolverAspectName);\n if (!ext) {\n extExistOnComponent = false;\n // Create new deps resolver extension entry to add to the component with data only\n ext = new ExtensionDataEntry(undefined, undefined, depResolverAspectName, undefined, {});\n }\n\n if (!ext.data[dataField]) ext.data[dataField] = [];\n if (operation === 'add') {\n const existing = ext.data[dataField].find((c) => c.packageName === data.packageName);\n if (existing) {\n existing.componentId = data.componentId;\n } else {\n ext.data[dataField].push(data);\n }\n }\n if (operation === 'set') {\n ext.data[dataField] = data;\n }\n if (!extExistOnComponent) {\n this.component.extensions.push(ext);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.updateDependenciesVersions = updateDependenciesVersions;
|
|
7
|
-
function
|
|
8
|
-
const data = _interopRequireDefault(require("ramda"));
|
|
9
|
-
|
|
7
|
+
function _isEmpty2() {
|
|
8
|
+
const data = _interopRequireDefault(require("ramda/src/isEmpty"));
|
|
9
|
+
_isEmpty2 = function () {
|
|
10
10
|
return data;
|
|
11
11
|
};
|
|
12
12
|
return data;
|
|
@@ -120,7 +120,7 @@ function updateDependenciesVersions(depsResolver, workspace, component, override
|
|
|
120
120
|
}
|
|
121
121
|
function getIdFromComponentConfig(componentId) {
|
|
122
122
|
const dependencies = component.overrides.getComponentDependenciesWithVersion();
|
|
123
|
-
if (
|
|
123
|
+
if ((0, _isEmpty2().default)(dependencies)) return undefined;
|
|
124
124
|
const dependency = Object.keys(dependencies).find(idStr => componentId.toStringWithoutVersion() === idStr);
|
|
125
125
|
if (!dependency) return undefined;
|
|
126
126
|
return componentId.changeVersion(dependencies[dependency]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ramda","data","_interopRequireDefault","require","_logger","_constants","_autoDetectDeps","obj","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","updateDependencies","dependencies","devDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","isPkgInWorkspacePolicies","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","logger","debug","version","toString","name","versionResolvedFrom","replace","undefined","updateDependency","dependency","packageName","resolvedVersion","changeVersion","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","overrides","getComponentDependenciesWithVersion","R","isEmpty","Object","keys","idStr","toStringWithoutVersion","pkgName","getDependenciesToAddManually","found","validVersion","getValidVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import R from 'ramda';\nimport { ComponentID } from '@teambit/component-id';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport { Workspace } from '@teambit/workspace';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport Dependencies from '@teambit/legacy/dist/consumer/component/dependencies/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport Dependency from '@teambit/legacy/dist/consumer/component/dependencies/dependency';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DebugComponentsDependency, getValidVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies';\n\nexport function updateDependenciesVersions(\n depsResolver: DependencyResolverMain,\n workspace: Workspace,\n component: Component,\n overridesDependencies: OverridesDependencies,\n autoDetectOverrides?: Record<string, any>,\n debugDependencies?: DebugComponentsDependency[],\n updateExtensionsVersions = true\n) {\n const consumer: Consumer = workspace.consumer;\n const autoDetectConfigMerge = workspace.getAutoDetectConfigMerge(component.id) || {};\n\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n if (updateExtensionsVersions) {\n updateExtensions(component.extensions);\n }\n\n /**\n * the `pkg` can be missing only in two scenarios:\n * 1: the dependency is using relative-paths, not the module path. (which bit-status shows an error and suggests\n * running bit link --rewire).\n * 2: this gets called for extension-id.\n */\n function resolveVersion(id: ComponentID, depType: DepType, pkg?: string): string | undefined {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n // later, change this to return the version from the overrides.\n const getFromOverrides = () => resolveFromOverrides(id, depType, pkg);\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n // the id we get from the auto-detect is coming from the package.json of the dependency.\n const getFromDepPackageJson = () => (id.hasVersion() ? id : null);\n // In case it's resolved from the node_modules, and it's also in the ws policy or variants,\n // use the resolved version from the node_modules / package folder\n const getFromDepPackageJsonDueToWorkspacePolicy = () =>\n pkg && id.hasVersion() && isPkgInWorkspacePolicies(pkg) ? id : null;\n // merge config here is only auto-detected ones. their priority is less then the ws policy\n // otherwise, imagine you merge a lane, you don't like the dependency you got from the other lane, you run\n // bit-install to change it, but it won't do anything.\n const getFromMergeConfig = () => (pkg ? resolveFromMergeConfig(id, pkg) : null);\n const getFromDepPackageJsonDueToAutoDetectOverrides = () => (pkg && isPkgInAutoDetectOverrides(pkg) ? id : null);\n // If there is a version in the node_modules/package folder, but it's not in the ws policy,\n // prefer the version from the model over the version from the node_modules\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const getFromModel = () => getIdFromModelDeps(component.componentFromModel!, id);\n\n const strategies = [\n getFromComponentConfig,\n getFromOverrides,\n getFromBitMap,\n getFromDepPackageJsonDueToWorkspacePolicy,\n getFromMergeConfig,\n getFromDepPackageJsonDueToAutoDetectOverrides,\n getFromModel,\n getFromDepPackageJson,\n ];\n\n for (const strategy of strategies) {\n const strategyId = strategy();\n if (strategyId) {\n logger.debug(\n `found dependency version ${strategyId.version} for ${id.toString()} in strategy ${strategy.name}`\n );\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = strategyId.version;\n }\n\n return strategyId.version;\n }\n }\n return undefined;\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const resolvedVersion = resolveVersion(id, depType, packageName);\n if (resolvedVersion) {\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n }\n }\n function updateDependencies(dependencies: Dependencies, depType: DepType) {\n dependencies.get().forEach((dep) => updateDependency(dep, depType));\n }\n\n function updateExtension(extension: ExtensionDataEntry) {\n if (extension.extensionId) {\n const resolvedVersion = resolveVersion(extension.extensionId, 'devDependencies');\n if (resolvedVersion) {\n extension.extensionId = extension.extensionId.changeVersion(resolvedVersion);\n }\n }\n }\n function updateExtensions(extensions: ExtensionDataList) {\n extensions.forEach(updateExtension);\n }\n\n function getIdFromModelDeps(componentFromModel: Component, componentId: ComponentID): ComponentID | null {\n if (!componentFromModel) return null;\n const dependency = componentFromModel.getAllDependenciesIds().searchWithoutVersion(componentId);\n if (!dependency) return null;\n return dependency;\n }\n\n function getIdFromBitMap(componentId: ComponentID): ComponentID | null | undefined {\n const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);\n return existingIds.length === 1 ? existingIds[0] : undefined;\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (R.isEmpty(dependencies)) return undefined;\n const dependency = Object.keys(dependencies).find((idStr) => componentId.toStringWithoutVersion() === idStr);\n if (!dependency) return undefined;\n return componentId.changeVersion(dependencies[dependency]);\n }\n\n function resolveFromOverrides(id: ComponentID, depType: DepType, pkgName?: string): ComponentID | undefined {\n if (!pkgName) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const validVersion = getValidVersion(found);\n return validVersion ? id.changeVersion(validVersion) : undefined;\n }\n\n function isPkgInAutoDetectOverrides(pkgName: string): boolean {\n return DEPENDENCIES_FIELDS.some(\n (depField) => autoDetectOverrides?.[depField] && autoDetectOverrides[depField][pkgName]\n );\n }\n\n function isPkgInWorkspacePolicies(pkgName: string) {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string) {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n foundVersion = foundVersion ? getValidVersion(foundVersion) : null;\n }\n });\n return foundVersion ? id.changeVersion(foundVersion) : undefined;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_logger","data","_interopRequireDefault","require","_constants","_autoDetectDeps","obj","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","updateDependencies","dependencies","devDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","isPkgInWorkspacePolicies","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","logger","debug","version","toString","name","versionResolvedFrom","replace","undefined","updateDependency","dependency","packageName","resolvedVersion","changeVersion","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","overrides","getComponentDependenciesWithVersion","_isEmpty2","Object","keys","idStr","toStringWithoutVersion","pkgName","getDependenciesToAddManually","found","validVersion","getValidVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import R from 'ramda';\nimport { ComponentID } from '@teambit/component-id';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport { Workspace } from '@teambit/workspace';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport Dependencies from '@teambit/legacy/dist/consumer/component/dependencies/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport Dependency from '@teambit/legacy/dist/consumer/component/dependencies/dependency';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DebugComponentsDependency, getValidVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies';\n\nexport function updateDependenciesVersions(\n depsResolver: DependencyResolverMain,\n workspace: Workspace,\n component: Component,\n overridesDependencies: OverridesDependencies,\n autoDetectOverrides?: Record<string, any>,\n debugDependencies?: DebugComponentsDependency[],\n updateExtensionsVersions = true\n) {\n const consumer: Consumer = workspace.consumer;\n const autoDetectConfigMerge = workspace.getAutoDetectConfigMerge(component.id) || {};\n\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n if (updateExtensionsVersions) {\n updateExtensions(component.extensions);\n }\n\n /**\n * the `pkg` can be missing only in two scenarios:\n * 1: the dependency is using relative-paths, not the module path. (which bit-status shows an error and suggests\n * running bit link --rewire).\n * 2: this gets called for extension-id.\n */\n function resolveVersion(id: ComponentID, depType: DepType, pkg?: string): string | undefined {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n // later, change this to return the version from the overrides.\n const getFromOverrides = () => resolveFromOverrides(id, depType, pkg);\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n // the id we get from the auto-detect is coming from the package.json of the dependency.\n const getFromDepPackageJson = () => (id.hasVersion() ? id : null);\n // In case it's resolved from the node_modules, and it's also in the ws policy or variants,\n // use the resolved version from the node_modules / package folder\n const getFromDepPackageJsonDueToWorkspacePolicy = () =>\n pkg && id.hasVersion() && isPkgInWorkspacePolicies(pkg) ? id : null;\n // merge config here is only auto-detected ones. their priority is less then the ws policy\n // otherwise, imagine you merge a lane, you don't like the dependency you got from the other lane, you run\n // bit-install to change it, but it won't do anything.\n const getFromMergeConfig = () => (pkg ? resolveFromMergeConfig(id, pkg) : null);\n const getFromDepPackageJsonDueToAutoDetectOverrides = () => (pkg && isPkgInAutoDetectOverrides(pkg) ? id : null);\n // If there is a version in the node_modules/package folder, but it's not in the ws policy,\n // prefer the version from the model over the version from the node_modules\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const getFromModel = () => getIdFromModelDeps(component.componentFromModel!, id);\n\n const strategies = [\n getFromComponentConfig,\n getFromOverrides,\n getFromBitMap,\n getFromDepPackageJsonDueToWorkspacePolicy,\n getFromMergeConfig,\n getFromDepPackageJsonDueToAutoDetectOverrides,\n getFromModel,\n getFromDepPackageJson,\n ];\n\n for (const strategy of strategies) {\n const strategyId = strategy();\n if (strategyId) {\n logger.debug(\n `found dependency version ${strategyId.version} for ${id.toString()} in strategy ${strategy.name}`\n );\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = strategyId.version;\n }\n\n return strategyId.version;\n }\n }\n return undefined;\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const resolvedVersion = resolveVersion(id, depType, packageName);\n if (resolvedVersion) {\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n }\n }\n function updateDependencies(dependencies: Dependencies, depType: DepType) {\n dependencies.get().forEach((dep) => updateDependency(dep, depType));\n }\n\n function updateExtension(extension: ExtensionDataEntry) {\n if (extension.extensionId) {\n const resolvedVersion = resolveVersion(extension.extensionId, 'devDependencies');\n if (resolvedVersion) {\n extension.extensionId = extension.extensionId.changeVersion(resolvedVersion);\n }\n }\n }\n function updateExtensions(extensions: ExtensionDataList) {\n extensions.forEach(updateExtension);\n }\n\n function getIdFromModelDeps(componentFromModel: Component, componentId: ComponentID): ComponentID | null {\n if (!componentFromModel) return null;\n const dependency = componentFromModel.getAllDependenciesIds().searchWithoutVersion(componentId);\n if (!dependency) return null;\n return dependency;\n }\n\n function getIdFromBitMap(componentId: ComponentID): ComponentID | null | undefined {\n const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);\n return existingIds.length === 1 ? existingIds[0] : undefined;\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (R.isEmpty(dependencies)) return undefined;\n const dependency = Object.keys(dependencies).find((idStr) => componentId.toStringWithoutVersion() === idStr);\n if (!dependency) return undefined;\n return componentId.changeVersion(dependencies[dependency]);\n }\n\n function resolveFromOverrides(id: ComponentID, depType: DepType, pkgName?: string): ComponentID | undefined {\n if (!pkgName) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const validVersion = getValidVersion(found);\n return validVersion ? id.changeVersion(validVersion) : undefined;\n }\n\n function isPkgInAutoDetectOverrides(pkgName: string): boolean {\n return DEPENDENCIES_FIELDS.some(\n (depField) => autoDetectOverrides?.[depField] && autoDetectOverrides[depField][pkgName]\n );\n }\n\n function isPkgInWorkspacePolicies(pkgName: string) {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string) {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n foundVersion = foundVersion ? getValidVersion(foundVersion) : null;\n }\n });\n return foundVersion ? id.changeVersion(foundVersion) : undefined;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependencies",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.129",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependencies",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "dependencies",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.129"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"archy": "1.0.0",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"@teambit/harmony": "0.4.6",
|
|
22
22
|
"@teambit/component-id": "1.2.0",
|
|
23
23
|
"@teambit/component-version": "1.0.3",
|
|
24
|
-
"@teambit/cli": "0.0.
|
|
25
|
-
"@teambit/aspect-loader": "1.0.
|
|
26
|
-
"@teambit/dependency-resolver": "1.0.
|
|
27
|
-
"@teambit/dev-files": "1.0.
|
|
28
|
-
"@teambit/workspace": "1.0.
|
|
24
|
+
"@teambit/cli": "0.0.846",
|
|
25
|
+
"@teambit/aspect-loader": "1.0.129",
|
|
26
|
+
"@teambit/dependency-resolver": "1.0.129",
|
|
27
|
+
"@teambit/dev-files": "1.0.129",
|
|
28
|
+
"@teambit/workspace": "1.0.129",
|
|
29
29
|
"@teambit/component-issues": "0.0.140"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@types/mocha": "9.1.0",
|
|
39
39
|
"@types/jest": "^29.2.2",
|
|
40
40
|
"@types/testing-library__jest-dom": "^5.9.5",
|
|
41
|
-
"@teambit/harmony.envs.core-aspect-env": "0.0.
|
|
41
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.19"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@teambit/legacy": "1.0.624"
|
|
File without changes
|