@teambit/pnpm 1.0.1127 → 1.0.1129

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/lynx.d.ts CHANGED
@@ -119,6 +119,20 @@ export declare function resolveRemoteVersion(packageName: string, { rootDir, cac
119
119
  proxyConfig?: PackageManagerProxyConfig;
120
120
  networkConfig?: PackageManagerNetworkConfig;
121
121
  }): Promise<ResolvedPackageVersion>;
122
+ /**
123
+ * Sort the engine's `depsRequiringBuild` for a stable lockfile block, or
124
+ * return undefined when the install did not compute the list at all —
125
+ * it was served from the frozen-lockfile path, or the engine predates
126
+ * `returnListOfDepsRequiringBuild`. Undefined is not an empty list: the
127
+ * install has no answer, so the recorded one has to stand.
128
+ */
129
+ export declare function sortDepsRequiringBuild(depsRequiringBuild: string[] | undefined): string[] | undefined;
130
+ /**
131
+ * The `bit:` attributes to re-assert after an install, or undefined when
132
+ * there is nothing to write. See {@link sortDepsRequiringBuild} for why
133
+ * an uncomputed list leaves the recorded one untouched.
134
+ */
135
+ export declare function mergeBitLockfileAttrs(preInstallAttrs: Partial<BitLockfileAttributes> | undefined, sortedDepsRequiringBuild: string[] | undefined): Partial<BitLockfileAttributes> | undefined;
122
136
  export interface BitLockfile extends LockfileObject {
123
137
  bit?: BitLockfileAttributes;
124
138
  }
package/dist/lynx.js CHANGED
@@ -7,8 +7,10 @@ exports.createReadPackageHooks = createReadPackageHooks;
7
7
  exports.generateResolverAndFetcher = generateResolverAndFetcher;
8
8
  exports.getPeerDependencyIssues = getPeerDependencyIssues;
9
9
  exports.install = install;
10
+ exports.mergeBitLockfileAttrs = mergeBitLockfileAttrs;
10
11
  exports.resolveRemoteVersion = resolveRemoteVersion;
11
12
  exports.resolveScriptPolicies = resolveScriptPolicies;
13
+ exports.sortDepsRequiringBuild = sortDepsRequiringBuild;
12
14
  function _path() {
13
15
  const data = require("path");
14
16
  _path = function () {
@@ -114,6 +116,13 @@ function _readConfig() {
114
116
  };
115
117
  return data;
116
118
  }
119
+ function _nodeGypBin() {
120
+ const data = require("./node-gyp-bin");
121
+ _nodeGypBin = function () {
122
+ return data;
123
+ };
124
+ return data;
125
+ }
117
126
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
118
127
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
119
128
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -394,12 +403,19 @@ async function install(rootDir, manifestsByPaths, storeDir, cacheDir, registries
394
403
  }, options.reportOptions?.peerDependencyRules),
395
404
  // Bit reports the deps requiring a build in the lockfile instead of failing.
396
405
  strictDepBuilds: false,
397
- pnpmHomeDir: options.pnpmHomeDir
406
+ pnpmHomeDir: options.pnpmHomeDir,
407
+ // Report every package with install scripts (not just blocked ones) in
408
+ // `depsRequiringBuild`, so the `bit:` lockfile block lists them even
409
+ // though Bit allows the builds to run.
410
+ returnListOfDepsRequiringBuild: true
398
411
  };
399
412
  let dependenciesChanged = false;
400
413
  let depsRequiringBuild;
401
414
  let resolvedStoreDir = storeDir;
402
415
  if (!options.dryRun) {
416
+ // Dependency build scripts inherit this process's PATH. Set up inside the
417
+ // guard, so a dry run neither writes the wrapper nor touches the env.
418
+ (0, _nodeGypBin().addNodeGypToPath)(logger);
403
419
  let stopReporting;
404
420
  let installPromise;
405
421
  let restoreWantedLockfile;
@@ -417,22 +433,16 @@ async function install(rootDir, manifestsByPaths, storeDir, cacheDir, registries
417
433
  // install alongside `depsRequiringBuild`.
418
434
  const preInstallBitAttrs = await readBitLockfileAttrs(rootDir);
419
435
  restoreWantedLockfile = await removeWantedLockfileForUpdate(rootDir, options.updateAll);
420
- // The extra `resolvedDir` param lands in `@pnpm/napi`'s ReadPackageHook
421
- // type in the release that ships the directory-resolution context; the
422
- // cast bridges the older published typing.
423
436
  installPromise = nodeApi().install(installOptions, onLog, readPackageHookForDeps);
424
437
  installsRunning[rootDir] = installPromise;
425
438
  const installResult = await installPromise;
426
439
  resolvedStoreDir = installResult.storeDir;
427
- const sortedDepsRequiringBuild = [...(installResult.depsRequiringBuild ?? [])].sort();
428
- if (sortedDepsRequiringBuild.length > 0 || preInstallBitAttrs != null) {
429
- await addBitAttributesToLockfile(rootDir, _objectSpread(_objectSpread({}, preInstallBitAttrs), {}, {
430
- depsRequiringBuild: sortedDepsRequiringBuild
431
- }));
432
- }
433
- if (sortedDepsRequiringBuild.length > 0) {
434
- depsRequiringBuild = sortedDepsRequiringBuild;
440
+ const sortedDepsRequiringBuild = sortDepsRequiringBuild(installResult.depsRequiringBuild);
441
+ const bitAttrs = mergeBitLockfileAttrs(preInstallBitAttrs, sortedDepsRequiringBuild);
442
+ if (bitAttrs != null) {
443
+ await addBitAttributesToLockfile(rootDir, bitAttrs);
435
444
  }
445
+ depsRequiringBuild = sortedDepsRequiringBuild;
436
446
  dependenciesChanged = installResult.stats.added + installResult.stats.removed + installResult.stats.linkedToRoot > 0;
437
447
  } catch (err) {
438
448
  await restoreWantedLockfile?.();
@@ -452,6 +462,8 @@ async function install(rootDir, manifestsByPaths, storeDir, cacheDir, registries
452
462
  // The Rust engine's rebuild rebuilds every build-needing package and does not
453
463
  // support the pending / skipIfHasSideEffectsCache selectors of the old engine.
454
464
  rebuild: async () => {
465
+ // Reached without an install of its own after a dry run.
466
+ (0, _nodeGypBin().addNodeGypToPath)(logger);
455
467
  let stopReporting;
456
468
  if (!options.hidePackageManagerOutput) {
457
469
  stopReporting = initReporter({
@@ -730,6 +742,29 @@ async function resolveRemoteVersion(packageName, {
730
742
  }
731
743
  }
732
744
 
745
+ /**
746
+ * Sort the engine's `depsRequiringBuild` for a stable lockfile block, or
747
+ * return undefined when the install did not compute the list at all —
748
+ * it was served from the frozen-lockfile path, or the engine predates
749
+ * `returnListOfDepsRequiringBuild`. Undefined is not an empty list: the
750
+ * install has no answer, so the recorded one has to stand.
751
+ */
752
+ function sortDepsRequiringBuild(depsRequiringBuild) {
753
+ return depsRequiringBuild == null ? undefined : [...depsRequiringBuild].sort();
754
+ }
755
+
756
+ /**
757
+ * The `bit:` attributes to re-assert after an install, or undefined when
758
+ * there is nothing to write. See {@link sortDepsRequiringBuild} for why
759
+ * an uncomputed list leaves the recorded one untouched.
760
+ */
761
+ function mergeBitLockfileAttrs(preInstallAttrs, sortedDepsRequiringBuild) {
762
+ if (sortedDepsRequiringBuild == null) return preInstallAttrs;
763
+ return _objectSpread(_objectSpread({}, preInstallAttrs), {}, {
764
+ depsRequiringBuild: sortedDepsRequiringBuild
765
+ });
766
+ }
767
+
733
768
  /**
734
769
  * Read the `bit:` extension block of the workspace's wanted lockfile,
735
770
  * or undefined when there is no lockfile or no block.
package/dist/lynx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_fs","_semver","_interopRequireDefault","_parsePackageName","_cli","_logger","_pluginTrustedDeps","nodeApi","_interopRequireWildcard","_nerfDart","_bitError","_legacy","_dependenciesPnpm","_lodash","_pnpmErrorToBitError","_readConfig","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UNTRUSTED_PACKAGE_NAMES","installsRunning","lockfileFsPromise","loadLockfileFs","loadEsm","lockfileFs","toNodeApiProxyConfig","proxyConfig","httpProxy","httpsProxy","noProxy","toNodeApiNetworkConfig","networkConfig","ca","cert","key","localAddress","strictSsl","strictSSL","maxSockets","networkConcurrency","fetchRetries","fetchRetryFactor","fetchRetryMintimeout","fetchRetryMaxtimeout","fetchTimeout","userAgent","buildAuthHeaderByUri","registries","result","registry","values","scopes","uri","authHeaderValue","toNerfDart","defaultRegistry","applyReadPackageHooks","hooks","manifest","workspaceDir","reduce","m","hook","emitLogEvent","event","streamParser","emit","generateResolverAndFetcher","cacheDir","fullMetadata","pnpmConfig","readConfig","authHeaderByUri","config","registriesMap","toMap","resolve","wantedDep","resolveOpts","resolveDependency","dir","projectDir","lockfileDir","process","cwd","undefined","getPeerDependencyIssues","manifestsByPaths","opts","projects","entries","map","rootDir","storeDir","overrides","peersSuffixMaxLength","virtualStoreDirMaxLength","VIRTUAL_STORE_DIR_MAX_LENGTH","err","pnpmErrorToBitError","install","options","logger","externalDependencies","Set","createReadPackageHooks","rootComponents","rootComponentsForCapsules","name","add","forcedHarmonyVersion","dependenciesMeta","hoistPattern","size","hoistInjectedDependencies","pkgName","scriptPolicies","resolveScriptPolicies","allowScripts","dangerouslyAllowAllScripts","neverBuiltDependencies","readPackageHookForDeps","resolvedDir","rawManifest","join","resolvedManifest","removeScriptsFromNeverBuiltPackages","neverBuildPackageNames","onLog","installOptions","nodeLinker","linkWorkspacePackages","publicHoistPattern","allowBuilds","dangerouslyAllowAllBuilds","autoInstallPeers","excludeLinksFromLockfile","lockfileOnly","packageImportMethod","preferOffline","dedupePeerDependents","dedupePeers","dedupeDirectDeps","dedupeInjectedDeps","injectWorkspacePackages","includeOptionalDeps","update","updateAll","depth","nodeVersion","engineStrict","minimumReleaseAge","minimumReleaseAgeExclude","trustLockfile","ignorePackageManifest","hoistWorkspacePackages","enableModulesDir","resolvePeersFromWorkspaceRoot","frozenLockfile","preferFrozenLockfile","peerDependencyRules","allowAny","ignoreMissing","reportOptions","strictDepBuilds","pnpmHomeDir","dependenciesChanged","depsRequiringBuild","resolvedStoreDir","dryRun","stopReporting","installPromise","restoreWantedLockfile","hidePackageManagerOutput","initReporter","hideAddedPkgsProgress","preInstallBitAttrs","readBitLockfileAttrs","removeWantedLockfileForUpdate","installResult","sortedDepsRequiringBuild","sort","addBitAttributesToLockfile","stats","added","removed","linkedToRoot","warn","rebuild","appendOnly","hideLifecycleOutput","lockfilePath","lockfileContent","fs","readFile","code","unlink","writeFile","pkg","packageDescriptor","allowedScript","trustedPkgName","TRUSTED_PACKAGE_NAMES","untrustedPkgName","scripts","includes","initDefaultReporter","context","argv","reportingOptions","throttleProgress","hideProgressPrefix","approveBuildsInstructionText","filterPkgsDiff","diff","startsWith","from","readPackage","readPackageHook","removeLegacyFromDeps","removeHarmonyFromDeps","readPackageHookForCapsules","dependencies","peerDependencies","BIT_ROOTS_DIR","readWorkspacePackageHook","newDeps","version","resolveRemoteVersion","packageName","preferredVersions","parsedPackage","parsePackageName","alias","bareSpecifier","val","BitError","wantedRange","semver","validRange","isSemver","resolvedVia","message","normalizedBareSpecifier","readWantedLockfile","lockfile","ignoreIncompatible","bit","attrs","writeWantedLockfile","merged","isEqual"],"sources":["lynx.ts"],"sourcesContent":["import { join } from 'path';\nimport { promises as fs } from 'fs';\nimport semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport { initDefaultReporter } from '@pnpm/cli.default-reporter';\nimport { streamParser } from '@pnpm/logger';\nimport { TRUSTED_PACKAGE_NAMES } from '@pnpm/plugin-trusted-deps';\nimport type {\n PackageManifest,\n ProjectManifest,\n ReadPackageHook,\n PeerDependencyRules,\n DependencyManifest,\n DepPath,\n} from '@pnpm/types';\nimport * as nodeApi from '@pnpm/napi';\nimport type { PeerDependencyIssuesByProjects } from '@pnpm/napi';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport toNerfDart from 'nerf-dart';\nimport type {\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { BitError } from '@teambit/bit-error';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport type * as LockfileFs from '@pnpm/lockfile.fs';\nimport { type LockfileFile, type LockfileObject } from '@pnpm/lockfile.types';\nimport type { Logger } from '@teambit/logger';\nimport { VIRTUAL_STORE_DIR_MAX_LENGTH } from '@teambit/dependencies.pnpm.dep-path';\nimport { isEqual } from 'lodash';\nimport { pnpmErrorToBitError } from './pnpm-error-to-bit-error';\nimport { readConfig } from './read-config';\n\n/**\n * Packages that are known to have risky or unnecessary build scripts.\n * These packages will be disallowed from running scripts by default,\n * unless the user explicitly allows them in `allowScripts`.\n */\nconst UNTRUSTED_PACKAGE_NAMES = ['es5-ext', 'less', 'protobufjs', 'ssh', 'core-js-pure', 'core-js'];\n\nconst installsRunning: Record<string, Promise<any>> = {};\ntype LockfileFsModule = typeof LockfileFs;\nlet lockfileFsPromise: Promise<LockfileFsModule> | undefined;\n\nfunction loadLockfileFs(): Promise<LockfileFsModule> {\n lockfileFsPromise ??= (async () => {\n const { loadEsm } = require('./load-pnpm-esm.cjs') as {\n loadEsm: () => Promise<{ lockfileFs: LockfileFsModule }>;\n };\n const { lockfileFs } = await loadEsm();\n return lockfileFs;\n })();\n return lockfileFsPromise;\n}\n\n/**\n * Minimal structural signature of the `resolve` function returned by\n * `generateResolverAndFetcher`. It mirrors what the old\n * `@pnpm/installing.client` `ResolveFunction` exposed, but is backed by\n * `@pnpm/napi`'s `resolveDependency`.\n */\ntype ResolveOpts = {\n lockfileDir?: string;\n projectDir?: string;\n preferredVersions?: Record<string, unknown>;\n registry?: string;\n};\ntype ResolveFunction = (\n wantedDependency: nodeApi.WantedDependency,\n opts: ResolveOpts\n) => Promise<nodeApi.ResolveResult>;\n\nfunction toNodeApiProxyConfig(proxyConfig: PackageManagerProxyConfig): nodeApi.ProxyConfig {\n return {\n httpProxy: proxyConfig.httpProxy,\n httpsProxy: proxyConfig.httpsProxy,\n noProxy: proxyConfig.noProxy,\n };\n}\n\nfunction toNodeApiNetworkConfig(networkConfig: PackageManagerNetworkConfig): nodeApi.NetworkConfig {\n return {\n ca: networkConfig.ca,\n cert: networkConfig.cert,\n key: networkConfig.key,\n localAddress: networkConfig.localAddress,\n strictSsl: networkConfig.strictSSL,\n maxSockets: networkConfig.maxSockets,\n networkConcurrency: networkConfig.networkConcurrency,\n fetchRetries: networkConfig.fetchRetries,\n fetchRetryFactor: networkConfig.fetchRetryFactor,\n fetchRetryMintimeout: networkConfig.fetchRetryMintimeout,\n fetchRetryMaxtimeout: networkConfig.fetchRetryMaxtimeout,\n fetchTimeout: networkConfig.fetchTimeout,\n userAgent: networkConfig.userAgent,\n };\n}\n\n/**\n * Pre-computed `Authorization` headers keyed by nerf-darted registry URI\n * (plus `''` for the default registry) — the shape `@pnpm/napi` applies\n * directly. Bit's registries model already carries ready-to-send header\n * values (from the engine's `readConfig` plus Bit's own cloud token), so no\n * npmrc-style credential round-trip is needed.\n */\nfunction buildAuthHeaderByUri(registries: Registries): Record<string, string> {\n const result: Record<string, string> = {};\n for (const registry of Object.values(registries.scopes)) {\n if (registry.uri && registry.authHeaderValue) {\n result[toNerfDart(registry.uri)] = registry.authHeaderValue;\n }\n }\n const { defaultRegistry } = registries;\n if (defaultRegistry?.authHeaderValue) {\n if (defaultRegistry.uri) {\n result[toNerfDart(defaultRegistry.uri)] = defaultRegistry.authHeaderValue;\n }\n result[''] = defaultRegistry.authHeaderValue;\n }\n return result;\n}\n\n/**\n * Compose the list of read-package hooks into a single synchronous transform.\n * The Bit hooks are all synchronous, so the accumulator stays synchronous even\n * though the pnpm `ReadPackageHook` type allows returning a promise.\n */\nfunction applyReadPackageHooks(\n hooks: ReadPackageHook[],\n manifest: PackageManifest,\n workspaceDir?: string\n): PackageManifest {\n return hooks.reduce<PackageManifest>((m, hook) => hook(m, workspaceDir) as PackageManifest, manifest);\n}\n\n/**\n * Feed a wire-compatible pnpm log event into the default reporter. The engine\n * emits bunyan-shaped events; the reporter subscribes to `streamParser` via\n * `.on('data', ...)`, so emitting a `data` event on the underlying stream\n * delivers the event straight to the reporter.\n */\nfunction emitLogEvent(event: Record<string, unknown>): void {\n (streamParser as unknown as NodeJS.EventEmitter).emit('data', event);\n}\n\nexport async function generateResolverAndFetcher({\n cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata,\n}: {\n cacheDir: string;\n registries: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n fullMetadata?: boolean;\n}): Promise<{ resolve: ResolveFunction }> {\n const pnpmConfig = await readConfig();\n // The engine-resolved `.npmrc` headers first; Bit's own registries model\n // (which carries the cloud token) wins on conflict.\n const authHeaderByUri = { ...pnpmConfig.config.authHeaderByUri, ...buildAuthHeaderByUri(registries) };\n const registriesMap = registries.toMap();\n const resolve: ResolveFunction = (wantedDep, resolveOpts) =>\n nodeApi.resolveDependency(wantedDep, {\n dir: resolveOpts.projectDir || resolveOpts.lockfileDir || process.cwd(),\n cacheDir,\n registries: registriesMap,\n authHeaderByUri,\n proxyConfig: proxyConfig ? toNodeApiProxyConfig(proxyConfig) : undefined,\n networkConfig: networkConfig ? toNodeApiNetworkConfig(networkConfig) : undefined,\n fullMetadata,\n });\n return { resolve };\n}\n\nexport async function getPeerDependencyIssues(\n manifestsByPaths: Record<string, any>,\n opts: {\n storeDir?: string;\n cacheDir: string;\n registries: Registries;\n rootDir: string;\n proxyConfig: PackageManagerProxyConfig;\n networkConfig: PackageManagerNetworkConfig;\n overrides?: Record<string, string>;\n packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';\n pnpmHomeDir?: string;\n }\n): Promise<PeerDependencyIssuesByProjects> {\n const projects: nodeApi.NodeApiProject[] = Object.entries(manifestsByPaths).map(([rootDir, manifest]) => ({\n rootDir,\n manifest: manifest as nodeApi.PackageManifest,\n }));\n try {\n return await nodeApi.getPeerDependencyIssues({\n dir: opts.rootDir,\n projects,\n storeDir: opts.storeDir,\n cacheDir: opts.cacheDir,\n overrides: opts.overrides,\n peersSuffixMaxLength: 1000,\n registries: opts.registries.toMap(),\n authHeaderByUri: buildAuthHeaderByUri(opts.registries),\n proxyConfig: toNodeApiProxyConfig(opts.proxyConfig),\n networkConfig: toNodeApiNetworkConfig(opts.networkConfig),\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n });\n } catch (err: any) {\n throw pnpmErrorToBitError(err);\n }\n}\n\nexport type RebuildFn = (opts: { pending?: boolean; skipIfHasSideEffectsCache?: boolean }) => Promise<void>;\n\nexport interface ReportOptions {\n appendOnly?: boolean;\n throttleProgress?: number;\n hideAddedPkgsProgress?: boolean;\n hideProgressPrefix?: boolean;\n hideLifecycleOutput?: boolean;\n peerDependencyRules?: PeerDependencyRules;\n process?: NodeJS.Process;\n}\n\nexport async function install(\n rootDir: string,\n manifestsByPaths: Record<string, ProjectManifest>,\n storeDir: string | undefined,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {},\n options: {\n updateAll?: boolean;\n nodeLinker?: 'hoisted' | 'isolated';\n overrides?: Record<string, string>;\n rootComponents?: boolean;\n rootComponentsForCapsules?: boolean;\n includeOptionalDeps?: boolean;\n reportOptions?: ReportOptions;\n hidePackageManagerOutput?: boolean;\n hoistInjectedDependencies?: boolean;\n dryRun?: boolean;\n dedupePeers?: boolean;\n dedupeInjectedDeps?: boolean;\n forcedHarmonyVersion?: string;\n allowScripts?: Record<string, boolean | 'warn'>;\n dangerouslyAllowAllScripts?: boolean;\n neverBuiltDependencies?: string[];\n autoInstallPeers?: boolean;\n publicHoistPattern?: string[];\n hoistPattern?: string[];\n lockfileOnly?: boolean;\n nodeVersion?: string;\n enableModulesDir?: boolean;\n engineStrict?: boolean;\n excludeLinksFromLockfile?: boolean;\n minimumReleaseAge?: number;\n minimumReleaseAgeExclude?: string[];\n ignorePackageManifest?: boolean;\n hoistWorkspacePackages?: boolean;\n returnListOfDepsRequiringBuild?: boolean;\n packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';\n pnpmHomeDir?: string;\n preferOffline?: boolean;\n // Accepted for backward-compatibility with the previous pnpm engine, but the\n // Rust engine manages the side-effects cache internally.\n sideEffectsCacheRead?: boolean;\n sideEffectsCacheWrite?: boolean;\n },\n logger?: Logger\n): Promise<{ dependenciesChanged: boolean; rebuild: RebuildFn; storeDir: string; depsRequiringBuild?: DepPath[] }> {\n const externalDependencies = new Set<string>();\n const hooks = createReadPackageHooks(options);\n if (options?.rootComponents && !options?.rootComponentsForCapsules) {\n for (const [dir, { name }] of Object.entries(manifestsByPaths)) {\n if (dir !== rootDir && name) {\n externalDependencies.add(name);\n }\n }\n }\n const overrides = {\n ...options.overrides,\n };\n if (options.forcedHarmonyVersion) {\n // Harmony needs to be a singleton, so if a specific version was requested for the workspace,\n // we force that version accross the whole dependency graph.\n overrides['@teambit/harmony'] = options.forcedHarmonyVersion;\n }\n if (!manifestsByPaths[rootDir].dependenciesMeta) {\n manifestsByPaths = {\n ...manifestsByPaths,\n [rootDir]: {\n ...manifestsByPaths[rootDir],\n dependenciesMeta: {},\n },\n };\n }\n const hoistPattern = options.hoistPattern ?? ['*'];\n if (hoistPattern.length > 0 && externalDependencies.size > 0 && !options.hoistInjectedDependencies) {\n for (const pkgName of externalDependencies) {\n hoistPattern.push(`!${pkgName}`);\n }\n }\n const scriptPolicies = resolveScriptPolicies({\n allowScripts: options.allowScripts,\n dangerouslyAllowAllScripts: options.dangerouslyAllowAllScripts,\n neverBuiltDependencies: options.neverBuiltDependencies,\n });\n\n // The in-memory importer manifests are transformed up front (with each\n // importer's own directory as workspaceDir). The dependency manifests are\n // transformed lazily by the engine through the readPackageHook (which has no\n // workspaceDir).\n const projects: nodeApi.NodeApiProject[] = Object.entries(manifestsByPaths).map(([dir, manifest]) => ({\n rootDir: dir,\n manifest: applyReadPackageHooks(\n hooks,\n manifest as unknown as PackageManifest,\n dir\n ) as unknown as nodeApi.PackageManifest,\n }));\n // When the engine resolves a workspace project as a dependency (an injected\n // \"file:\" instance), it hands the hook that project's importer manifest —\n // which the up-front transform above already stripped of workspace-sibling\n // deps. The instance must keep those deps (they become the component's graph\n // edges), so substitute the project's raw manifest, identified by the\n // lockfile-root-relative directory the engine passes for directory\n // resolutions. pnpm's TS engine reaches the same split by keeping raw\n // project manifests and applying the hook chain contextually.\n const readPackageHookForDeps = (manifest: nodeApi.PackageManifest, resolvedDir?: string): nodeApi.PackageManifest => {\n const rawManifest = resolvedDir ? manifestsByPaths[join(rootDir, resolvedDir)] : undefined;\n const resolvedManifest = applyReadPackageHooks(\n hooks,\n (rawManifest ?? manifest) as unknown as PackageManifest\n ) as unknown as nodeApi.PackageManifest;\n return removeScriptsFromNeverBuiltPackages(resolvedManifest, scriptPolicies.neverBuildPackageNames);\n };\n\n const onLog: nodeApi.LogListener = (event) => {\n emitLogEvent(event);\n };\n\n const installOptions: nodeApi.InstallOptions = {\n dir: rootDir,\n projects,\n storeDir,\n cacheDir,\n registries: registries.toMap(),\n authHeaderByUri: buildAuthHeaderByUri(registries),\n proxyConfig: toNodeApiProxyConfig(proxyConfig),\n networkConfig: toNodeApiNetworkConfig(networkConfig),\n overrides,\n nodeLinker: options.nodeLinker,\n // Resolve bare-semver deps on workspace components (incl. auto-installed\n // peers naming a sibling component) from the workspace instead of the\n // registry — otherwise an unpublished component peer 404s. `'deep'` so\n // transitive component deps link locally too.\n linkWorkspacePackages: 'deep',\n hoistPattern,\n publicHoistPattern: options.publicHoistPattern,\n externalDependencies: [...externalDependencies],\n allowBuilds: scriptPolicies.allowBuilds as Record<string, boolean>,\n dangerouslyAllowAllBuilds: scriptPolicies.dangerouslyAllowAllBuilds,\n // `neverBuiltDependencies` is already folded into `allowBuilds` above by\n // `resolveScriptPolicies`; the binding rejects a non-empty pass-through.\n autoInstallPeers: options.autoInstallPeers,\n excludeLinksFromLockfile: options.excludeLinksFromLockfile ?? true,\n lockfileOnly: options.lockfileOnly ?? false,\n packageImportMethod: options.packageImportMethod,\n preferOffline: options.preferOffline,\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n peersSuffixMaxLength: 1000,\n dedupePeerDependents: true,\n dedupePeers: options.dedupePeers,\n dedupeDirectDeps: true,\n dedupeInjectedDeps: options.dedupeInjectedDeps,\n injectWorkspacePackages: true,\n includeOptionalDeps: options.includeOptionalDeps !== false,\n // `update` re-resolves the whole graph; the binding ignores `depth` (there\n // are no package selectors), but pass a finite full-depth value for parity\n // with the old engine's `depth: Infinity` update-all call.\n update: options.updateAll,\n depth: options.updateAll ? 1000 : undefined,\n nodeVersion: options.nodeVersion,\n engineStrict: options.engineStrict,\n // pnpm v12 defaults minimumReleaseAge to 1440 when the option is absent.\n // bit.cloud packuments are huge (a version per snap) and their abbreviated\n // form carries no `time` field, so the maturity cutoff forces a full-\n // packument upgrade fetch for every component on a cold resolve. Disable\n // the policy unless the workspace opts in.\n minimumReleaseAge: options.minimumReleaseAge ?? 0,\n minimumReleaseAgeExclude: options.minimumReleaseAgeExclude,\n // Bit lockfiles are trusted workspace input. Keep installs compatible with\n // lockfiles generated before pnpm v12 added registry resolution verification.\n trustLockfile: true,\n ignorePackageManifest: options.ignorePackageManifest,\n hoistWorkspacePackages: options.hoistWorkspacePackages,\n enableModulesDir: options.enableModulesDir,\n resolvePeersFromWorkspaceRoot: true,\n frozenLockfile: options.updateAll ? false : undefined,\n preferFrozenLockfile: !options.updateAll,\n // Suppress peer-dependency warnings by default (allow any version, ignore\n // missing), letting the workspace's own rules override.\n peerDependencyRules: {\n allowAny: ['*'],\n ignoreMissing: ['*'],\n ...options.reportOptions?.peerDependencyRules,\n } as nodeApi.PeerDependencyRules,\n // Bit reports the deps requiring a build in the lockfile instead of failing.\n strictDepBuilds: false,\n pnpmHomeDir: options.pnpmHomeDir,\n };\n\n let dependenciesChanged = false;\n let depsRequiringBuild: DepPath[] | undefined;\n let resolvedStoreDir = storeDir;\n if (!options.dryRun) {\n let stopReporting: Function | undefined;\n let installPromise: Promise<nodeApi.InstallResult> | undefined;\n let restoreWantedLockfile: (() => Promise<void>) | undefined;\n if (!options.hidePackageManagerOutput) {\n stopReporting = initReporter({\n ...options.reportOptions,\n hideAddedPkgsProgress: options.lockfileOnly,\n });\n }\n try {\n await installsRunning[rootDir];\n // The engine rewrites pnpm-lock.yaml from its typed model, which\n // does not round-trip Bit's `bit:` extension block (the v11 TS\n // engine mutated the loaded object in place, so the block\n // survived). Capture it up front and re-assert it after the\n // install alongside `depsRequiringBuild`.\n const preInstallBitAttrs = await readBitLockfileAttrs(rootDir);\n restoreWantedLockfile = await removeWantedLockfileForUpdate(rootDir, options.updateAll);\n // The extra `resolvedDir` param lands in `@pnpm/napi`'s ReadPackageHook\n // type in the release that ships the directory-resolution context; the\n // cast bridges the older published typing.\n installPromise = nodeApi.install(\n installOptions,\n onLog,\n readPackageHookForDeps as unknown as nodeApi.ReadPackageHook\n );\n installsRunning[rootDir] = installPromise;\n const installResult: nodeApi.InstallResult = await installPromise;\n resolvedStoreDir = installResult.storeDir;\n const sortedDepsRequiringBuild = [...(installResult.depsRequiringBuild ?? [])].sort();\n if (sortedDepsRequiringBuild.length > 0 || preInstallBitAttrs != null) {\n await addBitAttributesToLockfile(rootDir, {\n ...preInstallBitAttrs,\n depsRequiringBuild: sortedDepsRequiringBuild,\n });\n }\n if (sortedDepsRequiringBuild.length > 0) {\n depsRequiringBuild = sortedDepsRequiringBuild as unknown as DepPath[];\n }\n dependenciesChanged =\n installResult.stats.added + installResult.stats.removed + installResult.stats.linkedToRoot > 0;\n } catch (err: any) {\n await restoreWantedLockfile?.();\n if (logger) {\n logger.warn('got an error from the pnpm install function', err);\n }\n throw pnpmErrorToBitError(err);\n } finally {\n if (installPromise && installsRunning[rootDir] === installPromise) {\n delete installsRunning[rootDir];\n }\n stopReporting?.();\n }\n }\n return {\n dependenciesChanged,\n // The Rust engine's rebuild rebuilds every build-needing package and does not\n // support the pending / skipIfHasSideEffectsCache selectors of the old engine.\n rebuild: async () => {\n let stopReporting: Function | undefined;\n if (!options.hidePackageManagerOutput) {\n stopReporting = initReporter({\n appendOnly: true,\n hideLifecycleOutput: true,\n });\n }\n try {\n await nodeApi.rebuild({ ...installOptions, storeDir: resolvedStoreDir }, onLog, undefined);\n } finally {\n stopReporting?.();\n }\n },\n storeDir: resolvedStoreDir ?? '',\n depsRequiringBuild,\n };\n}\n\nasync function removeWantedLockfileForUpdate(\n rootDir: string,\n updateAll?: boolean\n): Promise<(() => Promise<void>) | undefined> {\n if (!updateAll) return undefined;\n const lockfilePath = join(rootDir, 'pnpm-lock.yaml');\n let lockfileContent: Buffer;\n try {\n lockfileContent = await fs.readFile(lockfilePath);\n } catch (err: any) {\n if (err?.code === 'ENOENT') return undefined;\n throw err;\n }\n await fs.unlink(lockfilePath);\n return async () => {\n await fs.writeFile(lockfilePath, lockfileContent);\n };\n}\n\ntype ScriptPolicyConfig = {\n allowScripts?: Record<string, boolean | 'warn'>;\n dangerouslyAllowAllScripts?: boolean;\n neverBuiltDependencies?: string[];\n};\n\nexport function resolveScriptPolicies({\n allowScripts,\n dangerouslyAllowAllScripts,\n neverBuiltDependencies,\n}: ScriptPolicyConfig): {\n allowBuilds: Record<string, boolean | string>;\n dangerouslyAllowAllBuilds?: boolean;\n neverBuildPackageNames?: string[];\n} {\n const allowBuilds: Record<string, boolean | string> = {};\n if (dangerouslyAllowAllScripts) {\n if (!neverBuiltDependencies?.length) {\n return { allowBuilds, dangerouslyAllowAllBuilds: true };\n }\n for (const pkg of neverBuiltDependencies) {\n allowBuilds[pkg] = false;\n }\n return { allowBuilds, neverBuildPackageNames: neverBuiltDependencies };\n }\n for (const [packageDescriptor, allowedScript] of Object.entries(allowScripts ?? {})) {\n if (allowedScript === true || allowedScript === false) {\n allowBuilds[packageDescriptor] = allowedScript;\n }\n // String values (e.g. 'warn') are placeholders — ignore them; pnpm warns about these.\n }\n for (const trustedPkgName of TRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[trustedPkgName] == null) {\n allowBuilds[trustedPkgName] = true;\n }\n }\n for (const untrustedPkgName of UNTRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[untrustedPkgName] !== true) {\n allowBuilds[untrustedPkgName] = false;\n }\n }\n for (const pkg of neverBuiltDependencies ?? []) {\n allowBuilds[pkg] = false;\n }\n return { allowBuilds };\n}\n\nfunction removeScriptsFromNeverBuiltPackages(\n manifest: nodeApi.PackageManifest,\n neverBuildPackageNames?: string[]\n): nodeApi.PackageManifest {\n if (!manifest.name || !manifest.scripts || !neverBuildPackageNames?.includes(manifest.name)) return manifest;\n return {\n ...manifest,\n scripts: undefined,\n };\n}\n\nfunction initReporter(opts?: ReportOptions) {\n return initDefaultReporter({\n context: {\n argv: [],\n process: opts?.process,\n },\n reportingOptions: {\n appendOnly: opts?.appendOnly ?? false,\n throttleProgress: opts?.throttleProgress ?? 200,\n hideAddedPkgsProgress: opts?.hideAddedPkgsProgress,\n hideProgressPrefix: opts?.hideProgressPrefix,\n hideLifecycleOutput: opts?.hideLifecycleOutput,\n approveBuildsInstructionText:\n 'Update the \"allowScripts\" field under \"teambit.dependencies/dependency-resolver\" in workspace.jsonc. \\nSet to true to allow, false to explicitly disallow. \\nExample: allowScripts: { \"esbuild\": true, \"core-js\": false }. \\nThis is a security-sensitive setting: enabling scripts may allow arbitrary code execution during install.',\n },\n streamParser: streamParser as any, // eslint-disable-line\n // Linked in core aspects are excluded from the output to reduce noise.\n // Other @teambit/ dependencies will be shown.\n // Only those that are symlinked from outside the workspace will be hidden.\n filterPkgsDiff: (diff) => !diff.name.startsWith('@teambit/') || !diff.from,\n });\n}\n\n/**\n * This function returns the list of hooks that are passed to pnpm\n * for transforming the manifests of dependencies during installation.\n */\nexport function createReadPackageHooks(options: {\n rootComponents?: boolean;\n rootComponentsForCapsules?: boolean;\n forcedHarmonyVersion?: string;\n}): ReadPackageHook[] {\n const readPackage: ReadPackageHook[] = [];\n if (options?.rootComponents && !options?.rootComponentsForCapsules) {\n readPackage.push(readPackageHook as ReadPackageHook);\n }\n readPackage.push(removeLegacyFromDeps as ReadPackageHook);\n if (!options.forcedHarmonyVersion) {\n // If the workspace did not specify a harmony version in a root policy,\n // then we remove harmony from any dependencies, so that the one linked from bvm is used.\n readPackage.push(removeHarmonyFromDeps as ReadPackageHook);\n }\n if (options?.rootComponentsForCapsules) {\n readPackage.push(readPackageHookForCapsules as ReadPackageHook);\n }\n return readPackage;\n}\n\n/**\n * This hook is used when installation is executed inside a capsule.\n * The components in the capsules should get their peer dependencies installed,\n * so this hook converts any peer dependencies into runtime dependencies.\n */\nfunction readPackageHookForCapsules(pkg: PackageManifest, workspaceDir?: string): PackageManifest {\n // workspaceDir is set only for workspace packages\n if (workspaceDir) {\n return {\n ...pkg,\n dependencies: {\n ...pkg.peerDependencies,\n ...pkg.dependencies,\n },\n };\n }\n return pkg;\n}\n\n/**\n * @teambit/legacy should never be installed as a dependency.\n * It is linked from bvm.\n */\nfunction removeLegacyFromDeps(pkg: PackageManifest): PackageManifest {\n if (pkg.dependencies != null) {\n if (pkg.dependencies['@teambit/legacy'] && !pkg.dependencies['@teambit/legacy'].startsWith('link:')) {\n delete pkg.dependencies['@teambit/legacy'];\n }\n }\n if (pkg.peerDependencies != null) {\n if (pkg.peerDependencies['@teambit/legacy']) {\n delete pkg.peerDependencies['@teambit/legacy'];\n }\n }\n return pkg;\n}\n\nfunction removeHarmonyFromDeps(pkg: PackageManifest): PackageManifest {\n if (pkg.dependencies != null) {\n if (pkg.dependencies['@teambit/harmony'] && !pkg.dependencies['@teambit/harmony'].startsWith('link:')) {\n delete pkg.dependencies['@teambit/harmony'];\n }\n }\n if (pkg.peerDependencies != null) {\n if (pkg.peerDependencies['@teambit/harmony']) {\n delete pkg.peerDependencies['@teambit/harmony'];\n }\n }\n return pkg;\n}\n\n/**\n * This hook is used when installation happens in a Bit workspace.\n * We need a different hook for this case because unlike in a capsule, in a workspace,\n * the package manager only links workspace components to subdependencies.\n * For direct dependencies, Bit's linking is used.\n */\nfunction readPackageHook(pkg: PackageManifest, workspaceDir?: string): PackageManifest {\n // workspaceDir is set only for workspace packages\n if (workspaceDir && !workspaceDir.includes(BIT_ROOTS_DIR)) {\n return readWorkspacePackageHook(pkg);\n }\n return pkg;\n}\n\n/**\n * This hook is used when installation happens in a Bit workspace.\n * It is applied on workspace projects, and it removes any references to other workspace projects.\n * This is needed because Bit has its own linking for workspace projects.\n * pnpm should not override the links created by Bit.\n * Otherwise, the IDE would reference workspace projects from inside `node_modules/.pnpm`.\n */\nfunction readWorkspacePackageHook(pkg: PackageManifest): PackageManifest {\n const newDeps = {};\n for (const [name, version] of Object.entries(pkg.dependencies ?? {})) {\n if (!version.startsWith('workspace:')) {\n newDeps[name] = version;\n }\n }\n return {\n ...pkg,\n dependencies: {\n ...pkg.peerDependencies,\n ...newDeps,\n },\n };\n}\n\nexport async function resolveRemoteVersion(\n packageName: string,\n {\n rootDir,\n cacheDir,\n fullMetadata,\n registries,\n proxyConfig,\n networkConfig,\n }: {\n rootDir: string;\n cacheDir: string;\n fullMetadata?: boolean;\n registries: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n }\n): Promise<ResolvedPackageVersion> {\n const { resolve } = await generateResolverAndFetcher({\n cacheDir,\n fullMetadata,\n networkConfig,\n proxyConfig,\n registries,\n });\n const resolveOpts = {\n lockfileDir: rootDir,\n preferredVersions: {},\n projectDir: rootDir,\n registry: '',\n };\n try {\n const parsedPackage = parsePackageName(packageName);\n const wantedDep: nodeApi.WantedDependency = {\n alias: parsedPackage.name,\n // parse-package-name returns an empty string when no version is present,\n // but the engine resolves only undefined (or an explicit range) as \"latest\".\n bareSpecifier: parsedPackage.version || undefined,\n };\n const val = await resolve(wantedDep, resolveOpts);\n if (!val.manifest) {\n throw new BitError('The resolved package has no manifest');\n }\n const manifest = val.manifest as unknown as DependencyManifest;\n const wantedRange =\n parsedPackage.version && semver.validRange(parsedPackage.version) ? parsedPackage.version : undefined;\n\n return {\n packageName: manifest.name,\n version: manifest.version,\n wantedRange,\n isSemver: true,\n resolvedVia: val.resolvedVia,\n manifest,\n };\n } catch (e: any) {\n if (!e.message?.includes('is not a valid string')) {\n throw pnpmErrorToBitError(e);\n }\n // The provided package is probably a git url or path to a folder\n const wantedDep: nodeApi.WantedDependency = {\n alias: undefined,\n bareSpecifier: packageName,\n };\n const val = await resolve(wantedDep, resolveOpts);\n if (!val.manifest) {\n throw new BitError('The resolved package has no manifest');\n }\n if (!val.normalizedBareSpecifier) {\n throw new BitError('The resolved package has no version');\n }\n const manifest = val.manifest as unknown as DependencyManifest;\n return {\n packageName: manifest.name,\n version: val.normalizedBareSpecifier,\n isSemver: false,\n resolvedVia: val.resolvedVia,\n manifest,\n };\n }\n}\n\n/**\n * Read the `bit:` extension block of the workspace's wanted lockfile,\n * or undefined when there is no lockfile or no block.\n */\nasync function readBitLockfileAttrs(rootDir: string): Promise<Partial<BitLockfileAttributes> | undefined> {\n try {\n const { readWantedLockfile } = await loadLockfileFs();\n const lockfile = (await readWantedLockfile(rootDir, { ignoreIncompatible: true })) as BitLockfile | null;\n return lockfile?.bit;\n } catch {\n // A malformed lockfile fails the install itself later with a proper\n // error; there is nothing to preserve here.\n return undefined;\n }\n}\n\n/**\n * Re-assert Bit's `bit:` extension block on the wanted lockfile after\n * an engine install rewrote it. Merges over whatever the file has, so\n * an attribute captured before the install (e.g. `restoredFromModel`)\n * survives the rewrite.\n */\nasync function addBitAttributesToLockfile(rootDir: string, attrs: Partial<BitLockfileAttributes>) {\n const { readWantedLockfile, writeWantedLockfile } = await loadLockfileFs();\n const lockfile = (await readWantedLockfile(rootDir, { ignoreIncompatible: true })) as BitLockfile;\n if (lockfile == null) return;\n const merged = { ...lockfile.bit, ...attrs };\n if (isEqual(lockfile.bit, merged)) return;\n lockfile.bit = merged as BitLockfileAttributes;\n await writeWantedLockfile(rootDir, lockfile);\n}\n\nexport interface BitLockfile extends LockfileObject {\n bit?: BitLockfileAttributes;\n}\n\nexport interface BitLockfileFile extends LockfileFile {\n bit?: BitLockfileAttributes;\n}\n\nexport interface BitLockfileAttributes {\n depsRequiringBuild: string[];\n restoredFromModel?: boolean;\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,IAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,GAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,kBAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,iBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,KAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,mBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,kBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAU,uBAAA,CAAAT,OAAA;EAAAQ,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAW,UAAA;EAAA,MAAAX,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAU,SAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAAY,UAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,SAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,QAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,OAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAc,kBAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,iBAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,QAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,OAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,qBAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,oBAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,YAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,WAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAU,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAf,uBAAAc,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,SAAAmB,QAAAnB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAnB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAoB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAyB,cAAA1B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAF,CAAA,WAAA0B,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAH,MAAA,CAAAf,CAAA,OAAA4B,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA9B,CAAA,KAAAkB,OAAA,CAAAH,MAAA,CAAAf,CAAA,GAAA4B,OAAA,WAAA1B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAA8B,gBAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAH,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,IAAA+B,KAAA,EAAAjC,CAAA,EAAAsB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAApC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAAiC,eAAAhC,CAAA,QAAAM,CAAA,GAAA8B,YAAA,CAAApC,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA8B,aAAApC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAe,IAAA,CAAAd,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAiC,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AAE3C;AACA;AACA;AACA;AACA;AACA,MAAM0C,uBAAuB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC;AAEnG,MAAMC,eAA6C,GAAG,CAAC,CAAC;AAExD,IAAIC,iBAAwD;AAE5D,SAASC,cAAcA,CAAA,EAA8B;EACnDD,iBAAiB,KAAK,CAAC,YAAY;IACjC,MAAM;MAAEE;IAAQ,CAAC,GAAGhE,OAAO,CAAC,qBAAqB,CAEhD;IACD,MAAM;MAAEiE;IAAW,CAAC,GAAG,MAAMD,OAAO,CAAC,CAAC;IACtC,OAAOC,UAAU;EACnB,CAAC,EAAE,CAAC;EACJ,OAAOH,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASI,oBAAoBA,CAACC,WAAsC,EAAuB;EACzF,OAAO;IACLC,SAAS,EAAED,WAAW,CAACC,SAAS;IAChCC,UAAU,EAAEF,WAAW,CAACE,UAAU;IAClCC,OAAO,EAAEH,WAAW,CAACG;EACvB,CAAC;AACH;AAEA,SAASC,sBAAsBA,CAACC,aAA0C,EAAyB;EACjG,OAAO;IACLC,EAAE,EAAED,aAAa,CAACC,EAAE;IACpBC,IAAI,EAAEF,aAAa,CAACE,IAAI;IACxBC,GAAG,EAAEH,aAAa,CAACG,GAAG;IACtBC,YAAY,EAAEJ,aAAa,CAACI,YAAY;IACxCC,SAAS,EAAEL,aAAa,CAACM,SAAS;IAClCC,UAAU,EAAEP,aAAa,CAACO,UAAU;IACpCC,kBAAkB,EAAER,aAAa,CAACQ,kBAAkB;IACpDC,YAAY,EAAET,aAAa,CAACS,YAAY;IACxCC,gBAAgB,EAAEV,aAAa,CAACU,gBAAgB;IAChDC,oBAAoB,EAAEX,aAAa,CAACW,oBAAoB;IACxDC,oBAAoB,EAAEZ,aAAa,CAACY,oBAAoB;IACxDC,YAAY,EAAEb,aAAa,CAACa,YAAY;IACxCC,SAAS,EAAEd,aAAa,CAACc;EAC3B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACC,UAAsB,EAA0B;EAC5E,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAMC,QAAQ,IAAIzD,MAAM,CAAC0D,MAAM,CAACH,UAAU,CAACI,MAAM,CAAC,EAAE;IACvD,IAAIF,QAAQ,CAACG,GAAG,IAAIH,QAAQ,CAACI,eAAe,EAAE;MAC5CL,MAAM,CAAC,IAAAM,mBAAU,EAACL,QAAQ,CAACG,GAAG,CAAC,CAAC,GAAGH,QAAQ,CAACI,eAAe;IAC7D;EACF;EACA,MAAM;IAAEE;EAAgB,CAAC,GAAGR,UAAU;EACtC,IAAIQ,eAAe,EAAEF,eAAe,EAAE;IACpC,IAAIE,eAAe,CAACH,GAAG,EAAE;MACvBJ,MAAM,CAAC,IAAAM,mBAAU,EAACC,eAAe,CAACH,GAAG,CAAC,CAAC,GAAGG,eAAe,CAACF,eAAe;IAC3E;IACAL,MAAM,CAAC,EAAE,CAAC,GAAGO,eAAe,CAACF,eAAe;EAC9C;EACA,OAAOL,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASQ,qBAAqBA,CAC5BC,KAAwB,EACxBC,QAAyB,EACzBC,YAAqB,EACJ;EACjB,OAAOF,KAAK,CAACG,MAAM,CAAkB,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAACD,CAAC,EAAEF,YAAY,CAAoB,EAAED,QAAQ,CAAC;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,YAAYA,CAACC,KAA8B,EAAQ;EACzDC,sBAAY,CAAoCC,IAAI,CAAC,MAAM,EAAEF,KAAK,CAAC;AACtE;AAEO,eAAeG,0BAA0BA,CAAC;EAC/CC,QAAQ;EACRrB,UAAU;EACVrB,WAAW;EACXK,aAAa;EACbsC;AAOF,CAAC,EAAyC;EACxC,MAAMC,UAAU,GAAG,MAAM,IAAAC,wBAAU,EAAC,CAAC;EACrC;EACA;EACA,MAAMC,eAAe,GAAAtE,aAAA,CAAAA,aAAA,KAAQoE,UAAU,CAACG,MAAM,CAACD,eAAe,GAAK1B,oBAAoB,CAACC,UAAU,CAAC,CAAE;EACrG,MAAM2B,aAAa,GAAG3B,UAAU,CAAC4B,KAAK,CAAC,CAAC;EACxC,MAAMC,OAAwB,GAAGA,CAACC,SAAS,EAAEC,WAAW,KACtD/G,OAAO,CAAD,CAAC,CAACgH,iBAAiB,CAACF,SAAS,EAAE;IACnCG,GAAG,EAAEF,WAAW,CAACG,UAAU,IAAIH,WAAW,CAACI,WAAW,IAAIC,OAAO,CAACC,GAAG,CAAC,CAAC;IACvEhB,QAAQ;IACRrB,UAAU,EAAE2B,aAAa;IACzBF,eAAe;IACf9C,WAAW,EAAEA,WAAW,GAAGD,oBAAoB,CAACC,WAAW,CAAC,GAAG2D,SAAS;IACxEtD,aAAa,EAAEA,aAAa,GAAGD,sBAAsB,CAACC,aAAa,CAAC,GAAGsD,SAAS;IAChFhB;EACF,CAAC,CAAC;EACJ,OAAO;IAAEO;EAAQ,CAAC;AACpB;AAEO,eAAeU,uBAAuBA,CAC3CC,gBAAqC,EACrCC,IAUC,EACwC;EACzC,MAAMC,QAAkC,GAAGjG,MAAM,CAACkG,OAAO,CAACH,gBAAgB,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,OAAO,EAAElC,QAAQ,CAAC,MAAM;IACxGkC,OAAO;IACPlC,QAAQ,EAAEA;EACZ,CAAC,CAAC,CAAC;EACH,IAAI;IACF,OAAO,MAAM3F,OAAO,CAAD,CAAC,CAACuH,uBAAuB,CAAC;MAC3CN,GAAG,EAAEQ,IAAI,CAACI,OAAO;MACjBH,QAAQ;MACRI,QAAQ,EAAEL,IAAI,CAACK,QAAQ;MACvBzB,QAAQ,EAAEoB,IAAI,CAACpB,QAAQ;MACvB0B,SAAS,EAAEN,IAAI,CAACM,SAAS;MACzBC,oBAAoB,EAAE,IAAI;MAC1BhD,UAAU,EAAEyC,IAAI,CAACzC,UAAU,CAAC4B,KAAK,CAAC,CAAC;MACnCH,eAAe,EAAE1B,oBAAoB,CAAC0C,IAAI,CAACzC,UAAU,CAAC;MACtDrB,WAAW,EAAED,oBAAoB,CAAC+D,IAAI,CAAC9D,WAAW,CAAC;MACnDK,aAAa,EAAED,sBAAsB,CAAC0D,IAAI,CAACzD,aAAa,CAAC;MACzDiE,wBAAwB,EAAEC;IAC5B,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOC,GAAQ,EAAE;IACjB,MAAM,IAAAC,0CAAmB,EAACD,GAAG,CAAC;EAChC;AACF;AAcO,eAAeE,OAAOA,CAC3BR,OAAe,EACfL,gBAAiD,EACjDM,QAA4B,EAC5BzB,QAAgB,EAChBrB,UAAsB,EACtBrB,WAAsC,GAAG,CAAC,CAAC,EAC3CK,aAA0C,GAAG,CAAC,CAAC,EAC/CsE,OAqCC,EACDC,MAAe,EACkG;EACjH,MAAMC,oBAAoB,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC9C,MAAM/C,KAAK,GAAGgD,sBAAsB,CAACJ,OAAO,CAAC;EAC7C,IAAIA,OAAO,EAAEK,cAAc,IAAI,CAACL,OAAO,EAAEM,yBAAyB,EAAE;IAClE,KAAK,MAAM,CAAC3B,GAAG,EAAE;MAAE4B;IAAK,CAAC,CAAC,IAAIpH,MAAM,CAACkG,OAAO,CAACH,gBAAgB,CAAC,EAAE;MAC9D,IAAIP,GAAG,KAAKY,OAAO,IAAIgB,IAAI,EAAE;QAC3BL,oBAAoB,CAACM,GAAG,CAACD,IAAI,CAAC;MAChC;IACF;EACF;EACA,MAAMd,SAAS,GAAA5F,aAAA,KACVmG,OAAO,CAACP,SAAS,CACrB;EACD,IAAIO,OAAO,CAACS,oBAAoB,EAAE;IAChC;IACA;IACAhB,SAAS,CAAC,kBAAkB,CAAC,GAAGO,OAAO,CAACS,oBAAoB;EAC9D;EACA,IAAI,CAACvB,gBAAgB,CAACK,OAAO,CAAC,CAACmB,gBAAgB,EAAE;IAC/CxB,gBAAgB,GAAArF,aAAA,CAAAA,aAAA,KACXqF,gBAAgB;MACnB,CAACK,OAAO,GAAA1F,aAAA,CAAAA,aAAA,KACHqF,gBAAgB,CAACK,OAAO,CAAC;QAC5BmB,gBAAgB,EAAE,CAAC;MAAC;IACrB,EACF;EACH;EACA,MAAMC,YAAY,GAAGX,OAAO,CAACW,YAAY,IAAI,CAAC,GAAG,CAAC;EAClD,IAAIA,YAAY,CAAC5G,MAAM,GAAG,CAAC,IAAImG,oBAAoB,CAACU,IAAI,GAAG,CAAC,IAAI,CAACZ,OAAO,CAACa,yBAAyB,EAAE;IAClG,KAAK,MAAMC,OAAO,IAAIZ,oBAAoB,EAAE;MAC1CS,YAAY,CAAChH,IAAI,CAAC,IAAImH,OAAO,EAAE,CAAC;IAClC;EACF;EACA,MAAMC,cAAc,GAAGC,qBAAqB,CAAC;IAC3CC,YAAY,EAAEjB,OAAO,CAACiB,YAAY;IAClCC,0BAA0B,EAAElB,OAAO,CAACkB,0BAA0B;IAC9DC,sBAAsB,EAAEnB,OAAO,CAACmB;EAClC,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA,MAAM/B,QAAkC,GAAGjG,MAAM,CAACkG,OAAO,CAACH,gBAAgB,CAAC,CAACI,GAAG,CAAC,CAAC,CAACX,GAAG,EAAEtB,QAAQ,CAAC,MAAM;IACpGkC,OAAO,EAAEZ,GAAG;IACZtB,QAAQ,EAAEF,qBAAqB,CAC7BC,KAAK,EACLC,QAAQ,EACRsB,GACF;EACF,CAAC,CAAC,CAAC;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMyC,sBAAsB,GAAGA,CAAC/D,QAAiC,EAAEgE,WAAoB,KAA8B;IACnH,MAAMC,WAAW,GAAGD,WAAW,GAAGnC,gBAAgB,CAAC,IAAAqC,YAAI,EAAChC,OAAO,EAAE8B,WAAW,CAAC,CAAC,GAAGrC,SAAS;IAC1F,MAAMwC,gBAAgB,GAAGrE,qBAAqB,CAC5CC,KAAK,EACJkE,WAAW,IAAIjE,QAClB,CAAuC;IACvC,OAAOoE,mCAAmC,CAACD,gBAAgB,EAAET,cAAc,CAACW,sBAAsB,CAAC;EACrG,CAAC;EAED,MAAMC,KAA0B,GAAIhE,KAAK,IAAK;IAC5CD,YAAY,CAACC,KAAK,CAAC;EACrB,CAAC;EAED,MAAMiE,cAAsC,GAAG;IAC7CjD,GAAG,EAAEY,OAAO;IACZH,QAAQ;IACRI,QAAQ;IACRzB,QAAQ;IACRrB,UAAU,EAAEA,UAAU,CAAC4B,KAAK,CAAC,CAAC;IAC9BH,eAAe,EAAE1B,oBAAoB,CAACC,UAAU,CAAC;IACjDrB,WAAW,EAAED,oBAAoB,CAACC,WAAW,CAAC;IAC9CK,aAAa,EAAED,sBAAsB,CAACC,aAAa,CAAC;IACpD+D,SAAS;IACToC,UAAU,EAAE7B,OAAO,CAAC6B,UAAU;IAC9B;IACA;IACA;IACA;IACAC,qBAAqB,EAAE,MAAM;IAC7BnB,YAAY;IACZoB,kBAAkB,EAAE/B,OAAO,CAAC+B,kBAAkB;IAC9C7B,oBAAoB,EAAE,CAAC,GAAGA,oBAAoB,CAAC;IAC/C8B,WAAW,EAAEjB,cAAc,CAACiB,WAAsC;IAClEC,yBAAyB,EAAElB,cAAc,CAACkB,yBAAyB;IACnE;IACA;IACAC,gBAAgB,EAAElC,OAAO,CAACkC,gBAAgB;IAC1CC,wBAAwB,EAAEnC,OAAO,CAACmC,wBAAwB,IAAI,IAAI;IAClEC,YAAY,EAAEpC,OAAO,CAACoC,YAAY,IAAI,KAAK;IAC3CC,mBAAmB,EAAErC,OAAO,CAACqC,mBAAmB;IAChDC,aAAa,EAAEtC,OAAO,CAACsC,aAAa;IACpC3C,wBAAwB,EAAEC,gDAA4B;IACtDF,oBAAoB,EAAE,IAAI;IAC1B6C,oBAAoB,EAAE,IAAI;IAC1BC,WAAW,EAAExC,OAAO,CAACwC,WAAW;IAChCC,gBAAgB,EAAE,IAAI;IACtBC,kBAAkB,EAAE1C,OAAO,CAAC0C,kBAAkB;IAC9CC,uBAAuB,EAAE,IAAI;IAC7BC,mBAAmB,EAAE5C,OAAO,CAAC4C,mBAAmB,KAAK,KAAK;IAC1D;IACA;IACA;IACAC,MAAM,EAAE7C,OAAO,CAAC8C,SAAS;IACzBC,KAAK,EAAE/C,OAAO,CAAC8C,SAAS,GAAG,IAAI,GAAG9D,SAAS;IAC3CgE,WAAW,EAAEhD,OAAO,CAACgD,WAAW;IAChCC,YAAY,EAAEjD,OAAO,CAACiD,YAAY;IAClC;IACA;IACA;IACA;IACA;IACAC,iBAAiB,EAAElD,OAAO,CAACkD,iBAAiB,IAAI,CAAC;IACjDC,wBAAwB,EAAEnD,OAAO,CAACmD,wBAAwB;IAC1D;IACA;IACAC,aAAa,EAAE,IAAI;IACnBC,qBAAqB,EAAErD,OAAO,CAACqD,qBAAqB;IACpDC,sBAAsB,EAAEtD,OAAO,CAACsD,sBAAsB;IACtDC,gBAAgB,EAAEvD,OAAO,CAACuD,gBAAgB;IAC1CC,6BAA6B,EAAE,IAAI;IACnCC,cAAc,EAAEzD,OAAO,CAAC8C,SAAS,GAAG,KAAK,GAAG9D,SAAS;IACrD0E,oBAAoB,EAAE,CAAC1D,OAAO,CAAC8C,SAAS;IACxC;IACA;IACAa,mBAAmB,EAAA9J,aAAA;MACjB+J,QAAQ,EAAE,CAAC,GAAG,CAAC;MACfC,aAAa,EAAE,CAAC,GAAG;IAAC,GACjB7D,OAAO,CAAC8D,aAAa,EAAEH,mBAAmB,CACf;IAChC;IACAI,eAAe,EAAE,KAAK;IACtBC,WAAW,EAAEhE,OAAO,CAACgE;EACvB,CAAC;EAED,IAAIC,mBAAmB,GAAG,KAAK;EAC/B,IAAIC,kBAAyC;EAC7C,IAAIC,gBAAgB,GAAG3E,QAAQ;EAC/B,IAAI,CAACQ,OAAO,CAACoE,MAAM,EAAE;IACnB,IAAIC,aAAmC;IACvC,IAAIC,cAA0D;IAC9D,IAAIC,qBAAwD;IAC5D,IAAI,CAACvE,OAAO,CAACwE,wBAAwB,EAAE;MACrCH,aAAa,GAAGI,YAAY,CAAA5K,aAAA,CAAAA,aAAA,KACvBmG,OAAO,CAAC8D,aAAa;QACxBY,qBAAqB,EAAE1E,OAAO,CAACoC;MAAY,EAC5C,CAAC;IACJ;IACA,IAAI;MACF,MAAMrH,eAAe,CAACwE,OAAO,CAAC;MAC9B;MACA;MACA;MACA;MACA;MACA,MAAMoF,kBAAkB,GAAG,MAAMC,oBAAoB,CAACrF,OAAO,CAAC;MAC9DgF,qBAAqB,GAAG,MAAMM,6BAA6B,CAACtF,OAAO,EAAES,OAAO,CAAC8C,SAAS,CAAC;MACvF;MACA;MACA;MACAwB,cAAc,GAAG5M,OAAO,CAAD,CAAC,CAACqI,OAAO,CAC9B6B,cAAc,EACdD,KAAK,EACLP,sBACF,CAAC;MACDrG,eAAe,CAACwE,OAAO,CAAC,GAAG+E,cAAc;MACzC,MAAMQ,aAAoC,GAAG,MAAMR,cAAc;MACjEH,gBAAgB,GAAGW,aAAa,CAACtF,QAAQ;MACzC,MAAMuF,wBAAwB,GAAG,CAAC,IAAID,aAAa,CAACZ,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAACc,IAAI,CAAC,CAAC;MACrF,IAAID,wBAAwB,CAAChL,MAAM,GAAG,CAAC,IAAI4K,kBAAkB,IAAI,IAAI,EAAE;QACrE,MAAMM,0BAA0B,CAAC1F,OAAO,EAAA1F,aAAA,CAAAA,aAAA,KACnC8K,kBAAkB;UACrBT,kBAAkB,EAAEa;QAAwB,EAC7C,CAAC;MACJ;MACA,IAAIA,wBAAwB,CAAChL,MAAM,GAAG,CAAC,EAAE;QACvCmK,kBAAkB,GAAGa,wBAAgD;MACvE;MACAd,mBAAmB,GACjBa,aAAa,CAACI,KAAK,CAACC,KAAK,GAAGL,aAAa,CAACI,KAAK,CAACE,OAAO,GAAGN,aAAa,CAACI,KAAK,CAACG,YAAY,GAAG,CAAC;IAClG,CAAC,CAAC,OAAOxF,GAAQ,EAAE;MACjB,MAAM0E,qBAAqB,GAAG,CAAC;MAC/B,IAAItE,MAAM,EAAE;QACVA,MAAM,CAACqF,IAAI,CAAC,6CAA6C,EAAEzF,GAAG,CAAC;MACjE;MACA,MAAM,IAAAC,0CAAmB,EAACD,GAAG,CAAC;IAChC,CAAC,SAAS;MACR,IAAIyE,cAAc,IAAIvJ,eAAe,CAACwE,OAAO,CAAC,KAAK+E,cAAc,EAAE;QACjE,OAAOvJ,eAAe,CAACwE,OAAO,CAAC;MACjC;MACA8E,aAAa,GAAG,CAAC;IACnB;EACF;EACA,OAAO;IACLJ,mBAAmB;IACnB;IACA;IACAsB,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAIlB,aAAmC;MACvC,IAAI,CAACrE,OAAO,CAACwE,wBAAwB,EAAE;QACrCH,aAAa,GAAGI,YAAY,CAAC;UAC3Be,UAAU,EAAE,IAAI;UAChBC,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ;MACA,IAAI;QACF,MAAM/N,OAAO,CAAD,CAAC,CAAC6N,OAAO,CAAA1L,aAAA,CAAAA,aAAA,KAAM+H,cAAc;UAAEpC,QAAQ,EAAE2E;QAAgB,IAAIxC,KAAK,EAAE3C,SAAS,CAAC;MAC5F,CAAC,SAAS;QACRqF,aAAa,GAAG,CAAC;MACnB;IACF,CAAC;IACD7E,QAAQ,EAAE2E,gBAAgB,IAAI,EAAE;IAChCD;EACF,CAAC;AACH;AAEA,eAAeW,6BAA6BA,CAC1CtF,OAAe,EACfuD,SAAmB,EACyB;EAC5C,IAAI,CAACA,SAAS,EAAE,OAAO9D,SAAS;EAChC,MAAM0G,YAAY,GAAG,IAAAnE,YAAI,EAAChC,OAAO,EAAE,gBAAgB,CAAC;EACpD,IAAIoG,eAAuB;EAC3B,IAAI;IACFA,eAAe,GAAG,MAAMC,cAAE,CAACC,QAAQ,CAACH,YAAY,CAAC;EACnD,CAAC,CAAC,OAAO7F,GAAQ,EAAE;IACjB,IAAIA,GAAG,EAAEiG,IAAI,KAAK,QAAQ,EAAE,OAAO9G,SAAS;IAC5C,MAAMa,GAAG;EACX;EACA,MAAM+F,cAAE,CAACG,MAAM,CAACL,YAAY,CAAC;EAC7B,OAAO,YAAY;IACjB,MAAME,cAAE,CAACI,SAAS,CAACN,YAAY,EAAEC,eAAe,CAAC;EACnD,CAAC;AACH;AAQO,SAAS3E,qBAAqBA,CAAC;EACpCC,YAAY;EACZC,0BAA0B;EAC1BC;AACkB,CAAC,EAInB;EACA,MAAMa,WAA6C,GAAG,CAAC,CAAC;EACxD,IAAId,0BAA0B,EAAE;IAC9B,IAAI,CAACC,sBAAsB,EAAEpH,MAAM,EAAE;MACnC,OAAO;QAAEiI,WAAW;QAAEC,yBAAyB,EAAE;MAAK,CAAC;IACzD;IACA,KAAK,MAAMgE,GAAG,IAAI9E,sBAAsB,EAAE;MACxCa,WAAW,CAACiE,GAAG,CAAC,GAAG,KAAK;IAC1B;IACA,OAAO;MAAEjE,WAAW;MAAEN,sBAAsB,EAAEP;IAAuB,CAAC;EACxE;EACA,KAAK,MAAM,CAAC+E,iBAAiB,EAAEC,aAAa,CAAC,IAAIhN,MAAM,CAACkG,OAAO,CAAC4B,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE;IACnF,IAAIkF,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAK,KAAK,EAAE;MACrDnE,WAAW,CAACkE,iBAAiB,CAAC,GAAGC,aAAa;IAChD;IACA;EACF;EACA,KAAK,MAAMC,cAAc,IAAIC,0CAAqB,EAAE;IAClD,IAAIpF,YAAY,GAAGmF,cAAc,CAAC,IAAI,IAAI,EAAE;MAC1CpE,WAAW,CAACoE,cAAc,CAAC,GAAG,IAAI;IACpC;EACF;EACA,KAAK,MAAME,gBAAgB,IAAIxL,uBAAuB,EAAE;IACtD,IAAImG,YAAY,GAAGqF,gBAAgB,CAAC,KAAK,IAAI,EAAE;MAC7CtE,WAAW,CAACsE,gBAAgB,CAAC,GAAG,KAAK;IACvC;EACF;EACA,KAAK,MAAML,GAAG,IAAI9E,sBAAsB,IAAI,EAAE,EAAE;IAC9Ca,WAAW,CAACiE,GAAG,CAAC,GAAG,KAAK;EAC1B;EACA,OAAO;IAAEjE;EAAY,CAAC;AACxB;AAEA,SAASP,mCAAmCA,CAC1CpE,QAAiC,EACjCqE,sBAAiC,EACR;EACzB,IAAI,CAACrE,QAAQ,CAACkD,IAAI,IAAI,CAAClD,QAAQ,CAACkJ,OAAO,IAAI,CAAC7E,sBAAsB,EAAE8E,QAAQ,CAACnJ,QAAQ,CAACkD,IAAI,CAAC,EAAE,OAAOlD,QAAQ;EAC5G,OAAAxD,aAAA,CAAAA,aAAA,KACKwD,QAAQ;IACXkJ,OAAO,EAAEvH;EAAS;AAEtB;AAEA,SAASyF,YAAYA,CAACtF,IAAoB,EAAE;EAC1C,OAAO,IAAAsH,0BAAmB,EAAC;IACzBC,OAAO,EAAE;MACPC,IAAI,EAAE,EAAE;MACR7H,OAAO,EAAEK,IAAI,EAAEL;IACjB,CAAC;IACD8H,gBAAgB,EAAE;MAChBpB,UAAU,EAAErG,IAAI,EAAEqG,UAAU,IAAI,KAAK;MACrCqB,gBAAgB,EAAE1H,IAAI,EAAE0H,gBAAgB,IAAI,GAAG;MAC/CnC,qBAAqB,EAAEvF,IAAI,EAAEuF,qBAAqB;MAClDoC,kBAAkB,EAAE3H,IAAI,EAAE2H,kBAAkB;MAC5CrB,mBAAmB,EAAEtG,IAAI,EAAEsG,mBAAmB;MAC9CsB,4BAA4B,EAC1B;IACJ,CAAC;IACDnJ,YAAY,EAAEA,sBAAmB;IAAE;IACnC;IACA;IACA;IACAoJ,cAAc,EAAGC,IAAI,IAAK,CAACA,IAAI,CAAC1G,IAAI,CAAC2G,UAAU,CAAC,WAAW,CAAC,IAAI,CAACD,IAAI,CAACE;EACxE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACO,SAAS/G,sBAAsBA,CAACJ,OAItC,EAAqB;EACpB,MAAMoH,WAA8B,GAAG,EAAE;EACzC,IAAIpH,OAAO,EAAEK,cAAc,IAAI,CAACL,OAAO,EAAEM,yBAAyB,EAAE;IAClE8G,WAAW,CAACzN,IAAI,CAAC0N,eAAkC,CAAC;EACtD;EACAD,WAAW,CAACzN,IAAI,CAAC2N,oBAAuC,CAAC;EACzD,IAAI,CAACtH,OAAO,CAACS,oBAAoB,EAAE;IACjC;IACA;IACA2G,WAAW,CAACzN,IAAI,CAAC4N,qBAAwC,CAAC;EAC5D;EACA,IAAIvH,OAAO,EAAEM,yBAAyB,EAAE;IACtC8G,WAAW,CAACzN,IAAI,CAAC6N,0BAA6C,CAAC;EACjE;EACA,OAAOJ,WAAW;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASI,0BAA0BA,CAACvB,GAAoB,EAAE3I,YAAqB,EAAmB;EAChG;EACA,IAAIA,YAAY,EAAE;IAChB,OAAAzD,aAAA,CAAAA,aAAA,KACKoM,GAAG;MACNwB,YAAY,EAAA5N,aAAA,CAAAA,aAAA,KACPoM,GAAG,CAACyB,gBAAgB,GACpBzB,GAAG,CAACwB,YAAY;IACpB;EAEL;EACA,OAAOxB,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA,SAASqB,oBAAoBA,CAACrB,GAAoB,EAAmB;EACnE,IAAIA,GAAG,CAACwB,YAAY,IAAI,IAAI,EAAE;IAC5B,IAAIxB,GAAG,CAACwB,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAACxB,GAAG,CAACwB,YAAY,CAAC,iBAAiB,CAAC,CAACP,UAAU,CAAC,OAAO,CAAC,EAAE;MACnG,OAAOjB,GAAG,CAACwB,YAAY,CAAC,iBAAiB,CAAC;IAC5C;EACF;EACA,IAAIxB,GAAG,CAACyB,gBAAgB,IAAI,IAAI,EAAE;IAChC,IAAIzB,GAAG,CAACyB,gBAAgB,CAAC,iBAAiB,CAAC,EAAE;MAC3C,OAAOzB,GAAG,CAACyB,gBAAgB,CAAC,iBAAiB,CAAC;IAChD;EACF;EACA,OAAOzB,GAAG;AACZ;AAEA,SAASsB,qBAAqBA,CAACtB,GAAoB,EAAmB;EACpE,IAAIA,GAAG,CAACwB,YAAY,IAAI,IAAI,EAAE;IAC5B,IAAIxB,GAAG,CAACwB,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAACxB,GAAG,CAACwB,YAAY,CAAC,kBAAkB,CAAC,CAACP,UAAU,CAAC,OAAO,CAAC,EAAE;MACrG,OAAOjB,GAAG,CAACwB,YAAY,CAAC,kBAAkB,CAAC;IAC7C;EACF;EACA,IAAIxB,GAAG,CAACyB,gBAAgB,IAAI,IAAI,EAAE;IAChC,IAAIzB,GAAG,CAACyB,gBAAgB,CAAC,kBAAkB,CAAC,EAAE;MAC5C,OAAOzB,GAAG,CAACyB,gBAAgB,CAAC,kBAAkB,CAAC;IACjD;EACF;EACA,OAAOzB,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASoB,eAAeA,CAACpB,GAAoB,EAAE3I,YAAqB,EAAmB;EACrF;EACA,IAAIA,YAAY,IAAI,CAACA,YAAY,CAACkJ,QAAQ,CAACmB,uBAAa,CAAC,EAAE;IACzD,OAAOC,wBAAwB,CAAC3B,GAAG,CAAC;EACtC;EACA,OAAOA,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2B,wBAAwBA,CAAC3B,GAAoB,EAAmB;EACvE,MAAM4B,OAAO,GAAG,CAAC,CAAC;EAClB,KAAK,MAAM,CAACtH,IAAI,EAAEuH,OAAO,CAAC,IAAI3O,MAAM,CAACkG,OAAO,CAAC4G,GAAG,CAACwB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE;IACpE,IAAI,CAACK,OAAO,CAACZ,UAAU,CAAC,YAAY,CAAC,EAAE;MACrCW,OAAO,CAACtH,IAAI,CAAC,GAAGuH,OAAO;IACzB;EACF;EACA,OAAAjO,aAAA,CAAAA,aAAA,KACKoM,GAAG;IACNwB,YAAY,EAAA5N,aAAA,CAAAA,aAAA,KACPoM,GAAG,CAACyB,gBAAgB,GACpBG,OAAO;EACX;AAEL;AAEO,eAAeE,oBAAoBA,CACxCC,WAAmB,EACnB;EACEzI,OAAO;EACPxB,QAAQ;EACRC,YAAY;EACZtB,UAAU;EACVrB,WAAW;EACXK;AAQF,CAAC,EACgC;EACjC,MAAM;IAAE6C;EAAQ,CAAC,GAAG,MAAMT,0BAA0B,CAAC;IACnDC,QAAQ;IACRC,YAAY;IACZtC,aAAa;IACbL,WAAW;IACXqB;EACF,CAAC,CAAC;EACF,MAAM+B,WAAW,GAAG;IAClBI,WAAW,EAAEU,OAAO;IACpB0I,iBAAiB,EAAE,CAAC,CAAC;IACrBrJ,UAAU,EAAEW,OAAO;IACnB3C,QAAQ,EAAE;EACZ,CAAC;EACD,IAAI;IACF,MAAMsL,aAAa,GAAG,IAAAC,2BAAgB,EAACH,WAAW,CAAC;IACnD,MAAMxJ,SAAmC,GAAG;MAC1C4J,KAAK,EAAEF,aAAa,CAAC3H,IAAI;MACzB;MACA;MACA8H,aAAa,EAAEH,aAAa,CAACJ,OAAO,IAAI9I;IAC1C,CAAC;IACD,MAAMsJ,GAAG,GAAG,MAAM/J,OAAO,CAACC,SAAS,EAAEC,WAAW,CAAC;IACjD,IAAI,CAAC6J,GAAG,CAACjL,QAAQ,EAAE;MACjB,MAAM,KAAIkL,oBAAQ,EAAC,sCAAsC,CAAC;IAC5D;IACA,MAAMlL,QAAQ,GAAGiL,GAAG,CAACjL,QAAyC;IAC9D,MAAMmL,WAAW,GACfN,aAAa,CAACJ,OAAO,IAAIW,iBAAM,CAACC,UAAU,CAACR,aAAa,CAACJ,OAAO,CAAC,GAAGI,aAAa,CAACJ,OAAO,GAAG9I,SAAS;IAEvG,OAAO;MACLgJ,WAAW,EAAE3K,QAAQ,CAACkD,IAAI;MAC1BuH,OAAO,EAAEzK,QAAQ,CAACyK,OAAO;MACzBU,WAAW;MACXG,QAAQ,EAAE,IAAI;MACdC,WAAW,EAAEN,GAAG,CAACM,WAAW;MAC5BvL;IACF,CAAC;EACH,CAAC,CAAC,OAAOlF,CAAM,EAAE;IACf,IAAI,CAACA,CAAC,CAAC0Q,OAAO,EAAErC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;MACjD,MAAM,IAAA1G,0CAAmB,EAAC3H,CAAC,CAAC;IAC9B;IACA;IACA,MAAMqG,SAAmC,GAAG;MAC1C4J,KAAK,EAAEpJ,SAAS;MAChBqJ,aAAa,EAAEL;IACjB,CAAC;IACD,MAAMM,GAAG,GAAG,MAAM/J,OAAO,CAACC,SAAS,EAAEC,WAAW,CAAC;IACjD,IAAI,CAAC6J,GAAG,CAACjL,QAAQ,EAAE;MACjB,MAAM,KAAIkL,oBAAQ,EAAC,sCAAsC,CAAC;IAC5D;IACA,IAAI,CAACD,GAAG,CAACQ,uBAAuB,EAAE;MAChC,MAAM,KAAIP,oBAAQ,EAAC,qCAAqC,CAAC;IAC3D;IACA,MAAMlL,QAAQ,GAAGiL,GAAG,CAACjL,QAAyC;IAC9D,OAAO;MACL2K,WAAW,EAAE3K,QAAQ,CAACkD,IAAI;MAC1BuH,OAAO,EAAEQ,GAAG,CAACQ,uBAAuB;MACpCH,QAAQ,EAAE,KAAK;MACfC,WAAW,EAAEN,GAAG,CAACM,WAAW;MAC5BvL;IACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,eAAeuH,oBAAoBA,CAACrF,OAAe,EAAuD;EACxG,IAAI;IACF,MAAM;MAAEwJ;IAAmB,CAAC,GAAG,MAAM9N,cAAc,CAAC,CAAC;IACrD,MAAM+N,QAAQ,GAAI,MAAMD,kBAAkB,CAACxJ,OAAO,EAAE;MAAE0J,kBAAkB,EAAE;IAAK,CAAC,CAAwB;IACxG,OAAOD,QAAQ,EAAEE,GAAG;EACtB,CAAC,CAAC,MAAM;IACN;IACA;IACA,OAAOlK,SAAS;EAClB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeiG,0BAA0BA,CAAC1F,OAAe,EAAE4J,KAAqC,EAAE;EAChG,MAAM;IAAEJ,kBAAkB;IAAEK;EAAoB,CAAC,GAAG,MAAMnO,cAAc,CAAC,CAAC;EAC1E,MAAM+N,QAAQ,GAAI,MAAMD,kBAAkB,CAACxJ,OAAO,EAAE;IAAE0J,kBAAkB,EAAE;EAAK,CAAC,CAAiB;EACjG,IAAID,QAAQ,IAAI,IAAI,EAAE;EACtB,MAAMK,MAAM,GAAAxP,aAAA,CAAAA,aAAA,KAAQmP,QAAQ,CAACE,GAAG,GAAKC,KAAK,CAAE;EAC5C,IAAI,IAAAG,iBAAO,EAACN,QAAQ,CAACE,GAAG,EAAEG,MAAM,CAAC,EAAE;EACnCL,QAAQ,CAACE,GAAG,GAAGG,MAA+B;EAC9C,MAAMD,mBAAmB,CAAC7J,OAAO,EAAEyJ,QAAQ,CAAC;AAC9C","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_fs","_semver","_interopRequireDefault","_parsePackageName","_cli","_logger","_pluginTrustedDeps","nodeApi","_interopRequireWildcard","_nerfDart","_bitError","_legacy","_dependenciesPnpm","_lodash","_pnpmErrorToBitError","_readConfig","_nodeGypBin","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UNTRUSTED_PACKAGE_NAMES","installsRunning","lockfileFsPromise","loadLockfileFs","loadEsm","lockfileFs","toNodeApiProxyConfig","proxyConfig","httpProxy","httpsProxy","noProxy","toNodeApiNetworkConfig","networkConfig","ca","cert","key","localAddress","strictSsl","strictSSL","maxSockets","networkConcurrency","fetchRetries","fetchRetryFactor","fetchRetryMintimeout","fetchRetryMaxtimeout","fetchTimeout","userAgent","buildAuthHeaderByUri","registries","result","registry","values","scopes","uri","authHeaderValue","toNerfDart","defaultRegistry","applyReadPackageHooks","hooks","manifest","workspaceDir","reduce","m","hook","emitLogEvent","event","streamParser","emit","generateResolverAndFetcher","cacheDir","fullMetadata","pnpmConfig","readConfig","authHeaderByUri","config","registriesMap","toMap","resolve","wantedDep","resolveOpts","resolveDependency","dir","projectDir","lockfileDir","process","cwd","undefined","getPeerDependencyIssues","manifestsByPaths","opts","projects","entries","map","rootDir","storeDir","overrides","peersSuffixMaxLength","virtualStoreDirMaxLength","VIRTUAL_STORE_DIR_MAX_LENGTH","err","pnpmErrorToBitError","install","options","logger","externalDependencies","Set","createReadPackageHooks","rootComponents","rootComponentsForCapsules","name","add","forcedHarmonyVersion","dependenciesMeta","hoistPattern","size","hoistInjectedDependencies","pkgName","scriptPolicies","resolveScriptPolicies","allowScripts","dangerouslyAllowAllScripts","neverBuiltDependencies","readPackageHookForDeps","resolvedDir","rawManifest","join","resolvedManifest","removeScriptsFromNeverBuiltPackages","neverBuildPackageNames","onLog","installOptions","nodeLinker","linkWorkspacePackages","publicHoistPattern","allowBuilds","dangerouslyAllowAllBuilds","autoInstallPeers","excludeLinksFromLockfile","lockfileOnly","packageImportMethod","preferOffline","dedupePeerDependents","dedupePeers","dedupeDirectDeps","dedupeInjectedDeps","injectWorkspacePackages","includeOptionalDeps","update","updateAll","depth","nodeVersion","engineStrict","minimumReleaseAge","minimumReleaseAgeExclude","trustLockfile","ignorePackageManifest","hoistWorkspacePackages","enableModulesDir","resolvePeersFromWorkspaceRoot","frozenLockfile","preferFrozenLockfile","peerDependencyRules","allowAny","ignoreMissing","reportOptions","strictDepBuilds","pnpmHomeDir","returnListOfDepsRequiringBuild","dependenciesChanged","depsRequiringBuild","resolvedStoreDir","dryRun","addNodeGypToPath","stopReporting","installPromise","restoreWantedLockfile","hidePackageManagerOutput","initReporter","hideAddedPkgsProgress","preInstallBitAttrs","readBitLockfileAttrs","removeWantedLockfileForUpdate","installResult","sortedDepsRequiringBuild","sortDepsRequiringBuild","bitAttrs","mergeBitLockfileAttrs","addBitAttributesToLockfile","stats","added","removed","linkedToRoot","warn","rebuild","appendOnly","hideLifecycleOutput","lockfilePath","lockfileContent","fs","readFile","code","unlink","writeFile","pkg","packageDescriptor","allowedScript","trustedPkgName","TRUSTED_PACKAGE_NAMES","untrustedPkgName","scripts","includes","initDefaultReporter","context","argv","reportingOptions","throttleProgress","hideProgressPrefix","approveBuildsInstructionText","filterPkgsDiff","diff","startsWith","from","readPackage","readPackageHook","removeLegacyFromDeps","removeHarmonyFromDeps","readPackageHookForCapsules","dependencies","peerDependencies","BIT_ROOTS_DIR","readWorkspacePackageHook","newDeps","version","resolveRemoteVersion","packageName","preferredVersions","parsedPackage","parsePackageName","alias","bareSpecifier","val","BitError","wantedRange","semver","validRange","isSemver","resolvedVia","message","normalizedBareSpecifier","sort","preInstallAttrs","readWantedLockfile","lockfile","ignoreIncompatible","bit","attrs","writeWantedLockfile","merged","isEqual"],"sources":["lynx.ts"],"sourcesContent":["import { join } from 'path';\nimport { promises as fs } from 'fs';\nimport semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport { initDefaultReporter } from '@pnpm/cli.default-reporter';\nimport { streamParser } from '@pnpm/logger';\nimport { TRUSTED_PACKAGE_NAMES } from '@pnpm/plugin-trusted-deps';\nimport type {\n PackageManifest,\n ProjectManifest,\n ReadPackageHook,\n PeerDependencyRules,\n DependencyManifest,\n DepPath,\n} from '@pnpm/types';\nimport * as nodeApi from '@pnpm/napi';\nimport type { PeerDependencyIssuesByProjects } from '@pnpm/napi';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport toNerfDart from 'nerf-dart';\nimport type {\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { BitError } from '@teambit/bit-error';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport type * as LockfileFs from '@pnpm/lockfile.fs';\nimport { type LockfileFile, type LockfileObject } from '@pnpm/lockfile.types';\nimport type { Logger } from '@teambit/logger';\nimport { VIRTUAL_STORE_DIR_MAX_LENGTH } from '@teambit/dependencies.pnpm.dep-path';\nimport { isEqual } from 'lodash';\nimport { pnpmErrorToBitError } from './pnpm-error-to-bit-error';\nimport { readConfig } from './read-config';\nimport { addNodeGypToPath } from './node-gyp-bin';\n\n/**\n * Packages that are known to have risky or unnecessary build scripts.\n * These packages will be disallowed from running scripts by default,\n * unless the user explicitly allows them in `allowScripts`.\n */\nconst UNTRUSTED_PACKAGE_NAMES = ['es5-ext', 'less', 'protobufjs', 'ssh', 'core-js-pure', 'core-js'];\n\nconst installsRunning: Record<string, Promise<any>> = {};\ntype LockfileFsModule = typeof LockfileFs;\nlet lockfileFsPromise: Promise<LockfileFsModule> | undefined;\n\nfunction loadLockfileFs(): Promise<LockfileFsModule> {\n lockfileFsPromise ??= (async () => {\n const { loadEsm } = require('./load-pnpm-esm.cjs') as {\n loadEsm: () => Promise<{ lockfileFs: LockfileFsModule }>;\n };\n const { lockfileFs } = await loadEsm();\n return lockfileFs;\n })();\n return lockfileFsPromise;\n}\n\n/**\n * Minimal structural signature of the `resolve` function returned by\n * `generateResolverAndFetcher`. It mirrors what the old\n * `@pnpm/installing.client` `ResolveFunction` exposed, but is backed by\n * `@pnpm/napi`'s `resolveDependency`.\n */\ntype ResolveOpts = {\n lockfileDir?: string;\n projectDir?: string;\n preferredVersions?: Record<string, unknown>;\n registry?: string;\n};\ntype ResolveFunction = (\n wantedDependency: nodeApi.WantedDependency,\n opts: ResolveOpts\n) => Promise<nodeApi.ResolveResult>;\n\nfunction toNodeApiProxyConfig(proxyConfig: PackageManagerProxyConfig): nodeApi.ProxyConfig {\n return {\n httpProxy: proxyConfig.httpProxy,\n httpsProxy: proxyConfig.httpsProxy,\n noProxy: proxyConfig.noProxy,\n };\n}\n\nfunction toNodeApiNetworkConfig(networkConfig: PackageManagerNetworkConfig): nodeApi.NetworkConfig {\n return {\n ca: networkConfig.ca,\n cert: networkConfig.cert,\n key: networkConfig.key,\n localAddress: networkConfig.localAddress,\n strictSsl: networkConfig.strictSSL,\n maxSockets: networkConfig.maxSockets,\n networkConcurrency: networkConfig.networkConcurrency,\n fetchRetries: networkConfig.fetchRetries,\n fetchRetryFactor: networkConfig.fetchRetryFactor,\n fetchRetryMintimeout: networkConfig.fetchRetryMintimeout,\n fetchRetryMaxtimeout: networkConfig.fetchRetryMaxtimeout,\n fetchTimeout: networkConfig.fetchTimeout,\n userAgent: networkConfig.userAgent,\n };\n}\n\n/**\n * Pre-computed `Authorization` headers keyed by nerf-darted registry URI\n * (plus `''` for the default registry) — the shape `@pnpm/napi` applies\n * directly. Bit's registries model already carries ready-to-send header\n * values (from the engine's `readConfig` plus Bit's own cloud token), so no\n * npmrc-style credential round-trip is needed.\n */\nfunction buildAuthHeaderByUri(registries: Registries): Record<string, string> {\n const result: Record<string, string> = {};\n for (const registry of Object.values(registries.scopes)) {\n if (registry.uri && registry.authHeaderValue) {\n result[toNerfDart(registry.uri)] = registry.authHeaderValue;\n }\n }\n const { defaultRegistry } = registries;\n if (defaultRegistry?.authHeaderValue) {\n if (defaultRegistry.uri) {\n result[toNerfDart(defaultRegistry.uri)] = defaultRegistry.authHeaderValue;\n }\n result[''] = defaultRegistry.authHeaderValue;\n }\n return result;\n}\n\n/**\n * Compose the list of read-package hooks into a single synchronous transform.\n * The Bit hooks are all synchronous, so the accumulator stays synchronous even\n * though the pnpm `ReadPackageHook` type allows returning a promise.\n */\nfunction applyReadPackageHooks(\n hooks: ReadPackageHook[],\n manifest: PackageManifest,\n workspaceDir?: string\n): PackageManifest {\n return hooks.reduce<PackageManifest>((m, hook) => hook(m, workspaceDir) as PackageManifest, manifest);\n}\n\n/**\n * Feed a wire-compatible pnpm log event into the default reporter. The engine\n * emits bunyan-shaped events; the reporter subscribes to `streamParser` via\n * `.on('data', ...)`, so emitting a `data` event on the underlying stream\n * delivers the event straight to the reporter.\n */\nfunction emitLogEvent(event: Record<string, unknown>): void {\n (streamParser as unknown as NodeJS.EventEmitter).emit('data', event);\n}\n\nexport async function generateResolverAndFetcher({\n cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata,\n}: {\n cacheDir: string;\n registries: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n fullMetadata?: boolean;\n}): Promise<{ resolve: ResolveFunction }> {\n const pnpmConfig = await readConfig();\n // The engine-resolved `.npmrc` headers first; Bit's own registries model\n // (which carries the cloud token) wins on conflict.\n const authHeaderByUri = { ...pnpmConfig.config.authHeaderByUri, ...buildAuthHeaderByUri(registries) };\n const registriesMap = registries.toMap();\n const resolve: ResolveFunction = (wantedDep, resolveOpts) =>\n nodeApi.resolveDependency(wantedDep, {\n dir: resolveOpts.projectDir || resolveOpts.lockfileDir || process.cwd(),\n cacheDir,\n registries: registriesMap,\n authHeaderByUri,\n proxyConfig: proxyConfig ? toNodeApiProxyConfig(proxyConfig) : undefined,\n networkConfig: networkConfig ? toNodeApiNetworkConfig(networkConfig) : undefined,\n fullMetadata,\n });\n return { resolve };\n}\n\nexport async function getPeerDependencyIssues(\n manifestsByPaths: Record<string, any>,\n opts: {\n storeDir?: string;\n cacheDir: string;\n registries: Registries;\n rootDir: string;\n proxyConfig: PackageManagerProxyConfig;\n networkConfig: PackageManagerNetworkConfig;\n overrides?: Record<string, string>;\n packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';\n pnpmHomeDir?: string;\n }\n): Promise<PeerDependencyIssuesByProjects> {\n const projects: nodeApi.NodeApiProject[] = Object.entries(manifestsByPaths).map(([rootDir, manifest]) => ({\n rootDir,\n manifest: manifest as nodeApi.PackageManifest,\n }));\n try {\n return await nodeApi.getPeerDependencyIssues({\n dir: opts.rootDir,\n projects,\n storeDir: opts.storeDir,\n cacheDir: opts.cacheDir,\n overrides: opts.overrides,\n peersSuffixMaxLength: 1000,\n registries: opts.registries.toMap(),\n authHeaderByUri: buildAuthHeaderByUri(opts.registries),\n proxyConfig: toNodeApiProxyConfig(opts.proxyConfig),\n networkConfig: toNodeApiNetworkConfig(opts.networkConfig),\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n });\n } catch (err: any) {\n throw pnpmErrorToBitError(err);\n }\n}\n\nexport type RebuildFn = (opts: { pending?: boolean; skipIfHasSideEffectsCache?: boolean }) => Promise<void>;\n\nexport interface ReportOptions {\n appendOnly?: boolean;\n throttleProgress?: number;\n hideAddedPkgsProgress?: boolean;\n hideProgressPrefix?: boolean;\n hideLifecycleOutput?: boolean;\n peerDependencyRules?: PeerDependencyRules;\n process?: NodeJS.Process;\n}\n\nexport async function install(\n rootDir: string,\n manifestsByPaths: Record<string, ProjectManifest>,\n storeDir: string | undefined,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {},\n options: {\n updateAll?: boolean;\n nodeLinker?: 'hoisted' | 'isolated';\n overrides?: Record<string, string>;\n rootComponents?: boolean;\n rootComponentsForCapsules?: boolean;\n includeOptionalDeps?: boolean;\n reportOptions?: ReportOptions;\n hidePackageManagerOutput?: boolean;\n hoistInjectedDependencies?: boolean;\n dryRun?: boolean;\n dedupePeers?: boolean;\n dedupeInjectedDeps?: boolean;\n forcedHarmonyVersion?: string;\n allowScripts?: Record<string, boolean | 'warn'>;\n dangerouslyAllowAllScripts?: boolean;\n neverBuiltDependencies?: string[];\n autoInstallPeers?: boolean;\n publicHoistPattern?: string[];\n hoistPattern?: string[];\n lockfileOnly?: boolean;\n nodeVersion?: string;\n enableModulesDir?: boolean;\n engineStrict?: boolean;\n excludeLinksFromLockfile?: boolean;\n minimumReleaseAge?: number;\n minimumReleaseAgeExclude?: string[];\n ignorePackageManifest?: boolean;\n hoistWorkspacePackages?: boolean;\n returnListOfDepsRequiringBuild?: boolean;\n packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';\n pnpmHomeDir?: string;\n preferOffline?: boolean;\n // Accepted for backward-compatibility with the previous pnpm engine, but the\n // Rust engine manages the side-effects cache internally.\n sideEffectsCacheRead?: boolean;\n sideEffectsCacheWrite?: boolean;\n },\n logger?: Logger\n): Promise<{ dependenciesChanged: boolean; rebuild: RebuildFn; storeDir: string; depsRequiringBuild?: DepPath[] }> {\n const externalDependencies = new Set<string>();\n const hooks = createReadPackageHooks(options);\n if (options?.rootComponents && !options?.rootComponentsForCapsules) {\n for (const [dir, { name }] of Object.entries(manifestsByPaths)) {\n if (dir !== rootDir && name) {\n externalDependencies.add(name);\n }\n }\n }\n const overrides = {\n ...options.overrides,\n };\n if (options.forcedHarmonyVersion) {\n // Harmony needs to be a singleton, so if a specific version was requested for the workspace,\n // we force that version accross the whole dependency graph.\n overrides['@teambit/harmony'] = options.forcedHarmonyVersion;\n }\n if (!manifestsByPaths[rootDir].dependenciesMeta) {\n manifestsByPaths = {\n ...manifestsByPaths,\n [rootDir]: {\n ...manifestsByPaths[rootDir],\n dependenciesMeta: {},\n },\n };\n }\n const hoistPattern = options.hoistPattern ?? ['*'];\n if (hoistPattern.length > 0 && externalDependencies.size > 0 && !options.hoistInjectedDependencies) {\n for (const pkgName of externalDependencies) {\n hoistPattern.push(`!${pkgName}`);\n }\n }\n const scriptPolicies = resolveScriptPolicies({\n allowScripts: options.allowScripts,\n dangerouslyAllowAllScripts: options.dangerouslyAllowAllScripts,\n neverBuiltDependencies: options.neverBuiltDependencies,\n });\n\n // The in-memory importer manifests are transformed up front (with each\n // importer's own directory as workspaceDir). The dependency manifests are\n // transformed lazily by the engine through the readPackageHook (which has no\n // workspaceDir).\n const projects: nodeApi.NodeApiProject[] = Object.entries(manifestsByPaths).map(([dir, manifest]) => ({\n rootDir: dir,\n manifest: applyReadPackageHooks(\n hooks,\n manifest as unknown as PackageManifest,\n dir\n ) as unknown as nodeApi.PackageManifest,\n }));\n // When the engine resolves a workspace project as a dependency (an injected\n // \"file:\" instance), it hands the hook that project's importer manifest —\n // which the up-front transform above already stripped of workspace-sibling\n // deps. The instance must keep those deps (they become the component's graph\n // edges), so substitute the project's raw manifest, identified by the\n // lockfile-root-relative directory the engine passes for directory\n // resolutions. pnpm's TS engine reaches the same split by keeping raw\n // project manifests and applying the hook chain contextually.\n const readPackageHookForDeps = (manifest: nodeApi.PackageManifest, resolvedDir?: string): nodeApi.PackageManifest => {\n const rawManifest = resolvedDir ? manifestsByPaths[join(rootDir, resolvedDir)] : undefined;\n const resolvedManifest = applyReadPackageHooks(\n hooks,\n (rawManifest ?? manifest) as unknown as PackageManifest\n ) as unknown as nodeApi.PackageManifest;\n return removeScriptsFromNeverBuiltPackages(resolvedManifest, scriptPolicies.neverBuildPackageNames);\n };\n\n const onLog: nodeApi.LogListener = (event) => {\n emitLogEvent(event);\n };\n\n const installOptions: nodeApi.InstallOptions = {\n dir: rootDir,\n projects,\n storeDir,\n cacheDir,\n registries: registries.toMap(),\n authHeaderByUri: buildAuthHeaderByUri(registries),\n proxyConfig: toNodeApiProxyConfig(proxyConfig),\n networkConfig: toNodeApiNetworkConfig(networkConfig),\n overrides,\n nodeLinker: options.nodeLinker,\n // Resolve bare-semver deps on workspace components (incl. auto-installed\n // peers naming a sibling component) from the workspace instead of the\n // registry — otherwise an unpublished component peer 404s. `'deep'` so\n // transitive component deps link locally too.\n linkWorkspacePackages: 'deep',\n hoistPattern,\n publicHoistPattern: options.publicHoistPattern,\n externalDependencies: [...externalDependencies],\n allowBuilds: scriptPolicies.allowBuilds as Record<string, boolean>,\n dangerouslyAllowAllBuilds: scriptPolicies.dangerouslyAllowAllBuilds,\n // `neverBuiltDependencies` is already folded into `allowBuilds` above by\n // `resolveScriptPolicies`; the binding rejects a non-empty pass-through.\n autoInstallPeers: options.autoInstallPeers,\n excludeLinksFromLockfile: options.excludeLinksFromLockfile ?? true,\n lockfileOnly: options.lockfileOnly ?? false,\n packageImportMethod: options.packageImportMethod,\n preferOffline: options.preferOffline,\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n peersSuffixMaxLength: 1000,\n dedupePeerDependents: true,\n dedupePeers: options.dedupePeers,\n dedupeDirectDeps: true,\n dedupeInjectedDeps: options.dedupeInjectedDeps,\n injectWorkspacePackages: true,\n includeOptionalDeps: options.includeOptionalDeps !== false,\n // `update` re-resolves the whole graph; the binding ignores `depth` (there\n // are no package selectors), but pass a finite full-depth value for parity\n // with the old engine's `depth: Infinity` update-all call.\n update: options.updateAll,\n depth: options.updateAll ? 1000 : undefined,\n nodeVersion: options.nodeVersion,\n engineStrict: options.engineStrict,\n // pnpm v12 defaults minimumReleaseAge to 1440 when the option is absent.\n // bit.cloud packuments are huge (a version per snap) and their abbreviated\n // form carries no `time` field, so the maturity cutoff forces a full-\n // packument upgrade fetch for every component on a cold resolve. Disable\n // the policy unless the workspace opts in.\n minimumReleaseAge: options.minimumReleaseAge ?? 0,\n minimumReleaseAgeExclude: options.minimumReleaseAgeExclude,\n // Bit lockfiles are trusted workspace input. Keep installs compatible with\n // lockfiles generated before pnpm v12 added registry resolution verification.\n trustLockfile: true,\n ignorePackageManifest: options.ignorePackageManifest,\n hoistWorkspacePackages: options.hoistWorkspacePackages,\n enableModulesDir: options.enableModulesDir,\n resolvePeersFromWorkspaceRoot: true,\n frozenLockfile: options.updateAll ? false : undefined,\n preferFrozenLockfile: !options.updateAll,\n // Suppress peer-dependency warnings by default (allow any version, ignore\n // missing), letting the workspace's own rules override.\n peerDependencyRules: {\n allowAny: ['*'],\n ignoreMissing: ['*'],\n ...options.reportOptions?.peerDependencyRules,\n } as nodeApi.PeerDependencyRules,\n // Bit reports the deps requiring a build in the lockfile instead of failing.\n strictDepBuilds: false,\n pnpmHomeDir: options.pnpmHomeDir,\n // Report every package with install scripts (not just blocked ones) in\n // `depsRequiringBuild`, so the `bit:` lockfile block lists them even\n // though Bit allows the builds to run.\n returnListOfDepsRequiringBuild: true,\n };\n\n let dependenciesChanged = false;\n let depsRequiringBuild: DepPath[] | undefined;\n let resolvedStoreDir = storeDir;\n if (!options.dryRun) {\n // Dependency build scripts inherit this process's PATH. Set up inside the\n // guard, so a dry run neither writes the wrapper nor touches the env.\n addNodeGypToPath(logger);\n let stopReporting: Function | undefined;\n let installPromise: Promise<nodeApi.InstallResult> | undefined;\n let restoreWantedLockfile: (() => Promise<void>) | undefined;\n if (!options.hidePackageManagerOutput) {\n stopReporting = initReporter({\n ...options.reportOptions,\n hideAddedPkgsProgress: options.lockfileOnly,\n });\n }\n try {\n await installsRunning[rootDir];\n // The engine rewrites pnpm-lock.yaml from its typed model, which\n // does not round-trip Bit's `bit:` extension block (the v11 TS\n // engine mutated the loaded object in place, so the block\n // survived). Capture it up front and re-assert it after the\n // install alongside `depsRequiringBuild`.\n const preInstallBitAttrs = await readBitLockfileAttrs(rootDir);\n restoreWantedLockfile = await removeWantedLockfileForUpdate(rootDir, options.updateAll);\n installPromise = nodeApi.install(installOptions, onLog, readPackageHookForDeps);\n installsRunning[rootDir] = installPromise;\n const installResult: nodeApi.InstallResult = await installPromise;\n resolvedStoreDir = installResult.storeDir;\n const sortedDepsRequiringBuild = sortDepsRequiringBuild(installResult.depsRequiringBuild);\n const bitAttrs = mergeBitLockfileAttrs(preInstallBitAttrs, sortedDepsRequiringBuild);\n if (bitAttrs != null) {\n await addBitAttributesToLockfile(rootDir, bitAttrs);\n }\n depsRequiringBuild = sortedDepsRequiringBuild as unknown as DepPath[] | undefined;\n dependenciesChanged =\n installResult.stats.added + installResult.stats.removed + installResult.stats.linkedToRoot > 0;\n } catch (err: any) {\n await restoreWantedLockfile?.();\n if (logger) {\n logger.warn('got an error from the pnpm install function', err);\n }\n throw pnpmErrorToBitError(err);\n } finally {\n if (installPromise && installsRunning[rootDir] === installPromise) {\n delete installsRunning[rootDir];\n }\n stopReporting?.();\n }\n }\n return {\n dependenciesChanged,\n // The Rust engine's rebuild rebuilds every build-needing package and does not\n // support the pending / skipIfHasSideEffectsCache selectors of the old engine.\n rebuild: async () => {\n // Reached without an install of its own after a dry run.\n addNodeGypToPath(logger);\n let stopReporting: Function | undefined;\n if (!options.hidePackageManagerOutput) {\n stopReporting = initReporter({\n appendOnly: true,\n hideLifecycleOutput: true,\n });\n }\n try {\n await nodeApi.rebuild({ ...installOptions, storeDir: resolvedStoreDir }, onLog, undefined);\n } finally {\n stopReporting?.();\n }\n },\n storeDir: resolvedStoreDir ?? '',\n depsRequiringBuild,\n };\n}\n\nasync function removeWantedLockfileForUpdate(\n rootDir: string,\n updateAll?: boolean\n): Promise<(() => Promise<void>) | undefined> {\n if (!updateAll) return undefined;\n const lockfilePath = join(rootDir, 'pnpm-lock.yaml');\n let lockfileContent: Buffer;\n try {\n lockfileContent = await fs.readFile(lockfilePath);\n } catch (err: any) {\n if (err?.code === 'ENOENT') return undefined;\n throw err;\n }\n await fs.unlink(lockfilePath);\n return async () => {\n await fs.writeFile(lockfilePath, lockfileContent);\n };\n}\n\ntype ScriptPolicyConfig = {\n allowScripts?: Record<string, boolean | 'warn'>;\n dangerouslyAllowAllScripts?: boolean;\n neverBuiltDependencies?: string[];\n};\n\nexport function resolveScriptPolicies({\n allowScripts,\n dangerouslyAllowAllScripts,\n neverBuiltDependencies,\n}: ScriptPolicyConfig): {\n allowBuilds: Record<string, boolean | string>;\n dangerouslyAllowAllBuilds?: boolean;\n neverBuildPackageNames?: string[];\n} {\n const allowBuilds: Record<string, boolean | string> = {};\n if (dangerouslyAllowAllScripts) {\n if (!neverBuiltDependencies?.length) {\n return { allowBuilds, dangerouslyAllowAllBuilds: true };\n }\n for (const pkg of neverBuiltDependencies) {\n allowBuilds[pkg] = false;\n }\n return { allowBuilds, neverBuildPackageNames: neverBuiltDependencies };\n }\n for (const [packageDescriptor, allowedScript] of Object.entries(allowScripts ?? {})) {\n if (allowedScript === true || allowedScript === false) {\n allowBuilds[packageDescriptor] = allowedScript;\n }\n // String values (e.g. 'warn') are placeholders — ignore them; pnpm warns about these.\n }\n for (const trustedPkgName of TRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[trustedPkgName] == null) {\n allowBuilds[trustedPkgName] = true;\n }\n }\n for (const untrustedPkgName of UNTRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[untrustedPkgName] !== true) {\n allowBuilds[untrustedPkgName] = false;\n }\n }\n for (const pkg of neverBuiltDependencies ?? []) {\n allowBuilds[pkg] = false;\n }\n return { allowBuilds };\n}\n\nfunction removeScriptsFromNeverBuiltPackages(\n manifest: nodeApi.PackageManifest,\n neverBuildPackageNames?: string[]\n): nodeApi.PackageManifest {\n if (!manifest.name || !manifest.scripts || !neverBuildPackageNames?.includes(manifest.name)) return manifest;\n return {\n ...manifest,\n scripts: undefined,\n };\n}\n\nfunction initReporter(opts?: ReportOptions) {\n return initDefaultReporter({\n context: {\n argv: [],\n process: opts?.process,\n },\n reportingOptions: {\n appendOnly: opts?.appendOnly ?? false,\n throttleProgress: opts?.throttleProgress ?? 200,\n hideAddedPkgsProgress: opts?.hideAddedPkgsProgress,\n hideProgressPrefix: opts?.hideProgressPrefix,\n hideLifecycleOutput: opts?.hideLifecycleOutput,\n approveBuildsInstructionText:\n 'Update the \"allowScripts\" field under \"teambit.dependencies/dependency-resolver\" in workspace.jsonc. \\nSet to true to allow, false to explicitly disallow. \\nExample: allowScripts: { \"esbuild\": true, \"core-js\": false }. \\nThis is a security-sensitive setting: enabling scripts may allow arbitrary code execution during install.',\n },\n streamParser: streamParser as any, // eslint-disable-line\n // Linked in core aspects are excluded from the output to reduce noise.\n // Other @teambit/ dependencies will be shown.\n // Only those that are symlinked from outside the workspace will be hidden.\n filterPkgsDiff: (diff) => !diff.name.startsWith('@teambit/') || !diff.from,\n });\n}\n\n/**\n * This function returns the list of hooks that are passed to pnpm\n * for transforming the manifests of dependencies during installation.\n */\nexport function createReadPackageHooks(options: {\n rootComponents?: boolean;\n rootComponentsForCapsules?: boolean;\n forcedHarmonyVersion?: string;\n}): ReadPackageHook[] {\n const readPackage: ReadPackageHook[] = [];\n if (options?.rootComponents && !options?.rootComponentsForCapsules) {\n readPackage.push(readPackageHook as ReadPackageHook);\n }\n readPackage.push(removeLegacyFromDeps as ReadPackageHook);\n if (!options.forcedHarmonyVersion) {\n // If the workspace did not specify a harmony version in a root policy,\n // then we remove harmony from any dependencies, so that the one linked from bvm is used.\n readPackage.push(removeHarmonyFromDeps as ReadPackageHook);\n }\n if (options?.rootComponentsForCapsules) {\n readPackage.push(readPackageHookForCapsules as ReadPackageHook);\n }\n return readPackage;\n}\n\n/**\n * This hook is used when installation is executed inside a capsule.\n * The components in the capsules should get their peer dependencies installed,\n * so this hook converts any peer dependencies into runtime dependencies.\n */\nfunction readPackageHookForCapsules(pkg: PackageManifest, workspaceDir?: string): PackageManifest {\n // workspaceDir is set only for workspace packages\n if (workspaceDir) {\n return {\n ...pkg,\n dependencies: {\n ...pkg.peerDependencies,\n ...pkg.dependencies,\n },\n };\n }\n return pkg;\n}\n\n/**\n * @teambit/legacy should never be installed as a dependency.\n * It is linked from bvm.\n */\nfunction removeLegacyFromDeps(pkg: PackageManifest): PackageManifest {\n if (pkg.dependencies != null) {\n if (pkg.dependencies['@teambit/legacy'] && !pkg.dependencies['@teambit/legacy'].startsWith('link:')) {\n delete pkg.dependencies['@teambit/legacy'];\n }\n }\n if (pkg.peerDependencies != null) {\n if (pkg.peerDependencies['@teambit/legacy']) {\n delete pkg.peerDependencies['@teambit/legacy'];\n }\n }\n return pkg;\n}\n\nfunction removeHarmonyFromDeps(pkg: PackageManifest): PackageManifest {\n if (pkg.dependencies != null) {\n if (pkg.dependencies['@teambit/harmony'] && !pkg.dependencies['@teambit/harmony'].startsWith('link:')) {\n delete pkg.dependencies['@teambit/harmony'];\n }\n }\n if (pkg.peerDependencies != null) {\n if (pkg.peerDependencies['@teambit/harmony']) {\n delete pkg.peerDependencies['@teambit/harmony'];\n }\n }\n return pkg;\n}\n\n/**\n * This hook is used when installation happens in a Bit workspace.\n * We need a different hook for this case because unlike in a capsule, in a workspace,\n * the package manager only links workspace components to subdependencies.\n * For direct dependencies, Bit's linking is used.\n */\nfunction readPackageHook(pkg: PackageManifest, workspaceDir?: string): PackageManifest {\n // workspaceDir is set only for workspace packages\n if (workspaceDir && !workspaceDir.includes(BIT_ROOTS_DIR)) {\n return readWorkspacePackageHook(pkg);\n }\n return pkg;\n}\n\n/**\n * This hook is used when installation happens in a Bit workspace.\n * It is applied on workspace projects, and it removes any references to other workspace projects.\n * This is needed because Bit has its own linking for workspace projects.\n * pnpm should not override the links created by Bit.\n * Otherwise, the IDE would reference workspace projects from inside `node_modules/.pnpm`.\n */\nfunction readWorkspacePackageHook(pkg: PackageManifest): PackageManifest {\n const newDeps = {};\n for (const [name, version] of Object.entries(pkg.dependencies ?? {})) {\n if (!version.startsWith('workspace:')) {\n newDeps[name] = version;\n }\n }\n return {\n ...pkg,\n dependencies: {\n ...pkg.peerDependencies,\n ...newDeps,\n },\n };\n}\n\nexport async function resolveRemoteVersion(\n packageName: string,\n {\n rootDir,\n cacheDir,\n fullMetadata,\n registries,\n proxyConfig,\n networkConfig,\n }: {\n rootDir: string;\n cacheDir: string;\n fullMetadata?: boolean;\n registries: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n }\n): Promise<ResolvedPackageVersion> {\n const { resolve } = await generateResolverAndFetcher({\n cacheDir,\n fullMetadata,\n networkConfig,\n proxyConfig,\n registries,\n });\n const resolveOpts = {\n lockfileDir: rootDir,\n preferredVersions: {},\n projectDir: rootDir,\n registry: '',\n };\n try {\n const parsedPackage = parsePackageName(packageName);\n const wantedDep: nodeApi.WantedDependency = {\n alias: parsedPackage.name,\n // parse-package-name returns an empty string when no version is present,\n // but the engine resolves only undefined (or an explicit range) as \"latest\".\n bareSpecifier: parsedPackage.version || undefined,\n };\n const val = await resolve(wantedDep, resolveOpts);\n if (!val.manifest) {\n throw new BitError('The resolved package has no manifest');\n }\n const manifest = val.manifest as unknown as DependencyManifest;\n const wantedRange =\n parsedPackage.version && semver.validRange(parsedPackage.version) ? parsedPackage.version : undefined;\n\n return {\n packageName: manifest.name,\n version: manifest.version,\n wantedRange,\n isSemver: true,\n resolvedVia: val.resolvedVia,\n manifest,\n };\n } catch (e: any) {\n if (!e.message?.includes('is not a valid string')) {\n throw pnpmErrorToBitError(e);\n }\n // The provided package is probably a git url or path to a folder\n const wantedDep: nodeApi.WantedDependency = {\n alias: undefined,\n bareSpecifier: packageName,\n };\n const val = await resolve(wantedDep, resolveOpts);\n if (!val.manifest) {\n throw new BitError('The resolved package has no manifest');\n }\n if (!val.normalizedBareSpecifier) {\n throw new BitError('The resolved package has no version');\n }\n const manifest = val.manifest as unknown as DependencyManifest;\n return {\n packageName: manifest.name,\n version: val.normalizedBareSpecifier,\n isSemver: false,\n resolvedVia: val.resolvedVia,\n manifest,\n };\n }\n}\n\n/**\n * Sort the engine's `depsRequiringBuild` for a stable lockfile block, or\n * return undefined when the install did not compute the list at all —\n * it was served from the frozen-lockfile path, or the engine predates\n * `returnListOfDepsRequiringBuild`. Undefined is not an empty list: the\n * install has no answer, so the recorded one has to stand.\n */\nexport function sortDepsRequiringBuild(depsRequiringBuild: string[] | undefined): string[] | undefined {\n return depsRequiringBuild == null ? undefined : [...depsRequiringBuild].sort();\n}\n\n/**\n * The `bit:` attributes to re-assert after an install, or undefined when\n * there is nothing to write. See {@link sortDepsRequiringBuild} for why\n * an uncomputed list leaves the recorded one untouched.\n */\nexport function mergeBitLockfileAttrs(\n preInstallAttrs: Partial<BitLockfileAttributes> | undefined,\n sortedDepsRequiringBuild: string[] | undefined\n): Partial<BitLockfileAttributes> | undefined {\n if (sortedDepsRequiringBuild == null) return preInstallAttrs;\n return { ...preInstallAttrs, depsRequiringBuild: sortedDepsRequiringBuild };\n}\n\n/**\n * Read the `bit:` extension block of the workspace's wanted lockfile,\n * or undefined when there is no lockfile or no block.\n */\nasync function readBitLockfileAttrs(rootDir: string): Promise<Partial<BitLockfileAttributes> | undefined> {\n try {\n const { readWantedLockfile } = await loadLockfileFs();\n const lockfile = (await readWantedLockfile(rootDir, { ignoreIncompatible: true })) as BitLockfile | null;\n return lockfile?.bit;\n } catch {\n // A malformed lockfile fails the install itself later with a proper\n // error; there is nothing to preserve here.\n return undefined;\n }\n}\n\n/**\n * Re-assert Bit's `bit:` extension block on the wanted lockfile after\n * an engine install rewrote it. Merges over whatever the file has, so\n * an attribute captured before the install (e.g. `restoredFromModel`)\n * survives the rewrite.\n */\nasync function addBitAttributesToLockfile(rootDir: string, attrs: Partial<BitLockfileAttributes>) {\n const { readWantedLockfile, writeWantedLockfile } = await loadLockfileFs();\n const lockfile = (await readWantedLockfile(rootDir, { ignoreIncompatible: true })) as BitLockfile;\n if (lockfile == null) return;\n const merged = { ...lockfile.bit, ...attrs };\n if (isEqual(lockfile.bit, merged)) return;\n lockfile.bit = merged as BitLockfileAttributes;\n await writeWantedLockfile(rootDir, lockfile);\n}\n\nexport interface BitLockfile extends LockfileObject {\n bit?: BitLockfileAttributes;\n}\n\nexport interface BitLockfileFile extends LockfileFile {\n bit?: BitLockfileAttributes;\n}\n\nexport interface BitLockfileAttributes {\n depsRequiringBuild: string[];\n restoredFromModel?: boolean;\n}\n"],"mappings":"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","ignoreList":[]}
package/dist/lynx.spec.js CHANGED
@@ -51,5 +51,50 @@ describe('createReadPackageHooks()', () => {
51
51
  });
52
52
  });
53
53
  });
54
+ describe('sortDepsRequiringBuild()', () => {
55
+ it('should sort the reported list', () => {
56
+ (0, _chai().expect)((0, _lynx().sortDepsRequiringBuild)(['esbuild@0.14.29', 'core-js@3.39.0'])).to.deep.equal(['core-js@3.39.0', 'esbuild@0.14.29']);
57
+ });
58
+ it('should keep an empty list, which reports that nothing requires a build', () => {
59
+ (0, _chai().expect)((0, _lynx().sortDepsRequiringBuild)([])).to.deep.equal([]);
60
+ });
61
+ it('should report no list when the install did not compute one', () => {
62
+ (0, _chai().expect)((0, _lynx().sortDepsRequiringBuild)(undefined)).to.equal(undefined);
63
+ });
64
+ });
65
+ describe('mergeBitLockfileAttrs()', () => {
66
+ it('should preserve the recorded list when the install did not compute one', () => {
67
+ (0, _chai().expect)((0, _lynx().mergeBitLockfileAttrs)({
68
+ depsRequiringBuild: ['core-js@3.39.0']
69
+ }, undefined)).to.deep.equal({
70
+ depsRequiringBuild: ['core-js@3.39.0']
71
+ });
72
+ });
73
+ it('should replace the recorded list when the install computed one', () => {
74
+ (0, _chai().expect)((0, _lynx().mergeBitLockfileAttrs)({
75
+ depsRequiringBuild: ['core-js@3.39.0']
76
+ }, ['esbuild@0.14.29'])).to.deep.equal({
77
+ depsRequiringBuild: ['esbuild@0.14.29']
78
+ });
79
+ });
80
+ it('should record an empty list when the install found nothing requiring a build', () => {
81
+ (0, _chai().expect)((0, _lynx().mergeBitLockfileAttrs)({
82
+ depsRequiringBuild: ['core-js@3.39.0']
83
+ }, [])).to.deep.equal({
84
+ depsRequiringBuild: []
85
+ });
86
+ });
87
+ it('should keep other bit attributes captured before the install', () => {
88
+ (0, _chai().expect)((0, _lynx().mergeBitLockfileAttrs)({
89
+ restoredFromModel: true
90
+ }, ['esbuild@0.14.29'])).to.deep.equal({
91
+ restoredFromModel: true,
92
+ depsRequiringBuild: ['esbuild@0.14.29']
93
+ });
94
+ });
95
+ it('should write nothing when there is neither a computed list nor a recorded block', () => {
96
+ (0, _chai().expect)((0, _lynx().mergeBitLockfileAttrs)(undefined, undefined)).to.equal(undefined);
97
+ });
98
+ });
54
99
 
55
100
  //# sourceMappingURL=lynx.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_chai","data","require","_lynx","describe","it","expect","resolveScriptPolicies","dangerouslyAllowAllScripts","to","deep","equal","allowBuilds","dangerouslyAllowAllBuilds","neverBuiltDependencies","neverBuildPackageNames","manifest","createReadPackageHooks","rootComponents","reduce","current","hook","name","version","peerDependencies","dependencies"],"sources":["lynx.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport type { PackageManifest } from '@pnpm/types';\nimport { createReadPackageHooks, resolveScriptPolicies } from './lynx';\n\ndescribe('resolveScriptPolicies()', () => {\n it('should pass through the pnpm allow-all builds flag', () => {\n expect(resolveScriptPolicies({ dangerouslyAllowAllScripts: true })).to.deep.equal({\n allowBuilds: {},\n dangerouslyAllowAllBuilds: true,\n });\n });\n\n it('should preserve explicit never-built packages instead of passing the allow-all builds flag', () => {\n expect(\n resolveScriptPolicies({\n dangerouslyAllowAllScripts: true,\n neverBuiltDependencies: ['native-pkg'],\n })\n ).to.deep.equal({\n allowBuilds: {\n 'native-pkg': false,\n },\n neverBuildPackageNames: ['native-pkg'],\n });\n });\n});\n\ndescribe('createReadPackageHooks()', () => {\n it('should install workspace peer dependencies when the project has no runtime dependencies', () => {\n const manifest = createReadPackageHooks({ rootComponents: true }).reduce<PackageManifest>(\n (current, hook) => hook(current, '/workspace/components/peer-only') as PackageManifest,\n {\n name: '@scope/peer-only',\n version: '1.0.0',\n peerDependencies: {\n '@apollo/client': '^3.12.0',\n },\n }\n );\n\n expect(manifest.dependencies).to.deep.equal({\n '@apollo/client': '^3.12.0',\n });\n });\n});\n"],"mappings":";;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,MAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEAG,QAAQ,CAAC,yBAAyB,EAAE,MAAM;EACxCC,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,IAAAC,cAAM,EAAC,IAAAC,6BAAqB,EAAC;MAAEC,0BAA0B,EAAE;IAAK,CAAC,CAAC,CAAC,CAACC,EAAE,CAACC,IAAI,CAACC,KAAK,CAAC;MAChFC,WAAW,EAAE,CAAC,CAAC;MACfC,yBAAyB,EAAE;IAC7B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,EAAE,CAAC,4FAA4F,EAAE,MAAM;IACrG,IAAAC,cAAM,EACJ,IAAAC,6BAAqB,EAAC;MACpBC,0BAA0B,EAAE,IAAI;MAChCM,sBAAsB,EAAE,CAAC,YAAY;IACvC,CAAC,CACH,CAAC,CAACL,EAAE,CAACC,IAAI,CAACC,KAAK,CAAC;MACdC,WAAW,EAAE;QACX,YAAY,EAAE;MAChB,CAAC;MACDG,sBAAsB,EAAE,CAAC,YAAY;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFX,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzCC,EAAE,CAAC,yFAAyF,EAAE,MAAM;IAClG,MAAMW,QAAQ,GAAG,IAAAC,8BAAsB,EAAC;MAAEC,cAAc,EAAE;IAAK,CAAC,CAAC,CAACC,MAAM,CACtE,CAACC,OAAO,EAAEC,IAAI,KAAKA,IAAI,CAACD,OAAO,EAAE,iCAAiC,CAAoB,EACtF;MACEE,IAAI,EAAE,kBAAkB;MACxBC,OAAO,EAAE,OAAO;MAChBC,gBAAgB,EAAE;QAChB,gBAAgB,EAAE;MACpB;IACF,CACF,CAAC;IAED,IAAAlB,cAAM,EAACU,QAAQ,CAACS,YAAY,CAAC,CAAChB,EAAE,CAACC,IAAI,CAACC,KAAK,CAAC;MAC1C,gBAAgB,EAAE;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_lynx","describe","it","expect","resolveScriptPolicies","dangerouslyAllowAllScripts","to","deep","equal","allowBuilds","dangerouslyAllowAllBuilds","neverBuiltDependencies","neverBuildPackageNames","manifest","createReadPackageHooks","rootComponents","reduce","current","hook","name","version","peerDependencies","dependencies","sortDepsRequiringBuild","undefined","mergeBitLockfileAttrs","depsRequiringBuild","restoredFromModel"],"sources":["lynx.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport type { PackageManifest } from '@pnpm/types';\nimport {\n createReadPackageHooks,\n mergeBitLockfileAttrs,\n resolveScriptPolicies,\n sortDepsRequiringBuild,\n} from './lynx';\n\ndescribe('resolveScriptPolicies()', () => {\n it('should pass through the pnpm allow-all builds flag', () => {\n expect(resolveScriptPolicies({ dangerouslyAllowAllScripts: true })).to.deep.equal({\n allowBuilds: {},\n dangerouslyAllowAllBuilds: true,\n });\n });\n\n it('should preserve explicit never-built packages instead of passing the allow-all builds flag', () => {\n expect(\n resolveScriptPolicies({\n dangerouslyAllowAllScripts: true,\n neverBuiltDependencies: ['native-pkg'],\n })\n ).to.deep.equal({\n allowBuilds: {\n 'native-pkg': false,\n },\n neverBuildPackageNames: ['native-pkg'],\n });\n });\n});\n\ndescribe('createReadPackageHooks()', () => {\n it('should install workspace peer dependencies when the project has no runtime dependencies', () => {\n const manifest = createReadPackageHooks({ rootComponents: true }).reduce<PackageManifest>(\n (current, hook) => hook(current, '/workspace/components/peer-only') as PackageManifest,\n {\n name: '@scope/peer-only',\n version: '1.0.0',\n peerDependencies: {\n '@apollo/client': '^3.12.0',\n },\n }\n );\n\n expect(manifest.dependencies).to.deep.equal({\n '@apollo/client': '^3.12.0',\n });\n });\n});\n\ndescribe('sortDepsRequiringBuild()', () => {\n it('should sort the reported list', () => {\n expect(sortDepsRequiringBuild(['esbuild@0.14.29', 'core-js@3.39.0'])).to.deep.equal([\n 'core-js@3.39.0',\n 'esbuild@0.14.29',\n ]);\n });\n\n it('should keep an empty list, which reports that nothing requires a build', () => {\n expect(sortDepsRequiringBuild([])).to.deep.equal([]);\n });\n\n it('should report no list when the install did not compute one', () => {\n expect(sortDepsRequiringBuild(undefined)).to.equal(undefined);\n });\n});\n\ndescribe('mergeBitLockfileAttrs()', () => {\n it('should preserve the recorded list when the install did not compute one', () => {\n expect(mergeBitLockfileAttrs({ depsRequiringBuild: ['core-js@3.39.0'] }, undefined)).to.deep.equal({\n depsRequiringBuild: ['core-js@3.39.0'],\n });\n });\n\n it('should replace the recorded list when the install computed one', () => {\n expect(mergeBitLockfileAttrs({ depsRequiringBuild: ['core-js@3.39.0'] }, ['esbuild@0.14.29'])).to.deep.equal({\n depsRequiringBuild: ['esbuild@0.14.29'],\n });\n });\n\n it('should record an empty list when the install found nothing requiring a build', () => {\n expect(mergeBitLockfileAttrs({ depsRequiringBuild: ['core-js@3.39.0'] }, [])).to.deep.equal({\n depsRequiringBuild: [],\n });\n });\n\n it('should keep other bit attributes captured before the install', () => {\n expect(mergeBitLockfileAttrs({ restoredFromModel: true }, ['esbuild@0.14.29'])).to.deep.equal({\n restoredFromModel: true,\n depsRequiringBuild: ['esbuild@0.14.29'],\n });\n });\n\n it('should write nothing when there is neither a computed list nor a recorded block', () => {\n expect(mergeBitLockfileAttrs(undefined, undefined)).to.equal(undefined);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import type { Logger } from '@teambit/logger';
2
+ /**
3
+ * pnpm's engine spawns dependency lifecycle scripts with the PATH of this
4
+ * process, extended only with the relevant `node_modules/.bin` directories. It
5
+ * ships no `node-gyp` of its own, so a native package that shells out to
6
+ * `node-gyp rebuild` — `node-gyp-build`, `node-pre-gyp`, or a plain
7
+ * `"install": "node-gyp rebuild"` — fails with `spawn node-gyp ENOENT` unless
8
+ * something else put `node-gyp` on PATH.
9
+ *
10
+ * npm solves this with a wrapper script directory it prepends to PATH, and Bit
11
+ * used to inherit that wrapper from `@pnpm/npm-lifecycle`. Reproduce it here
12
+ * over the `node-gyp` that Bit depends on.
13
+ *
14
+ * The directory is *appended*, so a `node-gyp` the user installed themselves
15
+ * still takes precedence, and it goes on `process.env` because the N-API
16
+ * install binding accepts no `extraBinPaths`.
17
+ */
18
+ export declare function addNodeGypToPath(logger?: Logger): void;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addNodeGypToPath = addNodeGypToPath;
7
+ function _crypto() {
8
+ const data = require("crypto");
9
+ _crypto = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _fs() {
15
+ const data = require("fs");
16
+ _fs = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _path() {
22
+ const data = require("path");
23
+ _path = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _legacy() {
29
+ const data = require("@teambit/legacy.constants");
30
+ _legacy = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ /**
36
+ * pnpm's engine spawns dependency lifecycle scripts with the PATH of this
37
+ * process, extended only with the relevant `node_modules/.bin` directories. It
38
+ * ships no `node-gyp` of its own, so a native package that shells out to
39
+ * `node-gyp rebuild` — `node-gyp-build`, `node-pre-gyp`, or a plain
40
+ * `"install": "node-gyp rebuild"` — fails with `spawn node-gyp ENOENT` unless
41
+ * something else put `node-gyp` on PATH.
42
+ *
43
+ * npm solves this with a wrapper script directory it prepends to PATH, and Bit
44
+ * used to inherit that wrapper from `@pnpm/npm-lifecycle`. Reproduce it here
45
+ * over the `node-gyp` that Bit depends on.
46
+ *
47
+ * The directory is *appended*, so a `node-gyp` the user installed themselves
48
+ * still takes precedence, and it goes on `process.env` because the N-API
49
+ * install binding accepts no `extraBinPaths`.
50
+ */
51
+ function addNodeGypToPath(logger) {
52
+ let dir;
53
+ try {
54
+ dir = writeShims();
55
+ } catch (err) {
56
+ // Not fatal on its own: only a dependency that actually builds with
57
+ // node-gyp will fail, and it may well find one elsewhere on PATH. Warn
58
+ // rather than throw, but warn loudly enough to explain that failure.
59
+ logger?.consoleWarning(`failed to set up node-gyp, packages that build with it may fail to install: ${err}`);
60
+ logger?.warn('failed to set up the node-gyp wrapper', err);
61
+ return;
62
+ }
63
+ const currentPath = process.env.PATH ?? '';
64
+ if (currentPath.split(_path().delimiter).includes(dir)) return;
65
+ process.env.PATH = currentPath === '' ? dir : `${currentPath}${_path().delimiter}${dir}`;
66
+ }
67
+
68
+ /** Writes the wrappers if they are not already there, and returns their directory. */
69
+ function writeShims() {
70
+ const nodeGypJs = require.resolve('node-gyp/bin/node-gyp.js');
71
+ const node = process.execPath;
72
+ // The wrappers hardcode the two paths, so the directory is keyed by them:
73
+ // another Bit install, or the same one under a different Node, resolves to a
74
+ // directory of its own instead of overwriting this one — which would point
75
+ // concurrent installs at the wrong node-gyp, and would make two Bit versions
76
+ // used side by side rewrite the wrapper on every install. What accumulates is
77
+ // two ~100-byte files per distinct pair, so nothing needs pruning.
78
+ const key = (0, _crypto().createHash)('sha1').update(`${node}\n${nodeGypJs}`).digest('hex').slice(0, 12);
79
+ const dir = (0, _path().join)(_legacy().CACHE_ROOT, 'node-gyp-bin', key);
80
+ // Written on Windows too: the default shell there is cmd.exe, but a
81
+ // `scriptShell` pointing at bash needs the POSIX wrapper.
82
+ writeShim((0, _path().join)(dir, 'node-gyp'), `#!/bin/sh\nexec ${shQuote(node)} ${shQuote(nodeGypJs)} "$@"\n`);
83
+ if (process.platform === 'win32') {
84
+ writeShim((0, _path().join)(dir, 'node-gyp.cmd'), `@echo off\r\n"${node}" "${nodeGypJs}" %*\r\n`);
85
+ }
86
+ return dir;
87
+ }
88
+ function writeShim(target, content) {
89
+ if (readIfExists(target) === content) return;
90
+ (0, _fs().mkdirSync)((0, _path().dirname)(target), {
91
+ recursive: true
92
+ });
93
+ // Write and rename, so the wrapper only ever appears at its final path fully
94
+ // written and executable, whichever of several concurrent Bit processes wins.
95
+ const tmp = `${target}.${process.pid}.tmp`;
96
+ try {
97
+ (0, _fs().writeFileSync)(tmp, content);
98
+ (0, _fs().chmodSync)(tmp, 0o755); // not umask-masked, unlike writeFileSync's `mode`
99
+ (0, _fs().renameSync)(tmp, target);
100
+ } catch (err) {
101
+ (0, _fs().rmSync)(tmp, {
102
+ force: true
103
+ });
104
+ // Losing that race is a success, not a failure — on Windows the other
105
+ // process's rename would have thrown.
106
+ if (readIfExists(target) !== content) throw err;
107
+ }
108
+ }
109
+ function readIfExists(target) {
110
+ try {
111
+ return (0, _fs().readFileSync)(target, 'utf8');
112
+ } catch (err) {
113
+ // Read and handle the absence, rather than testing for it first: another
114
+ // Bit process replacing the wrapper could remove it between the two.
115
+ if (err.code === 'ENOENT') return undefined;
116
+ throw err;
117
+ }
118
+ }
119
+ function shQuote(value) {
120
+ return `'${value.replace(/'/g, `'\\''`)}'`;
121
+ }
122
+
123
+ //# sourceMappingURL=node-gyp-bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_crypto","data","require","_fs","_path","_legacy","addNodeGypToPath","logger","dir","writeShims","err","consoleWarning","warn","currentPath","process","env","PATH","split","delimiter","includes","nodeGypJs","resolve","node","execPath","key","createHash","update","digest","slice","join","CACHE_ROOT","writeShim","shQuote","platform","target","content","readIfExists","mkdirSync","dirname","recursive","tmp","pid","writeFileSync","chmodSync","renameSync","rmSync","force","readFileSync","code","undefined","value","replace"],"sources":["node-gyp-bin.ts"],"sourcesContent":["import { createHash } from 'crypto';\nimport { chmodSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'fs';\nimport { delimiter, dirname, join } from 'path';\nimport { CACHE_ROOT } from '@teambit/legacy.constants';\nimport type { Logger } from '@teambit/logger';\n\n/**\n * pnpm's engine spawns dependency lifecycle scripts with the PATH of this\n * process, extended only with the relevant `node_modules/.bin` directories. It\n * ships no `node-gyp` of its own, so a native package that shells out to\n * `node-gyp rebuild` — `node-gyp-build`, `node-pre-gyp`, or a plain\n * `\"install\": \"node-gyp rebuild\"` — fails with `spawn node-gyp ENOENT` unless\n * something else put `node-gyp` on PATH.\n *\n * npm solves this with a wrapper script directory it prepends to PATH, and Bit\n * used to inherit that wrapper from `@pnpm/npm-lifecycle`. Reproduce it here\n * over the `node-gyp` that Bit depends on.\n *\n * The directory is *appended*, so a `node-gyp` the user installed themselves\n * still takes precedence, and it goes on `process.env` because the N-API\n * install binding accepts no `extraBinPaths`.\n */\nexport function addNodeGypToPath(logger?: Logger): void {\n let dir: string;\n try {\n dir = writeShims();\n } catch (err: any) {\n // Not fatal on its own: only a dependency that actually builds with\n // node-gyp will fail, and it may well find one elsewhere on PATH. Warn\n // rather than throw, but warn loudly enough to explain that failure.\n logger?.consoleWarning(`failed to set up node-gyp, packages that build with it may fail to install: ${err}`);\n logger?.warn('failed to set up the node-gyp wrapper', err);\n return;\n }\n const currentPath = process.env.PATH ?? '';\n if (currentPath.split(delimiter).includes(dir)) return;\n process.env.PATH = currentPath === '' ? dir : `${currentPath}${delimiter}${dir}`;\n}\n\n/** Writes the wrappers if they are not already there, and returns their directory. */\nfunction writeShims(): string {\n const nodeGypJs = require.resolve('node-gyp/bin/node-gyp.js');\n const node = process.execPath;\n // The wrappers hardcode the two paths, so the directory is keyed by them:\n // another Bit install, or the same one under a different Node, resolves to a\n // directory of its own instead of overwriting this one — which would point\n // concurrent installs at the wrong node-gyp, and would make two Bit versions\n // used side by side rewrite the wrapper on every install. What accumulates is\n // two ~100-byte files per distinct pair, so nothing needs pruning.\n const key = createHash('sha1').update(`${node}\\n${nodeGypJs}`).digest('hex').slice(0, 12);\n const dir = join(CACHE_ROOT, 'node-gyp-bin', key);\n // Written on Windows too: the default shell there is cmd.exe, but a\n // `scriptShell` pointing at bash needs the POSIX wrapper.\n writeShim(join(dir, 'node-gyp'), `#!/bin/sh\\nexec ${shQuote(node)} ${shQuote(nodeGypJs)} \"$@\"\\n`);\n if (process.platform === 'win32') {\n writeShim(join(dir, 'node-gyp.cmd'), `@echo off\\r\\n\"${node}\" \"${nodeGypJs}\" %*\\r\\n`);\n }\n return dir;\n}\n\nfunction writeShim(target: string, content: string): void {\n if (readIfExists(target) === content) return;\n mkdirSync(dirname(target), { recursive: true });\n // Write and rename, so the wrapper only ever appears at its final path fully\n // written and executable, whichever of several concurrent Bit processes wins.\n const tmp = `${target}.${process.pid}.tmp`;\n try {\n writeFileSync(tmp, content);\n chmodSync(tmp, 0o755); // not umask-masked, unlike writeFileSync's `mode`\n renameSync(tmp, target);\n } catch (err) {\n rmSync(tmp, { force: true });\n // Losing that race is a success, not a failure — on Windows the other\n // process's rename would have thrown.\n if (readIfExists(target) !== content) throw err;\n }\n}\n\nfunction readIfExists(target: string): string | undefined {\n try {\n return readFileSync(target, 'utf8');\n } catch (err: any) {\n // Read and handle the absence, rather than testing for it first: another\n // Bit process replacing the wrapper could remove it between the two.\n if (err.code === 'ENOENT') return undefined;\n throw err;\n }\n}\n\nfunction shQuote(value: string): string {\n return `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ function _chai() {
4
+ const data = require("chai");
5
+ _chai = function () {
6
+ return data;
7
+ };
8
+ return data;
9
+ }
10
+ function _child_process() {
11
+ const data = require("child_process");
12
+ _child_process = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function _fs() {
18
+ const data = require("fs");
19
+ _fs = function () {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _path() {
25
+ const data = require("path");
26
+ _path = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _nodeGypBin() {
32
+ const data = require("./node-gyp-bin");
33
+ _nodeGypBin = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ describe('addNodeGypToPath()', () => {
39
+ let originalPath;
40
+ let addedDirs;
41
+ before(() => {
42
+ originalPath = process.env.PATH;
43
+ (0, _nodeGypBin().addNodeGypToPath)();
44
+ const before = (originalPath ?? '').split(_path().delimiter);
45
+ addedDirs = (process.env.PATH ?? '').split(_path().delimiter).filter(dir => !before.includes(dir));
46
+ });
47
+ after(() => {
48
+ // Assigning `undefined` would leave the literal string "undefined" for
49
+ // every spec that runs after this one in the same process.
50
+ if (originalPath === undefined) delete process.env.PATH;else process.env.PATH = originalPath;
51
+ // The wrapper lands in the real Bit cache — writing it there is the
52
+ // behavior under test, so it cannot be redirected without stubbing out the
53
+ // thing being asserted. Take it back out; an install that wants it writes
54
+ // it again, and a script already running one keeps the inode it opened.
55
+ addedDirs.forEach(dir => (0, _fs().rmSync)(dir, {
56
+ recursive: true,
57
+ force: true
58
+ }));
59
+ });
60
+ it('appends exactly one directory to PATH', () => {
61
+ (0, _chai().expect)(addedDirs).to.have.lengthOf(1);
62
+ (0, _chai().expect)(process.env.PATH?.startsWith(originalPath ?? '')).to.equal(true);
63
+ });
64
+ it('the appended directory holds a node-gyp that runs', function () {
65
+ if (process.platform === 'win32') this.skip();
66
+ const shim = (0, _path().join)(addedDirs[0], 'node-gyp');
67
+ (0, _chai().expect)((0, _fs().existsSync)(shim)).to.equal(true);
68
+ (0, _chai().expect)((0, _child_process().execFileSync)(shim, ['--version'], {
69
+ encoding: 'utf8'
70
+ }).trim()).to.match(/^v\d+\./);
71
+ });
72
+ it('is idempotent', () => {
73
+ const pathAfterFirstCall = process.env.PATH;
74
+ (0, _nodeGypBin().addNodeGypToPath)();
75
+ (0, _chai().expect)(process.env.PATH).to.equal(pathAfterFirstCall);
76
+ });
77
+ });
78
+
79
+ //# sourceMappingURL=node-gyp-bin.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_chai","data","require","_child_process","_fs","_path","_nodeGypBin","describe","originalPath","addedDirs","before","process","env","PATH","addNodeGypToPath","split","delimiter","filter","dir","includes","after","undefined","forEach","rmSync","recursive","force","it","expect","to","have","lengthOf","startsWith","equal","platform","skip","shim","join","existsSync","execFileSync","encoding","trim","match","pathAfterFirstCall"],"sources":["node-gyp-bin.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { execFileSync } from 'child_process';\nimport { existsSync, rmSync } from 'fs';\nimport { delimiter, join } from 'path';\nimport { addNodeGypToPath } from './node-gyp-bin';\n\ndescribe('addNodeGypToPath()', () => {\n let originalPath: string | undefined;\n let addedDirs: string[];\n\n before(() => {\n originalPath = process.env.PATH;\n addNodeGypToPath();\n const before = (originalPath ?? '').split(delimiter);\n addedDirs = (process.env.PATH ?? '').split(delimiter).filter((dir) => !before.includes(dir));\n });\n\n after(() => {\n // Assigning `undefined` would leave the literal string \"undefined\" for\n // every spec that runs after this one in the same process.\n if (originalPath === undefined) delete process.env.PATH;\n else process.env.PATH = originalPath;\n // The wrapper lands in the real Bit cache — writing it there is the\n // behavior under test, so it cannot be redirected without stubbing out the\n // thing being asserted. Take it back out; an install that wants it writes\n // it again, and a script already running one keeps the inode it opened.\n addedDirs.forEach((dir) => rmSync(dir, { recursive: true, force: true }));\n });\n\n it('appends exactly one directory to PATH', () => {\n expect(addedDirs).to.have.lengthOf(1);\n expect(process.env.PATH?.startsWith(originalPath ?? '')).to.equal(true);\n });\n\n it('the appended directory holds a node-gyp that runs', function () {\n if (process.platform === 'win32') this.skip();\n const shim = join(addedDirs[0], 'node-gyp');\n expect(existsSync(shim)).to.equal(true);\n expect(execFileSync(shim, ['--version'], { encoding: 'utf8' }).trim()).to.match(/^v\\d+\\./);\n });\n\n it('is idempotent', () => {\n const pathAfterFirstCall = process.env.PATH;\n addNodeGypToPath();\n expect(process.env.PATH).to.equal(pathAfterFirstCall);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -376,11 +376,9 @@ class PnpmPackageManager {
376
376
  };
377
377
  // The resolved config carries the engine's defaults for the numeric
378
378
  // network settings, and anything returned here overrides Bit's global
379
- // network config in the dependency resolver's merge so only settings
380
- // the user explicitly configured may pass through. `explicitSettings`
381
- // ships in @pnpm/napi > 12.0.0-beta.2; on older engines nothing is
382
- // forwarded and the engine still honors `.npmrc` itself.
383
- const explicitSettings = new Set(config.explicitSettings ?? []);
379
+ // network config in the dependency resolver's merge, so only settings the
380
+ // user explicitly configured may pass through.
381
+ const explicitSettings = new Set(config.explicitSettings);
384
382
  if (config.maxSockets != null && explicitSettings.has('maxSockets')) {
385
383
  result.maxSockets = config.maxSockets;
386
384
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_harmonyModules","_fs","_interopRequireDefault","_lodash","_lockfile","_depsInspection","_depsInspection2","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","pnpmEsmPromise","loadPnpmEsm","loadEsm","lockfileFs","modulesYaml","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","initLockfileDepsGraphConverter","registries","Registries","Registry","generateResolverAndFetcher","resolve","graphLockfile","convertGraphToLockfile","readWantedLockfile","writeLockfileFile","convertToLockfileFile","convertLockfileObjectToLockfileFile","existingLockfile","rootDir","ignoreIncompatible","mergedLockfile","mergeGraphLockfileIntoExisting","assign","bit","restoredFromModel","lockfilePath","join","debug","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","packageManagerConfigRootDir","isFeatureEnabled","DEPS_GRAPH","rootComponents","rootComponentsForCapsules","cacheDir","error","message","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","hoistPattern","resolveHoistPattern","hoistPatterns","dependenciesChanged","rebuild","storeDir","depsRequiringBuild","autoInstallPeers","dedupePeers","enableModulesDir","engineStrict","excludeLinksFromLockfile","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","BIT_CLI_SERVER_NO_TTY","stdout","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","on","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","configuredUserAgent","userAgent","username","getCurrentUser","result","explicitSettings","Set","maxSockets","has","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSsl","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","get","readModulesManifest","modulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","pruneModules","pnpmPruneModules","findUsages","depName","lockfile","importerIds","importers","id","includes","BIT_ROOTS_DIR","projectPaths","importerInfoMap","importerId","pkgJson","tryReadPackageJson","version","trees","buildDependentsTree","include","dependencies","optionalDependencies","nameFormatter","scope","componentId","renderDependentsTree","depth","Infinity","long","calcDependenciesGraph","originalLockfile","componentRootDir","componentRelativeDir","pkgName","component","components","componentImporterId","compRootDir","split","hasComponentRootImporter","Boolean","filterByImporterIds","clonedImporters","structuredClone","importer","workspacePkgName","componentIdByPkgName","ref","startsWith","depType","partialLockfile","filterLockfileByImporters","failOnMissingDependencies","skipped","graph","convertLockfileToGraph","state","_consumer","exports","hoistPatternsFromBitConfig","hoistPatternFromPnpmConfig","isDefaultHoistPattern","pkgDir","JSON","parse","fs","readFileSync","existing","graphImporter","entries","existingImporter","existingBit","graphBit","mergedDepsRequiringBuild","Array","from","sort","merged","lockfileVersion","packages","mergeEntryRecords","snapshots","pruneUnreachableLockfileEntries","graphEntry","existingEntry","reachablePackages","reachableSnapshots","stack","visit","depPath","current","pop","add","removePeerSuffix","snapshot","dep","pkgId","bitAttrs","suffixStart","indexOf","slice"],"sources":["pnpm.package-manager.ts"],"sourcesContent":["import type { CloudMain } from '@teambit/cloud';\nimport { extendWithComponentsFromDir, BIT_CLOUD_REGISTRY } from '@teambit/dependency-resolver';\nimport type {\n DependencyResolverMain,\n InstallationContext,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n CalcDepsGraphOptions,\n} from '@teambit/dependency-resolver';\nimport { Registries, Registry } from '@teambit/pkg.entities.registry';\nimport { DEPS_GRAPH, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile } from '@pnpm/lockfile.types';\nimport fs from 'fs';\nimport { memoize, omit } from 'lodash';\nimport { filterLockfileByImporters } from '@pnpm/lockfile.filtering';\nimport type { PeerDependencyIssuesByProjects, ResolvedConfig } from '@pnpm/napi';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport type * as LockfileFs from '@pnpm/lockfile.fs';\nimport type { Modules } from '@pnpm/installing.modules-yaml';\nimport type * as ModulesYaml from '@pnpm/installing.modules-yaml';\nimport type { ImporterInfo } from '@pnpm/deps.inspection.tree-builder';\nimport { buildDependentsTree } from '@pnpm/deps.inspection.tree-builder';\nimport { renderDependentsTree } from '@pnpm/deps.inspection.list';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport {\n convertLockfileToGraph,\n convertGraphToLockfile,\n init as initLockfileDepsGraphConverter,\n} from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport type { RebuildFn } from './lynx';\nimport type * as LynxModule from './lynx';\nimport { type DependenciesGraph } from '@teambit/objects';\n\nexport type { RebuildFn };\n\nexport interface InstallResult {\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n}\n\ntype ReadConfigResult = Promise<{ config: ResolvedConfig; warnings: string[] }>;\ntype LockfileFsModule = typeof LockfileFs;\ntype ModulesYamlModule = typeof ModulesYaml;\nlet pnpmEsmPromise: Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }> | undefined;\n\nfunction loadPnpmEsm(): Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }> {\n pnpmEsmPromise ??= (async () => {\n const { loadEsm } = require('./load-pnpm-esm.cjs') as {\n loadEsm: () => Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }>;\n };\n const { lockfileFs, modulesYaml } = await loadEsm();\n return { lockfileFs, modulesYaml };\n })();\n return pnpmEsmPromise;\n}\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly modulesManifestCache: Map<string, Modules> = new Map();\n private username: string;\n\n private _readConfig = async (dir?: string): ReadConfigResult => {\n const { config, warnings } = await readConfig(dir);\n if (config?.fetchRetries && config?.fetchRetries < 5) {\n config.fetchRetries = 5;\n return { config, warnings };\n }\n\n return { config, warnings };\n };\n\n public readConfig: (dir?: string) => ReadConfigResult = memoize(this._readConfig);\n\n constructor(\n private depResolver: DependencyResolverMain,\n private logger: Logger,\n private cloud: CloudMain\n ) {}\n\n async dependenciesGraphToLockfile(\n dependenciesGraph: DependenciesGraph,\n opts: {\n cacheDir: string;\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n registries?: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n }\n ) {\n await initLockfileDepsGraphConverter();\n const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { generateResolverAndFetcher } = require('./lynx') as typeof LynxModule;\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const graphLockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n });\n const {\n lockfileFs: { readWantedLockfile, writeLockfileFile, convertToLockfileFile: convertLockfileObjectToLockfileFile },\n } = await loadPnpmEsm();\n // Merge the graph-derived subset into any existing wanted lockfile rather than\n // overwriting. Only the importers, packages, and snapshots referenced by the\n // imported components' subgraph are re-stated here; every other workspace dep's\n // locked version must be preserved so pnpm doesn't re-resolve it to a newer\n // registry version.\n const existingLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: true });\n const mergedLockfile = existingLockfile\n ? mergeGraphLockfileIntoExisting(convertLockfileObjectToLockfileFile(existingLockfile), graphLockfile)\n : graphLockfile;\n Object.assign(mergedLockfile, {\n bit: {\n ...(mergedLockfile as LockfileFile & { bit?: Record<string, unknown> }).bit,\n restoredFromModel: true,\n },\n });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n await writeLockfileFile(lockfilePath, mergedLockfile);\n this.logger.debug(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n if (process.env.DEPS_GRAPH_LOG) {\n // eslint-disable-next-line no-console\n console.log(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n }\n }\n\n async install(\n { rootDir, manifests }: InstallationContext,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<InstallResult> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n if (\n installOptions.dependenciesGraph &&\n isFeatureEnabled(DEPS_GRAPH) &&\n (installOptions.rootComponents || installOptions.rootComponentsForCapsules)\n ) {\n try {\n await this.dependenciesGraphToLockfile(installOptions.dependenciesGraph, {\n manifests,\n rootDir,\n registries,\n proxyConfig,\n networkConfig,\n cacheDir: config.cacheDir,\n });\n } catch (error) {\n // If the lockfile could not be created for some reason, it will be created later during installation.\n this.logger.error((error as Error).message);\n }\n }\n\n this.logger.debug(`running installation in root dir ${rootDir}`);\n this.logger.debug('components manifests for installation', manifests);\n if (!installOptions.hidePackageManagerOutput) {\n // this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n // this.logger.console('-------------------------PNPM OUTPUT-------------------------');\n this.logger.off();\n }\n if (!installOptions.useNesting && installOptions.rootComponentsForCapsules) {\n manifests = await extendWithComponentsFromDir(rootDir, manifests);\n }\n if (installOptions.nmSelfReferences) {\n Object.values(manifests).forEach((manifest) => {\n if (manifest.name) {\n manifest.devDependencies = {\n [manifest.name]: 'link:.',\n ...manifest.devDependencies,\n };\n }\n });\n }\n this.modulesManifestCache.delete(rootDir);\n const hoistPattern = resolveHoistPattern(installOptions.hoistPatterns, config.hoistPattern);\n const { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = await install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? true,\n dedupePeers: installOptions.dedupePeers ?? true,\n enableModulesDir: installOptions.enableModulesDir,\n engineStrict: installOptions.engineStrict ?? config.engineStrict,\n excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile,\n lockfileOnly: installOptions.lockfileOnly,\n minimumReleaseAge: installOptions.minimumReleaseAge,\n minimumReleaseAgeExclude: installOptions.minimumReleaseAgeExclude,\n neverBuiltDependencies: installOptions.neverBuiltDependencies,\n allowScripts: installOptions.allowScripts,\n dangerouslyAllowAllScripts: installOptions.dangerouslyAllowAllScripts,\n nodeLinker: installOptions.nodeLinker,\n nodeVersion: installOptions.nodeVersion ?? config.nodeVersion,\n includeOptionalDeps: installOptions.includeOptionalDeps,\n ignorePackageManifest: installOptions.ignorePackageManifest,\n dedupeInjectedDeps: installOptions.dedupeInjectedDeps ?? false,\n dryRun: installOptions.dependenciesGraph == null && installOptions.dryRun,\n overrides: installOptions.overrides,\n hoistPattern,\n publicHoistPattern: config.shamefullyHoist\n ? ['*']\n : ['@eslint/plugin-*', '*eslint-plugin*', '@prettier/plugin-*', '*prettier-plugin-*'],\n hoistWorkspacePackages: installOptions.hoistWorkspacePackages ?? false,\n hoistInjectedDependencies: installOptions.hoistInjectedDependencies,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n preferOffline: installOptions.preferOffline,\n rootComponents: installOptions.rootComponents,\n rootComponentsForCapsules: installOptions.rootComponentsForCapsules,\n sideEffectsCacheRead: installOptions.sideEffectsCache ?? true,\n sideEffectsCacheWrite: installOptions.sideEffectsCache ?? true,\n pnpmHomeDir: config.pnpmHomeDir,\n updateAll: installOptions.updateAll,\n hidePackageManagerOutput: installOptions.hidePackageManagerOutput,\n reportOptions: {\n appendOnly: installOptions.optimizeReportForNonTerminal,\n process: process.env.BIT_CLI_SERVER_NO_TTY ? { ...process, stdout: new ServerSendOutStream() } : undefined,\n throttleProgress: installOptions.throttleProgress,\n hideProgressPrefix: installOptions.hideProgressPrefix,\n hideLifecycleOutput: installOptions.hideLifecycleOutput,\n peerDependencyRules: installOptions.peerDependencyRules,\n },\n returnListOfDepsRequiringBuild: installOptions.returnListOfDepsRequiringBuild,\n forcedHarmonyVersion: installOptions.forcedHarmonyVersion,\n },\n this.logger\n );\n if (!installOptions.hidePackageManagerOutput) {\n this.logger.on();\n // Make a divider row to improve output\n // this.logger.console('-------------------------END PNPM OUTPUT-------------------------');\n // this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n return { dependenciesChanged, rebuild, storeDir, depsRequiringBuild };\n }\n\n async getPeerDependencyIssues(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<PeerDependencyIssuesByProjects> {\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const registries = await this.depResolver.getRegistries();\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const lynx = require('./lynx');\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return lynx.getPeerDependencyIssues(manifests, {\n storeDir: config.storeDir,\n cacheDir: config.cacheDir,\n proxyConfig,\n registries,\n rootDir,\n networkConfig,\n overrides: installOptions.overrides,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n });\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(options.packageManagerConfigRootDir);\n return resolveRemoteVersion(packageName, {\n rootDir: options.rootDir,\n cacheDir: config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata: options.fullMetadata,\n });\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n const configuredUserAgent = config.userAgent;\n if (!configuredUserAgent && !this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n const result: PackageManagerNetworkConfig = {\n userAgent: configuredUserAgent ?? `bit user/${this.username}`,\n };\n // The resolved config carries the engine's defaults for the numeric\n // network settings, and anything returned here overrides Bit's global\n // network config in the dependency resolver's merge — so only settings\n // the user explicitly configured may pass through. `explicitSettings`\n // ships in @pnpm/napi > 12.0.0-beta.2; on older engines nothing is\n // forwarded and the engine still honors `.npmrc` itself.\n const explicitSettings = new Set((config as { explicitSettings?: string[] }).explicitSettings ?? []);\n if (config.maxSockets != null && explicitSettings.has('maxSockets')) {\n result.maxSockets = config.maxSockets;\n }\n if (config.networkConcurrency != null && explicitSettings.has('networkConcurrency')) {\n result.networkConcurrency = config.networkConcurrency;\n }\n if (config.fetchRetries != null && explicitSettings.has('fetchRetries')) {\n result.fetchRetries = config.fetchRetries;\n }\n if (config.fetchTimeout != null && explicitSettings.has('fetchTimeout')) {\n result.fetchTimeout = config.fetchTimeout;\n }\n if (config.fetchRetryMaxtimeout != null && explicitSettings.has('fetchRetryMaxtimeout')) {\n result.fetchRetryMaxtimeout = config.fetchRetryMaxtimeout;\n }\n if (config.fetchRetryMintimeout != null && explicitSettings.has('fetchRetryMintimeout')) {\n result.fetchRetryMintimeout = config.fetchRetryMintimeout;\n }\n // Unlike the numeric settings above, strictSsl/ca/cert/key are optional\n // in the engine's projection and populated only when explicitly\n // configured (the engine applies its own defaults at client-build\n // time), so presence is already the explicit gate.\n if (config.strictSsl != null) {\n result.strictSSL = config.strictSsl;\n }\n if (config.ca != null) {\n result.ca = config.ca;\n }\n if (config.cert != null) {\n result.cert = config.cert;\n }\n if (config.key != null) {\n result.key = config.key;\n }\n return result;\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_CLOUD_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n\n async getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]> {\n const modulesState = await this._readModulesManifest(rootDir);\n if (modulesState?.injectedDeps == null) return [];\n return modulesState.injectedDeps[`node_modules/${packageName}`] ?? modulesState.injectedDeps[componentDir] ?? [];\n }\n\n async _readModulesManifest(lockfileDir: string): Promise<Modules | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const {\n modulesYaml: { readModulesManifest },\n } = await loadPnpmEsm();\n const modulesManifest = await readModulesManifest(join(lockfileDir, 'node_modules'));\n if (modulesManifest) {\n this.modulesManifestCache.set(lockfileDir, modulesManifest);\n }\n return modulesManifest ?? undefined;\n }\n\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string> {\n return Object.fromEntries(manifests.map((manifest) => [manifest.name, 'workspace:*']));\n }\n\n async pruneModules(rootDir: string): Promise<void> {\n return pnpmPruneModules(rootDir);\n }\n\n async findUsages(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string> {\n const {\n lockfileFs: { readWantedLockfile },\n } = await loadPnpmEsm();\n const lockfile = await readWantedLockfile(opts.lockfileDir, { ignoreIncompatible: false });\n if (!lockfile) return '';\n const importerIds = Object.keys(lockfile.importers ?? {}).filter((id) => !id.includes(`${BIT_ROOTS_DIR}/`));\n const projectPaths = importerIds.map((id) => join(opts.lockfileDir, id));\n const importerInfoMap = new Map<string, ImporterInfo>();\n for (const importerId of importerIds) {\n const pkgJson = tryReadPackageJson(join(opts.lockfileDir, importerId));\n importerInfoMap.set(importerId, {\n name: pkgJson?.name ?? importerId,\n version: pkgJson?.version ?? '',\n });\n }\n const trees = await buildDependentsTree([depName], projectPaths, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n lockfileDir: opts.lockfileDir,\n registries: {\n default: 'https://registry.npmjs.org',\n },\n importerInfoMap,\n lockfile,\n nameFormatter({ manifest }) {\n if ('componentId' in manifest) {\n const { scope, name } = manifest.componentId as { scope: string; name: string };\n return `${scope}/${name}`;\n }\n return manifest.name;\n },\n });\n return renderDependentsTree(trees, {\n depth: opts.depth ?? Infinity,\n long: false,\n });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n await initLockfileDepsGraphConverter();\n const {\n lockfileFs: { readWantedLockfile, convertToLockfileFile: convertLockfileObjectToLockfileFile },\n } = await loadPnpmEsm();\n const originalLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: false });\n if (!originalLockfile) {\n return;\n }\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n const componentImporterId = (componentRelativeDir || '.') as ProjectId;\n let compRootDir: string | undefined;\n if (componentRootDir && !originalLockfile.importers[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!originalLockfile.importers[componentImporterId]) {\n continue;\n }\n const hasComponentRootImporter =\n compRootDir != null && Boolean(originalLockfile.importers[compRootDir as ProjectId]);\n const filterByImporterIds = [componentImporterId];\n if (hasComponentRootImporter && compRootDir !== componentImporterId) {\n filterByImporterIds.push(compRootDir as ProjectId);\n }\n // Only clone the importers that will be mutated, reuse the rest of the lockfile as-is\n const clonedImporters: Record<string, any> = {};\n for (const importerId of filterByImporterIds) {\n if (originalLockfile.importers[importerId]) {\n clonedImporters[importerId] = structuredClone(originalLockfile.importers[importerId]);\n }\n }\n const lockfile = {\n ...originalLockfile,\n importers: { ...originalLockfile.importers, ...clonedImporters },\n };\n for (const importerId of filterByImporterIds) {\n const importer = lockfile.importers[importerId];\n if (importer == null) continue;\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName === pkgName) continue;\n // In the component's own importer, an injected sibling (a \"file:\"\n // ref) is a real direct dependency of this component — the graph\n // converter rewrites it to the component's semver id. Entries in\n // any other importer (e.g. the capsule/workspace root) merely\n // wire the workspace together and must not leak into this\n // component's graph.\n if (importerId === componentImporterId) {\n const ref =\n importer.dependencies?.[workspacePkgName] ??\n importer.devDependencies?.[workspacePkgName] ??\n importer.optionalDependencies?.[workspacePkgName];\n if (typeof ref === 'string' && ref.startsWith('file:')) continue;\n }\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'specifiers',\n 'dependenciesMeta',\n ]) {\n delete importer[depType]?.[workspacePkgName];\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = convertLockfileObjectToLockfileFile(\n filterLockfileByImporters(lockfile, filterByImporterIds, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n failOnMissingDependencies: false,\n skipped: new Set(),\n })\n );\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: hasComponentRootImporter ? compRootDir : undefined,\n componentRelativeDir: componentImporterId,\n pkgName,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction resolveHoistPattern(hoistPatternsFromBitConfig?: string[], hoistPatternFromPnpmConfig?: string[]): string[] {\n if (hoistPatternsFromBitConfig == null) return hoistPatternFromPnpmConfig ?? ['*'];\n if (\n isDefaultHoistPattern(hoistPatternsFromBitConfig) &&\n hoistPatternFromPnpmConfig &&\n !isDefaultHoistPattern(hoistPatternFromPnpmConfig)\n ) {\n return hoistPatternFromPnpmConfig;\n }\n return hoistPatternsFromBitConfig;\n}\n\nfunction isDefaultHoistPattern(hoistPattern: string[]): boolean {\n return hoistPattern.length === 1 && hoistPattern[0] === '*';\n}\n\nfunction tryReadPackageJson(pkgDir: string) {\n try {\n return JSON.parse(fs.readFileSync(join(pkgDir, 'package.json'), 'utf8'));\n } catch {\n return undefined;\n }\n}\n\n// Merge a graph-derived lockfile into an existing wanted lockfile. The graph lockfile is\n// authoritative for keys it contains (a re-imported component can change the resolution\n// of its own deps), but must not erase packages, snapshots, or importer entries that are\n// only known to the existing lockfile. convertGraphToLockfile emits importer entries for\n// every workspace project, but only populates deps for manifests whose keys appear in the\n// graph's root edge — so per-importer overlay (instead of overwrite) is what keeps\n// unrelated workspace importers intact.\n//\n// Packages and snapshots are deep-merged per key so that pnpm-managed metadata the graph\n// doesn't round-trip (e.g. `optional`, `transitivePeerDependencies`, `dev`) survives on\n// entries the graph also knows about.\nfunction mergeGraphLockfileIntoExisting(existing: LockfileFile, graph: LockfileFile): LockfileFile {\n const importers: NonNullable<LockfileFile['importers']> = { ...existing.importers };\n for (const [importerId, graphImporter] of Object.entries(graph.importers ?? {})) {\n const existingImporter = importers[importerId];\n if (!existingImporter) {\n importers[importerId] = graphImporter;\n continue;\n }\n importers[importerId] = {\n ...existingImporter,\n dependencies: { ...existingImporter.dependencies, ...graphImporter.dependencies },\n devDependencies: { ...existingImporter.devDependencies, ...graphImporter.devDependencies },\n optionalDependencies: {\n ...existingImporter.optionalDependencies,\n ...graphImporter.optionalDependencies,\n },\n };\n }\n const existingBit = (existing as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const graphBit = (graph as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const mergedDepsRequiringBuild = Array.from(\n new Set([...(existingBit?.depsRequiringBuild ?? []), ...(graphBit?.depsRequiringBuild ?? [])])\n ).sort();\n const merged = {\n ...existing,\n // Keep the existing lockfile's schema version. convertGraphToLockfile hardcodes\n // lockfileVersion: '9.0', so preferring graph.lockfileVersion would silently\n // downgrade workspaces whose pnpm already writes a newer schema and trigger a\n // full rewrite on the next install.\n lockfileVersion: existing.lockfileVersion ?? graph.lockfileVersion,\n importers,\n packages: mergeEntryRecords(existing.packages, graph.packages),\n snapshots: mergeEntryRecords(existing.snapshots, graph.snapshots),\n };\n if (existingBit || graphBit) {\n (merged as LockfileFile & { bit?: Record<string, unknown> }).bit = {\n ...existingBit,\n ...graphBit,\n depsRequiringBuild: mergedDepsRequiringBuild,\n };\n }\n pruneUnreachableLockfileEntries(merged);\n return merged;\n}\n\nfunction mergeEntryRecords<T extends object>(\n existing: Record<string, T> | undefined,\n graph: Record<string, T> | undefined\n): Record<string, T> | undefined {\n if (!existing) return graph;\n if (!graph) return existing;\n const merged: Record<string, T> = { ...existing };\n for (const [key, graphEntry] of Object.entries(graph)) {\n const existingEntry = merged[key];\n merged[key] = existingEntry ? ({ ...existingEntry, ...graphEntry } as T) : graphEntry;\n }\n return merged;\n}\n\nfunction pruneUnreachableLockfileEntries(lockfile: LockfileFile): void {\n const reachablePackages = new Set<string>();\n const reachableSnapshots = new Set<string>();\n // An explicit stack: deep dependency chains would overflow the call\n // stack with a recursive walk.\n const stack: string[] = [];\n const visit = (depPath: string) => {\n stack.push(depPath);\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (reachableSnapshots.has(current)) continue;\n reachableSnapshots.add(current);\n reachablePackages.add(removePeerSuffix(current));\n const snapshot = lockfile.snapshots?.[current];\n if (!snapshot) continue;\n for (const depType of ['dependencies', 'optionalDependencies'] as const) {\n for (const [name, ref] of Object.entries(snapshot[depType] ?? {}) as Array<[string, string]>) {\n if (ref.startsWith('link:') || ref.startsWith('file:')) continue;\n stack.push(`${name}@${ref}`);\n }\n }\n }\n };\n for (const importer of Object.values(lockfile.importers ?? {})) {\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies'] as const) {\n for (const [name, dep] of Object.entries(importer[depType] ?? {}) as Array<\n [string, { version?: string } | string]\n >) {\n const version = typeof dep === 'string' ? dep : dep.version;\n if (!version || version.startsWith('link:') || version.startsWith('file:')) continue;\n visit(`${name}@${version}`);\n }\n }\n }\n for (const pkgId of Object.keys(lockfile.packages ?? {})) {\n if (!reachablePackages.has(pkgId)) {\n delete lockfile.packages![pkgId];\n }\n }\n for (const depPath of Object.keys(lockfile.snapshots ?? {})) {\n if (!reachableSnapshots.has(depPath)) {\n delete lockfile.snapshots![depPath];\n }\n }\n const bitAttrs = (lockfile as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n if (bitAttrs?.depsRequiringBuild) {\n bitAttrs.depsRequiringBuild = bitAttrs.depsRequiringBuild.filter((depPath) =>\n reachablePackages.has(removePeerSuffix(depPath))\n );\n }\n}\n\nfunction removePeerSuffix(depPath: string): string {\n const suffixStart = depPath.indexOf('(');\n return suffixStart === -1 ? depPath : depPath.slice(0, suffixStart);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_harmonyModules","_fs","_interopRequireDefault","_lodash","_lockfile","_depsInspection","_depsInspection2","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","pnpmEsmPromise","loadPnpmEsm","loadEsm","lockfileFs","modulesYaml","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","initLockfileDepsGraphConverter","registries","Registries","Registry","generateResolverAndFetcher","resolve","graphLockfile","convertGraphToLockfile","readWantedLockfile","writeLockfileFile","convertToLockfileFile","convertLockfileObjectToLockfileFile","existingLockfile","rootDir","ignoreIncompatible","mergedLockfile","mergeGraphLockfileIntoExisting","assign","bit","restoredFromModel","lockfilePath","join","debug","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","packageManagerConfigRootDir","isFeatureEnabled","DEPS_GRAPH","rootComponents","rootComponentsForCapsules","cacheDir","error","message","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","hoistPattern","resolveHoistPattern","hoistPatterns","dependenciesChanged","rebuild","storeDir","depsRequiringBuild","autoInstallPeers","dedupePeers","enableModulesDir","engineStrict","excludeLinksFromLockfile","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","BIT_CLI_SERVER_NO_TTY","stdout","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","on","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","configuredUserAgent","userAgent","username","getCurrentUser","result","explicitSettings","Set","maxSockets","has","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSsl","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","get","readModulesManifest","modulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","pruneModules","pnpmPruneModules","findUsages","depName","lockfile","importerIds","importers","id","includes","BIT_ROOTS_DIR","projectPaths","importerInfoMap","importerId","pkgJson","tryReadPackageJson","version","trees","buildDependentsTree","include","dependencies","optionalDependencies","nameFormatter","scope","componentId","renderDependentsTree","depth","Infinity","long","calcDependenciesGraph","originalLockfile","componentRootDir","componentRelativeDir","pkgName","component","components","componentImporterId","compRootDir","split","hasComponentRootImporter","Boolean","filterByImporterIds","clonedImporters","structuredClone","importer","workspacePkgName","componentIdByPkgName","ref","startsWith","depType","partialLockfile","filterLockfileByImporters","failOnMissingDependencies","skipped","graph","convertLockfileToGraph","state","_consumer","exports","hoistPatternsFromBitConfig","hoistPatternFromPnpmConfig","isDefaultHoistPattern","pkgDir","JSON","parse","fs","readFileSync","existing","graphImporter","entries","existingImporter","existingBit","graphBit","mergedDepsRequiringBuild","Array","from","sort","merged","lockfileVersion","packages","mergeEntryRecords","snapshots","pruneUnreachableLockfileEntries","graphEntry","existingEntry","reachablePackages","reachableSnapshots","stack","visit","depPath","current","pop","add","removePeerSuffix","snapshot","dep","pkgId","bitAttrs","suffixStart","indexOf","slice"],"sources":["pnpm.package-manager.ts"],"sourcesContent":["import type { CloudMain } from '@teambit/cloud';\nimport { extendWithComponentsFromDir, BIT_CLOUD_REGISTRY } from '@teambit/dependency-resolver';\nimport type {\n DependencyResolverMain,\n InstallationContext,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n CalcDepsGraphOptions,\n} from '@teambit/dependency-resolver';\nimport { Registries, Registry } from '@teambit/pkg.entities.registry';\nimport { DEPS_GRAPH, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile } from '@pnpm/lockfile.types';\nimport fs from 'fs';\nimport { memoize, omit } from 'lodash';\nimport { filterLockfileByImporters } from '@pnpm/lockfile.filtering';\nimport type { PeerDependencyIssuesByProjects, ResolvedConfig } from '@pnpm/napi';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport type * as LockfileFs from '@pnpm/lockfile.fs';\nimport type { Modules } from '@pnpm/installing.modules-yaml';\nimport type * as ModulesYaml from '@pnpm/installing.modules-yaml';\nimport type { ImporterInfo } from '@pnpm/deps.inspection.tree-builder';\nimport { buildDependentsTree } from '@pnpm/deps.inspection.tree-builder';\nimport { renderDependentsTree } from '@pnpm/deps.inspection.list';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport {\n convertLockfileToGraph,\n convertGraphToLockfile,\n init as initLockfileDepsGraphConverter,\n} from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport type { RebuildFn } from './lynx';\nimport type * as LynxModule from './lynx';\nimport { type DependenciesGraph } from '@teambit/objects';\n\nexport type { RebuildFn };\n\nexport interface InstallResult {\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n}\n\ntype ReadConfigResult = Promise<{ config: ResolvedConfig; warnings: string[] }>;\ntype LockfileFsModule = typeof LockfileFs;\ntype ModulesYamlModule = typeof ModulesYaml;\nlet pnpmEsmPromise: Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }> | undefined;\n\nfunction loadPnpmEsm(): Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }> {\n pnpmEsmPromise ??= (async () => {\n const { loadEsm } = require('./load-pnpm-esm.cjs') as {\n loadEsm: () => Promise<{ lockfileFs: LockfileFsModule; modulesYaml: ModulesYamlModule }>;\n };\n const { lockfileFs, modulesYaml } = await loadEsm();\n return { lockfileFs, modulesYaml };\n })();\n return pnpmEsmPromise;\n}\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly modulesManifestCache: Map<string, Modules> = new Map();\n private username: string;\n\n private _readConfig = async (dir?: string): ReadConfigResult => {\n const { config, warnings } = await readConfig(dir);\n if (config?.fetchRetries && config?.fetchRetries < 5) {\n config.fetchRetries = 5;\n return { config, warnings };\n }\n\n return { config, warnings };\n };\n\n public readConfig: (dir?: string) => ReadConfigResult = memoize(this._readConfig);\n\n constructor(\n private depResolver: DependencyResolverMain,\n private logger: Logger,\n private cloud: CloudMain\n ) {}\n\n async dependenciesGraphToLockfile(\n dependenciesGraph: DependenciesGraph,\n opts: {\n cacheDir: string;\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n registries?: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n }\n ) {\n await initLockfileDepsGraphConverter();\n const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { generateResolverAndFetcher } = require('./lynx') as typeof LynxModule;\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const graphLockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n });\n const {\n lockfileFs: { readWantedLockfile, writeLockfileFile, convertToLockfileFile: convertLockfileObjectToLockfileFile },\n } = await loadPnpmEsm();\n // Merge the graph-derived subset into any existing wanted lockfile rather than\n // overwriting. Only the importers, packages, and snapshots referenced by the\n // imported components' subgraph are re-stated here; every other workspace dep's\n // locked version must be preserved so pnpm doesn't re-resolve it to a newer\n // registry version.\n const existingLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: true });\n const mergedLockfile = existingLockfile\n ? mergeGraphLockfileIntoExisting(convertLockfileObjectToLockfileFile(existingLockfile), graphLockfile)\n : graphLockfile;\n Object.assign(mergedLockfile, {\n bit: {\n ...(mergedLockfile as LockfileFile & { bit?: Record<string, unknown> }).bit,\n restoredFromModel: true,\n },\n });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n await writeLockfileFile(lockfilePath, mergedLockfile);\n this.logger.debug(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n if (process.env.DEPS_GRAPH_LOG) {\n // eslint-disable-next-line no-console\n console.log(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n }\n }\n\n async install(\n { rootDir, manifests }: InstallationContext,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<InstallResult> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n if (\n installOptions.dependenciesGraph &&\n isFeatureEnabled(DEPS_GRAPH) &&\n (installOptions.rootComponents || installOptions.rootComponentsForCapsules)\n ) {\n try {\n await this.dependenciesGraphToLockfile(installOptions.dependenciesGraph, {\n manifests,\n rootDir,\n registries,\n proxyConfig,\n networkConfig,\n cacheDir: config.cacheDir,\n });\n } catch (error) {\n // If the lockfile could not be created for some reason, it will be created later during installation.\n this.logger.error((error as Error).message);\n }\n }\n\n this.logger.debug(`running installation in root dir ${rootDir}`);\n this.logger.debug('components manifests for installation', manifests);\n if (!installOptions.hidePackageManagerOutput) {\n // this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n // this.logger.console('-------------------------PNPM OUTPUT-------------------------');\n this.logger.off();\n }\n if (!installOptions.useNesting && installOptions.rootComponentsForCapsules) {\n manifests = await extendWithComponentsFromDir(rootDir, manifests);\n }\n if (installOptions.nmSelfReferences) {\n Object.values(manifests).forEach((manifest) => {\n if (manifest.name) {\n manifest.devDependencies = {\n [manifest.name]: 'link:.',\n ...manifest.devDependencies,\n };\n }\n });\n }\n this.modulesManifestCache.delete(rootDir);\n const hoistPattern = resolveHoistPattern(installOptions.hoistPatterns, config.hoistPattern);\n const { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = await install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? true,\n dedupePeers: installOptions.dedupePeers ?? true,\n enableModulesDir: installOptions.enableModulesDir,\n engineStrict: installOptions.engineStrict ?? config.engineStrict,\n excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile,\n lockfileOnly: installOptions.lockfileOnly,\n minimumReleaseAge: installOptions.minimumReleaseAge,\n minimumReleaseAgeExclude: installOptions.minimumReleaseAgeExclude,\n neverBuiltDependencies: installOptions.neverBuiltDependencies,\n allowScripts: installOptions.allowScripts,\n dangerouslyAllowAllScripts: installOptions.dangerouslyAllowAllScripts,\n nodeLinker: installOptions.nodeLinker,\n nodeVersion: installOptions.nodeVersion ?? config.nodeVersion,\n includeOptionalDeps: installOptions.includeOptionalDeps,\n ignorePackageManifest: installOptions.ignorePackageManifest,\n dedupeInjectedDeps: installOptions.dedupeInjectedDeps ?? false,\n dryRun: installOptions.dependenciesGraph == null && installOptions.dryRun,\n overrides: installOptions.overrides,\n hoistPattern,\n publicHoistPattern: config.shamefullyHoist\n ? ['*']\n : ['@eslint/plugin-*', '*eslint-plugin*', '@prettier/plugin-*', '*prettier-plugin-*'],\n hoistWorkspacePackages: installOptions.hoistWorkspacePackages ?? false,\n hoistInjectedDependencies: installOptions.hoistInjectedDependencies,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n preferOffline: installOptions.preferOffline,\n rootComponents: installOptions.rootComponents,\n rootComponentsForCapsules: installOptions.rootComponentsForCapsules,\n sideEffectsCacheRead: installOptions.sideEffectsCache ?? true,\n sideEffectsCacheWrite: installOptions.sideEffectsCache ?? true,\n pnpmHomeDir: config.pnpmHomeDir,\n updateAll: installOptions.updateAll,\n hidePackageManagerOutput: installOptions.hidePackageManagerOutput,\n reportOptions: {\n appendOnly: installOptions.optimizeReportForNonTerminal,\n process: process.env.BIT_CLI_SERVER_NO_TTY ? { ...process, stdout: new ServerSendOutStream() } : undefined,\n throttleProgress: installOptions.throttleProgress,\n hideProgressPrefix: installOptions.hideProgressPrefix,\n hideLifecycleOutput: installOptions.hideLifecycleOutput,\n peerDependencyRules: installOptions.peerDependencyRules,\n },\n returnListOfDepsRequiringBuild: installOptions.returnListOfDepsRequiringBuild,\n forcedHarmonyVersion: installOptions.forcedHarmonyVersion,\n },\n this.logger\n );\n if (!installOptions.hidePackageManagerOutput) {\n this.logger.on();\n // Make a divider row to improve output\n // this.logger.console('-------------------------END PNPM OUTPUT-------------------------');\n // this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n return { dependenciesChanged, rebuild, storeDir, depsRequiringBuild };\n }\n\n async getPeerDependencyIssues(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<PeerDependencyIssuesByProjects> {\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const registries = await this.depResolver.getRegistries();\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const lynx = require('./lynx');\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return lynx.getPeerDependencyIssues(manifests, {\n storeDir: config.storeDir,\n cacheDir: config.cacheDir,\n proxyConfig,\n registries,\n rootDir,\n networkConfig,\n overrides: installOptions.overrides,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n });\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(options.packageManagerConfigRootDir);\n return resolveRemoteVersion(packageName, {\n rootDir: options.rootDir,\n cacheDir: config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata: options.fullMetadata,\n });\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n const configuredUserAgent = config.userAgent;\n if (!configuredUserAgent && !this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n const result: PackageManagerNetworkConfig = {\n userAgent: configuredUserAgent ?? `bit user/${this.username}`,\n };\n // The resolved config carries the engine's defaults for the numeric\n // network settings, and anything returned here overrides Bit's global\n // network config in the dependency resolver's merge, so only settings the\n // user explicitly configured may pass through.\n const explicitSettings = new Set(config.explicitSettings);\n if (config.maxSockets != null && explicitSettings.has('maxSockets')) {\n result.maxSockets = config.maxSockets;\n }\n if (config.networkConcurrency != null && explicitSettings.has('networkConcurrency')) {\n result.networkConcurrency = config.networkConcurrency;\n }\n if (config.fetchRetries != null && explicitSettings.has('fetchRetries')) {\n result.fetchRetries = config.fetchRetries;\n }\n if (config.fetchTimeout != null && explicitSettings.has('fetchTimeout')) {\n result.fetchTimeout = config.fetchTimeout;\n }\n if (config.fetchRetryMaxtimeout != null && explicitSettings.has('fetchRetryMaxtimeout')) {\n result.fetchRetryMaxtimeout = config.fetchRetryMaxtimeout;\n }\n if (config.fetchRetryMintimeout != null && explicitSettings.has('fetchRetryMintimeout')) {\n result.fetchRetryMintimeout = config.fetchRetryMintimeout;\n }\n // Unlike the numeric settings above, strictSsl/ca/cert/key are optional\n // in the engine's projection and populated only when explicitly\n // configured (the engine applies its own defaults at client-build\n // time), so presence is already the explicit gate.\n if (config.strictSsl != null) {\n result.strictSSL = config.strictSsl;\n }\n if (config.ca != null) {\n result.ca = config.ca;\n }\n if (config.cert != null) {\n result.cert = config.cert;\n }\n if (config.key != null) {\n result.key = config.key;\n }\n return result;\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_CLOUD_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n\n async getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]> {\n const modulesState = await this._readModulesManifest(rootDir);\n if (modulesState?.injectedDeps == null) return [];\n return modulesState.injectedDeps[`node_modules/${packageName}`] ?? modulesState.injectedDeps[componentDir] ?? [];\n }\n\n async _readModulesManifest(lockfileDir: string): Promise<Modules | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const {\n modulesYaml: { readModulesManifest },\n } = await loadPnpmEsm();\n const modulesManifest = await readModulesManifest(join(lockfileDir, 'node_modules'));\n if (modulesManifest) {\n this.modulesManifestCache.set(lockfileDir, modulesManifest);\n }\n return modulesManifest ?? undefined;\n }\n\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string> {\n return Object.fromEntries(manifests.map((manifest) => [manifest.name, 'workspace:*']));\n }\n\n async pruneModules(rootDir: string): Promise<void> {\n return pnpmPruneModules(rootDir);\n }\n\n async findUsages(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string> {\n const {\n lockfileFs: { readWantedLockfile },\n } = await loadPnpmEsm();\n const lockfile = await readWantedLockfile(opts.lockfileDir, { ignoreIncompatible: false });\n if (!lockfile) return '';\n const importerIds = Object.keys(lockfile.importers ?? {}).filter((id) => !id.includes(`${BIT_ROOTS_DIR}/`));\n const projectPaths = importerIds.map((id) => join(opts.lockfileDir, id));\n const importerInfoMap = new Map<string, ImporterInfo>();\n for (const importerId of importerIds) {\n const pkgJson = tryReadPackageJson(join(opts.lockfileDir, importerId));\n importerInfoMap.set(importerId, {\n name: pkgJson?.name ?? importerId,\n version: pkgJson?.version ?? '',\n });\n }\n const trees = await buildDependentsTree([depName], projectPaths, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n lockfileDir: opts.lockfileDir,\n registries: {\n default: 'https://registry.npmjs.org',\n },\n importerInfoMap,\n lockfile,\n nameFormatter({ manifest }) {\n if ('componentId' in manifest) {\n const { scope, name } = manifest.componentId as { scope: string; name: string };\n return `${scope}/${name}`;\n }\n return manifest.name;\n },\n });\n return renderDependentsTree(trees, {\n depth: opts.depth ?? Infinity,\n long: false,\n });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n await initLockfileDepsGraphConverter();\n const {\n lockfileFs: { readWantedLockfile, convertToLockfileFile: convertLockfileObjectToLockfileFile },\n } = await loadPnpmEsm();\n const originalLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: false });\n if (!originalLockfile) {\n return;\n }\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n const componentImporterId = (componentRelativeDir || '.') as ProjectId;\n let compRootDir: string | undefined;\n if (componentRootDir && !originalLockfile.importers[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!originalLockfile.importers[componentImporterId]) {\n continue;\n }\n const hasComponentRootImporter =\n compRootDir != null && Boolean(originalLockfile.importers[compRootDir as ProjectId]);\n const filterByImporterIds = [componentImporterId];\n if (hasComponentRootImporter && compRootDir !== componentImporterId) {\n filterByImporterIds.push(compRootDir as ProjectId);\n }\n // Only clone the importers that will be mutated, reuse the rest of the lockfile as-is\n const clonedImporters: Record<string, any> = {};\n for (const importerId of filterByImporterIds) {\n if (originalLockfile.importers[importerId]) {\n clonedImporters[importerId] = structuredClone(originalLockfile.importers[importerId]);\n }\n }\n const lockfile = {\n ...originalLockfile,\n importers: { ...originalLockfile.importers, ...clonedImporters },\n };\n for (const importerId of filterByImporterIds) {\n const importer = lockfile.importers[importerId];\n if (importer == null) continue;\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName === pkgName) continue;\n // In the component's own importer, an injected sibling (a \"file:\"\n // ref) is a real direct dependency of this component — the graph\n // converter rewrites it to the component's semver id. Entries in\n // any other importer (e.g. the capsule/workspace root) merely\n // wire the workspace together and must not leak into this\n // component's graph.\n if (importerId === componentImporterId) {\n const ref =\n importer.dependencies?.[workspacePkgName] ??\n importer.devDependencies?.[workspacePkgName] ??\n importer.optionalDependencies?.[workspacePkgName];\n if (typeof ref === 'string' && ref.startsWith('file:')) continue;\n }\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'specifiers',\n 'dependenciesMeta',\n ]) {\n delete importer[depType]?.[workspacePkgName];\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = convertLockfileObjectToLockfileFile(\n filterLockfileByImporters(lockfile, filterByImporterIds, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n failOnMissingDependencies: false,\n skipped: new Set(),\n })\n );\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: hasComponentRootImporter ? compRootDir : undefined,\n componentRelativeDir: componentImporterId,\n pkgName,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction resolveHoistPattern(hoistPatternsFromBitConfig?: string[], hoistPatternFromPnpmConfig?: string[]): string[] {\n if (hoistPatternsFromBitConfig == null) return hoistPatternFromPnpmConfig ?? ['*'];\n if (\n isDefaultHoistPattern(hoistPatternsFromBitConfig) &&\n hoistPatternFromPnpmConfig &&\n !isDefaultHoistPattern(hoistPatternFromPnpmConfig)\n ) {\n return hoistPatternFromPnpmConfig;\n }\n return hoistPatternsFromBitConfig;\n}\n\nfunction isDefaultHoistPattern(hoistPattern: string[]): boolean {\n return hoistPattern.length === 1 && hoistPattern[0] === '*';\n}\n\nfunction tryReadPackageJson(pkgDir: string) {\n try {\n return JSON.parse(fs.readFileSync(join(pkgDir, 'package.json'), 'utf8'));\n } catch {\n return undefined;\n }\n}\n\n// Merge a graph-derived lockfile into an existing wanted lockfile. The graph lockfile is\n// authoritative for keys it contains (a re-imported component can change the resolution\n// of its own deps), but must not erase packages, snapshots, or importer entries that are\n// only known to the existing lockfile. convertGraphToLockfile emits importer entries for\n// every workspace project, but only populates deps for manifests whose keys appear in the\n// graph's root edge — so per-importer overlay (instead of overwrite) is what keeps\n// unrelated workspace importers intact.\n//\n// Packages and snapshots are deep-merged per key so that pnpm-managed metadata the graph\n// doesn't round-trip (e.g. `optional`, `transitivePeerDependencies`, `dev`) survives on\n// entries the graph also knows about.\nfunction mergeGraphLockfileIntoExisting(existing: LockfileFile, graph: LockfileFile): LockfileFile {\n const importers: NonNullable<LockfileFile['importers']> = { ...existing.importers };\n for (const [importerId, graphImporter] of Object.entries(graph.importers ?? {})) {\n const existingImporter = importers[importerId];\n if (!existingImporter) {\n importers[importerId] = graphImporter;\n continue;\n }\n importers[importerId] = {\n ...existingImporter,\n dependencies: { ...existingImporter.dependencies, ...graphImporter.dependencies },\n devDependencies: { ...existingImporter.devDependencies, ...graphImporter.devDependencies },\n optionalDependencies: {\n ...existingImporter.optionalDependencies,\n ...graphImporter.optionalDependencies,\n },\n };\n }\n const existingBit = (existing as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const graphBit = (graph as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const mergedDepsRequiringBuild = Array.from(\n new Set([...(existingBit?.depsRequiringBuild ?? []), ...(graphBit?.depsRequiringBuild ?? [])])\n ).sort();\n const merged = {\n ...existing,\n // Keep the existing lockfile's schema version. convertGraphToLockfile hardcodes\n // lockfileVersion: '9.0', so preferring graph.lockfileVersion would silently\n // downgrade workspaces whose pnpm already writes a newer schema and trigger a\n // full rewrite on the next install.\n lockfileVersion: existing.lockfileVersion ?? graph.lockfileVersion,\n importers,\n packages: mergeEntryRecords(existing.packages, graph.packages),\n snapshots: mergeEntryRecords(existing.snapshots, graph.snapshots),\n };\n if (existingBit || graphBit) {\n (merged as LockfileFile & { bit?: Record<string, unknown> }).bit = {\n ...existingBit,\n ...graphBit,\n depsRequiringBuild: mergedDepsRequiringBuild,\n };\n }\n pruneUnreachableLockfileEntries(merged);\n return merged;\n}\n\nfunction mergeEntryRecords<T extends object>(\n existing: Record<string, T> | undefined,\n graph: Record<string, T> | undefined\n): Record<string, T> | undefined {\n if (!existing) return graph;\n if (!graph) return existing;\n const merged: Record<string, T> = { ...existing };\n for (const [key, graphEntry] of Object.entries(graph)) {\n const existingEntry = merged[key];\n merged[key] = existingEntry ? ({ ...existingEntry, ...graphEntry } as T) : graphEntry;\n }\n return merged;\n}\n\nfunction pruneUnreachableLockfileEntries(lockfile: LockfileFile): void {\n const reachablePackages = new Set<string>();\n const reachableSnapshots = new Set<string>();\n // An explicit stack: deep dependency chains would overflow the call\n // stack with a recursive walk.\n const stack: string[] = [];\n const visit = (depPath: string) => {\n stack.push(depPath);\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (reachableSnapshots.has(current)) continue;\n reachableSnapshots.add(current);\n reachablePackages.add(removePeerSuffix(current));\n const snapshot = lockfile.snapshots?.[current];\n if (!snapshot) continue;\n for (const depType of ['dependencies', 'optionalDependencies'] as const) {\n for (const [name, ref] of Object.entries(snapshot[depType] ?? {}) as Array<[string, string]>) {\n if (ref.startsWith('link:') || ref.startsWith('file:')) continue;\n stack.push(`${name}@${ref}`);\n }\n }\n }\n };\n for (const importer of Object.values(lockfile.importers ?? {})) {\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies'] as const) {\n for (const [name, dep] of Object.entries(importer[depType] ?? {}) as Array<\n [string, { version?: string } | string]\n >) {\n const version = typeof dep === 'string' ? dep : dep.version;\n if (!version || version.startsWith('link:') || version.startsWith('file:')) continue;\n visit(`${name}@${version}`);\n }\n }\n }\n for (const pkgId of Object.keys(lockfile.packages ?? {})) {\n if (!reachablePackages.has(pkgId)) {\n delete lockfile.packages![pkgId];\n }\n }\n for (const depPath of Object.keys(lockfile.snapshots ?? {})) {\n if (!reachableSnapshots.has(depPath)) {\n delete lockfile.snapshots![depPath];\n }\n }\n const bitAttrs = (lockfile as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n if (bitAttrs?.depsRequiringBuild) {\n bitAttrs.depsRequiringBuild = bitAttrs.depsRequiringBuild.filter((depPath) =>\n reachablePackages.has(removePeerSuffix(depPath))\n );\n }\n}\n\nfunction removePeerSuffix(depPath: string): string {\n const suffixStart = depPath.indexOf('(');\n return suffixStart === -1 ? depPath : depPath.slice(0, suffixStart);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.1127/dist/pnpm.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.1127/dist/pnpm.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.1129/dist/pnpm.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.1129/dist/pnpm.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@teambit/pnpm",
3
- "version": "1.0.1127",
3
+ "version": "1.0.1129",
4
4
  "homepage": "https://bit.cloud/teambit/dependencies/pnpm",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.dependencies",
8
8
  "name": "pnpm",
9
- "version": "1.0.1127"
9
+ "version": "1.0.1129"
10
10
  },
11
11
  "dependencies": {
12
- "@pnpm/napi": "12.0.0-beta.2",
12
+ "@pnpm/napi": "12.0.0-beta.3",
13
13
  "@pnpm/deps.path": "1100.0.8",
14
14
  "@pnpm/installing.modules-yaml": "1100.0.9",
15
15
  "@pnpm/lockfile.fs": "1100.1.7",
@@ -23,26 +23,27 @@
23
23
  "nerf-dart": "1.0.0",
24
24
  "parse-package-name": "0.1.0",
25
25
  "semver": "7.7.1",
26
+ "node-gyp": "11.5.0",
26
27
  "fs-extra": "10.0.0",
27
28
  "@pnpm/deps.inspection.list": "1100.0.20",
28
29
  "@pnpm/deps.inspection.tree-builder": "1100.0.17",
29
30
  "@pnpm/lockfile.filtering": "1100.1.8",
31
+ "@teambit/dependency-resolver": "1.0.1090",
30
32
  "@teambit/bit-error": "0.0.404",
31
33
  "@teambit/component-package-version": "0.0.459",
34
+ "@teambit/objects": "0.0.597",
32
35
  "@teambit/logger": "0.0.1453",
33
36
  "@teambit/dependencies.pnpm.dep-path": "1.0.1",
34
37
  "@teambit/legacy.constants": "0.0.39",
35
38
  "@teambit/pkg.entities.registry": "0.0.4",
36
39
  "@teambit/harmony": "0.4.12",
37
40
  "@teambit/cli": "0.0.1360",
41
+ "@teambit/cloud": "0.0.1389",
38
42
  "@teambit/harmony.modules.feature-toggle": "0.0.51",
39
43
  "@teambit/legacy.logger": "0.0.54",
44
+ "@teambit/component": "1.0.1090",
40
45
  "@teambit/ui-foundation.ui.use-box.menu": "1.0.16",
41
- "@teambit/dependency-resolver": "1.0.1089",
42
- "@teambit/objects": "0.0.596",
43
- "@teambit/cloud": "0.0.1388",
44
- "@teambit/component": "1.0.1089",
45
- "@teambit/ui": "1.0.1089"
46
+ "@teambit/ui": "1.0.1090"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@types/lodash": "4.14.165",