@teambit/dependency-resolver 1.0.1096 → 1.0.1097
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 +67 -2
- package/dist/dependency-installer.js +155 -1
- package/dist/dependency-installer.js.map +1 -1
- package/dist/dependency-linker.d.ts +23 -0
- package/dist/dependency-linker.js +82 -4
- package/dist/dependency-linker.js.map +1 -1
- package/dist/dependency-resolver-workspace-config.d.ts +5 -1
- package/dist/dependency-resolver-workspace-config.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.d.ts +34 -0
- package/dist/dependency-resolver.main.runtime.js +80 -1
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/exceptions/index.d.ts +1 -0
- package/dist/exceptions/index.js +13 -0
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/self-hosted-virtual-store-transition.d.ts +16 -0
- package/dist/exceptions/self-hosted-virtual-store-transition.js +36 -0
- package/dist/exceptions/self-hosted-virtual-store-transition.js.map +1 -0
- package/dist/hoisted-resolution-bridge.d.ts +46 -0
- package/dist/hoisted-resolution-bridge.js +291 -0
- package/dist/hoisted-resolution-bridge.js.map +1 -0
- package/dist/hoisted-resolution-bridge.spec.d.ts +1 -0
- package/dist/hoisted-resolution-bridge.spec.js +64 -0
- package/dist/hoisted-resolution-bridge.spec.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/package-manager.d.ts +39 -0
- package/dist/package-manager.js.map +1 -1
- package/dist/{preview-1785958716068.js → preview-1786219819000.js} +2 -2
- package/exceptions/index.ts +1 -0
- package/exceptions/self-hosted-virtual-store-transition.ts +26 -0
- package/package.json +29 -28
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dependencyResolver","data","require","_manifest","_dependencyResolverMain","_dependencies","_policy","_dependencyLinker","_dependencyInstaller","_extendWithComponentsFromDir","_hoistDependencies","_detectorHook"],"sources":["index.ts"],"sourcesContent":["import { DependencyResolverAspect } from './dependency-resolver.aspect';\n\nexport type { UpdatedComponent } from './apply-updates';\nexport type { RawComponentState, ComponentsManifestsMap, RegistriesMap } from './types';\nexport { WorkspaceManifest, ComponentManifest } from './manifest';\nexport type { CreateFromComponentsOptions, ManifestDependenciesObject } from './manifest';\nexport type {\n InstallationContext,\n PackageImportMethod,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n CalcDepsGraphOptions,\n CalcDepsGraphForComponentOptions,\n ComponentIdByPkgName,\n} from './package-manager';\nexport type {\n DependencyResolverWorkspaceConfig,\n NodeLinker,\n ComponentRangePrefix,\n} from './dependency-resolver-workspace-config';\nexport type {\n DependencyResolverMain,\n DependencyResolverVariantConfig,\n MergedOutdatedPkg,\n} from './dependency-resolver.main.runtime';\nexport { NPM_REGISTRY, BIT_CLOUD_REGISTRY } from './dependency-resolver.main.runtime';\nexport type {\n ProxyConfig as PackageManagerProxyConfig,\n NetworkConfig as PackageManagerNetworkConfig,\n} from './dependency-resolver.main.runtime';\nexport {\n DependencyList,\n BaseDependency,\n ComponentDependency,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n COMPONENT_DEP_TYPE,\n} from './dependencies';\nexport type {\n DependencyLifecycleType,\n WorkspaceDependencyLifecycleType,\n DependencyFactory,\n SerializedDependency,\n Dependency,\n SemverVersion,\n DependenciesManifest,\n} from './dependencies';\nexport { WorkspacePolicy, VariantPolicy, EnvPolicy, EnvPolicyEnvJsoncConfigObject } from './policy';\nexport type {\n WorkspacePolicyEntry,\n WorkspacePolicyConfigObject,\n VariantPolicyConfigObject,\n Policy,\n PolicySemver,\n PolicyConfigKeys,\n PolicyConfigKeysNames,\n PolicyEntry,\n SerializedVariantPolicy,\n WorkspacePolicyConfigKeysNames,\n EnvPolicyConfigObject,\n VariantPolicyConfigArr,\n} from './policy';\nexport { DependencyLinker } from './dependency-linker';\nexport type {\n CoreAspectLinkResult,\n LinkDetail,\n LinkResults,\n LinkingOptions,\n DepsLinkedToEnvResult,\n NestedNMDepsLinksResult,\n LinkToDirResult,\n} from './dependency-linker';\nexport { DependencyInstaller } from './dependency-installer';\nexport type { GetComponentManifestsOptions, InstallOptions, InstallArgs } from './dependency-installer';\nexport type { DependencySource, VariantPolicyEntry } from './policy/variant-policy/variant-policy';\nexport type { OutdatedPkg, CurrentPkg } from './get-all-policy-pkgs';\nexport { extendWithComponentsFromDir } from './extend-with-components-from-dir';\nexport { isRange } from './manifest/deduping/hoist-dependencies';\nexport type { DependencyEnv } from './dependency-env';\nexport { DetectorHook, DependencyDetector, FileContext } from './detector-hook';\nexport { DependencyResolverAspect as default, DependencyResolverAspect };\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_dependencyResolver","data","require","_manifest","_dependencyResolverMain","_dependencies","_policy","_dependencyLinker","_dependencyInstaller","_extendWithComponentsFromDir","_hoistDependencies","_detectorHook","_hoistedResolutionBridge"],"sources":["index.ts"],"sourcesContent":["import { DependencyResolverAspect } from './dependency-resolver.aspect';\n\nexport type { UpdatedComponent } from './apply-updates';\nexport type { RawComponentState, ComponentsManifestsMap, RegistriesMap } from './types';\nexport { WorkspaceManifest, ComponentManifest } from './manifest';\nexport type { CreateFromComponentsOptions, ManifestDependenciesObject } from './manifest';\nexport type {\n InstallationContext,\n PackageImportMethod,\n PackageExtension,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n CalcDepsGraphOptions,\n CalcDepsGraphForComponentOptions,\n ComponentIdByPkgName,\n} from './package-manager';\nexport type {\n DependencyResolverWorkspaceConfig,\n NodeLinker,\n ComponentRangePrefix,\n} from './dependency-resolver-workspace-config';\nexport type {\n DependencyResolverMain,\n DependencyResolverVariantConfig,\n MergedOutdatedPkg,\n} from './dependency-resolver.main.runtime';\nexport { NPM_REGISTRY, BIT_CLOUD_REGISTRY } from './dependency-resolver.main.runtime';\nexport type {\n ProxyConfig as PackageManagerProxyConfig,\n NetworkConfig as PackageManagerNetworkConfig,\n} from './dependency-resolver.main.runtime';\nexport {\n DependencyList,\n BaseDependency,\n ComponentDependency,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n COMPONENT_DEP_TYPE,\n} from './dependencies';\nexport type {\n DependencyLifecycleType,\n WorkspaceDependencyLifecycleType,\n DependencyFactory,\n SerializedDependency,\n Dependency,\n SemverVersion,\n DependenciesManifest,\n} from './dependencies';\nexport { WorkspacePolicy, VariantPolicy, EnvPolicy, EnvPolicyEnvJsoncConfigObject } from './policy';\nexport type {\n WorkspacePolicyEntry,\n WorkspacePolicyConfigObject,\n VariantPolicyConfigObject,\n Policy,\n PolicySemver,\n PolicyConfigKeys,\n PolicyConfigKeysNames,\n PolicyEntry,\n SerializedVariantPolicy,\n WorkspacePolicyConfigKeysNames,\n EnvPolicyConfigObject,\n VariantPolicyConfigArr,\n} from './policy';\nexport { DependencyLinker } from './dependency-linker';\nexport type {\n CoreAspectLinkResult,\n LinkDetail,\n LinkResults,\n LinkingOptions,\n DepsLinkedToEnvResult,\n NestedNMDepsLinksResult,\n LinkToDirResult,\n} from './dependency-linker';\nexport { DependencyInstaller } from './dependency-installer';\nexport type { GetComponentManifestsOptions, InstallOptions, InstallArgs } from './dependency-installer';\nexport type { DependencySource, VariantPolicyEntry } from './policy/variant-policy/variant-policy';\nexport type { OutdatedPkg, CurrentPkg } from './get-all-policy-pkgs';\nexport { extendWithComponentsFromDir } from './extend-with-components-from-dir';\nexport { isRange } from './manifest/deduping/hoist-dependencies';\nexport type { DependencyEnv } from './dependency-env';\nexport { DetectorHook, DependencyDetector, FileContext } from './detector-hook';\nexport { ensureHoistedDependencyResolution, ensureSelfInstallationBridge, isGlobalVirtualStoreLayout } from './hoisted-resolution-bridge';\nexport { DependencyResolverAspect as default, DependencyResolverAspect };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAwBA,SAAAG,wBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA,SAAAI,cAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,aAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAgBA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAeA,SAAAM,kBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,iBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAUA,SAAAO,qBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,oBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAQ,6BAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,4BAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,mBAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,kBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,cAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,aAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,yBAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,wBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
|
|
@@ -7,6 +7,15 @@ import type { DepsFilterFn } from './manifest';
|
|
|
7
7
|
import type { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';
|
|
8
8
|
export { PeerDependencyIssuesByProjects };
|
|
9
9
|
export type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';
|
|
10
|
+
/**
|
|
11
|
+
* Dependency groups grafted onto a package that under-declares them - pnpm's `packageExtensions`
|
|
12
|
+
* entry shape.
|
|
13
|
+
*/
|
|
14
|
+
export type PackageExtension = {
|
|
15
|
+
dependencies?: Record<string, string>;
|
|
16
|
+
optionalDependencies?: Record<string, string>;
|
|
17
|
+
peerDependencies?: Record<string, string>;
|
|
18
|
+
};
|
|
10
19
|
export type PackageManagerInstallOptions = {
|
|
11
20
|
cacheRootDir?: string;
|
|
12
21
|
/**
|
|
@@ -28,6 +37,27 @@ export type PackageManagerInstallOptions = {
|
|
|
28
37
|
nodeLinker?: 'hoisted' | 'isolated';
|
|
29
38
|
packageManagerConfigRootDir?: string;
|
|
30
39
|
packageImportMethod?: PackageImportMethod;
|
|
40
|
+
/**
|
|
41
|
+
* Create dependency directories once in the global virtual store and share them across
|
|
42
|
+
* workspaces, instead of re-creating them in every `node_modules/.pnpm`. Capsule installs
|
|
43
|
+
* never use it - the installer forces the project-local layout there.
|
|
44
|
+
*/
|
|
45
|
+
enableGlobalVirtualStore?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Where the global virtual store materializes those directories. pnpm's own shared
|
|
48
|
+
* `<storeDir>/links` unless overridden (see `PnpmPackageManager.getGlobalVirtualStoreDir` for
|
|
49
|
+
* why the shared root works).
|
|
50
|
+
*/
|
|
51
|
+
globalVirtualStoreDir?: string;
|
|
52
|
+
/**
|
|
53
|
+
* A map of package name (optionally with a version range) to a patch file path.
|
|
54
|
+
* Relative paths are resolved against the installation root directory.
|
|
55
|
+
*/
|
|
56
|
+
patchedDependencies?: Record<string, string>;
|
|
57
|
+
/**
|
|
58
|
+
* Dependency groups to graft onto packages that under-declare them (pnpm's `packageExtensions`).
|
|
59
|
+
*/
|
|
60
|
+
packageExtensions?: Record<string, PackageExtension>;
|
|
31
61
|
rootComponents?: boolean;
|
|
32
62
|
rootComponentsForCapsules?: boolean;
|
|
33
63
|
useNesting?: boolean;
|
|
@@ -147,6 +177,15 @@ export interface PackageManager {
|
|
|
147
177
|
resolveRemoteVersion(packageName: string, options: PackageManagerResolveRemoteVersionOptions): Promise<ResolvedPackageVersion>;
|
|
148
178
|
getPeerDependencyIssues?(rootDir: string, manifests: Record<string, ProjectManifest>, options: PackageManagerGetPeerDependencyIssuesOptions): Promise<PeerDependencyIssuesByProjects>;
|
|
149
179
|
getInjectedDirs?(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;
|
|
180
|
+
/**
|
|
181
|
+
* The directory the global virtual store materializes dependency directories in.
|
|
182
|
+
* `installationId` scopes it to the bit installation that is running - see
|
|
183
|
+
* `DependencyResolverMain.getGlobalVirtualStoreDir` for why that root cannot be shared.
|
|
184
|
+
*/
|
|
185
|
+
getGlobalVirtualStoreDir?(options: {
|
|
186
|
+
packageManagerConfigRootDir?: string;
|
|
187
|
+
installationId: string;
|
|
188
|
+
}): Promise<string>;
|
|
150
189
|
getRegistries?(): Promise<Registries>;
|
|
151
190
|
getProxyConfig?(): Promise<ProxyConfig>;
|
|
152
191
|
getNetworkConfig?(): Promise<NetworkConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["package-manager.ts"],"sourcesContent":["import type { PeerDependencyIssuesByProjects } from '@pnpm/napi';\nimport type { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';\nimport type { ComponentID, ComponentMap, Component } from '@teambit/component';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport type { DepsFilterFn } from './manifest';\nimport type { 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 excludeLinksFromLockfile?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n resolveEnvPeersFromRoot?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n lockfileOnly?: boolean;\n\n /**\n * When false, the package manager will not write the node_modules directory\n */\n enableModulesDir?: boolean;\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 hasRootComponents?: boolean;\n\n neverBuiltDependencies?: string[];\n\n allowScripts?: Record<string, boolean | 'warn'>;\n\n dangerouslyAllowAllScripts?: boolean;\n\n preferOffline?: boolean;\n\n nmSelfReferences?: boolean;\n\n /**\n * e.g. when running `bit install` through the web or the IDE, not from the CLI.\n */\n optimizeReportForNonTerminal?: boolean;\n\n /**\n * Sets the frequency of updating the progress output in milliseconds.\n * E.g., if this is set to 1000, then the progress will be updated every second.\n */\n throttleProgress?: number;\n\n hideProgressPrefix?: boolean;\n\n hideLifecycleOutput?: boolean;\n\n /**\n * Do installation using lockfile only. Ignore the component manifests.\n */\n ignorePackageManifest?: boolean;\n\n /**\n * When enabled, installation by the package manager will be skipped\n * but all the options will be calculated and the rebuild function will be returned.\n * We use this option for a performance optimization in Ripple CI.\n */\n dryRun?: boolean;\n\n dedupeInjectedDeps?: boolean;\n\n /**\n * When this is set to true, pnpm will hoist workspace packages to node_modules/.pnpm/node_modules.\n * This is something we need in capsules.\n */\n hoistWorkspacePackages?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * When true, dependencies from the workspace are hoisted to node_modules/.pnpm/node_modules\n * even if they are found in the root node_modules\n */\n hoistInjectedDependencies?: boolean;\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n\n /**\n * When true, pnpm will deduplicate peer dependencies where possible. It is enabled by default.\n */\n dedupePeers?: boolean;\n\n /**\n * Tells the package manager to return the list of dependencies that has to be built.\n * This is used by Ripple CI.\n */\n returnListOfDepsRequiringBuild?: boolean;\n\n dependenciesGraph?: DependenciesGraph;\n\n forcedHarmonyVersion?: string;\n\n /**\n * Defines the minimum number of minutes that must pass after a version is published before pnpm will install it.\n * This applies to all dependencies, including transitive ones.\n */\n minimumReleaseAge?: number;\n\n /**\n * If you set minimumReleaseAge but need certain dependencies to always install the newest version immediately,\n * you can list them under minimumReleaseAgeExclude. The exclusion works by package name or package name pattern\n * and applies to all versions of that package.\n */\n minimumReleaseAgeExclude?: string[];\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 manifest?: DependencyManifest;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n fullMetadata?: boolean;\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(\n context: InstallationContext,\n options: PackageManagerInstallOptions\n ): Promise<{ dependenciesChanged: boolean }>;\n\n pruneModules?(rootDir: string): 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 findUsages?(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string>;\n\n calcDependenciesGraph?(options: CalcDepsGraphOptions): Promise<void>;\n}\n\nexport interface CalcDepsGraphForComponentOptions {\n component: Component;\n componentRootDir?: string;\n componentRelativeDir: string;\n pkgName?: string;\n}\n\nexport interface CalcDepsGraphOptions {\n components: CalcDepsGraphForComponentOptions[];\n componentIdByPkgName: ComponentIdByPkgName;\n rootDir: string;\n}\n\nexport type ComponentIdByPkgName = Map<string, ComponentID>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["package-manager.ts"],"sourcesContent":["import type { PeerDependencyIssuesByProjects } from '@pnpm/napi';\nimport type { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';\nimport type { ComponentID, ComponentMap, Component } from '@teambit/component';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport type { DepsFilterFn } from './manifest';\nimport type { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';\n\nexport { PeerDependencyIssuesByProjects };\n\nexport type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';\n\n/**\n * Dependency groups grafted onto a package that under-declares them - pnpm's `packageExtensions`\n * entry shape.\n */\nexport type PackageExtension = {\n dependencies?: Record<string, string>;\n optionalDependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n};\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 excludeLinksFromLockfile?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n resolveEnvPeersFromRoot?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n lockfileOnly?: boolean;\n\n /**\n * When false, the package manager will not write the node_modules directory\n */\n enableModulesDir?: boolean;\n\n nodeLinker?: 'hoisted' | 'isolated';\n\n packageManagerConfigRootDir?: string;\n\n packageImportMethod?: PackageImportMethod;\n\n /**\n * Create dependency directories once in the global virtual store and share them across\n * workspaces, instead of re-creating them in every `node_modules/.pnpm`. Capsule installs\n * never use it - the installer forces the project-local layout there.\n */\n enableGlobalVirtualStore?: boolean;\n\n /**\n * Where the global virtual store materializes those directories. pnpm's own shared\n * `<storeDir>/links` unless overridden (see `PnpmPackageManager.getGlobalVirtualStoreDir` for\n * why the shared root works).\n */\n globalVirtualStoreDir?: string;\n\n /**\n * A map of package name (optionally with a version range) to a patch file path.\n * Relative paths are resolved against the installation root directory.\n */\n patchedDependencies?: Record<string, string>;\n\n /**\n * Dependency groups to graft onto packages that under-declare them (pnpm's `packageExtensions`).\n */\n packageExtensions?: Record<string, PackageExtension>;\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 hasRootComponents?: boolean;\n\n neverBuiltDependencies?: string[];\n\n allowScripts?: Record<string, boolean | 'warn'>;\n\n dangerouslyAllowAllScripts?: boolean;\n\n preferOffline?: boolean;\n\n nmSelfReferences?: boolean;\n\n /**\n * e.g. when running `bit install` through the web or the IDE, not from the CLI.\n */\n optimizeReportForNonTerminal?: boolean;\n\n /**\n * Sets the frequency of updating the progress output in milliseconds.\n * E.g., if this is set to 1000, then the progress will be updated every second.\n */\n throttleProgress?: number;\n\n hideProgressPrefix?: boolean;\n\n hideLifecycleOutput?: boolean;\n\n /**\n * Do installation using lockfile only. Ignore the component manifests.\n */\n ignorePackageManifest?: boolean;\n\n /**\n * When enabled, installation by the package manager will be skipped\n * but all the options will be calculated and the rebuild function will be returned.\n * We use this option for a performance optimization in Ripple CI.\n */\n dryRun?: boolean;\n\n dedupeInjectedDeps?: boolean;\n\n /**\n * When this is set to true, pnpm will hoist workspace packages to node_modules/.pnpm/node_modules.\n * This is something we need in capsules.\n */\n hoistWorkspacePackages?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * When true, dependencies from the workspace are hoisted to node_modules/.pnpm/node_modules\n * even if they are found in the root node_modules\n */\n hoistInjectedDependencies?: boolean;\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n\n /**\n * When true, pnpm will deduplicate peer dependencies where possible. It is enabled by default.\n */\n dedupePeers?: boolean;\n\n /**\n * Tells the package manager to return the list of dependencies that has to be built.\n * This is used by Ripple CI.\n */\n returnListOfDepsRequiringBuild?: boolean;\n\n dependenciesGraph?: DependenciesGraph;\n\n forcedHarmonyVersion?: string;\n\n /**\n * Defines the minimum number of minutes that must pass after a version is published before pnpm will install it.\n * This applies to all dependencies, including transitive ones.\n */\n minimumReleaseAge?: number;\n\n /**\n * If you set minimumReleaseAge but need certain dependencies to always install the newest version immediately,\n * you can list them under minimumReleaseAgeExclude. The exclusion works by package name or package name pattern\n * and applies to all versions of that package.\n */\n minimumReleaseAgeExclude?: string[];\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 manifest?: DependencyManifest;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n fullMetadata?: boolean;\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(\n context: InstallationContext,\n options: PackageManagerInstallOptions\n ): Promise<{ dependenciesChanged: boolean }>;\n\n pruneModules?(rootDir: string): 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 /**\n * The directory the global virtual store materializes dependency directories in.\n * `installationId` scopes it to the bit installation that is running - see\n * `DependencyResolverMain.getGlobalVirtualStoreDir` for why that root cannot be shared.\n */\n getGlobalVirtualStoreDir?(options: { packageManagerConfigRootDir?: string; installationId: 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 findUsages?(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string>;\n\n calcDependenciesGraph?(options: CalcDepsGraphOptions): Promise<void>;\n}\n\nexport interface CalcDepsGraphForComponentOptions {\n component: Component;\n componentRootDir?: string;\n componentRelativeDir: string;\n pkgName?: string;\n}\n\nexport interface CalcDepsGraphOptions {\n components: CalcDepsGraphForComponentOptions[];\n componentIdByPkgName: ComponentIdByPkgName;\n rootDir: string;\n}\n\nexport type ComponentIdByPkgName = Map<string, ComponentID>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.1097/dist/dependency-resolver.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.1097/dist/dependency-resolver.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/exceptions/index.ts
CHANGED
|
@@ -5,3 +5,4 @@ export { MainAspectNotLinkable } from './main-aspect-not-linkable';
|
|
|
5
5
|
export { CoreAspectLinkError } from './core-aspect-link-error';
|
|
6
6
|
export { NonAspectCorePackageLinkError } from './non-aspect-core-package-link-error';
|
|
7
7
|
export { InvalidVersionWithPrefix } from './invalid-version-with-prefix';
|
|
8
|
+
export { SelfHostedVirtualStoreTransition } from './self-hosted-virtual-store-transition';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BitError } from '@teambit/bit-error';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Thrown before an install that would switch this workspace between the project-local virtual
|
|
5
|
+
* store (`node_modules/.pnpm`) and pnpm's global virtual store while the running bit itself is
|
|
6
|
+
* installed inside this workspace's `node_modules`.
|
|
7
|
+
*
|
|
8
|
+
* A layout switch rebuilds the workspace's injected component packages from source, which
|
|
9
|
+
* discards their compiled `dist` until the end-of-install compile restores it. A bit that runs
|
|
10
|
+
* from those very packages loses its own code mid-install and crashes before it can recompile,
|
|
11
|
+
* leaving `node_modules` unusable. Steady-state installs are safe in both layouts - they
|
|
12
|
+
* preserve the top-level package directories - so only the one-time transition has to be driven
|
|
13
|
+
* by a bit that lives outside this workspace.
|
|
14
|
+
*/
|
|
15
|
+
export class SelfHostedVirtualStoreTransition extends BitError {
|
|
16
|
+
constructor(workspacePath: string, enablingGlobalVirtualStore: boolean) {
|
|
17
|
+
const direction = enablingGlobalVirtualStore
|
|
18
|
+
? 'from the project-local virtual store to the global virtual store'
|
|
19
|
+
: 'from the global virtual store back to the project-local virtual store';
|
|
20
|
+
super(
|
|
21
|
+
`this install would switch "${workspacePath}" ${direction}, but the running bit is itself installed inside this workspace's node_modules.
|
|
22
|
+
The switch rebuilds this workspace's component packages from source, which would delete the running bit's compiled code mid-install and leave node_modules broken.
|
|
23
|
+
Run this one install with a bit installation that lives outside the workspace (e.g. a bvm-installed bit). Subsequent installs from within the workspace are safe in either layout.`
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependency-resolver",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1097",
|
|
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": "1.0.
|
|
9
|
+
"version": "1.0.1097"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "4.1.2",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"multimatch": "5.0.0",
|
|
23
23
|
"semver": "7.7.1",
|
|
24
24
|
"p-limit": "3.1.0",
|
|
25
|
-
"@pnpm/napi": "12.0.0-
|
|
25
|
+
"@pnpm/napi": "12.0.0-rc.1",
|
|
26
26
|
"semver-intersect": "1.4.0",
|
|
27
27
|
"semver-range-intersect": "0.3.1",
|
|
28
28
|
"@teambit/toolbox.path.path": "0.0.21",
|
|
@@ -30,36 +30,37 @@
|
|
|
30
30
|
"@teambit/bvm.path": "1.0.0",
|
|
31
31
|
"@teambit/harmony": "0.4.12",
|
|
32
32
|
"@pnpm/network.ca-file": "3.0.3",
|
|
33
|
+
"@teambit/bit.get-bit-version": "0.0.26",
|
|
33
34
|
"@teambit/component-id": "1.2.4",
|
|
34
35
|
"@teambit/component-version": "1.0.4",
|
|
36
|
+
"@teambit/harmony.modules.requireable-component": "0.0.524",
|
|
35
37
|
"@teambit/pkg.entities.registry": "0.0.4",
|
|
38
|
+
"@teambit/pkg.modules.semver-helper": "0.0.33",
|
|
36
39
|
"@teambit/workspace.root-components": "1.0.1",
|
|
40
|
+
"@teambit/component-issues": "0.0.183",
|
|
41
|
+
"@teambit/component-package-version": "0.0.460",
|
|
37
42
|
"@teambit/legacy-bit-id": "1.1.3",
|
|
38
43
|
"@teambit/toolbox.crypto.sha1": "0.0.20",
|
|
39
44
|
"@teambit/toolbox.object.sorter": "0.0.2",
|
|
40
|
-
"@teambit/component": "1.0.
|
|
41
|
-
"@teambit/envs": "1.0.
|
|
42
|
-
"@teambit/aspect-loader": "1.0.
|
|
43
|
-
"@teambit/logger": "0.0.
|
|
44
|
-
"@teambit/objects": "0.0.
|
|
45
|
-
"@teambit/dependencies.fs.linked-dependencies": "0.0.
|
|
46
|
-
"@teambit/pkg.modules.component-package-name": "0.0.
|
|
47
|
-
"@teambit/graphql": "1.0.
|
|
48
|
-
"@teambit/cli": "0.0.
|
|
49
|
-
"@teambit/component.sources": "0.0.
|
|
50
|
-
"@teambit/config-store": "0.0.
|
|
51
|
-
"@teambit/config": "0.0.
|
|
52
|
-
"@teambit/harmony.modules.feature-toggle": "0.0.
|
|
53
|
-
"@teambit/
|
|
54
|
-
"@teambit/legacy.
|
|
55
|
-
"@teambit/legacy.
|
|
56
|
-
"@teambit/
|
|
57
|
-
"@teambit/
|
|
58
|
-
"@teambit/
|
|
59
|
-
"@teambit/workspace.modules.node-modules-linker": "0.0.375",
|
|
60
|
-
"@teambit/component-issues": "0.0.183",
|
|
61
|
-
"@teambit/component-package-version": "0.0.460",
|
|
62
|
-
"@teambit/legacy.consumer-config": "0.0.144"
|
|
45
|
+
"@teambit/component": "1.0.1097",
|
|
46
|
+
"@teambit/envs": "1.0.1097",
|
|
47
|
+
"@teambit/aspect-loader": "1.0.1097",
|
|
48
|
+
"@teambit/logger": "0.0.1457",
|
|
49
|
+
"@teambit/objects": "0.0.604",
|
|
50
|
+
"@teambit/dependencies.fs.linked-dependencies": "0.0.71",
|
|
51
|
+
"@teambit/pkg.modules.component-package-name": "0.0.152",
|
|
52
|
+
"@teambit/graphql": "1.0.1097",
|
|
53
|
+
"@teambit/cli": "0.0.1364",
|
|
54
|
+
"@teambit/component.sources": "0.0.197",
|
|
55
|
+
"@teambit/config-store": "0.0.245",
|
|
56
|
+
"@teambit/config": "0.0.1539",
|
|
57
|
+
"@teambit/harmony.modules.feature-toggle": "0.0.53",
|
|
58
|
+
"@teambit/legacy.constants": "0.0.41",
|
|
59
|
+
"@teambit/legacy.consumer-component": "0.0.146",
|
|
60
|
+
"@teambit/legacy.extension-data": "0.0.147",
|
|
61
|
+
"@teambit/scope.network": "0.0.145",
|
|
62
|
+
"@teambit/workspace.modules.node-modules-linker": "0.0.376",
|
|
63
|
+
"@teambit/legacy.consumer-config": "0.0.145"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
66
|
"@types/fs-extra": "9.0.7",
|
|
@@ -67,8 +68,8 @@
|
|
|
67
68
|
"sinon": "17.0.1",
|
|
68
69
|
"@types/semver": "7.5.8",
|
|
69
70
|
"@types/mocha": "9.1.0",
|
|
70
|
-
"@teambit/
|
|
71
|
-
"@teambit/
|
|
71
|
+
"@teambit/harmony.envs.core-aspect-env": "2.0.6",
|
|
72
|
+
"@teambit/dependencies.aspect-docs.dependency-resolver": "0.0.191"
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|