@teambit/dependencies 1.0.1232 → 1.0.1234

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.
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ function _chai() {
4
+ const data = require("chai");
5
+ _chai = function () {
6
+ return data;
7
+ };
8
+ return data;
9
+ }
10
+ function _componentId() {
11
+ const data = require("@teambit/component-id");
12
+ _componentId = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function _legacy() {
18
+ const data = require("@teambit/legacy.consumer-component");
19
+ _legacy = function () {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _legacy2() {
25
+ const data = require("@teambit/legacy.consumer-config");
26
+ _legacy2 = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _applyOverrides() {
32
+ const data = require("./apply-overrides");
33
+ _applyOverrides = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ const noopLogger = {
39
+ debug() {},
40
+ warn() {},
41
+ trace() {}
42
+ };
43
+ function createApplyOverrides(forcedDeps) {
44
+ const id = _componentId().ComponentID.fromString('my-scope/my-env@0.0.1');
45
+ const component = {
46
+ id,
47
+ componentId: id,
48
+ issues: undefined,
49
+ overrides: new (_legacy2().ComponentOverrides)(forcedDeps)
50
+ };
51
+ // no workspace, as in a bare scope
52
+ return new (_applyOverrides().ApplyOverrides)(component, {}, noopLogger);
53
+ }
54
+ describe('ApplyOverrides', () => {
55
+ describe('outside a workspace, a forced dependency that is a component dependency in another field', () => {
56
+ // e.g. a peer that an env sets for itself (in env.jsonc) is a runtime dependency of the env. the env of the env
57
+ // may set it as a peer, which moves the component dependency to the peers before the forced deps are added.
58
+ const peerDep = new (_legacy().Dependency)(_componentId().ComponentID.fromString('my-scope/ui/button@1.0.0'), [], '@my-scope/ui.button', '^1.0.0');
59
+ let result;
60
+ before(() => {
61
+ const applyOverrides = createApplyOverrides({
62
+ dependencies: {
63
+ '@my-scope/ui.button': '1.0.0'
64
+ }
65
+ });
66
+ applyOverrides.allDependencies = {
67
+ dependencies: [],
68
+ devDependencies: [],
69
+ peerDependencies: [peerDep]
70
+ };
71
+ result = applyOverrides.getDependenciesToAddManually(undefined, applyOverrides.allDependencies);
72
+ });
73
+ it('should resolve the package to the component, as the node_modules of a workspace would', () => {
74
+ (0, _chai().expect)(result?.components.dependencies).to.have.lengthOf(1);
75
+ (0, _chai().expect)(result?.components.dependencies[0].componentId.toString()).to.equal('my-scope/ui/button@1.0.0');
76
+ (0, _chai().expect)(result?.packages).to.deep.equal({});
77
+ });
78
+ it('should not set a version range on a runtime component dependency', () => {
79
+ (0, _chai().expect)(result?.components.dependencies[0].versionRange).to.be.undefined;
80
+ });
81
+ });
82
+ });
83
+
84
+ //# sourceMappingURL=apply-overrides.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_chai","data","require","_componentId","_legacy","_legacy2","_applyOverrides","noopLogger","debug","warn","trace","createApplyOverrides","forcedDeps","id","ComponentID","fromString","component","componentId","issues","undefined","overrides","ComponentOverrides","ApplyOverrides","describe","peerDep","Dependency","result","before","applyOverrides","dependencies","allDependencies","devDependencies","peerDependencies","getDependenciesToAddManually","it","expect","components","to","have","lengthOf","toString","equal","packages","deep","versionRange","be"],"sources":["apply-overrides.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID } from '@teambit/component-id';\nimport { Dependency } from '@teambit/legacy.consumer-component';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport { ApplyOverrides } from './apply-overrides';\n\nconst noopLogger = { debug() {}, warn() {}, trace() {} } as unknown as Logger;\n\nfunction createApplyOverrides(forcedDeps: Record<string, Record<string, string>>) {\n const id = ComponentID.fromString('my-scope/my-env@0.0.1');\n const component = { id, componentId: id, issues: undefined, overrides: new ComponentOverrides(forcedDeps) };\n // no workspace, as in a bare scope\n return new ApplyOverrides(component as any, {} as DependencyResolverMain, noopLogger);\n}\n\ndescribe('ApplyOverrides', () => {\n describe('outside a workspace, a forced dependency that is a component dependency in another field', () => {\n // e.g. a peer that an env sets for itself (in env.jsonc) is a runtime dependency of the env. the env of the env\n // may set it as a peer, which moves the component dependency to the peers before the forced deps are added.\n const peerDep = new Dependency(\n ComponentID.fromString('my-scope/ui/button@1.0.0'),\n [],\n '@my-scope/ui.button',\n '^1.0.0'\n );\n let result: ReturnType<ApplyOverrides['getDependenciesToAddManually']>;\n before(() => {\n const applyOverrides = createApplyOverrides({ dependencies: { '@my-scope/ui.button': '1.0.0' } });\n applyOverrides.allDependencies = { dependencies: [], devDependencies: [], peerDependencies: [peerDep] };\n result = applyOverrides.getDependenciesToAddManually(undefined, applyOverrides.allDependencies);\n });\n it('should resolve the package to the component, as the node_modules of a workspace would', () => {\n expect(result?.components.dependencies).to.have.lengthOf(1);\n expect(result?.components.dependencies[0].componentId.toString()).to.equal('my-scope/ui/button@1.0.0');\n expect(result?.packages).to.deep.equal({});\n });\n it('should not set a version range on a runtime component dependency', () => {\n expect(result?.components.dependencies[0].versionRange).to.be.undefined;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
4
4
  import type { DevFilesMain } from '@teambit/dev-files';
5
5
  import type { Logger } from '@teambit/logger';
6
6
  import type { AspectLoaderMain } from '@teambit/aspect-loader';
7
+ import type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';
7
8
  import { DependenciesData } from './dependencies-data';
8
9
  import type { DebugDependencies } from './auto-detect-deps';
9
10
  import type OverridesDependencies from './overrides-dependencies';
@@ -20,7 +21,11 @@ export declare class DependenciesLoader {
20
21
  overridesDependencies: OverridesDependencies;
21
22
  debugDependenciesData: DebugDependencies;
22
23
  }>;
23
- loadFromScope(dependenciesData: Partial<DependenciesData>): Promise<void>;
24
+ /**
25
+ * `autoDetectOverrides` are the non-force policy entries (versions for dependencies that were detected). a workspace
26
+ * calculates them on its own, a scope gets them from the caller.
27
+ */
28
+ loadFromScope(dependenciesData: Partial<DependenciesData>, autoDetectOverrides?: DependenciesOverridesData): Promise<void>;
24
29
  private getDependenciesData;
25
30
  private getEmptyDependenciesData;
26
31
  private getDependenciesDataFromCacheIfPossible;
@@ -124,7 +124,12 @@ class DependenciesLoader {
124
124
  debugDependenciesData: applyOverrides.debugDependenciesData
125
125
  };
126
126
  }
127
- async loadFromScope(dependenciesData) {
127
+
128
+ /**
129
+ * `autoDetectOverrides` are the non-force policy entries (versions for dependencies that were detected). a workspace
130
+ * calculates them on its own, a scope gets them from the caller.
131
+ */
132
+ async loadFromScope(dependenciesData, autoDetectOverrides) {
128
133
  const applyOverrides = new (_applyOverrides().ApplyOverrides)(this.component, this.depsResolver, this.logger);
129
134
  const {
130
135
  allDependencies,
@@ -134,6 +139,7 @@ class DependenciesLoader {
134
139
  if (allDependencies) applyOverrides.allDependencies = allDependencies;
135
140
  if (allPackagesDependencies) applyOverrides.allPackagesDependencies = allPackagesDependencies;
136
141
  if (issues) applyOverrides.issues = issues;
142
+ if (autoDetectOverrides) applyOverrides.autoDetectOverrides = autoDetectOverrides;
137
143
  const results = await applyOverrides.getDependenciesData();
138
144
  this.setDependenciesDataOnComponent(results.dependenciesData, results.overridesDependencies);
139
145
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_lodash","_componentIssues","_toolboxFs","_legacy","_legacy2","_legacy3","_dependencyResolver","_dependenciesData","_dependenciesVersionsResolver","_autoDetectDeps","_applyOverrides","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesLoader","constructor","component","depsResolver","devFiles","aspectLoader","logger","idStr","id","toString","load","workspace","opts","dependenciesData","debugDependenciesData","getDependenciesData","applyOverrides","ApplyOverrides","allDependencies","allPackagesDependencies","issues","results","setDependenciesDataOnComponent","overridesDependencies","updateDependenciesVersions","autoDetectOverrides","components","resolveExtensionsVersions","loadFromScope","componentMap","rootDir","WORKSPACE_ROOT_DIR","getEmptyDependenciesData","depsDataFromCache","getDependenciesDataFromCacheIfPossible","autoDetectDeps","AutoDetectDeps","cacheResolvedDependencies","cacheProjectAst","shouldSaveInCache","storeInFsCache","consumer","componentFsCache","saveDependenciesDataInCache","serialize","DependenciesData","dependencies","devDependencies","peerDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","useDependenciesCache","cacheData","getDependenciesDataFromCache","getComponentDir","filesPaths","files","map","f","path","componentConfigPath","join","COMPONENT_CONFIG_FILE_NAME","push","lastModifiedComponent","getLastModifiedComponentTimestampMs","wasModifiedAfterCache","timestamp","envJsonFile","find","file","relative","lastModifiedEnvJsonc","getLastModifiedPathsTimestampMs","wasEnvJsonModifiedAfterCache","debug","deleteAllDependenciesDataCache","trace","deserialize","shouldBlockSavingInCache","setDependencies","setDevDependencies","setPeerDependencies","missingFromOverrides","missingPackageDependencies","length","getOrCreate","IssuesClasses","MissingManuallyConfiguredPackages","uniq","isEmpty","manuallyRemovedDependencies","manuallyAddedDependencies","coreAspects","pushToDependencyResolverExtension","dataField","operation","depResolverAspectName","DependencyResolverAspect","extExistOnComponent","ext","extensions","findCoreExtension","ExtensionDataEntry","undefined","existing","c","packageName","componentId","exports"],"sources":["dependencies-loader.ts"],"sourcesContent":["import path from 'path';\nimport { uniq } from 'lodash';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n getLastModifiedComponentTimestampMs,\n getLastModifiedPathsTimestampMs,\n} from '@teambit/toolbox.fs.last-modified';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { DependencyLoaderOpts, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy.constants';\nimport type { Workspace } from '@teambit/workspace';\nimport { WORKSPACE_ROOT_DIR } from '@teambit/legacy.bit-map';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport type { Logger } from '@teambit/logger';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { DependenciesData } from './dependencies-data';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\nimport type { DebugDependencies } from './auto-detect-deps';\nimport { AutoDetectDeps } from './auto-detect-deps';\nimport type 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 private logger: Logger\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, this.logger, 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 await 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, this.logger);\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 // the workspace-root component (rootDir \".\") is the workspace itself: its config files, lockfile\n // and repo scripts. it is never installed, linked or built, so nothing consumes its dependency\n // list, while its files are free to require anything, relative paths into the components nested\n // in it included. parsing them would only produce issues that block the snap, and the\n // missing-packages ones could never be fixed - \"bit install\" leaves its dir out of the component\n // manifests. explicit overrides, such as \"bit deps set\", still apply.\n if (this.component.componentMap?.rootDir === WORKSPACE_ROOT_DIR) {\n return { dependenciesData: this.getEmptyDependenciesData() };\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 getEmptyDependenciesData(): DependenciesData {\n return new DependenciesData(\n { dependencies: [], devDependencies: [], peerDependencies: [] },\n { packageDependencies: {}, devPackageDependencies: {}, peerPackageDependencies: {} },\n this.component.issues,\n []\n );\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\n if (wasModifiedAfterCache) {\n // in case the env.jsonc was modified, all components using this env should be invalidated as well.\n // we don't have a fast way to check which are those components so we clear them all.\n // in terms of performance, it's not that bad because this file is not modified often.\n const envJsonFile = this.component.files.find((file) => file.relative === 'env.jsonc');\n if (envJsonFile) {\n const lastModifiedEnvJsonc = await getLastModifiedPathsTimestampMs([envJsonFile.path]);\n const wasEnvJsonModifiedAfterCache = lastModifiedEnvJsonc > cacheData.timestamp;\n if (wasEnvJsonModifiedAfterCache) {\n this.logger.debug(\n `dependencies-loader, the env ${this.idStr} was modified after the cache was created, clearing all deps caches`\n );\n await workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n }\n return null; // cache is invalid.\n }\n this.logger.trace(`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.setPeerDependencies(dependenciesData.allDependencies.peerDependencies);\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 (missingFromOverrides.length) {\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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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_lodash","_componentIssues","_toolboxFs","_legacy","_legacy2","_legacy3","_dependencyResolver","_dependenciesData","_dependenciesVersionsResolver","_autoDetectDeps","_applyOverrides","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesLoader","constructor","component","depsResolver","devFiles","aspectLoader","logger","idStr","id","toString","load","workspace","opts","dependenciesData","debugDependenciesData","getDependenciesData","applyOverrides","ApplyOverrides","allDependencies","allPackagesDependencies","issues","results","setDependenciesDataOnComponent","overridesDependencies","updateDependenciesVersions","autoDetectOverrides","components","resolveExtensionsVersions","loadFromScope","componentMap","rootDir","WORKSPACE_ROOT_DIR","getEmptyDependenciesData","depsDataFromCache","getDependenciesDataFromCacheIfPossible","autoDetectDeps","AutoDetectDeps","cacheResolvedDependencies","cacheProjectAst","shouldSaveInCache","storeInFsCache","consumer","componentFsCache","saveDependenciesDataInCache","serialize","DependenciesData","dependencies","devDependencies","peerDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","useDependenciesCache","cacheData","getDependenciesDataFromCache","getComponentDir","filesPaths","files","map","f","path","componentConfigPath","join","COMPONENT_CONFIG_FILE_NAME","push","lastModifiedComponent","getLastModifiedComponentTimestampMs","wasModifiedAfterCache","timestamp","envJsonFile","find","file","relative","lastModifiedEnvJsonc","getLastModifiedPathsTimestampMs","wasEnvJsonModifiedAfterCache","debug","deleteAllDependenciesDataCache","trace","deserialize","shouldBlockSavingInCache","setDependencies","setDevDependencies","setPeerDependencies","missingFromOverrides","missingPackageDependencies","length","getOrCreate","IssuesClasses","MissingManuallyConfiguredPackages","uniq","isEmpty","manuallyRemovedDependencies","manuallyAddedDependencies","coreAspects","pushToDependencyResolverExtension","dataField","operation","depResolverAspectName","DependencyResolverAspect","extExistOnComponent","ext","extensions","findCoreExtension","ExtensionDataEntry","undefined","existing","c","packageName","componentId","exports"],"sources":["dependencies-loader.ts"],"sourcesContent":["import path from 'path';\nimport { uniq } from 'lodash';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n getLastModifiedComponentTimestampMs,\n getLastModifiedPathsTimestampMs,\n} from '@teambit/toolbox.fs.last-modified';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { DependencyLoaderOpts, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy.constants';\nimport type { Workspace } from '@teambit/workspace';\nimport { WORKSPACE_ROOT_DIR } from '@teambit/legacy.bit-map';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport type { Logger } from '@teambit/logger';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\nimport { DependenciesData } from './dependencies-data';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\nimport type { DebugDependencies } from './auto-detect-deps';\nimport { AutoDetectDeps } from './auto-detect-deps';\nimport type 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 private logger: Logger\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, this.logger, 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 await 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 /**\n * `autoDetectOverrides` are the non-force policy entries (versions for dependencies that were detected). a workspace\n * calculates them on its own, a scope gets them from the caller.\n */\n async loadFromScope(dependenciesData: Partial<DependenciesData>, autoDetectOverrides?: DependenciesOverridesData) {\n const applyOverrides = new ApplyOverrides(this.component, this.depsResolver, this.logger);\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 if (autoDetectOverrides) applyOverrides.autoDetectOverrides = autoDetectOverrides;\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 // the workspace-root component (rootDir \".\") is the workspace itself: its config files, lockfile\n // and repo scripts. it is never installed, linked or built, so nothing consumes its dependency\n // list, while its files are free to require anything, relative paths into the components nested\n // in it included. parsing them would only produce issues that block the snap, and the\n // missing-packages ones could never be fixed - \"bit install\" leaves its dir out of the component\n // manifests. explicit overrides, such as \"bit deps set\", still apply.\n if (this.component.componentMap?.rootDir === WORKSPACE_ROOT_DIR) {\n return { dependenciesData: this.getEmptyDependenciesData() };\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 getEmptyDependenciesData(): DependenciesData {\n return new DependenciesData(\n { dependencies: [], devDependencies: [], peerDependencies: [] },\n { packageDependencies: {}, devPackageDependencies: {}, peerPackageDependencies: {} },\n this.component.issues,\n []\n );\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\n if (wasModifiedAfterCache) {\n // in case the env.jsonc was modified, all components using this env should be invalidated as well.\n // we don't have a fast way to check which are those components so we clear them all.\n // in terms of performance, it's not that bad because this file is not modified often.\n const envJsonFile = this.component.files.find((file) => file.relative === 'env.jsonc');\n if (envJsonFile) {\n const lastModifiedEnvJsonc = await getLastModifiedPathsTimestampMs([envJsonFile.path]);\n const wasEnvJsonModifiedAfterCache = lastModifiedEnvJsonc > cacheData.timestamp;\n if (wasEnvJsonModifiedAfterCache) {\n this.logger.debug(\n `dependencies-loader, the env ${this.idStr} was modified after the cache was created, clearing all deps caches`\n );\n await workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n }\n return null; // cache is invalid.\n }\n this.logger.trace(`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.setPeerDependencies(dependenciesData.allDependencies.peerDependencies);\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 (missingFromOverrides.length) {\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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","ignoreList":[]}
@@ -3,6 +3,7 @@ import type { ComponentID } from '@teambit/component-id';
3
3
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
4
4
  import type { Workspace } from '@teambit/workspace';
5
5
  import type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';
6
+ import type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';
6
7
  import type { DevFilesMain } from '@teambit/dev-files';
7
8
  import type { ComponentIdGraph, GraphMain } from '@teambit/graph';
8
9
  import type { AspectLoaderMain } from '@teambit/aspect-loader';
@@ -113,7 +114,7 @@ export declare class DependenciesMain {
113
114
  * are calculated here.
114
115
  * eventually all these dependencies are added to the ConsumerComponent object.
115
116
  */
116
- loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>): Promise<void>;
117
+ loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>, autoDetectOverrides?: DependenciesOverridesData): Promise<void>;
117
118
  debugDependencies(id: string): Promise<DependenciesResultsDebug>;
118
119
  /**
119
120
  * helps determine what snap/tag changed a specific dependency.
@@ -408,9 +408,9 @@ class DependenciesMain {
408
408
  * are calculated here.
409
409
  * eventually all these dependencies are added to the ConsumerComponent object.
410
410
  */
411
- async loadDependenciesFromScope(component, dependenciesData) {
411
+ async loadDependenciesFromScope(component, dependenciesData, autoDetectOverrides) {
412
412
  const dependenciesLoader = new (_dependenciesLoader().DependenciesLoader)(component, this.dependencyResolver, this.devFiles, this.aspectLoader, this.logger);
413
- return dependenciesLoader.loadFromScope(dependenciesData);
413
+ return dependenciesLoader.loadFromScope(dependenciesData, autoDetectOverrides);
414
414
  }
415
415
  async debugDependencies(id) {
416
416
  // @todo: supports this on bare-scope.