@teambit/dependency-resolver 0.0.1040 → 0.0.1042
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/dist/dependency-installer.d.ts +1 -0
- package/dist/dependency-installer.js +1 -0
- package/dist/dependency-installer.js.map +1 -1
- package/dist/manifest/workspace-manifest-factory.js +29 -4
- package/dist/manifest/workspace-manifest-factory.js.map +1 -1
- package/dist/package-manager.d.ts +1 -0
- package/dist/package-manager.js.map +1 -1
- package/dist/{preview-1682245644358.js → preview-1682479861351.js} +2 -2
- package/manifest/workspace-manifest-factory.ts +31 -13
- package/package-tar/teambit-dependency-resolver-0.0.1042.tgz +0 -0
- package/package.json +16 -15
- package/package-tar/teambit-dependency-resolver-0.0.1040.tgz +0 -0
|
@@ -20,6 +20,7 @@ export declare type InstallOptions = {
|
|
|
20
20
|
packageManagerConfigRootDir?: string;
|
|
21
21
|
resolveVersionsFromDependenciesOnly?: boolean;
|
|
22
22
|
linkedDependencies?: Record<string, Record<string, string>>;
|
|
23
|
+
pruneNodeModules?: boolean;
|
|
23
24
|
};
|
|
24
25
|
export declare type GetComponentManifestsOptions = {
|
|
25
26
|
componentDirectoryMap: ComponentMap<string>;
|
|
@@ -144,6 +144,7 @@ class DependencyInstaller {
|
|
|
144
144
|
engineStrict: this.engineStrict,
|
|
145
145
|
packageManagerConfigRootDir: options.packageManagerConfigRootDir,
|
|
146
146
|
peerDependencyRules: this.peerDependencyRules,
|
|
147
|
+
pruneNodeModules: options.pruneNodeModules,
|
|
147
148
|
hidePackageManagerOutput
|
|
148
149
|
}, packageManagerOptions);
|
|
149
150
|
if (options.installTeambitBit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","args","runPrePostSubscribers","mainAspect","linkedDependencies","directDeps","Set","Object","values","forEach","manifest","depName","keys","dependencies","devDependencies","add","name","has","entries","dir","linkedDeps","assign","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","consoleSuccess","dependencyFilterFn","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","defaultPeerDependencies","fromPairs","envPolicy","selfPolicy","toNameVersionTuple","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","mapSeries","subscriber"],"sources":["dependency-installer.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MainAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentMap } from '@teambit/component';\nimport { CreateFromComponentsOptions, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { fromPairs } from 'lodash';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\n\nconst DEFAULT_PM_INSTALL_OPTIONS: PackageManagerInstallOptions = {\n dedupe: true,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n installPeersFromEnvs: false,\n};\n\nconst DEFAULT_INSTALL_OPTIONS: InstallOptions = {\n installTeambitBit: false,\n};\n\nexport type DepInstallerContext = {\n inCapsule?: boolean;\n};\n\nexport type InstallArgs = {\n rootDir: string | undefined;\n rootPolicy: WorkspacePolicy;\n componentDirectoryMap: ComponentMap<string>;\n options: InstallOptions;\n packageManagerOptions: PackageManagerInstallOptions;\n};\n\nexport type InstallOptions = {\n installTeambitBit: boolean;\n packageManagerConfigRootDir?: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n linkedDependencies?: Record<string, Record<string, string>>;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n} & Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'copyPeerToRuntimeOnRoot' | 'installPeersFromEnvs'\n>;\n\nexport type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PreInstallSubscriberList = Array<PreInstallSubscriber>;\n\nexport type PostInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PostInstallSubscriberList = Array<PostInstallSubscriber>;\n\nexport class DependencyInstaller {\n constructor(\n /**\n * package manager instance.\n */\n private packageManager: PackageManager,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain,\n\n private rootDir?: string | PathAbsolute,\n\n private cacheRootDir?: string | PathAbsolute,\n\n private preInstallSubscriberList?: PreInstallSubscriberList,\n\n private postInstallSubscriberList?: PostInstallSubscriberList,\n\n private nodeLinker?: 'hoisted' | 'isolated',\n\n private packageImportMethod?: PackageImportMethod,\n\n private sideEffectsCache?: boolean,\n\n private nodeVersion?: string,\n\n private engineStrict?: boolean,\n\n private peerDependencyRules?: PeerDependencyRules,\n\n private installingContext: DepInstallerContext = {}\n ) {}\n\n async install(\n rootDir: string | undefined,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const finalRootDir = rootDir ?? this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n const manifests = await this.getComponentManifests({\n ...packageManagerOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: finalRootDir,\n resolveVersionsFromDependenciesOnly: options.resolveVersionsFromDependenciesOnly,\n referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules,\n });\n return this.installComponents(\n finalRootDir,\n manifests,\n rootPolicy,\n componentDirectoryMap,\n options,\n packageManagerOptions\n );\n }\n\n async installComponents(\n rootDir: string | undefined,\n manifests: Record<string, ProjectManifest>,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const args = {\n componentDirectoryMap,\n options,\n packageManagerOptions,\n rootDir,\n rootPolicy,\n };\n await this.runPrePostSubscribers(this.preInstallSubscriberList, 'pre', args);\n const mainAspect: MainAspect = this.aspectLoader.mainAspect;\n const finalRootDir = rootDir || this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkedDependencies) {\n const directDeps = new Set<string>();\n Object.values(manifests).forEach((manifest) => {\n for (const depName of Object.keys({ ...manifest.dependencies, ...manifest.devDependencies })) {\n directDeps.add(depName);\n }\n });\n if (options.linkedDependencies[finalRootDir]) {\n for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete options.linkedDependencies[finalRootDir][manifest.name];\n }\n }\n }\n Object.entries(options.linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = Object.assign({}, manifests[dir].dependencies, linkedDeps);\n });\n }\n const hidePackageManagerOutput = !!(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true');\n\n // Make sure to take other default if passed options with only one option\n const calculatedPmOpts = {\n ...DEFAULT_PM_INSTALL_OPTIONS,\n cacheRootDir: this.cacheRootDir,\n nodeLinker: this.nodeLinker,\n packageImportMethod: this.packageImportMethod,\n sideEffectsCache: this.sideEffectsCache,\n nodeVersion: this.nodeVersion,\n engineStrict: this.engineStrict,\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n peerDependencyRules: this.peerDependencyRules,\n hidePackageManagerOutput,\n ...packageManagerOptions,\n };\n if (options.installTeambitBit) {\n if (!mainAspect.version || !mainAspect.packageName) {\n throw new MainAspectNotInstallable();\n }\n const version = mainAspect.version;\n rootPolicy.add({\n dependencyId: mainAspect.packageName,\n lifecycleType: 'runtime',\n value: {\n version,\n },\n });\n }\n\n if (!packageManagerOptions.rootComponents && !packageManagerOptions.keepExistingModulesDir) {\n // Remove node modules dir for all components dirs, since it might contain left overs from previous install.\n //\n // This is not needed when \"rootComponents\" are used, as in that case the package manager handles the node_modules\n // and it never leaves node_modules in a broken state.\n // Removing node_modules in that case would delete useful state information that is used by Yarn or pnpm.\n await this.cleanCompsNodeModules(componentDirectoryMap);\n }\n\n const messagePrefix = 'running package installation';\n const messageSuffix = `using ${this.packageManager.name}`;\n const message = this.installingContext?.inCapsule\n ? `(capsule) ${messagePrefix} in root dir ${this.rootDir} ${messageSuffix}`\n : `${messagePrefix} ${messageSuffix}`;\n if (!hidePackageManagerOutput) {\n this.logger.setStatusLine(message);\n }\n const startTime = process.hrtime();\n\n // TODO: the cache should be probably passed to the package manager constructor not to the install function\n await this.packageManager.install(\n {\n rootDir: finalRootDir,\n manifests,\n componentDirectoryMap,\n },\n calculatedPmOpts\n );\n if (!hidePackageManagerOutput) {\n this.logger.consoleSuccess(`done ${message}`, startTime);\n }\n await this.runPrePostSubscribers(this.postInstallSubscriberList, 'post', args);\n return componentDirectoryMap;\n }\n\n /**\n * Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager\n * in order to install the dependencies.\n */\n public async getComponentManifests({\n componentDirectoryMap,\n rootPolicy,\n rootDir,\n dedupe,\n dependencyFilterFn,\n copyPeerToRuntimeOnComponents,\n copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n };\n const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n componentDirectoryMap.components,\n options,\n this.installingContext\n );\n const manifests: Record<string, ProjectManifest> = componentDirectoryMap\n .toArray()\n .reduce((acc, [component, dir]) => {\n const packageName = this.dependencyResolver.getPackageName(component);\n const manifest = workspaceManifest.componentsManifestsMap.get(packageName);\n if (manifest) {\n acc[dir] = manifest.toJson({ copyPeerToRuntime: copyPeerToRuntimeOnComponents });\n acc[dir].defaultPeerDependencies = fromPairs(manifest.envPolicy.selfPolicy.toNameVersionTuple());\n }\n return acc;\n }, {});\n if (!manifests[rootDir]) {\n manifests[rootDir] = workspaceManifest.toJson({\n copyPeerToRuntime: copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n });\n }\n return manifests;\n }\n\n private async cleanCompsNodeModules(componentDirectoryMap: ComponentMap<string>) {\n const promises = componentDirectoryMap.toArray().map(([, dir]) => {\n const nmDir = path.join(dir, 'node_modules');\n return fs.remove(nmDir);\n });\n return Promise.all(promises);\n }\n\n private async runPrePostSubscribers(\n subscribers: PreInstallSubscriberList | PostInstallSubscriberList = [],\n type: 'pre' | 'post',\n args: InstallArgs\n ): Promise<void> {\n const message = this.installingContext?.inCapsule\n ? `(capsule) running ${type} install subscribers in root dir ${this.rootDir}`\n : `running ${type} install subscribers`;\n if (!this.installingContext?.inCapsule) {\n this.logger.setStatusLine(message);\n }\n await mapSeries(subscribers, async (subscriber) => {\n return subscriber(this, args);\n });\n if (!this.installingContext?.inCapsule) {\n this.logger.consoleSuccess(message);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAOA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA2E;AAAA;AAI3E,MAAMA,0BAAwD,GAAG;EAC/DC,MAAM,EAAE,IAAI;EACZC,uBAAuB,EAAE,IAAI;EAC7BC,6BAA6B,EAAE,KAAK;EACpCC,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,uBAAuC,GAAG;EAC9CC,iBAAiB,EAAE;AACrB,CAAC;AAsCM,MAAMC,mBAAmB,CAAC;EAC/BC,WAAW;EACT;AACJ;AACA;EACYC,cAA8B,EAE9BC,YAA8B,EAE9BC,MAAc,EAEdC,kBAA0C,EAE1CC,OAA+B,EAE/BC,YAAoC,EAEpCC,wBAAmD,EAEnDC,yBAAqD,EAErDC,UAAmC,EAEnCC,mBAAyC,EAEzCC,gBAA0B,EAE1BC,WAAoB,EAEpBC,YAAsB,EAEtBC,mBAAyC,EAEzCC,iBAAsC,GAAG,CAAC,CAAC,EACnD;IAAA,KA7BQd,cAA8B,GAA9BA,cAA8B;IAAA,KAE9BC,YAA8B,GAA9BA,YAA8B;IAAA,KAE9BC,MAAc,GAAdA,MAAc;IAAA,KAEdC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAE1CC,OAA+B,GAA/BA,OAA+B;IAAA,KAE/BC,YAAoC,GAApCA,YAAoC;IAAA,KAEpCC,wBAAmD,GAAnDA,wBAAmD;IAAA,KAEnDC,yBAAqD,GAArDA,yBAAqD;IAAA,KAErDC,UAAmC,GAAnCA,UAAmC;IAAA,KAEnCC,mBAAyC,GAAzCA,mBAAyC;IAAA,KAEzCC,gBAA0B,GAA1BA,gBAA0B;IAAA,KAE1BC,WAAoB,GAApBA,WAAoB;IAAA,KAEpBC,YAAsB,GAAtBA,YAAsB;IAAA,KAEtBC,mBAAyC,GAAzCA,mBAAyC;IAAA,KAEzCC,iBAAsC,GAAtCA,iBAAsC;EAC7C;EAEH,MAAMC,OAAO,CACXX,OAA2B,EAC3BY,UAA2B,EAC3BC,qBAA2C,EAC3CC,OAAuB,GAAGtB,uBAAuB,EACjDuB,qBAAmD,GAAG5B,0BAA0B,EAChF;IACA,MAAM6B,YAAY,GAAGhB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,IAAI,CAACA,OAAO;IAC5C,IAAI,CAACgB,YAAY,EAAE;MACjB,MAAM,KAAIC,+BAAiB,GAAE;IAC/B;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,qBAAqB,iCAC7CJ,qBAAqB;MACxBF,qBAAqB;MACrBD,UAAU;MACVZ,OAAO,EAAEgB,YAAY;MACrBI,mCAAmC,EAAEN,OAAO,CAACM,mCAAmC;MAChFC,sBAAsB,EAAEN,qBAAqB,CAACO;IAAyB,GACvE;IACF,OAAO,IAAI,CAACC,iBAAiB,CAC3BP,YAAY,EACZE,SAAS,EACTN,UAAU,EACVC,qBAAqB,EACrBC,OAAO,EACPC,qBAAqB,CACtB;EACH;EAEA,MAAMQ,iBAAiB,CACrBvB,OAA2B,EAC3BkB,SAA0C,EAC1CN,UAA2B,EAC3BC,qBAA2C,EAC3CC,OAAuB,GAAGtB,uBAAuB,EACjDuB,qBAAmD,GAAG5B,0BAA0B,EAChF;IAAA;IACA,MAAMqC,IAAI,GAAG;MACXX,qBAAqB;MACrBC,OAAO;MACPC,qBAAqB;MACrBf,OAAO;MACPY;IACF,CAAC;IACD,MAAM,IAAI,CAACa,qBAAqB,CAAC,IAAI,CAACvB,wBAAwB,EAAE,KAAK,EAAEsB,IAAI,CAAC;IAC5E,MAAME,UAAsB,GAAG,IAAI,CAAC7B,YAAY,CAAC6B,UAAU;IAC3D,MAAMV,YAAY,GAAGhB,OAAO,IAAI,IAAI,CAACA,OAAO;IAC5C,IAAI,CAACgB,YAAY,EAAE;MACjB,MAAM,KAAIC,+BAAiB,GAAE;IAC/B;IACA,IAAIH,OAAO,CAACa,kBAAkB,EAAE;MAC9B,MAAMC,UAAU,GAAG,IAAIC,GAAG,EAAU;MACpCC,MAAM,CAACC,MAAM,CAACb,SAAS,CAAC,CAACc,OAAO,CAAEC,QAAQ,IAAK;QAC7C,KAAK,MAAMC,OAAO,IAAIJ,MAAM,CAACK,IAAI,iCAAMF,QAAQ,CAACG,YAAY,GAAKH,QAAQ,CAACI,eAAe,EAAG,EAAE;UAC5FT,UAAU,CAACU,GAAG,CAACJ,OAAO,CAAC;QACzB;MACF,CAAC,CAAC;MACF,IAAIpB,OAAO,CAACa,kBAAkB,CAACX,YAAY,CAAC,EAAE;QAC5C,KAAK,MAAMiB,QAAQ,IAAIH,MAAM,CAACC,MAAM,CAACb,SAAS,CAAC,EAAE;UAC/C,IAAIe,QAAQ,CAACM,IAAI,IAAIX,UAAU,CAACY,GAAG,CAACP,QAAQ,CAACM,IAAI,CAAC,EAAE;YAClD,OAAOzB,OAAO,CAACa,kBAAkB,CAACX,YAAY,CAAC,CAACiB,QAAQ,CAACM,IAAI,CAAC;UAChE;QACF;MACF;MACAT,MAAM,CAACW,OAAO,CAAC3B,OAAO,CAACa,kBAAkB,CAAC,CAACK,OAAO,CAAC,CAAC,CAACU,GAAG,EAAEC,UAAU,CAAC,KAAK;QACxE,IAAI,CAACzB,SAAS,CAACwB,GAAG,CAAC,EAAE;UACnBxB,SAAS,CAACwB,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB;QACAxB,SAAS,CAACwB,GAAG,CAAC,CAACN,YAAY,GAAGN,MAAM,CAACc,MAAM,CAAC,CAAC,CAAC,EAAE1B,SAAS,CAACwB,GAAG,CAAC,CAACN,YAAY,EAAEO,UAAU,CAAC;MAC1F,CAAC,CAAC;IACJ;IACA,MAAME,wBAAwB,GAAG,CAAC,EAAE,IAAI,CAACnC,iBAAiB,CAACoC,SAAS,IAAIC,OAAO,CAACC,GAAG,CAACC,iBAAiB,KAAK,MAAM,CAAC;;IAEjH;IACA,MAAMC,gBAAgB,mCACjB/D,0BAA0B;MAC7Bc,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BG,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BC,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;MACvCC,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BC,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/B2C,2BAA2B,EAAErC,OAAO,CAACqC,2BAA2B;MAChE1C,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CoC;IAAwB,GACrB9B,qBAAqB,CACzB;IACD,IAAID,OAAO,CAACrB,iBAAiB,EAAE;MAC7B,IAAI,CAACiC,UAAU,CAAC0B,OAAO,IAAI,CAAC1B,UAAU,CAAC2B,WAAW,EAAE;QAClD,MAAM,KAAIC,sCAAwB,GAAE;MACtC;MACA,MAAMF,OAAO,GAAG1B,UAAU,CAAC0B,OAAO;MAClCxC,UAAU,CAAC0B,GAAG,CAAC;QACbiB,YAAY,EAAE7B,UAAU,CAAC2B,WAAW;QACpCG,aAAa,EAAE,SAAS;QACxBC,KAAK,EAAE;UACLL;QACF;MACF,CAAC,CAAC;IACJ;IAEA,IAAI,CAACrC,qBAAqB,CAAC2C,cAAc,IAAI,CAAC3C,qBAAqB,CAAC4C,sBAAsB,EAAE;MAC1F;MACA;MACA;MACA;MACA;MACA,MAAM,IAAI,CAACC,qBAAqB,CAAC/C,qBAAqB,CAAC;IACzD;IAEA,MAAMgD,aAAa,GAAG,8BAA8B;IACpD,MAAMC,aAAa,GAAI,SAAQ,IAAI,CAAClE,cAAc,CAAC2C,IAAK,EAAC;IACzD,MAAMwB,OAAO,GAAG,6BAAI,CAACrD,iBAAiB,kDAAtB,sBAAwBoC,SAAS,GAC5C,aAAYe,aAAc,gBAAe,IAAI,CAAC7D,OAAQ,IAAG8D,aAAc,EAAC,GACxE,GAAED,aAAc,IAAGC,aAAc,EAAC;IACvC,IAAI,CAACjB,wBAAwB,EAAE;MAC7B,IAAI,CAAC/C,MAAM,CAACkE,aAAa,CAACD,OAAO,CAAC;IACpC;IACA,MAAME,SAAS,GAAGlB,OAAO,CAACmB,MAAM,EAAE;;IAElC;IACA,MAAM,IAAI,CAACtE,cAAc,CAACe,OAAO,CAC/B;MACEX,OAAO,EAAEgB,YAAY;MACrBE,SAAS;MACTL;IACF,CAAC,EACDqC,gBAAgB,CACjB;IACD,IAAI,CAACL,wBAAwB,EAAE;MAC7B,IAAI,CAAC/C,MAAM,CAACqE,cAAc,CAAE,QAAOJ,OAAQ,EAAC,EAAEE,SAAS,CAAC;IAC1D;IACA,MAAM,IAAI,CAACxC,qBAAqB,CAAC,IAAI,CAACtB,yBAAyB,EAAE,MAAM,EAAEqB,IAAI,CAAC;IAC9E,OAAOX,qBAAqB;EAC9B;;EAEA;AACF;AACA;AACA;EACE,MAAaM,qBAAqB,CAAC;IACjCN,qBAAqB;IACrBD,UAAU;IACVZ,OAAO;IACPZ,MAAM;IACNgF,kBAAkB;IAClB9E,6BAA6B;IAC7BD,uBAAuB;IACvBE,oBAAoB;IACpB6B,mCAAmC;IACnCC;EAC4B,CAAC,EAAE;IAC/B,MAAMP,OAAoC,GAAG;MAC3CuD,6BAA6B,EAAE,IAAI;MACnCC,8CAA8C,EAAE,IAAI;MACpDlF,MAAM;MACNgF,kBAAkB;MAClBhD,mCAAmC;MACnCC;IACF,CAAC;IACD,MAAMkD,iBAAiB,GAAG,MAAM,IAAI,CAACxE,kBAAkB,CAACyE,oBAAoB,CAC1EC,SAAS,EACTA,SAAS,EACT7D,UAAU,EACVZ,OAAO,EACPa,qBAAqB,CAAC6D,UAAU,EAChC5D,OAAO,EACP,IAAI,CAACJ,iBAAiB,CACvB;IACD,MAAMQ,SAA0C,GAAGL,qBAAqB,CACrE8D,OAAO,EAAE,CACTC,MAAM,CAAC,CAACC,GAAG,EAAE,CAACC,SAAS,EAAEpC,GAAG,CAAC,KAAK;MACjC,MAAMW,WAAW,GAAG,IAAI,CAACtD,kBAAkB,CAACgF,cAAc,CAACD,SAAS,CAAC;MACrE,MAAM7C,QAAQ,GAAGsC,iBAAiB,CAACS,sBAAsB,CAACC,GAAG,CAAC5B,WAAW,CAAC;MAC1E,IAAIpB,QAAQ,EAAE;QACZ4C,GAAG,CAACnC,GAAG,CAAC,GAAGT,QAAQ,CAACiD,MAAM,CAAC;UAAEC,iBAAiB,EAAE7F;QAA8B,CAAC,CAAC;QAChFuF,GAAG,CAACnC,GAAG,CAAC,CAAC0C,uBAAuB,GAAG,IAAAC,mBAAS,EAACpD,QAAQ,CAACqD,SAAS,CAACC,UAAU,CAACC,kBAAkB,EAAE,CAAC;MAClG;MACA,OAAOX,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,IAAI,CAAC3D,SAAS,CAAClB,OAAO,CAAC,EAAE;MACvBkB,SAAS,CAAClB,OAAO,CAAC,GAAGuE,iBAAiB,CAACW,MAAM,CAAC;QAC5CC,iBAAiB,EAAE9F,uBAAuB;QAC1CE;MACF,CAAC,CAAC;IACJ;IACA,OAAO2B,SAAS;EAClB;EAEA,MAAc0C,qBAAqB,CAAC/C,qBAA2C,EAAE;IAC/E,MAAM4E,QAAQ,GAAG5E,qBAAqB,CAAC8D,OAAO,EAAE,CAACe,GAAG,CAAC,CAAC,GAAGhD,GAAG,CAAC,KAAK;MAChE,MAAMiD,KAAK,GAAGC,eAAI,CAACC,IAAI,CAACnD,GAAG,EAAE,cAAc,CAAC;MAC5C,OAAOoD,kBAAE,CAACC,MAAM,CAACJ,KAAK,CAAC;IACzB,CAAC,CAAC;IACF,OAAOK,OAAO,CAACC,GAAG,CAACR,QAAQ,CAAC;EAC9B;EAEA,MAAchE,qBAAqB,CACjCyE,WAAiE,GAAG,EAAE,EACtEC,IAAoB,EACpB3E,IAAiB,EACF;IAAA;IACf,MAAMuC,OAAO,GAAG,8BAAI,CAACrD,iBAAiB,mDAAtB,uBAAwBoC,SAAS,GAC5C,qBAAoBqD,IAAK,oCAAmC,IAAI,CAACnG,OAAQ,EAAC,GAC1E,WAAUmG,IAAK,sBAAqB;IACzC,IAAI,4BAAC,IAAI,CAACzF,iBAAiB,mDAAtB,uBAAwBoC,SAAS,GAAE;MACtC,IAAI,CAAChD,MAAM,CAACkE,aAAa,CAACD,OAAO,CAAC;IACpC;IACA,MAAM,IAAAqC,qBAAS,EAACF,WAAW,EAAE,MAAOG,UAAU,IAAK;MACjD,OAAOA,UAAU,CAAC,IAAI,EAAE7E,IAAI,CAAC;IAC/B,CAAC,CAAC;IACF,IAAI,4BAAC,IAAI,CAACd,iBAAiB,mDAAtB,uBAAwBoC,SAAS,GAAE;MACtC,IAAI,CAAChD,MAAM,CAACqE,cAAc,CAACJ,OAAO,CAAC;IACrC;EACF;AACF;AAAC"}
|
|
1
|
+
{"version":3,"names":["DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","args","runPrePostSubscribers","mainAspect","linkedDependencies","directDeps","Set","Object","values","forEach","manifest","depName","keys","dependencies","devDependencies","add","name","has","entries","dir","linkedDeps","assign","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","pruneNodeModules","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","consoleSuccess","dependencyFilterFn","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","defaultPeerDependencies","fromPairs","envPolicy","selfPolicy","toNameVersionTuple","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","mapSeries","subscriber"],"sources":["dependency-installer.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MainAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentMap } from '@teambit/component';\nimport { CreateFromComponentsOptions, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { fromPairs } from 'lodash';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\n\nconst DEFAULT_PM_INSTALL_OPTIONS: PackageManagerInstallOptions = {\n dedupe: true,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n installPeersFromEnvs: false,\n};\n\nconst DEFAULT_INSTALL_OPTIONS: InstallOptions = {\n installTeambitBit: false,\n};\n\nexport type DepInstallerContext = {\n inCapsule?: boolean;\n};\n\nexport type InstallArgs = {\n rootDir: string | undefined;\n rootPolicy: WorkspacePolicy;\n componentDirectoryMap: ComponentMap<string>;\n options: InstallOptions;\n packageManagerOptions: PackageManagerInstallOptions;\n};\n\nexport type InstallOptions = {\n installTeambitBit: boolean;\n packageManagerConfigRootDir?: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n linkedDependencies?: Record<string, Record<string, string>>;\n pruneNodeModules?: boolean;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n} & Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'copyPeerToRuntimeOnRoot' | 'installPeersFromEnvs'\n>;\n\nexport type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PreInstallSubscriberList = Array<PreInstallSubscriber>;\n\nexport type PostInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PostInstallSubscriberList = Array<PostInstallSubscriber>;\n\nexport class DependencyInstaller {\n constructor(\n /**\n * package manager instance.\n */\n private packageManager: PackageManager,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain,\n\n private rootDir?: string | PathAbsolute,\n\n private cacheRootDir?: string | PathAbsolute,\n\n private preInstallSubscriberList?: PreInstallSubscriberList,\n\n private postInstallSubscriberList?: PostInstallSubscriberList,\n\n private nodeLinker?: 'hoisted' | 'isolated',\n\n private packageImportMethod?: PackageImportMethod,\n\n private sideEffectsCache?: boolean,\n\n private nodeVersion?: string,\n\n private engineStrict?: boolean,\n\n private peerDependencyRules?: PeerDependencyRules,\n\n private installingContext: DepInstallerContext = {}\n ) {}\n\n async install(\n rootDir: string | undefined,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const finalRootDir = rootDir ?? this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n const manifests = await this.getComponentManifests({\n ...packageManagerOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: finalRootDir,\n resolveVersionsFromDependenciesOnly: options.resolveVersionsFromDependenciesOnly,\n referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules,\n });\n return this.installComponents(\n finalRootDir,\n manifests,\n rootPolicy,\n componentDirectoryMap,\n options,\n packageManagerOptions\n );\n }\n\n async installComponents(\n rootDir: string | undefined,\n manifests: Record<string, ProjectManifest>,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const args = {\n componentDirectoryMap,\n options,\n packageManagerOptions,\n rootDir,\n rootPolicy,\n };\n await this.runPrePostSubscribers(this.preInstallSubscriberList, 'pre', args);\n const mainAspect: MainAspect = this.aspectLoader.mainAspect;\n const finalRootDir = rootDir || this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkedDependencies) {\n const directDeps = new Set<string>();\n Object.values(manifests).forEach((manifest) => {\n for (const depName of Object.keys({ ...manifest.dependencies, ...manifest.devDependencies })) {\n directDeps.add(depName);\n }\n });\n if (options.linkedDependencies[finalRootDir]) {\n for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete options.linkedDependencies[finalRootDir][manifest.name];\n }\n }\n }\n Object.entries(options.linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = Object.assign({}, manifests[dir].dependencies, linkedDeps);\n });\n }\n const hidePackageManagerOutput = !!(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true');\n\n // Make sure to take other default if passed options with only one option\n const calculatedPmOpts = {\n ...DEFAULT_PM_INSTALL_OPTIONS,\n cacheRootDir: this.cacheRootDir,\n nodeLinker: this.nodeLinker,\n packageImportMethod: this.packageImportMethod,\n sideEffectsCache: this.sideEffectsCache,\n nodeVersion: this.nodeVersion,\n engineStrict: this.engineStrict,\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n peerDependencyRules: this.peerDependencyRules,\n pruneNodeModules: options.pruneNodeModules,\n hidePackageManagerOutput,\n ...packageManagerOptions,\n };\n if (options.installTeambitBit) {\n if (!mainAspect.version || !mainAspect.packageName) {\n throw new MainAspectNotInstallable();\n }\n const version = mainAspect.version;\n rootPolicy.add({\n dependencyId: mainAspect.packageName,\n lifecycleType: 'runtime',\n value: {\n version,\n },\n });\n }\n\n if (!packageManagerOptions.rootComponents && !packageManagerOptions.keepExistingModulesDir) {\n // Remove node modules dir for all components dirs, since it might contain left overs from previous install.\n //\n // This is not needed when \"rootComponents\" are used, as in that case the package manager handles the node_modules\n // and it never leaves node_modules in a broken state.\n // Removing node_modules in that case would delete useful state information that is used by Yarn or pnpm.\n await this.cleanCompsNodeModules(componentDirectoryMap);\n }\n\n const messagePrefix = 'running package installation';\n const messageSuffix = `using ${this.packageManager.name}`;\n const message = this.installingContext?.inCapsule\n ? `(capsule) ${messagePrefix} in root dir ${this.rootDir} ${messageSuffix}`\n : `${messagePrefix} ${messageSuffix}`;\n if (!hidePackageManagerOutput) {\n this.logger.setStatusLine(message);\n }\n const startTime = process.hrtime();\n\n // TODO: the cache should be probably passed to the package manager constructor not to the install function\n await this.packageManager.install(\n {\n rootDir: finalRootDir,\n manifests,\n componentDirectoryMap,\n },\n calculatedPmOpts\n );\n if (!hidePackageManagerOutput) {\n this.logger.consoleSuccess(`done ${message}`, startTime);\n }\n await this.runPrePostSubscribers(this.postInstallSubscriberList, 'post', args);\n return componentDirectoryMap;\n }\n\n /**\n * Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager\n * in order to install the dependencies.\n */\n public async getComponentManifests({\n componentDirectoryMap,\n rootPolicy,\n rootDir,\n dedupe,\n dependencyFilterFn,\n copyPeerToRuntimeOnComponents,\n copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n };\n const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n componentDirectoryMap.components,\n options,\n this.installingContext\n );\n const manifests: Record<string, ProjectManifest> = componentDirectoryMap\n .toArray()\n .reduce((acc, [component, dir]) => {\n const packageName = this.dependencyResolver.getPackageName(component);\n const manifest = workspaceManifest.componentsManifestsMap.get(packageName);\n if (manifest) {\n acc[dir] = manifest.toJson({ copyPeerToRuntime: copyPeerToRuntimeOnComponents });\n acc[dir].defaultPeerDependencies = fromPairs(manifest.envPolicy.selfPolicy.toNameVersionTuple());\n }\n return acc;\n }, {});\n if (!manifests[rootDir]) {\n manifests[rootDir] = workspaceManifest.toJson({\n copyPeerToRuntime: copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n });\n }\n return manifests;\n }\n\n private async cleanCompsNodeModules(componentDirectoryMap: ComponentMap<string>) {\n const promises = componentDirectoryMap.toArray().map(([, dir]) => {\n const nmDir = path.join(dir, 'node_modules');\n return fs.remove(nmDir);\n });\n return Promise.all(promises);\n }\n\n private async runPrePostSubscribers(\n subscribers: PreInstallSubscriberList | PostInstallSubscriberList = [],\n type: 'pre' | 'post',\n args: InstallArgs\n ): Promise<void> {\n const message = this.installingContext?.inCapsule\n ? `(capsule) running ${type} install subscribers in root dir ${this.rootDir}`\n : `running ${type} install subscribers`;\n if (!this.installingContext?.inCapsule) {\n this.logger.setStatusLine(message);\n }\n await mapSeries(subscribers, async (subscriber) => {\n return subscriber(this, args);\n });\n if (!this.installingContext?.inCapsule) {\n this.logger.consoleSuccess(message);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
require("core-js/modules/es.array.flat.js");
|
|
4
5
|
require("core-js/modules/es.array.iterator.js");
|
|
6
|
+
require("core-js/modules/es.array.unscopables.flat.js");
|
|
5
7
|
require("core-js/modules/es.promise.js");
|
|
6
8
|
require("core-js/modules/es.regexp.exec.js");
|
|
7
9
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -15,6 +17,13 @@ function _defineProperty2() {
|
|
|
15
17
|
};
|
|
16
18
|
return data;
|
|
17
19
|
}
|
|
20
|
+
function _componentIssues() {
|
|
21
|
+
const data = require("@teambit/component-issues");
|
|
22
|
+
_componentIssues = function () {
|
|
23
|
+
return data;
|
|
24
|
+
};
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
18
27
|
function _componentIdToPackageName() {
|
|
19
28
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/utils/bit/component-id-to-package-name"));
|
|
20
29
|
_componentIdToPackageName = function () {
|
|
@@ -109,7 +118,13 @@ class WorkspaceManifestFactory {
|
|
|
109
118
|
// Make sure to take other default if passed options with only one option
|
|
110
119
|
const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);
|
|
111
120
|
const hasRootComponents = this.dependencyResolver.hasRootComponents();
|
|
112
|
-
const componentDependenciesMap = await this.buildComponentDependenciesMap(components,
|
|
121
|
+
const componentDependenciesMap = await this.buildComponentDependenciesMap(components, {
|
|
122
|
+
filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,
|
|
123
|
+
rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,
|
|
124
|
+
dependencyFilterFn: optsWithDefaults.dependencyFilterFn,
|
|
125
|
+
referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,
|
|
126
|
+
rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined
|
|
127
|
+
});
|
|
113
128
|
let dedupedDependencies = (0, _deduping().getEmptyDedupedDependencies)();
|
|
114
129
|
rootPolicy = rootPolicy.filter(dep => dep.dependencyId !== '@teambit/legacy');
|
|
115
130
|
if (hasRootComponents) {
|
|
@@ -151,7 +166,13 @@ class WorkspaceManifestFactory {
|
|
|
151
166
|
* @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs
|
|
152
167
|
* @returns
|
|
153
168
|
*/
|
|
154
|
-
async buildComponentDependenciesMap(components,
|
|
169
|
+
async buildComponentDependenciesMap(components, {
|
|
170
|
+
dependencyFilterFn,
|
|
171
|
+
filterComponentsFromManifests,
|
|
172
|
+
referenceLocalPackages,
|
|
173
|
+
rootDependencies,
|
|
174
|
+
rootPolicy
|
|
175
|
+
}) {
|
|
155
176
|
const buildResultsP = components.map(async component => {
|
|
156
177
|
const packageName = (0, _componentIdToPackageName().default)(component.state._consumer);
|
|
157
178
|
let depList = await this.dependencyResolver.getDependencies(component, {
|
|
@@ -171,7 +192,7 @@ class WorkspaceManifestFactory {
|
|
|
171
192
|
}
|
|
172
193
|
}
|
|
173
194
|
}
|
|
174
|
-
if (filterComponentsFromManifests) {
|
|
195
|
+
if (filterComponentsFromManifests !== null && filterComponentsFromManifests !== void 0 ? filterComponentsFromManifests : true) {
|
|
175
196
|
depList = filterComponents(depList, components);
|
|
176
197
|
}
|
|
177
198
|
depList = filterResolvedFromEnv(depList, componentPolicy);
|
|
@@ -182,7 +203,8 @@ class WorkspaceManifestFactory {
|
|
|
182
203
|
}
|
|
183
204
|
await this.updateDependenciesVersions(component, rootPolicy, depList);
|
|
184
205
|
const depManifest = depList.toDependenciesManifest();
|
|
185
|
-
|
|
206
|
+
const missingRootDeps = rootDependencies ? (0, _lodash().pick)(rootDependencies, getMissingPackages(component)) : {};
|
|
207
|
+
depManifest.dependencies = _objectSpread(_objectSpread(_objectSpread({}, missingRootDeps), additionalDeps), depManifest.dependencies);
|
|
186
208
|
return {
|
|
187
209
|
packageName,
|
|
188
210
|
depManifest
|
|
@@ -296,5 +318,8 @@ function filterResolvedFromEnv(dependencyList, componentPolicy) {
|
|
|
296
318
|
function excludeWorkspaceDependencies(deps) {
|
|
297
319
|
return (0, _lodash().pickBy)(deps, versionSpec => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));
|
|
298
320
|
}
|
|
321
|
+
function getMissingPackages(component) {
|
|
322
|
+
return (0, _lodash().uniq)(Object.values(component.state.issues.getOrCreate(_componentIssues().IssuesClasses.MissingPackagesDependenciesOnFs).data).flat());
|
|
323
|
+
}
|
|
299
324
|
|
|
300
325
|
//# sourceMappingURL=workspace-manifest-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","Object","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","undefined","dependencyFilterFn","referenceLocalPackages","dedupedDependencies","getEmptyDedupedDependencies","filter","dep","dependencyId","rootDependencies","dedupeDependencies","mapValues","deps","excludeWorkspaceDependencies","toManifest","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","push","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","componentPolicy","getPolicy","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","getPackageName","filterComponents","filterResolvedFromEnv","updateDependenciesVersions","depManifest","toDependenciesManifest","dependencies","result","Map","length","results","Promise","all","forEach","currResult","set","dependencyList","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","devDependencies","peerDependencies","get","getVersion","hasVersion","snapToSemver","getComponentEnvPolicy","manifest","ComponentManifest","SemVer","componentsToFilterOut","filtered","ComponentDependency","depPkgName","existingComponent","find","toString","ignoreVersion","_legacy","isEqualWithoutVersion","fromPolicy","value","resolveFromEnv","pickBy","versionSpec","startsWith"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { pickBy, mapValues } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ComponentDependency, DependencyList, PackageName } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy, EnvPolicy } from '../policy';\nimport { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport { dedupeDependencies, DedupedDependencies, getEmptyDedupedDependencies } from './deduping';\nimport { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(\n components,\n optsWithDefaults.filterComponentsFromManifests,\n optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n optsWithDefaults.dependencyFilterFn,\n optsWithDefaults.referenceLocalPackages && hasRootComponents\n );\n let dedupedDependencies = getEmptyDedupedDependencies();\n rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap);\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n filterComponentsFromManifests = true,\n rootPolicy?: WorkspacePolicy,\n dependencyFilterFn?: DepsFilterFn | undefined,\n referenceLocalPackages = false\n ): Promise<ComponentDependenciesMap> {\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const componentPolicy = await this.dependencyResolver.getPolicy(component);\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n if (filterComponentsFromManifests) {\n depList = filterComponents(depList, components);\n }\n depList = filterResolvedFromEnv(depList, componentPolicy);\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n depManifest.dependencies = {\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id._legacy and component.state._consumer.id\n // Because during tag operation, the component.id._legacy has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id._legacy.isEqualWithoutVersion(dep.componentId._legacy) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId._legacy)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\n/**\n * Filter deps which should be resolved from the env, we don't want to install them, they will be linked manually later\n * @param dependencyList\n * @param componentPolicy\n */\nfunction filterResolvedFromEnv(dependencyList: DependencyList, componentPolicy: VariantPolicy): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n const fromPolicy = componentPolicy.find(dep.id);\n if (!fromPolicy) {\n return true;\n }\n if (fromPolicy.value.resolveFromEnv) {\n return false;\n }\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAyD;AAAA;AAkBzD,MAAMA,sBAAmD,GAAG;EAC1DC,6BAA6B,EAAE,IAAI;EACnCC,8CAA8C,EAAE,IAAI;EACpDC,MAAM,EAAE,IAAI;EACZC,mCAAmC,EAAE;AACvC,CAAC;AACM,MAAMC,wBAAwB,CAAC;EACpCC,WAAW,CAASC,kBAA0C,EAAUC,YAA8B,EAAE;IAAA,KAApFD,kBAA0C,GAA1CA,kBAA0C;IAAA,KAAUC,YAA8B,GAA9BA,YAA8B;EAAG;EAEzG,MAAMC,oBAAoB,CACxBC,IAAY,EACZC,OAAe,EACfC,UAA2B,EAC3BC,OAAe,EACfC,UAAuB,EACvBC,OAAoC,GAAGf,sBAAsB,EACjC;IAC5B;IACA,MAAMgB,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAElB,sBAAsB,EAAEe,OAAO,CAAC;IAC3E,MAAMI,iBAAiB,GAAG,IAAI,CAACZ,kBAAkB,CAACY,iBAAiB,EAAE;IACrE,MAAMC,wBAAkD,GAAG,MAAM,IAAI,CAACC,6BAA6B,CACjGP,UAAU,EACVE,gBAAgB,CAACf,6BAA6B,EAC9Ce,gBAAgB,CAACZ,mCAAmC,GAAGkB,SAAS,GAAGV,UAAU,EAC7EI,gBAAgB,CAACO,kBAAkB,EACnCP,gBAAgB,CAACQ,sBAAsB,IAAIL,iBAAiB,CAC7D;IACD,IAAIM,mBAAmB,GAAG,IAAAC,uCAA2B,GAAE;IACvDd,UAAU,GAAGA,UAAU,CAACe,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACC,YAAY,KAAK,iBAAiB,CAAC;IAC/E,IAAIV,iBAAiB,EAAE;MACrB,MAAM;QAAEW;MAAiB,CAAC,GAAG,IAAAC,8BAAkB,EAACnB,UAAU,EAAEQ,wBAAwB,CAAC;MACrF;MACA;MACA;MACAK,mBAAmB,CAACK,gBAAgB,GAAG,IAAAE,mBAAS,EAC9CF,gBAAgB,EACfG,IAAI,IAAKA,IAAI,IAAIC,4BAA4B,CAACD,IAAI,CAAC,CACrD;MACDR,mBAAmB,CAACL,wBAAwB,GAAGA,wBAAwB;IACzE,CAAC,MAAM,IAAIL,OAAO,CAACZ,MAAM,EAAE;MACzBsB,mBAAmB,GAAG,IAAAM,8BAAkB,EAACnB,UAAU,EAAEQ,wBAAwB,CAAC;IAChF,CAAC,MAAM;MACLK,mBAAmB,CAACK,gBAAgB,GAAGlB,UAAU,CAACuB,UAAU,EAAE;MAC9DV,mBAAmB,CAACL,wBAAwB,GAAGA,wBAAwB;IACzE;IACA,MAAMgB,sBAAsB,GAAG,MAAM,IAAI,CAACC,sBAAsB,CAC9DZ,mBAAmB,EACnBX,UAAU,EACVE,gBAAgB,CAACd,8CAA8C,CAChE;IACD,MAAMoC,YAAY,GAAG,IAAI,CAACC,sBAAsB,CAACH,sBAAsB,CAAC;IACxE,MAAMI,iBAAiB,GAAG,KAAIC,sCAAiB,EAC7C/B,IAAI,EACJC,OAAO,EACPc,mBAAmB,CAACK,gBAAgB,EACpCQ,YAAY,EACZzB,OAAO,EACPuB,sBAAsB,CACvB;IACD,OAAOI,iBAAiB;EAC1B;EAEQD,sBAAsB,CAACH,sBAA8C,EAAE;IAC7E,MAAMM,SAAsB,GAAG,EAAE;IACjC,KAAK,MAAMC,SAAS,IAAIP,sBAAsB,CAACQ,MAAM,EAAE,EAAE;MACvDF,SAAS,CAACG,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC;IACrC;IACA,MAAMC,aAAa,GAAGL,SAAS,CAACM,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,UAAU,CAAC;IAClE;IACA;IACA,MAAMC,cAAc,GAAGC,uBAAa,CAACC,YAAY,CAACN,aAAa,CAAC;IAChE,OAAOI,cAAc;EACvB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAc9B,6BAA6B,CACzCP,UAAuB,EACvBb,6BAA6B,GAAG,IAAI,EACpCW,UAA4B,EAC5BW,kBAA6C,EAC7CC,sBAAsB,GAAG,KAAK,EACK;IACnC,MAAM8B,aAAa,GAAGxC,UAAU,CAACkC,GAAG,CAAC,MAAOL,SAAS,IAAK;MACxD,MAAMY,WAAW,GAAG,IAAAC,mCAAwB,EAACb,SAAS,CAACc,KAAK,CAACC,SAAS,CAAC;MACvE,IAAIC,OAAO,GAAG,MAAM,IAAI,CAACpD,kBAAkB,CAACqD,eAAe,CAACjB,SAAS,EAAE;QAAEkB,aAAa,EAAE;MAAK,CAAC,CAAC;MAC/F,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACvD,kBAAkB,CAACwD,SAAS,CAACpB,SAAS,CAAC;MAC1E,MAAMqB,cAAc,GAAG,CAAC,CAAC;MACzB,IAAIxC,sBAAsB,EAAE;QAC1B,MAAMyC,aAAa,GAAG,IAAI,CAACzD,YAAY,CAAC0D,gBAAgB,EAAE;QAC1D,KAAK,MAAMC,IAAI,IAAIR,OAAO,CAACS,WAAW,CAAC,WAAW,CAAC,EAA2B;UAC5E,MAAM,CAACC,oBAAoB,CAAC,GAAGF,IAAI,CAACG,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC;UACjD,IACE,CAACJ,IAAI,CAACK,WAAW,IACjB,CAACP,aAAa,CAACQ,QAAQ,CAACJ,oBAAoB,CAAC,IAC7CvD,UAAU,CAAC4D,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACL,EAAE,CAACM,OAAO,CAACT,IAAI,CAACU,WAAW,CAAC,CAAC,EACtD;YACA,MAAMC,OAAO,GAAGX,IAAI,CAACY,cAAc,EAAE;YACrC,IAAID,OAAO,KAAK,kBAAkB,EAAE;cAClCd,cAAc,CAACc,OAAO,CAAC,GAAI,aAAY;YACzC;UACF;QACF;MACF;MACA,IAAI7E,6BAA6B,EAAE;QACjC0D,OAAO,GAAGqB,gBAAgB,CAACrB,OAAO,EAAE7C,UAAU,CAAC;MACjD;MACA6C,OAAO,GAAGsB,qBAAqB,CAACtB,OAAO,EAAEG,eAAe,CAAC;MACzD;MACAH,OAAO,GAAGA,OAAO,CAAChC,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAAC0C,EAAE,KAAK,iBAAiB,CAAC;MAC/D,IAAI/C,kBAAkB,EAAE;QACtBoC,OAAO,GAAGpC,kBAAkB,CAACoC,OAAO,CAAC;MACvC;MACA,MAAM,IAAI,CAACuB,0BAA0B,CAACvC,SAAS,EAAE/B,UAAU,EAAE+C,OAAO,CAAC;MACrE,MAAMwB,WAAW,GAAGxB,OAAO,CAACyB,sBAAsB,EAAE;MACpDD,WAAW,CAACE,YAAY,mCACnBrB,cAAc,GACdmB,WAAW,CAACE,YAAY,CAC5B;MAED,OAAO;QAAE9B,WAAW;QAAE4B;MAAY,CAAC;IACrC,CAAC,CAAC;IACF,MAAMG,MAAgC,GAAG,IAAIC,GAAG,EAAE;IAElD,IAAIjC,aAAa,CAACkC,MAAM,EAAE;MACxB,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACrC,aAAa,CAAC;MAChDmC,OAAO,CAACG,OAAO,CAAEC,UAAU,IAAK;QAC9BP,MAAM,CAACQ,GAAG,CAACD,UAAU,CAACtC,WAAW,EAAEsC,UAAU,CAACV,WAAW,CAAC;MAC5D,CAAC,CAAC;IACJ;IAEA,OAAOG,MAAM;EACf;EAEA,MAAcJ,0BAA0B,CACtCvC,SAAoB,EACpB/B,UAAuC,EACvCmF,cAA8B,EACf;IACf;IACA;IACA,MAAM5C,cAAc,GAAGvC,UAAU,KAAK,MAAM,IAAI,CAACL,kBAAkB,CAACwD,SAAS,CAACpB,SAAS,CAAC,CAAC;IACzFoD,cAAc,CAACH,OAAO,CAAEhE,GAAG,IAAK;MAC9B,IAAAoE,kDAAuB,EAACpE,GAAG,EAAEhB,UAAU,EAAEuC,cAAc,CAAC;IAC1D,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMd,sBAAsB,CAC1BZ,mBAAwC,EACxCX,UAAuB,EACvBZ,8CAA8C,GAAG,IAAI,EACpB;IACjC,MAAM+F,mBAA2C,GAAG,IAAIV,GAAG,EAAE;IAC7D;IACA;IACA,MAAM,IAAAW,qBAAU,EAACpF,UAAU,EAAE,MAAO6B,SAAS,IAAK;MAChD,MAAMY,WAAW,GAAG,IAAAC,mCAAwB,EAACb,SAAS,CAACc,KAAK,CAACC,SAAS,CAAC;MACvE,IACEjC,mBAAmB,CAACL,wBAAwB,CAAC+E,GAAG,CAAC5C,WAAW,CAAC,IAC7DrD,8CAA8C,EAC9C;QACA,MAAMkG,iBAA6C,GAAG;UACpDf,YAAY,EAAE,CAAC,CAAC;UAChBgB,eAAe,EAAE,CAAC,CAAC;UACnBC,gBAAgB,EAAE,CAAC;QACrB,CAAC;QACD,IAAIjB,YAAY,GAAGe,iBAAiB;QACpC,IAAI3E,mBAAmB,CAACL,wBAAwB,CAAC+E,GAAG,CAAC5C,WAAW,CAAC,EAAE;UACjE8B,YAAY,GAAG5D,mBAAmB,CAACL,wBAAwB,CAACmF,GAAG,CAAChD,WAAW,CAA+B;QAC5G;QAEA,MAAMiD,UAAU,GAAG,MAAc;UAC/B,IAAI,CAAC7D,SAAS,CAAC2B,EAAE,CAACmC,UAAU,EAAE,EAAE,OAAO,WAAW;UAClD,OAAO,IAAAC,uCAAY,EAAC/D,SAAS,CAAC2B,EAAE,CAAC3D,OAAO,CAAW;QACrD,CAAC;QAED,MAAMA,OAAO,GAAG6F,UAAU,EAAE;QAC5B,MAAM1D,SAAS,GAAG,MAAM,IAAI,CAACvC,kBAAkB,CAACoG,qBAAqB,CAAChE,SAAS,CAAC;QAChF,MAAMiE,QAAQ,GAAG,KAAIC,sCAAiB,EAACtD,WAAW,EAAE,KAAIuD,gBAAM,EAACnG,OAAO,CAAC,EAAE0E,YAAY,EAAE1C,SAAS,EAAEG,SAAS,CAAC;QAC5GmD,mBAAmB,CAACH,GAAG,CAACvC,WAAW,EAAEqD,QAAQ,CAAC;MAChD;IACF,CAAC,CAAC;IACF,OAAOX,mBAAmB;EAC5B;AACF;AAAC;AAED,SAASjB,gBAAgB,CAACe,cAA8B,EAAEgB,qBAAkC,EAAkB;EAC5G,MAAMC,QAAQ,GAAGjB,cAAc,CAACpE,MAAM,CAAEC,GAAG,IAAK;IAC9C,IAAI,EAAEA,GAAG,YAAYqF,mCAAmB,CAAC,EAAE;MAAA;MACzC,MAAMC,UAAU,0BAAGtF,GAAG,CAACmD,cAAc,wDAAlB,yBAAAnD,GAAG,CAAmB;MACzC,IAAI,CAACsF,UAAU,EAAE,OAAO,IAAI;MAC5B;MACA;MACA;MACA,OAAO,CAACH,qBAAqB,CAACrC,IAAI,CAC/B/B,SAAS,IAAKuE,UAAU,KAAK,IAAA1D,mCAAwB,EAACb,SAAS,CAACc,KAAK,CAACC,SAAS,CAAC,CAClF;IACH;IACA;IACA,IAAI,CAAC9B,GAAG,CAACiD,WAAW,CAAC4B,UAAU,EAAE,EAAE,OAAO,KAAK;IAC/C,MAAMU,iBAAiB,GAAGJ,qBAAqB,CAACK,IAAI,CAAEzE,SAAS,IAAK;MAClE;MACA,IAAI,CAACA,SAAS,CAAC2B,EAAE,CAACmC,UAAU,EAAE,EAAE;QAC9B,OAAO9D,SAAS,CAAC2B,EAAE,CAAC+C,QAAQ,EAAE,KAAKzF,GAAG,CAACiD,WAAW,CAACwC,QAAQ,CAAC;UAAEC,aAAa,EAAE;QAAK,CAAC,CAAC;MACtF;MACA;MACA;MACA;MACA;MACA,OACE3E,SAAS,CAAC2B,EAAE,CAACiD,OAAO,CAACC,qBAAqB,CAAC5F,GAAG,CAACiD,WAAW,CAAC0C,OAAO,CAAC,IACnE5E,SAAS,CAACc,KAAK,CAACC,SAAS,CAACY,EAAE,CAACkD,qBAAqB,CAAC5F,GAAG,CAACiD,WAAW,CAAC0C,OAAO,CAAC;IAE/E,CAAC,CAAC;IACF,IAAIJ,iBAAiB,EAAE,OAAO,KAAK;IACnC,OAAO,IAAI;EACb,CAAC,CAAC;EACF,OAAOH,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS/B,qBAAqB,CAACc,cAA8B,EAAEjC,eAA8B,EAAkB;EAC7G,MAAMkD,QAAQ,GAAGjB,cAAc,CAACpE,MAAM,CAAEC,GAAG,IAAK;IAC9C,MAAM6F,UAAU,GAAG3D,eAAe,CAACsD,IAAI,CAACxF,GAAG,CAAC0C,EAAE,CAAC;IAC/C,IAAI,CAACmD,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IACA,IAAIA,UAAU,CAACC,KAAK,CAACC,cAAc,EAAE;MACnC,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb,CAAC,CAAC;EACF,OAAOX,QAAQ;AACjB;AAEA,SAAS9E,4BAA4B,CAACD,IAAoB,EAAkB;EAC1E,OAAO,IAAA2F,gBAAM,EAAC3F,IAAI,EAAG4F,WAAW,IAAK,CAACA,WAAW,CAACC,UAAU,CAAC,OAAO,CAAC,IAAI,CAACD,WAAW,CAACC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjH"}
|
|
1
|
+
{"version":3,"names":["DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","Object","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","undefined","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","filter","dep","dependencyId","dedupeDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","push","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","componentPolicy","getPolicy","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","getPackageName","filterComponents","filterResolvedFromEnv","updateDependenciesVersions","depManifest","toDependenciesManifest","missingRootDeps","pick","getMissingPackages","result","Map","length","results","Promise","all","forEach","currResult","set","dependencyList","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","devDependencies","peerDependencies","get","getVersion","hasVersion","snapToSemver","getComponentEnvPolicy","manifest","ComponentManifest","SemVer","componentsToFilterOut","filtered","ComponentDependency","depPkgName","existingComponent","find","toString","ignoreVersion","_legacy","isEqualWithoutVersion","fromPolicy","value","resolveFromEnv","pickBy","versionSpec","startsWith","uniq","issues","getOrCreate","IssuesClasses","MissingPackagesDependenciesOnFs","data","flat"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { pickBy, pick, mapValues, uniq } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ComponentDependency, DependencyList, PackageName } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy, EnvPolicy } from '../policy';\nimport { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport { dedupeDependencies, DedupedDependencies, getEmptyDedupedDependencies } from './deduping';\nimport { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {\n filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,\n rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n dependencyFilterFn: optsWithDefaults.dependencyFilterFn,\n referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,\n rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,\n });\n let dedupedDependencies = getEmptyDedupedDependencies();\n rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap);\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n {\n dependencyFilterFn,\n filterComponentsFromManifests,\n referenceLocalPackages,\n rootDependencies,\n rootPolicy,\n }: {\n dependencyFilterFn?: DepsFilterFn;\n filterComponentsFromManifests?: boolean;\n referenceLocalPackages?: boolean;\n rootDependencies?: Record<string, string>;\n rootPolicy?: WorkspacePolicy;\n }\n ): Promise<ComponentDependenciesMap> {\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const componentPolicy = await this.dependencyResolver.getPolicy(component);\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n if (filterComponentsFromManifests ?? true) {\n depList = filterComponents(depList, components);\n }\n depList = filterResolvedFromEnv(depList, componentPolicy);\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n const missingRootDeps = rootDependencies ? pick(rootDependencies, getMissingPackages(component)) : {};\n depManifest.dependencies = {\n ...missingRootDeps,\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id._legacy and component.state._consumer.id\n // Because during tag operation, the component.id._legacy has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id._legacy.isEqualWithoutVersion(dep.componentId._legacy) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId._legacy)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\n/**\n * Filter deps which should be resolved from the env, we don't want to install them, they will be linked manually later\n * @param dependencyList\n * @param componentPolicy\n */\nfunction filterResolvedFromEnv(dependencyList: DependencyList, componentPolicy: VariantPolicy): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n const fromPolicy = componentPolicy.find(dep.id);\n if (!fromPolicy) {\n return true;\n }\n if (fromPolicy.value.resolveFromEnv) {\n return false;\n }\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n\nfunction getMissingPackages(component: Component): string[] {\n return uniq(\n Object.values(component.state.issues.getOrCreate(IssuesClasses.MissingPackagesDependenciesOnFs).data).flat()\n );\n}\n"],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export declare type PackageManagerInstallOptions = {
|
|
|
31
31
|
includeOptionalDeps?: boolean;
|
|
32
32
|
updateAll?: boolean;
|
|
33
33
|
hidePackageManagerOutput?: boolean;
|
|
34
|
+
pruneNodeModules?: boolean;
|
|
34
35
|
};
|
|
35
36
|
export declare type PackageManagerGetPeerDependencyIssuesOptions = PackageManagerInstallOptions;
|
|
36
37
|
export declare type ResolvedPackageVersion = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["package-manager.ts"],"sourcesContent":["import { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { ComponentMap } from '@teambit/component';\nimport { Registries } from './registry';\nimport { DepsFilterFn } from './manifest';\nimport { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';\n\nexport { PeerDependencyIssuesByProjects };\n\nexport type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';\n\nexport type PackageManagerInstallOptions = {\n cacheRootDir?: string;\n /**\n * decide whether to dedup dependencies.\n */\n dedupe?: boolean;\n\n copyPeerToRuntimeOnRoot?: boolean;\n\n copyPeerToRuntimeOnComponents?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n nodeLinker?: 'hoisted' | 'isolated';\n\n packageManagerConfigRootDir?: string;\n\n packageImportMethod?: PackageImportMethod;\n\n rootComponents?: boolean;\n\n rootComponentsForCapsules?: boolean;\n\n useNesting?: boolean;\n\n keepExistingModulesDir?: boolean;\n\n sideEffectsCache?: boolean;\n\n engineStrict?: boolean;\n\n nodeVersion?: string;\n\n peerDependencyRules?: PeerDependencyRules;\n\n includeOptionalDeps?: boolean;\n\n updateAll?: boolean;\n\n hidePackageManagerOutput?: boolean;\n};\n\nexport type PackageManagerGetPeerDependencyIssuesOptions = PackageManagerInstallOptions;\n\nexport type ResolvedPackageVersion = {\n packageName: string;\n version: string | null;\n wantedRange?: string;\n isSemver: boolean;\n resolvedVia?: string;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n // fetchToCache?: boolean;\n // update?: boolean;\n};\n\nexport interface InstallationContext {\n rootDir: string;\n manifests: Record<string, ProjectManifest>;\n componentDirectoryMap: ComponentMap<string>;\n}\n\nexport interface PackageManager {\n /**\n * Name of the package manager\n */\n name: string;\n /**\n * install dependencies\n * @param componentDirectoryMap\n */\n install(context: InstallationContext, options: PackageManagerInstallOptions): Promise<void>;\n\n resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion>;\n\n getPeerDependencyIssues?(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n options: PackageManagerGetPeerDependencyIssuesOptions\n ): Promise<PeerDependencyIssuesByProjects>;\n\n getInjectedDirs?(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;\n\n getRegistries?(): Promise<Registries>;\n\n getProxyConfig?(): Promise<ProxyConfig>;\n\n getNetworkConfig?(): Promise<NetworkConfig>;\n\n /**\n * Specify if the package manager can be run with deduping on existing worksapce (which already contains root dependencies)\n * again, with a different context.\n * If the package manager is not capable of doing so, we want to disable the deduping.\n */\n supportsDedupingOnExistingRoot?: () => boolean;\n\n /**\n * Returns \"dependencies\" entries for \".bit_roots\".\n * These entries tell the package manager from where to the local components should be installed.\n */\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string>;\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["package-manager.ts"],"sourcesContent":["import { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { ComponentMap } from '@teambit/component';\nimport { Registries } from './registry';\nimport { DepsFilterFn } from './manifest';\nimport { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';\n\nexport { PeerDependencyIssuesByProjects };\n\nexport type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';\n\nexport type PackageManagerInstallOptions = {\n cacheRootDir?: string;\n /**\n * decide whether to dedup dependencies.\n */\n dedupe?: boolean;\n\n copyPeerToRuntimeOnRoot?: boolean;\n\n copyPeerToRuntimeOnComponents?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n nodeLinker?: 'hoisted' | 'isolated';\n\n packageManagerConfigRootDir?: string;\n\n packageImportMethod?: PackageImportMethod;\n\n rootComponents?: boolean;\n\n rootComponentsForCapsules?: boolean;\n\n useNesting?: boolean;\n\n keepExistingModulesDir?: boolean;\n\n sideEffectsCache?: boolean;\n\n engineStrict?: boolean;\n\n nodeVersion?: string;\n\n peerDependencyRules?: PeerDependencyRules;\n\n includeOptionalDeps?: boolean;\n\n updateAll?: boolean;\n\n hidePackageManagerOutput?: boolean;\n\n pruneNodeModules?: boolean;\n};\n\nexport type PackageManagerGetPeerDependencyIssuesOptions = PackageManagerInstallOptions;\n\nexport type ResolvedPackageVersion = {\n packageName: string;\n version: string | null;\n wantedRange?: string;\n isSemver: boolean;\n resolvedVia?: string;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n // fetchToCache?: boolean;\n // update?: boolean;\n};\n\nexport interface InstallationContext {\n rootDir: string;\n manifests: Record<string, ProjectManifest>;\n componentDirectoryMap: ComponentMap<string>;\n}\n\nexport interface PackageManager {\n /**\n * Name of the package manager\n */\n name: string;\n /**\n * install dependencies\n * @param componentDirectoryMap\n */\n install(context: InstallationContext, options: PackageManagerInstallOptions): Promise<void>;\n\n resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion>;\n\n getPeerDependencyIssues?(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n options: PackageManagerGetPeerDependencyIssuesOptions\n ): Promise<PeerDependencyIssuesByProjects>;\n\n getInjectedDirs?(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;\n\n getRegistries?(): Promise<Registries>;\n\n getProxyConfig?(): Promise<ProxyConfig>;\n\n getNetworkConfig?(): Promise<NetworkConfig>;\n\n /**\n * Specify if the package manager can be run with deduping on existing worksapce (which already contains root dependencies)\n * again, with a different context.\n * If the package manager is not capable of doing so, we want to disable the deduping.\n */\n supportsDedupingOnExistingRoot?: () => boolean;\n\n /**\n * Returns \"dependencies\" entries for \".bit_roots\".\n * These entries tell the package manager from where to the local components should be installed.\n */\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string>;\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@0.0.1042/dist/dependency-resolver.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@0.0.1042/dist/dependency-resolver.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
2
|
+
import { IssuesClasses } from '@teambit/component-issues';
|
|
2
3
|
import { Component } from '@teambit/component';
|
|
3
4
|
import componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';
|
|
4
|
-
import { pickBy, mapValues } from 'lodash';
|
|
5
|
+
import { pickBy, pick, mapValues, uniq } from 'lodash';
|
|
5
6
|
import { SemVer } from 'semver';
|
|
6
7
|
import pMapSeries from 'p-map-series';
|
|
7
8
|
import { snapToSemver } from '@teambit/component-package-version';
|
|
@@ -51,13 +52,13 @@ export class WorkspaceManifestFactory {
|
|
|
51
52
|
// Make sure to take other default if passed options with only one option
|
|
52
53
|
const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);
|
|
53
54
|
const hasRootComponents = this.dependencyResolver.hasRootComponents();
|
|
54
|
-
const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(
|
|
55
|
-
|
|
56
|
-
optsWithDefaults.
|
|
57
|
-
optsWithDefaults.
|
|
58
|
-
optsWithDefaults.
|
|
59
|
-
|
|
60
|
-
);
|
|
55
|
+
const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {
|
|
56
|
+
filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,
|
|
57
|
+
rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,
|
|
58
|
+
dependencyFilterFn: optsWithDefaults.dependencyFilterFn,
|
|
59
|
+
referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,
|
|
60
|
+
rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,
|
|
61
|
+
});
|
|
61
62
|
let dedupedDependencies = getEmptyDedupedDependencies();
|
|
62
63
|
rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');
|
|
63
64
|
if (hasRootComponents) {
|
|
@@ -114,10 +115,19 @@ export class WorkspaceManifestFactory {
|
|
|
114
115
|
*/
|
|
115
116
|
private async buildComponentDependenciesMap(
|
|
116
117
|
components: Component[],
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
{
|
|
119
|
+
dependencyFilterFn,
|
|
120
|
+
filterComponentsFromManifests,
|
|
121
|
+
referenceLocalPackages,
|
|
122
|
+
rootDependencies,
|
|
123
|
+
rootPolicy,
|
|
124
|
+
}: {
|
|
125
|
+
dependencyFilterFn?: DepsFilterFn;
|
|
126
|
+
filterComponentsFromManifests?: boolean;
|
|
127
|
+
referenceLocalPackages?: boolean;
|
|
128
|
+
rootDependencies?: Record<string, string>;
|
|
129
|
+
rootPolicy?: WorkspacePolicy;
|
|
130
|
+
}
|
|
121
131
|
): Promise<ComponentDependenciesMap> {
|
|
122
132
|
const buildResultsP = components.map(async (component) => {
|
|
123
133
|
const packageName = componentIdToPackageName(component.state._consumer);
|
|
@@ -140,7 +150,7 @@ export class WorkspaceManifestFactory {
|
|
|
140
150
|
}
|
|
141
151
|
}
|
|
142
152
|
}
|
|
143
|
-
if (filterComponentsFromManifests) {
|
|
153
|
+
if (filterComponentsFromManifests ?? true) {
|
|
144
154
|
depList = filterComponents(depList, components);
|
|
145
155
|
}
|
|
146
156
|
depList = filterResolvedFromEnv(depList, componentPolicy);
|
|
@@ -151,7 +161,9 @@ export class WorkspaceManifestFactory {
|
|
|
151
161
|
}
|
|
152
162
|
await this.updateDependenciesVersions(component, rootPolicy, depList);
|
|
153
163
|
const depManifest = depList.toDependenciesManifest();
|
|
164
|
+
const missingRootDeps = rootDependencies ? pick(rootDependencies, getMissingPackages(component)) : {};
|
|
154
165
|
depManifest.dependencies = {
|
|
166
|
+
...missingRootDeps,
|
|
155
167
|
...additionalDeps,
|
|
156
168
|
...depManifest.dependencies,
|
|
157
169
|
};
|
|
@@ -285,3 +297,9 @@ function filterResolvedFromEnv(dependencyList: DependencyList, componentPolicy:
|
|
|
285
297
|
function excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {
|
|
286
298
|
return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));
|
|
287
299
|
}
|
|
300
|
+
|
|
301
|
+
function getMissingPackages(component: Component): string[] {
|
|
302
|
+
return uniq(
|
|
303
|
+
Object.values(component.state.issues.getOrCreate(IssuesClasses.MissingPackagesDependenciesOnFs).data).flat()
|
|
304
|
+
);
|
|
305
|
+
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependency-resolver",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1042",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependency-resolver",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "dependency-resolver",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.1042"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cli-highlight": "2.1.9",
|
|
@@ -32,21 +32,22 @@
|
|
|
32
32
|
"@pnpm/network.ca-file": "1.0.2",
|
|
33
33
|
"@teambit/legacy-bit-id": "0.0.423",
|
|
34
34
|
"@teambit/component-id": "0.0.427",
|
|
35
|
-
"@teambit/envs": "0.0.
|
|
36
|
-
"@teambit/aspect-loader": "0.0.
|
|
37
|
-
"@teambit/component": "0.0.
|
|
38
|
-
"@teambit/logger": "0.0.
|
|
35
|
+
"@teambit/envs": "0.0.1042",
|
|
36
|
+
"@teambit/aspect-loader": "0.0.1042",
|
|
37
|
+
"@teambit/component": "0.0.1042",
|
|
38
|
+
"@teambit/logger": "0.0.795",
|
|
39
39
|
"@teambit/bit-error": "0.0.402",
|
|
40
|
-
"@teambit/graphql": "0.0.
|
|
41
|
-
"@teambit/bit-roots": "0.0.
|
|
42
|
-
"@teambit/bit": "0.1.
|
|
43
|
-
"@teambit/cli": "0.0.
|
|
44
|
-
"@teambit/config": "0.0.
|
|
45
|
-
"@teambit/global-config": "0.0.
|
|
40
|
+
"@teambit/graphql": "0.0.1042",
|
|
41
|
+
"@teambit/bit-roots": "0.0.39",
|
|
42
|
+
"@teambit/bit": "0.1.29",
|
|
43
|
+
"@teambit/cli": "0.0.702",
|
|
44
|
+
"@teambit/config": "0.0.715",
|
|
45
|
+
"@teambit/global-config": "0.0.704",
|
|
46
46
|
"@teambit/harmony.modules.requireable-component": "0.0.491",
|
|
47
|
-
"@teambit/snapping": "0.0.
|
|
48
|
-
"@teambit/isolator": "0.0.
|
|
47
|
+
"@teambit/snapping": "0.0.357",
|
|
48
|
+
"@teambit/isolator": "0.0.1042",
|
|
49
49
|
"@teambit/component-package-version": "0.0.422",
|
|
50
|
+
"@teambit/component-issues": "0.0.89",
|
|
50
51
|
"@teambit/component-version": "0.0.408"
|
|
51
52
|
},
|
|
52
53
|
"devDependencies": {
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
"@teambit/dependencies.aspect-docs.dependency-resolver": "0.0.158"
|
|
65
66
|
},
|
|
66
67
|
"peerDependencies": {
|
|
67
|
-
"@teambit/legacy": "1.0.
|
|
68
|
+
"@teambit/legacy": "1.0.481",
|
|
68
69
|
"react": "^16.8.0 || ^17.0.0",
|
|
69
70
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
70
71
|
},
|
|
Binary file
|