@teambit/dependency-resolver 0.0.1125 → 0.0.1126
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/dependency-list.ts +7 -1
- package/dist/dependencies/dependency-list.js +11 -1
- package/dist/dependencies/dependency-list.js.map +1 -1
- package/dist/dependency-installer.d.ts +3 -1
- package/dist/dependency-installer.js +8 -4
- package/dist/dependency-installer.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.d.ts +7 -2
- package/dist/dependency-resolver.main.runtime.js +42 -5
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.spec.js +248 -141
- package/dist/dependency-resolver.main.runtime.spec.js.map +1 -1
- package/dist/manifest/workspace-manifest-factory.d.ts +1 -0
- package/dist/manifest/workspace-manifest-factory.js +16 -1
- package/dist/manifest/workspace-manifest-factory.js.map +1 -1
- package/dist/{preview-1690973995513.js → preview-1691523857630.js} +2 -2
- package/manifest/workspace-manifest-factory.ts +18 -0
- package/package-tar/teambit-dependency-resolver-0.0.1126.tgz +0 -0
- package/package.json +18 -17
- package/package-tar/teambit-dependency-resolver-0.0.1125.tgz +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { uniqBy, property } from 'lodash';
|
|
2
|
+
import { SNAP_VERSION_PREFIX } from '@teambit/component-package-version';
|
|
2
3
|
import { Dependency, DependencyLifecycleType, SerializedDependency, SemverVersion, PackageName } from './dependency';
|
|
3
4
|
import { KEY_NAME_BY_LIFECYCLE_TYPE } from './constants';
|
|
4
5
|
import { ComponentDependency } from './component-dependency';
|
|
@@ -50,9 +51,14 @@ export class DependencyList {
|
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
findByPkgNameOrCompId(id: string, version?: string): Dependency | undefined {
|
|
53
|
-
const found = this.dependencies.find(
|
|
54
|
+
const found = this.dependencies.find(
|
|
55
|
+
(dep) => dep.id === id || dep.getPackageName?.() === id || dep.id.startsWith(`${id}@`)
|
|
56
|
+
);
|
|
54
57
|
if (!found) return undefined;
|
|
55
58
|
if (version) {
|
|
59
|
+
// because the version for snaps is stored in deps as the hash without the prefix of "0.0.0-""
|
|
60
|
+
if (version.startsWith(SNAP_VERSION_PREFIX) && found.version === version.replace(SNAP_VERSION_PREFIX, ''))
|
|
61
|
+
return found;
|
|
56
62
|
return found.version === version ? found : undefined;
|
|
57
63
|
}
|
|
58
64
|
return found;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.array.sort.js");
|
|
4
4
|
require("core-js/modules/es.regexp.exec.js");
|
|
5
|
+
require("core-js/modules/es.string.replace.js");
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
7
8
|
});
|
|
@@ -13,6 +14,13 @@ function _lodash() {
|
|
|
13
14
|
};
|
|
14
15
|
return data;
|
|
15
16
|
}
|
|
17
|
+
function _componentPackageVersion() {
|
|
18
|
+
const data = require("@teambit/component-package-version");
|
|
19
|
+
_componentPackageVersion = function () {
|
|
20
|
+
return data;
|
|
21
|
+
};
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
16
24
|
function _constants() {
|
|
17
25
|
const data = require("./constants");
|
|
18
26
|
_constants = function () {
|
|
@@ -64,10 +72,12 @@ class DependencyList {
|
|
|
64
72
|
findByPkgNameOrCompId(id, version) {
|
|
65
73
|
const found = this.dependencies.find(dep => {
|
|
66
74
|
var _dep$getPackageName;
|
|
67
|
-
return dep.id === id || ((_dep$getPackageName = dep.getPackageName) === null || _dep$getPackageName === void 0 ? void 0 : _dep$getPackageName.call(dep)) === id;
|
|
75
|
+
return dep.id === id || ((_dep$getPackageName = dep.getPackageName) === null || _dep$getPackageName === void 0 ? void 0 : _dep$getPackageName.call(dep)) === id || dep.id.startsWith(`${id}@`);
|
|
68
76
|
});
|
|
69
77
|
if (!found) return undefined;
|
|
70
78
|
if (version) {
|
|
79
|
+
// because the version for snaps is stored in deps as the hash without the prefix of "0.0.0-""
|
|
80
|
+
if (version.startsWith(_componentPackageVersion().SNAP_VERSION_PREFIX) && found.version === version.replace(_componentPackageVersion().SNAP_VERSION_PREFIX, '')) return found;
|
|
71
81
|
return found.version === version ? found : undefined;
|
|
72
82
|
}
|
|
73
83
|
return found;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_constants","_componentDependency","DependencyList","constructor","_dependencies","uniqDeps","dependencies","sort","sorted","a","b","id","findDependency","componentIdStr","opts","ignoreVersion","find","dep","componentIdStrWithoutVersion","removeVersion","findByPkgNameOrCompId","version","found","_dep$getPackageName","getPackageName","call","undefined","forEach","predicate","map","filter","filtered","fromArray","filterHidden","hidden","toTypeArray","typeName","list","type","byTypeName","byLifecycle","lifecycle","serialize","serialized","getComponentDependencies","ComponentDependency","toDependenciesManifest","manifest","devDependencies","peerDependencies","keyName","KEY_NAME_BY_LIFECYCLE_TYPE","entry","toManifest","packageName","merge","lists","res","deps","reduce","acc","curr","concat","exports","uniq","uniqBy","property","startsWith","split"],"sources":["dependency-list.ts"],"sourcesContent":["import { uniqBy, property } from 'lodash';\nimport { Dependency, DependencyLifecycleType, SerializedDependency, SemverVersion, PackageName } from './dependency';\nimport { KEY_NAME_BY_LIFECYCLE_TYPE } from './constants';\nimport { ComponentDependency } from './component-dependency';\n\nexport type LifecycleDependenciesManifest = Record<PackageName, SemverVersion>;\n\nexport interface DependenciesManifest {\n dependencies?: LifecycleDependenciesManifest;\n devDependencies?: LifecycleDependenciesManifest;\n peerDependencies?: LifecycleDependenciesManifest;\n}\n\nexport type FindDependencyOptions = {\n ignoreVersion?: boolean;\n};\nexport class DependencyList {\n constructor(private _dependencies: Array<Dependency>) {\n this._dependencies = uniqDeps(_dependencies);\n }\n // constructor(private _dependencies: Dependency[]){}\n\n get dependencies(): Dependency[] {\n return this._dependencies;\n }\n\n sort(): DependencyList {\n const sorted = this.dependencies.sort((a, b) => {\n if (a.id < b.id) {\n return -1;\n }\n if (a.id > b.id) {\n return 1;\n }\n return 0;\n });\n return new DependencyList(sorted);\n }\n\n /**\n * @param componentIdStr complete string include the scope and the version\n */\n findDependency(componentIdStr: string, opts: FindDependencyOptions = {}): Dependency | undefined {\n const ignoreVersion = opts.ignoreVersion;\n if (!ignoreVersion) {\n return this.dependencies.find((dep) => dep.id === componentIdStr);\n }\n const componentIdStrWithoutVersion = removeVersion(componentIdStr);\n return this.dependencies.find((dep) => removeVersion(dep.id) === componentIdStrWithoutVersion);\n }\n\n findByPkgNameOrCompId(id: string, version?: string): Dependency | undefined {\n const found = this.dependencies.find((dep) => dep.id === id || dep.getPackageName?.() === id);\n if (!found) return undefined;\n if (version) {\n return found.version === version ? found : undefined;\n }\n return found;\n }\n\n forEach(predicate: (dep: Dependency, index?: number) => void): void {\n this.dependencies.forEach(predicate);\n }\n\n map(predicate: (dep: Dependency, index?: number) => any) {\n return this.dependencies.map(predicate);\n }\n\n filter(predicate: (dep: Dependency, index?: number) => boolean): DependencyList {\n const filtered = this.dependencies.filter(predicate);\n return DependencyList.fromArray(filtered);\n }\n\n filterHidden(): DependencyList {\n return this.filter((dep) => !dep.hidden);\n }\n\n toTypeArray<T extends Dependency>(typeName: string): T[] {\n const list: T[] = this.dependencies.filter((dep) => dep.type === typeName) as any as T[];\n return list;\n }\n\n byTypeName(typeName: string): DependencyList {\n const filtered = this.dependencies.filter((dep) => dep.type === typeName);\n return DependencyList.fromArray(filtered);\n }\n\n byLifecycle(lifecycle: DependencyLifecycleType): DependencyList {\n const filtered = this.dependencies.filter((dep) => dep.lifecycle === lifecycle);\n return DependencyList.fromArray(filtered);\n }\n\n serialize(): SerializedDependency[] {\n const serialized = this.dependencies.map((dep) => {\n return dep.serialize();\n });\n return serialized;\n }\n\n getComponentDependencies(): ComponentDependency[] {\n return this.dependencies.filter((dep) => dep instanceof ComponentDependency) as ComponentDependency[];\n }\n\n toDependenciesManifest(): Required<DependenciesManifest> {\n const manifest: Required<DependenciesManifest> = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this.forEach((dep) => {\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[dep.lifecycle];\n const entry = dep.toManifest();\n if (entry) {\n manifest[keyName][entry.packageName] = entry.version;\n }\n });\n return manifest;\n }\n\n static merge(lists: DependencyList[]): DependencyList {\n const res: Dependency[] = [];\n const deps = lists.reduce((acc, curr) => {\n acc = acc.concat(curr.dependencies);\n return acc;\n }, res);\n return new DependencyList(deps);\n }\n\n static fromArray(dependencies: Array<Dependency>) {\n return new DependencyList(dependencies);\n }\n}\n\nfunction uniqDeps(dependencies: Array<Dependency>): Array<Dependency> {\n const uniq = uniqBy(dependencies, property('id'));\n return uniq;\n}\n\nfunction removeVersion(id: string): string {\n if (id.startsWith('@')) return id.split('@')[1]; // scoped package\n return id.split('@')[0];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_componentPackageVersion","_constants","_componentDependency","DependencyList","constructor","_dependencies","uniqDeps","dependencies","sort","sorted","a","b","id","findDependency","componentIdStr","opts","ignoreVersion","find","dep","componentIdStrWithoutVersion","removeVersion","findByPkgNameOrCompId","version","found","_dep$getPackageName","getPackageName","call","startsWith","undefined","SNAP_VERSION_PREFIX","replace","forEach","predicate","map","filter","filtered","fromArray","filterHidden","hidden","toTypeArray","typeName","list","type","byTypeName","byLifecycle","lifecycle","serialize","serialized","getComponentDependencies","ComponentDependency","toDependenciesManifest","manifest","devDependencies","peerDependencies","keyName","KEY_NAME_BY_LIFECYCLE_TYPE","entry","toManifest","packageName","merge","lists","res","deps","reduce","acc","curr","concat","exports","uniq","uniqBy","property","split"],"sources":["dependency-list.ts"],"sourcesContent":["import { uniqBy, property } from 'lodash';\nimport { SNAP_VERSION_PREFIX } from '@teambit/component-package-version';\nimport { Dependency, DependencyLifecycleType, SerializedDependency, SemverVersion, PackageName } from './dependency';\nimport { KEY_NAME_BY_LIFECYCLE_TYPE } from './constants';\nimport { ComponentDependency } from './component-dependency';\n\nexport type LifecycleDependenciesManifest = Record<PackageName, SemverVersion>;\n\nexport interface DependenciesManifest {\n dependencies?: LifecycleDependenciesManifest;\n devDependencies?: LifecycleDependenciesManifest;\n peerDependencies?: LifecycleDependenciesManifest;\n}\n\nexport type FindDependencyOptions = {\n ignoreVersion?: boolean;\n};\nexport class DependencyList {\n constructor(private _dependencies: Array<Dependency>) {\n this._dependencies = uniqDeps(_dependencies);\n }\n // constructor(private _dependencies: Dependency[]){}\n\n get dependencies(): Dependency[] {\n return this._dependencies;\n }\n\n sort(): DependencyList {\n const sorted = this.dependencies.sort((a, b) => {\n if (a.id < b.id) {\n return -1;\n }\n if (a.id > b.id) {\n return 1;\n }\n return 0;\n });\n return new DependencyList(sorted);\n }\n\n /**\n * @param componentIdStr complete string include the scope and the version\n */\n findDependency(componentIdStr: string, opts: FindDependencyOptions = {}): Dependency | undefined {\n const ignoreVersion = opts.ignoreVersion;\n if (!ignoreVersion) {\n return this.dependencies.find((dep) => dep.id === componentIdStr);\n }\n const componentIdStrWithoutVersion = removeVersion(componentIdStr);\n return this.dependencies.find((dep) => removeVersion(dep.id) === componentIdStrWithoutVersion);\n }\n\n findByPkgNameOrCompId(id: string, version?: string): Dependency | undefined {\n const found = this.dependencies.find(\n (dep) => dep.id === id || dep.getPackageName?.() === id || dep.id.startsWith(`${id}@`)\n );\n if (!found) return undefined;\n if (version) {\n // because the version for snaps is stored in deps as the hash without the prefix of \"0.0.0-\"\"\n if (version.startsWith(SNAP_VERSION_PREFIX) && found.version === version.replace(SNAP_VERSION_PREFIX, ''))\n return found;\n return found.version === version ? found : undefined;\n }\n return found;\n }\n\n forEach(predicate: (dep: Dependency, index?: number) => void): void {\n this.dependencies.forEach(predicate);\n }\n\n map(predicate: (dep: Dependency, index?: number) => any) {\n return this.dependencies.map(predicate);\n }\n\n filter(predicate: (dep: Dependency, index?: number) => boolean): DependencyList {\n const filtered = this.dependencies.filter(predicate);\n return DependencyList.fromArray(filtered);\n }\n\n filterHidden(): DependencyList {\n return this.filter((dep) => !dep.hidden);\n }\n\n toTypeArray<T extends Dependency>(typeName: string): T[] {\n const list: T[] = this.dependencies.filter((dep) => dep.type === typeName) as any as T[];\n return list;\n }\n\n byTypeName(typeName: string): DependencyList {\n const filtered = this.dependencies.filter((dep) => dep.type === typeName);\n return DependencyList.fromArray(filtered);\n }\n\n byLifecycle(lifecycle: DependencyLifecycleType): DependencyList {\n const filtered = this.dependencies.filter((dep) => dep.lifecycle === lifecycle);\n return DependencyList.fromArray(filtered);\n }\n\n serialize(): SerializedDependency[] {\n const serialized = this.dependencies.map((dep) => {\n return dep.serialize();\n });\n return serialized;\n }\n\n getComponentDependencies(): ComponentDependency[] {\n return this.dependencies.filter((dep) => dep instanceof ComponentDependency) as ComponentDependency[];\n }\n\n toDependenciesManifest(): Required<DependenciesManifest> {\n const manifest: Required<DependenciesManifest> = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this.forEach((dep) => {\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[dep.lifecycle];\n const entry = dep.toManifest();\n if (entry) {\n manifest[keyName][entry.packageName] = entry.version;\n }\n });\n return manifest;\n }\n\n static merge(lists: DependencyList[]): DependencyList {\n const res: Dependency[] = [];\n const deps = lists.reduce((acc, curr) => {\n acc = acc.concat(curr.dependencies);\n return acc;\n }, res);\n return new DependencyList(deps);\n }\n\n static fromArray(dependencies: Array<Dependency>) {\n return new DependencyList(dependencies);\n }\n}\n\nfunction uniqDeps(dependencies: Array<Dependency>): Array<Dependency> {\n const uniq = uniqBy(dependencies, property('id'));\n return uniq;\n}\n\nfunction removeVersion(id: string): string {\n if (id.startsWith('@')) return id.split('@')[1]; // scoped package\n return id.split('@')[0];\n}\n"],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export declare type InstallOptions = {
|
|
|
21
21
|
resolveVersionsFromDependenciesOnly?: boolean;
|
|
22
22
|
linkedDependencies?: Record<string, Record<string, string>>;
|
|
23
23
|
forceTeambitHarmonyLink?: boolean;
|
|
24
|
+
excludeExtensionsDependencies?: boolean;
|
|
24
25
|
};
|
|
25
26
|
export declare type GetComponentManifestsOptions = {
|
|
26
27
|
componentDirectoryMap: ComponentMap<string>;
|
|
@@ -29,6 +30,7 @@ export declare type GetComponentManifestsOptions = {
|
|
|
29
30
|
resolveVersionsFromDependenciesOnly?: boolean;
|
|
30
31
|
referenceLocalPackages?: boolean;
|
|
31
32
|
hasRootComponents?: boolean;
|
|
33
|
+
excludeExtensionsDependencies?: boolean;
|
|
32
34
|
} & Pick<PackageManagerInstallOptions, 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'copyPeerToRuntimeOnRoot' | 'installPeersFromEnvs'>;
|
|
33
35
|
export declare type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;
|
|
34
36
|
export declare type PreInstallSubscriberList = Array<PreInstallSubscriber>;
|
|
@@ -71,7 +73,7 @@ export declare class DependencyInstaller {
|
|
|
71
73
|
* Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager
|
|
72
74
|
* in order to install the dependencies.
|
|
73
75
|
*/
|
|
74
|
-
getComponentManifests({ componentDirectoryMap, rootPolicy, rootDir, dedupe, dependencyFilterFn, copyPeerToRuntimeOnComponents, copyPeerToRuntimeOnRoot, installPeersFromEnvs, resolveVersionsFromDependenciesOnly, referenceLocalPackages, hasRootComponents, }: GetComponentManifestsOptions): Promise<Record<string, ProjectManifest>>;
|
|
76
|
+
getComponentManifests({ componentDirectoryMap, rootPolicy, rootDir, dedupe, dependencyFilterFn, copyPeerToRuntimeOnComponents, copyPeerToRuntimeOnRoot, installPeersFromEnvs, resolveVersionsFromDependenciesOnly, referenceLocalPackages, hasRootComponents, excludeExtensionsDependencies, }: GetComponentManifestsOptions): Promise<Record<string, ProjectManifest>>;
|
|
75
77
|
private cleanCompsNodeModules;
|
|
76
78
|
private runPrePostSubscribers;
|
|
77
79
|
}
|
|
@@ -58,7 +58,8 @@ const DEFAULT_PM_INSTALL_OPTIONS = {
|
|
|
58
58
|
installPeersFromEnvs: false
|
|
59
59
|
};
|
|
60
60
|
const DEFAULT_INSTALL_OPTIONS = {
|
|
61
|
-
installTeambitBit: false
|
|
61
|
+
installTeambitBit: false,
|
|
62
|
+
excludeExtensionsDependencies: false
|
|
62
63
|
};
|
|
63
64
|
class DependencyInstaller {
|
|
64
65
|
constructor(
|
|
@@ -94,7 +95,8 @@ class DependencyInstaller {
|
|
|
94
95
|
rootPolicy,
|
|
95
96
|
rootDir: finalRootDir,
|
|
96
97
|
resolveVersionsFromDependenciesOnly: options.resolveVersionsFromDependenciesOnly,
|
|
97
|
-
referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules
|
|
98
|
+
referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules,
|
|
99
|
+
excludeExtensionsDependencies: options.excludeExtensionsDependencies
|
|
98
100
|
}));
|
|
99
101
|
return this.installComponents(finalRootDir, manifests, rootPolicy, componentDirectoryMap, options, packageManagerOptions);
|
|
100
102
|
}
|
|
@@ -220,7 +222,8 @@ class DependencyInstaller {
|
|
|
220
222
|
installPeersFromEnvs,
|
|
221
223
|
resolveVersionsFromDependenciesOnly,
|
|
222
224
|
referenceLocalPackages,
|
|
223
|
-
hasRootComponents
|
|
225
|
+
hasRootComponents,
|
|
226
|
+
excludeExtensionsDependencies
|
|
224
227
|
}) {
|
|
225
228
|
const options = {
|
|
226
229
|
filterComponentsFromManifests: true,
|
|
@@ -229,7 +232,8 @@ class DependencyInstaller {
|
|
|
229
232
|
dependencyFilterFn,
|
|
230
233
|
resolveVersionsFromDependenciesOnly,
|
|
231
234
|
referenceLocalPackages,
|
|
232
|
-
hasRootComponents
|
|
235
|
+
hasRootComponents,
|
|
236
|
+
excludeExtensionsDependencies
|
|
233
237
|
};
|
|
234
238
|
const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(undefined, undefined, rootPolicy, rootDir, componentDirectoryMap.components, options, this.installingContext);
|
|
235
239
|
const packageNames = componentDirectoryMap.components.map(component => this.dependencyResolver.getPackageName(component));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_lodash","_exceptions","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","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","neverBuiltDependencies","preferOffline","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","_this$neverBuiltDepen","_this$installingConte","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","_manifests$finalRootD","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","packageNames","map","component","getPackageName","toArray","reduce","acc","componentsManifestsMap","get","toJson","copyPeerToRuntime","selfPolicyWithoutLocal","envPolicy","selfPolicy","dep","includes","defaultPeerDependencies","fromPairs","toNameVersionTuple","promises","nmDir","path","join","fs","remove","Promise","all","subscribers","type","_this$installingConte2","_this$installingConte3","_this$installingConte4","mapSeries","subscriber","exports"],"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 forceTeambitHarmonyLink?: boolean;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: 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 neverBuiltDependencies?: string[],\n\n private preferOffline?: boolean,\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 ): Promise<{ dependenciesChanged: boolean }> {\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 manifests = JSON.parse(JSON.stringify(manifests));\n const linkedDependencies = JSON.parse(\n JSON.stringify(options.linkedDependencies)\n ) as typeof options.linkedDependencies;\n if (linkedDependencies[finalRootDir]) {\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 for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete linkedDependencies[finalRootDir][manifest.name];\n }\n }\n if (options.forceTeambitHarmonyLink && manifests[finalRootDir].dependencies?.['@teambit/harmony']) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delete manifests[finalRootDir].dependencies!['@teambit/harmony'];\n }\n }\n Object.entries(linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = {\n ...linkedDeps,\n ...manifests[dir].dependencies,\n };\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 neverBuiltDependencies: ['core-js', ...(this.neverBuiltDependencies ?? [])],\n preferOffline: this.preferOffline,\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 const installResult = 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 installResult;\n }\n\n public async pruneModules(rootDir: string): Promise<void> {\n if (!this.packageManager.pruneModules) {\n return;\n }\n await this.packageManager.pruneModules(rootDir);\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 hasRootComponents,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\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 packageNames = componentDirectoryMap.components.map((component) =>\n this.dependencyResolver.getPackageName(component)\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 const selfPolicyWithoutLocal = manifest.envPolicy.selfPolicy.filter(\n (dep) => !packageNames.includes(dep.dependencyId)\n );\n acc[dir].defaultPeerDependencies = fromPairs(selfPolicyWithoutLocal.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
|
+
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_lodash","_exceptions","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","excludeExtensionsDependencies","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","neverBuiltDependencies","preferOffline","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","_this$neverBuiltDepen","_this$installingConte","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","_manifests$finalRootD","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","packageNames","map","component","getPackageName","toArray","reduce","acc","componentsManifestsMap","get","toJson","copyPeerToRuntime","selfPolicyWithoutLocal","envPolicy","selfPolicy","dep","includes","defaultPeerDependencies","fromPairs","toNameVersionTuple","promises","nmDir","path","join","fs","remove","Promise","all","subscribers","type","_this$installingConte2","_this$installingConte3","_this$installingConte4","mapSeries","subscriber","exports"],"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 excludeExtensionsDependencies: 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 forceTeambitHarmonyLink?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: 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 neverBuiltDependencies?: string[],\n\n private preferOffline?: boolean,\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 excludeExtensionsDependencies: options.excludeExtensionsDependencies,\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 ): Promise<{ dependenciesChanged: boolean }> {\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 manifests = JSON.parse(JSON.stringify(manifests));\n const linkedDependencies = JSON.parse(\n JSON.stringify(options.linkedDependencies)\n ) as typeof options.linkedDependencies;\n if (linkedDependencies[finalRootDir]) {\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 for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete linkedDependencies[finalRootDir][manifest.name];\n }\n }\n if (options.forceTeambitHarmonyLink && manifests[finalRootDir].dependencies?.['@teambit/harmony']) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delete manifests[finalRootDir].dependencies!['@teambit/harmony'];\n }\n }\n Object.entries(linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = {\n ...linkedDeps,\n ...manifests[dir].dependencies,\n };\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 neverBuiltDependencies: ['core-js', ...(this.neverBuiltDependencies ?? [])],\n preferOffline: this.preferOffline,\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 const installResult = 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 installResult;\n }\n\n public async pruneModules(rootDir: string): Promise<void> {\n if (!this.packageManager.pruneModules) {\n return;\n }\n await this.packageManager.pruneModules(rootDir);\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 hasRootComponents,\n excludeExtensionsDependencies,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\n excludeExtensionsDependencies,\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 packageNames = componentDirectoryMap.components.map((component) =>\n this.dependencyResolver.getPackageName(component)\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 const selfPolicyWithoutLocal = manifest.envPolicy.selfPolicy.filter(\n (dep) => !packageNames.includes(dep.dependencyId)\n );\n acc[dir].defaultPeerDependencies = fromPairs(selfPolicyWithoutLocal.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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"}
|
|
@@ -431,16 +431,21 @@ export declare class DependencyResolverMain {
|
|
|
431
431
|
/**
|
|
432
432
|
* Return a list of outdated policy dependencies.
|
|
433
433
|
*/
|
|
434
|
-
getOutdatedPkgsFromPolicies({ rootDir, variantPoliciesByPatterns, componentPoliciesById, components, }: {
|
|
434
|
+
getOutdatedPkgsFromPolicies({ rootDir, variantPoliciesByPatterns, componentPoliciesById, components, patterns, forceVersionBump, }: {
|
|
435
435
|
rootDir: string;
|
|
436
436
|
variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject>;
|
|
437
437
|
componentPoliciesById: Record<string, any>;
|
|
438
438
|
components: Component[];
|
|
439
|
+
patterns?: string[];
|
|
440
|
+
forceVersionBump?: 'major' | 'minor' | 'patch';
|
|
439
441
|
}): Promise<OutdatedPkg[]>;
|
|
440
442
|
/**
|
|
441
443
|
* Accepts a list of package dependency policies and returns a list of outdated policies extended with their "latestRange"
|
|
442
444
|
*/
|
|
443
|
-
getOutdatedPkgs<T>(rootDir
|
|
445
|
+
getOutdatedPkgs<T>({ rootDir, forceVersionBump, }: {
|
|
446
|
+
rootDir: string;
|
|
447
|
+
forceVersionBump?: 'major' | 'minor' | 'patch';
|
|
448
|
+
}, pkgs: Array<{
|
|
444
449
|
name: string;
|
|
445
450
|
currentRange: string;
|
|
446
451
|
} & T>): Promise<Array<{
|
|
@@ -30,6 +30,13 @@ function _defineProperty2() {
|
|
|
30
30
|
};
|
|
31
31
|
return data;
|
|
32
32
|
}
|
|
33
|
+
function _multimatch() {
|
|
34
|
+
const data = _interopRequireDefault(require("multimatch"));
|
|
35
|
+
_multimatch = function () {
|
|
36
|
+
return data;
|
|
37
|
+
};
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
33
40
|
function _pMapSeries() {
|
|
34
41
|
const data = _interopRequireDefault(require("p-map-series"));
|
|
35
42
|
_pMapSeries = function () {
|
|
@@ -1227,7 +1234,9 @@ class DependencyResolverMain {
|
|
|
1227
1234
|
rootDir,
|
|
1228
1235
|
variantPoliciesByPatterns,
|
|
1229
1236
|
componentPoliciesById,
|
|
1230
|
-
components
|
|
1237
|
+
components,
|
|
1238
|
+
patterns,
|
|
1239
|
+
forceVersionBump
|
|
1231
1240
|
}) {
|
|
1232
1241
|
const componentModelVersions = (await Promise.all(components.map(async component => {
|
|
1233
1242
|
const depList = await this.getDependencies(component);
|
|
@@ -1243,19 +1252,33 @@ class DependencyResolverMain {
|
|
|
1243
1252
|
lifecycleType: dep.lifecycle
|
|
1244
1253
|
}));
|
|
1245
1254
|
}))).flat();
|
|
1246
|
-
|
|
1255
|
+
let allPkgs = (0, _getAllPolicyPkgs().getAllPolicyPkgs)({
|
|
1247
1256
|
rootPolicy: this.getWorkspacePolicyFromConfig(),
|
|
1248
1257
|
variantPoliciesByPatterns,
|
|
1249
1258
|
componentPoliciesById,
|
|
1250
1259
|
componentModelVersions
|
|
1251
1260
|
});
|
|
1252
|
-
|
|
1261
|
+
if (patterns !== null && patterns !== void 0 && patterns.length) {
|
|
1262
|
+
const selectedPkgNames = new Set((0, _multimatch().default)(allPkgs.map(({
|
|
1263
|
+
name
|
|
1264
|
+
}) => name), patterns));
|
|
1265
|
+
allPkgs = allPkgs.filter(({
|
|
1266
|
+
name
|
|
1267
|
+
}) => selectedPkgNames.has(name));
|
|
1268
|
+
}
|
|
1269
|
+
return this.getOutdatedPkgs({
|
|
1270
|
+
rootDir,
|
|
1271
|
+
forceVersionBump
|
|
1272
|
+
}, allPkgs);
|
|
1253
1273
|
}
|
|
1254
1274
|
|
|
1255
1275
|
/**
|
|
1256
1276
|
* Accepts a list of package dependency policies and returns a list of outdated policies extended with their "latestRange"
|
|
1257
1277
|
*/
|
|
1258
|
-
async getOutdatedPkgs(
|
|
1278
|
+
async getOutdatedPkgs({
|
|
1279
|
+
rootDir,
|
|
1280
|
+
forceVersionBump
|
|
1281
|
+
}, pkgs) {
|
|
1259
1282
|
this.logger.setStatusLine('checking the latest versions of dependencies');
|
|
1260
1283
|
const resolver = await this.getVersionResolver();
|
|
1261
1284
|
const tryResolve = async spec => {
|
|
@@ -1269,7 +1292,7 @@ class DependencyResolverMain {
|
|
|
1269
1292
|
}
|
|
1270
1293
|
};
|
|
1271
1294
|
const outdatedPkgs = (0, _lodash().compact)(await Promise.all(pkgs.map(async pkg => {
|
|
1272
|
-
const latestVersion = await tryResolve(`${pkg.name}
|
|
1295
|
+
const latestVersion = await tryResolve(`${pkg.name}@${newVersionRange(pkg.currentRange, forceVersionBump)}`);
|
|
1273
1296
|
if (!latestVersion) return null;
|
|
1274
1297
|
const currentVersion = _semver().default.valid(pkg.currentRange.replace(/[\^~]/, ''));
|
|
1275
1298
|
// If the current version is newer than the latest, then no need to update the dependency
|
|
@@ -1385,5 +1408,19 @@ function repeatPrefix(originalSpec, newVersion) {
|
|
|
1385
1408
|
return newVersion;
|
|
1386
1409
|
}
|
|
1387
1410
|
}
|
|
1411
|
+
function newVersionRange(currentRange, forceVersionBump) {
|
|
1412
|
+
if (forceVersionBump == null || forceVersionBump === 'major') return 'latest';
|
|
1413
|
+
const currentVersion = _semver().default.valid(currentRange.replace(/[\^~]/, ''));
|
|
1414
|
+
if (!currentVersion) return null;
|
|
1415
|
+
const [major, minor] = currentVersion.split('.');
|
|
1416
|
+
switch (forceVersionBump) {
|
|
1417
|
+
case 'patch':
|
|
1418
|
+
return `>=${currentVersion} <${major}.${+minor + 1}.0`;
|
|
1419
|
+
case 'minor':
|
|
1420
|
+
return `>=${currentVersion} <${+major + 1}.0.0`;
|
|
1421
|
+
default:
|
|
1422
|
+
return null;
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1388
1425
|
|
|
1389
1426
|
//# sourceMappingURL=dependency-resolver.main.runtime.js.map
|