@teambit/dependencies 1.0.1233 → 1.0.1235
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/dependencies-loader/apply-overrides.spec.ts +85 -0
- package/dependencies-loader/apply-overrides.ts +51 -15
- package/dependencies-loader/dependencies-loader.ts +7 -1
- package/dependencies-loader/dependencies-versions-resolver.ts +2 -1
- package/dependencies-loader/overrides-dependencies.ts +5 -3
- package/dist/dependencies-loader/apply-overrides.d.ts +5 -1
- package/dist/dependencies-loader/apply-overrides.js +66 -11
- package/dist/dependencies-loader/apply-overrides.js.map +1 -1
- package/dist/dependencies-loader/apply-overrides.spec.d.ts +1 -0
- package/dist/dependencies-loader/apply-overrides.spec.js +143 -0
- package/dist/dependencies-loader/apply-overrides.spec.js.map +1 -0
- package/dist/dependencies-loader/dependencies-loader.d.ts +6 -1
- package/dist/dependencies-loader/dependencies-loader.js +7 -1
- package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.js +8 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/dist/dependencies-loader/overrides-dependencies.js +10 -2
- package/dist/dependencies-loader/overrides-dependencies.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +2 -1
- package/dist/dependencies.main.runtime.js +2 -2
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/package.json +25 -25
- /package/dist/{preview-1792442853086.js → preview-1792532220087.js} +0 -0
|
@@ -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":[]}
|
|
@@ -39,6 +39,13 @@ function _lodash() {
|
|
|
39
39
|
};
|
|
40
40
|
return data;
|
|
41
41
|
}
|
|
42
|
+
function _dependencyResolver() {
|
|
43
|
+
const data = require("@teambit/dependency-resolver");
|
|
44
|
+
_dependencyResolver = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
42
49
|
function _legacy2() {
|
|
43
50
|
const data = require("@teambit/legacy.constants");
|
|
44
51
|
_legacy2 = function () {
|
|
@@ -145,7 +152,7 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
|
|
|
145
152
|
if (range) dependency.versionRange = range;else if (resolvedVersion !== 'latest' && (componentRangePrefix === '^' || componentRangePrefix === '~') && !(0, _componentVersion().isSnap)(resolvedVersion)) {
|
|
146
153
|
dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;
|
|
147
154
|
}
|
|
148
|
-
} else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange
|
|
155
|
+
} else if (dependency.versionRange && depType !== 'peerDependencies' && !(0, _dependencyResolver().isPlusVersion)(dependency.versionRange)) {
|
|
149
156
|
dependency.versionRange = undefined;
|
|
150
157
|
}
|
|
151
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_legacy2","_autoDetectDeps","e","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","currentLane","getCurrentLaneObject","componentRangePrefix","calcComponentRangePrefixByConsumerComponent","supportComponentRange","dependenciesWithVersionFromConfig","updateDependencies","dependencies","devDependencies","peerDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromUpdateDependentsOnLane","getIdFromUpdateDependentsOnLane","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","fromPolicy","pkgVersionFromWorkspacePolicies","compId","range","semver","validRange","undefined","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","version","ComponentID","logger","trace","toString","name","versionResolvedFrom","replace","fromConfig","updateDependency","dependency","packageName","resolvedVersion","push","toStringWithoutVersion","changeVersion","versionRange","isSnap","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","updateDependents","overrides","getComponentDependenciesWithVersion","isEmpty","Object","keys","idStr","pkgName","envOwnPkgNames","has","getDependenciesToAddManually","found","validVersion","getValidComponentVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field","foundValidVersion"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Workspace } from '@teambit/workspace';\nimport { logger } from '@teambit/legacy.logger';\nimport { isEmpty } from 'lodash';\nimport type { Dependency, Dependencies, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport type { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';\nimport type OverridesDependencies from './overrides-dependencies';\nimport type { DebugComponentsDependency } from './auto-detect-deps';\nimport { getValidComponentVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport async 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 const currentLane = await workspace.getCurrentLaneObject();\n const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);\n const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';\n const dependenciesWithVersionFromConfig: string[] = [];\n component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n updateDependencies(component.peerDependencies, 'peerDependencies');\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(\n id: ComponentID,\n depType: DepType,\n pkg?: string\n ): { version?: string; range?: string; fromConfig?: boolean } {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n const getFromUpdateDependentsOnLane = () => getIdFromUpdateDependentsOnLane(id);\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 if (!pkg || !id.hasVersion()) return null;\n const fromPolicy = pkgVersionFromWorkspacePolicies(pkg);\n if (!fromPolicy) return null;\n return {\n compId: id,\n range: supportComponentRange && semver.validRange(fromPolicy) ? fromPolicy : undefined,\n };\n };\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 getFromUpdateDependentsOnLane,\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) continue;\n const version = strategyId instanceof ComponentID ? strategyId.version : strategyId.compId?.version;\n if (!version) continue;\n logger.trace(`found dependency version ${version} for ${id.toString()} in strategy ${strategy.name}`);\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = version;\n }\n\n const fromConfig = strategy === getFromComponentConfig || strategy === getFromOverrides;\n return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range, fromConfig };\n }\n return {};\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const { version: resolvedVersion, range, fromConfig } = resolveVersion(id, depType, packageName);\n if (!resolvedVersion) {\n return;\n }\n if (fromConfig) dependenciesWithVersionFromConfig.push(id.toStringWithoutVersion());\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n if (supportComponentRange) {\n if (range) dependency.versionRange = range;\n else if (\n resolvedVersion !== 'latest' &&\n (componentRangePrefix === '^' || componentRangePrefix === '~') &&\n !isSnap(resolvedVersion)\n ) {\n dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;\n }\n } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {\n dependency.versionRange = undefined;\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 { version: 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 getIdFromUpdateDependentsOnLane(id: ComponentID) {\n const updateDependents = currentLane?.updateDependents;\n if (!updateDependents) return undefined;\n return updateDependents.find((dep) => dep.isEqualWithoutVersion(id));\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (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 /**\n * config in .bitmap or component.json are resolved here.\n */\n function resolveFromOverrides(\n id: ComponentID,\n depType: DepType,\n pkgName?: string\n ): { compId?: ComponentID; range?: string } | undefined {\n if (!pkgName) return undefined;\n // For env-own dependencies (from env.jsonc selfPolicy), if the dep is a workspace component,\n // skip the override so the version is resolved from the bitmap instead.\n // This prevents the static env.jsonc version (e.g. a tag) from overriding the workspace\n // version (e.g. a snap hash on a lane).\n if (overridesDependencies.envOwnPkgNames.has(pkgName) && getIdFromBitMap(id)) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const { version: validVersion, range } = getValidComponentVersion(found);\n const compId = validVersion ? id.changeVersion(validVersion) : undefined;\n return { compId, range };\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 pkgVersionFromWorkspacePolicies(pkgName: string): string | undefined {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string): ComponentID | undefined {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n }\n });\n const foundValidVersion = foundVersion ? getValidComponentVersion(foundVersion) : undefined;\n return foundValidVersion?.version ? id.changeVersion(foundValidVersion.version) : undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_dependencyResolver","_legacy2","_autoDetectDeps","e","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","currentLane","getCurrentLaneObject","componentRangePrefix","calcComponentRangePrefixByConsumerComponent","supportComponentRange","dependenciesWithVersionFromConfig","updateDependencies","dependencies","devDependencies","peerDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromUpdateDependentsOnLane","getIdFromUpdateDependentsOnLane","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","fromPolicy","pkgVersionFromWorkspacePolicies","compId","range","semver","validRange","undefined","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","version","ComponentID","logger","trace","toString","name","versionResolvedFrom","replace","fromConfig","updateDependency","dependency","packageName","resolvedVersion","push","toStringWithoutVersion","changeVersion","versionRange","isSnap","isPlusVersion","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","updateDependents","overrides","getComponentDependenciesWithVersion","isEmpty","Object","keys","idStr","pkgName","envOwnPkgNames","has","getDependenciesToAddManually","found","validVersion","getValidComponentVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field","foundValidVersion"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Workspace } from '@teambit/workspace';\nimport { logger } from '@teambit/legacy.logger';\nimport { isEmpty } from 'lodash';\nimport type { Dependency, Dependencies, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport type { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { isPlusVersion } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';\nimport type OverridesDependencies from './overrides-dependencies';\nimport type { DebugComponentsDependency } from './auto-detect-deps';\nimport { getValidComponentVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport async 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 const currentLane = await workspace.getCurrentLaneObject();\n const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);\n const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';\n const dependenciesWithVersionFromConfig: string[] = [];\n component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n updateDependencies(component.peerDependencies, 'peerDependencies');\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(\n id: ComponentID,\n depType: DepType,\n pkg?: string\n ): { version?: string; range?: string; fromConfig?: boolean } {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n const getFromUpdateDependentsOnLane = () => getIdFromUpdateDependentsOnLane(id);\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 if (!pkg || !id.hasVersion()) return null;\n const fromPolicy = pkgVersionFromWorkspacePolicies(pkg);\n if (!fromPolicy) return null;\n return {\n compId: id,\n range: supportComponentRange && semver.validRange(fromPolicy) ? fromPolicy : undefined,\n };\n };\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 getFromUpdateDependentsOnLane,\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) continue;\n const version = strategyId instanceof ComponentID ? strategyId.version : strategyId.compId?.version;\n if (!version) continue;\n logger.trace(`found dependency version ${version} for ${id.toString()} in strategy ${strategy.name}`);\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = version;\n }\n\n const fromConfig = strategy === getFromComponentConfig || strategy === getFromOverrides;\n return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range, fromConfig };\n }\n return {};\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const { version: resolvedVersion, range, fromConfig } = resolveVersion(id, depType, packageName);\n if (!resolvedVersion) {\n return;\n }\n if (fromConfig) dependenciesWithVersionFromConfig.push(id.toStringWithoutVersion());\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n if (supportComponentRange) {\n if (range) dependency.versionRange = range;\n else if (\n resolvedVersion !== 'latest' &&\n (componentRangePrefix === '^' || componentRangePrefix === '~') &&\n !isSnap(resolvedVersion)\n ) {\n dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;\n }\n } else if (dependency.versionRange && depType !== 'peerDependencies' && !isPlusVersion(dependency.versionRange)) {\n dependency.versionRange = undefined;\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 { version: 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 getIdFromUpdateDependentsOnLane(id: ComponentID) {\n const updateDependents = currentLane?.updateDependents;\n if (!updateDependents) return undefined;\n return updateDependents.find((dep) => dep.isEqualWithoutVersion(id));\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (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 /**\n * config in .bitmap or component.json are resolved here.\n */\n function resolveFromOverrides(\n id: ComponentID,\n depType: DepType,\n pkgName?: string\n ): { compId?: ComponentID; range?: string } | undefined {\n if (!pkgName) return undefined;\n // For env-own dependencies (from env.jsonc selfPolicy), if the dep is a workspace component,\n // skip the override so the version is resolved from the bitmap instead.\n // This prevents the static env.jsonc version (e.g. a tag) from overriding the workspace\n // version (e.g. a snap hash on a lane).\n if (overridesDependencies.envOwnPkgNames.has(pkgName) && getIdFromBitMap(id)) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const { version: validVersion, range } = getValidComponentVersion(found);\n const compId = validVersion ? id.changeVersion(validVersion) : undefined;\n return { compId, range };\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 pkgVersionFromWorkspacePolicies(pkgName: string): string | undefined {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string): ComponentID | undefined {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n }\n });\n const foundValidVersion = foundVersion ? getValidComponentVersion(foundVersion) : undefined;\n return foundValidVersion?.version ? id.changeVersion(foundValidVersion.version) : undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,13 @@ function _legacy2() {
|
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
+
function _dependencyResolver() {
|
|
22
|
+
const data = require("@teambit/dependency-resolver");
|
|
23
|
+
_dependencyResolver = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
21
28
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
22
29
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
30
|
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); }
|
|
@@ -83,14 +90,15 @@ class OverridesDependencies {
|
|
|
83
90
|
}
|
|
84
91
|
_manuallyAddPackage(field, dependency, dependencyValue, packageJson) {
|
|
85
92
|
const packageVersionToAdd = () => {
|
|
86
|
-
|
|
93
|
+
// "+", "+^" and "+~" take the version from the package.json
|
|
94
|
+
if (!(0, _dependencyResolver().isPlusVersion)(dependencyValue)) {
|
|
87
95
|
return dependencyValue;
|
|
88
96
|
}
|
|
89
97
|
if (!packageJson) return null;
|
|
90
98
|
for (const depField of _legacy().DEPENDENCIES_FIELDS) {
|
|
91
99
|
if (packageJson[depField]) {
|
|
92
100
|
const found = Object.keys(packageJson[depField]).find(pkg => pkg === dependency);
|
|
93
|
-
if (found) return packageJson[depField][dependency];
|
|
101
|
+
if (found) return (0, _dependencyResolver().resolvePlusVersion)(dependencyValue, packageJson[depField][dependency]);
|
|
94
102
|
}
|
|
95
103
|
}
|
|
96
104
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_legacy","data","require","_legacy2","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","OverridesDependencies","constructor","component","Set","componentFromModel","manuallyRemovedDependencies","manuallyAddedDependencies","missingPackageDependencies","shouldIgnorePackage","packageName","fileType","field","isTestFile","shouldIgnorePackageByType","packages","some","pkg","ignoreField","overrides","getIgnoredPackages","ignore","_addManuallyRemovedDep","shouldIgnorePeerPackage","ignorePeer","getDependenciesToAddManually","componentOverridesData","undefined","DEPENDENCIES_FIELDS","forEach","depField","keys","dependency","dependencyValue","MANUALLY_REMOVE_DEPENDENCY","_manuallyAddPackage","packageJson","packageVersionToAdd","MANUALLY_ADD_DEPENDENCY","found","find","versionToAdd","logger","debug","id","toString","push","packageStr","_addManuallyAddedDep","includes","exports","default"],"sources":["overrides-dependencies.ts"],"sourcesContent":["import { DEPENDENCIES_FIELDS, MANUALLY_ADD_DEPENDENCY, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport { logger } from '@teambit/legacy.logger';\nimport type { ConsumerComponent as Component, ManuallyChangedDependencies } from '@teambit/legacy.consumer-component';\nimport type { FileType } from './auto-detect-deps';\n\nexport default class OverridesDependencies {\n component: Component;\n componentFromModel: Component | null | undefined;\n manuallyRemovedDependencies: ManuallyChangedDependencies;\n manuallyAddedDependencies: ManuallyChangedDependencies;\n missingPackageDependencies: string[];\n /**\n * package names of env-own dependencies (from env.jsonc selfPolicy).\n * used by version resolution to skip these overrides for workspace components,\n * so their version is resolved from the bitmap instead of the static env.jsonc version.\n */\n envOwnPkgNames: Set<string> = new Set();\n constructor(component: Component) {\n this.component = component;\n this.componentFromModel = this.component.componentFromModel;\n this.manuallyRemovedDependencies = {};\n this.manuallyAddedDependencies = {};\n this.missingPackageDependencies = [];\n }\n\n shouldIgnorePackage(packageName: string, fileType: FileType): boolean {\n const field = fileType.isTestFile ? 'devDependencies' : 'dependencies';\n return this.shouldIgnorePackageByType(packageName, field);\n }\n\n shouldIgnorePackageByType(packageName: string, field: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const ignoreField = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignoreField);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n shouldIgnorePeerPackage(packageName: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const field = 'peerDependencies';\n const ignorePeer = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignorePeer);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n getDependenciesToAddManually(): Record<string, any> | undefined {\n const overrides = this.component.overrides.componentOverridesData;\n if (!overrides) return undefined;\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 if (dependencyValue === MANUALLY_REMOVE_DEPENDENCY) return;\n (packages[depField] ||= {})[dependency] = dependencyValue;\n });\n });\n return packages;\n }\n\n _manuallyAddPackage(\n field: string,\n dependency: string,\n dependencyValue: string,\n packageJson: Record<string, any> | null | undefined\n ): Record<string, any> | null | undefined {\n const packageVersionToAdd = (): string | null | undefined => {\n if (dependencyValue !== MANUALLY_ADD_DEPENDENCY) {\n return dependencyValue;\n }\n if (!packageJson) return null;\n for (const depField of DEPENDENCIES_FIELDS) {\n if (packageJson[depField]) {\n const found = Object.keys(packageJson[depField]).find((pkg) => pkg === dependency);\n if (found) return packageJson[depField][dependency];\n }\n }\n return null;\n };\n const versionToAdd = packageVersionToAdd();\n if (!versionToAdd) {\n logger.debug(`unable to manually add the dependency \"${dependency}\" into \"${this.component.id.toString()}\".\nit's not an existing component, nor existing package (in a package.json)`);\n this.missingPackageDependencies.push(dependency);\n return undefined;\n }\n const packageStr = `${dependency}@${versionToAdd}`;\n this._addManuallyAddedDep(field, packageStr);\n\n return { [dependency]: versionToAdd };\n }\n\n _addManuallyRemovedDep(field: string, value: string) {\n this.manuallyRemovedDependencies[field]\n ? this.manuallyRemovedDependencies[field].push(value)\n : (this.manuallyRemovedDependencies[field] = [value]);\n }\n\n _addManuallyAddedDep(field: string, value: string) {\n if (this.manuallyAddedDependencies?.[field]?.includes(value)) return;\n\n this.manuallyAddedDependencies[field]\n ? this.manuallyAddedDependencies[field].push(value)\n : (this.manuallyAddedDependencies[field] = [value]);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_legacy","data","require","_legacy2","_dependencyResolver","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","OverridesDependencies","constructor","component","Set","componentFromModel","manuallyRemovedDependencies","manuallyAddedDependencies","missingPackageDependencies","shouldIgnorePackage","packageName","fileType","field","isTestFile","shouldIgnorePackageByType","packages","some","pkg","ignoreField","overrides","getIgnoredPackages","ignore","_addManuallyRemovedDep","shouldIgnorePeerPackage","ignorePeer","getDependenciesToAddManually","componentOverridesData","undefined","DEPENDENCIES_FIELDS","forEach","depField","keys","dependency","dependencyValue","MANUALLY_REMOVE_DEPENDENCY","_manuallyAddPackage","packageJson","packageVersionToAdd","isPlusVersion","found","find","resolvePlusVersion","versionToAdd","logger","debug","id","toString","push","packageStr","_addManuallyAddedDep","includes","exports","default"],"sources":["overrides-dependencies.ts"],"sourcesContent":["import { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport { logger } from '@teambit/legacy.logger';\nimport { isPlusVersion, resolvePlusVersion } from '@teambit/dependency-resolver';\nimport type { ConsumerComponent as Component, ManuallyChangedDependencies } from '@teambit/legacy.consumer-component';\nimport type { FileType } from './auto-detect-deps';\n\nexport default class OverridesDependencies {\n component: Component;\n componentFromModel: Component | null | undefined;\n manuallyRemovedDependencies: ManuallyChangedDependencies;\n manuallyAddedDependencies: ManuallyChangedDependencies;\n missingPackageDependencies: string[];\n /**\n * package names of env-own dependencies (from env.jsonc selfPolicy).\n * used by version resolution to skip these overrides for workspace components,\n * so their version is resolved from the bitmap instead of the static env.jsonc version.\n */\n envOwnPkgNames: Set<string> = new Set();\n constructor(component: Component) {\n this.component = component;\n this.componentFromModel = this.component.componentFromModel;\n this.manuallyRemovedDependencies = {};\n this.manuallyAddedDependencies = {};\n this.missingPackageDependencies = [];\n }\n\n shouldIgnorePackage(packageName: string, fileType: FileType): boolean {\n const field = fileType.isTestFile ? 'devDependencies' : 'dependencies';\n return this.shouldIgnorePackageByType(packageName, field);\n }\n\n shouldIgnorePackageByType(packageName: string, field: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const ignoreField = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignoreField);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n shouldIgnorePeerPackage(packageName: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const field = 'peerDependencies';\n const ignorePeer = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignorePeer);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n getDependenciesToAddManually(): Record<string, any> | undefined {\n const overrides = this.component.overrides.componentOverridesData;\n if (!overrides) return undefined;\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 if (dependencyValue === MANUALLY_REMOVE_DEPENDENCY) return;\n (packages[depField] ||= {})[dependency] = dependencyValue;\n });\n });\n return packages;\n }\n\n _manuallyAddPackage(\n field: string,\n dependency: string,\n dependencyValue: string,\n packageJson: Record<string, any> | null | undefined\n ): Record<string, any> | null | undefined {\n const packageVersionToAdd = (): string | null | undefined => {\n // \"+\", \"+^\" and \"+~\" take the version from the package.json\n if (!isPlusVersion(dependencyValue)) {\n return dependencyValue;\n }\n if (!packageJson) return null;\n for (const depField of DEPENDENCIES_FIELDS) {\n if (packageJson[depField]) {\n const found = Object.keys(packageJson[depField]).find((pkg) => pkg === dependency);\n if (found) return resolvePlusVersion(dependencyValue, packageJson[depField][dependency]);\n }\n }\n return null;\n };\n const versionToAdd = packageVersionToAdd();\n if (!versionToAdd) {\n logger.debug(`unable to manually add the dependency \"${dependency}\" into \"${this.component.id.toString()}\".\nit's not an existing component, nor existing package (in a package.json)`);\n this.missingPackageDependencies.push(dependency);\n return undefined;\n }\n const packageStr = `${dependency}@${versionToAdd}`;\n this._addManuallyAddedDep(field, packageStr);\n\n return { [dependency]: versionToAdd };\n }\n\n _addManuallyRemovedDep(field: string, value: string) {\n this.manuallyRemovedDependencies[field]\n ? this.manuallyRemovedDependencies[field].push(value)\n : (this.manuallyRemovedDependencies[field] = [value]);\n }\n\n _addManuallyAddedDep(field: string, value: string) {\n if (this.manuallyAddedDependencies?.[field]?.includes(value)) return;\n\n this.manuallyAddedDependencies[field]\n ? this.manuallyAddedDependencies[field].push(value)\n : (this.manuallyAddedDependencies[field] = [value]);\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
|
|
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.
|