@teambit/pnpm 1.0.1124 → 1.0.1125

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.
Files changed (38) hide show
  1. package/.npmignore +18 -0
  2. package/dist/get-proxy-config.d.ts +2 -7
  3. package/dist/get-proxy-config.js +4 -7
  4. package/dist/get-proxy-config.js.map +1 -1
  5. package/dist/get-registries.d.ts +2 -2
  6. package/dist/get-registries.js +23 -93
  7. package/dist/get-registries.js.map +1 -1
  8. package/dist/load-pnpm-esm.cjs +19 -0
  9. package/dist/lockfile-deps-graph-converter.d.ts +17 -1
  10. package/dist/lockfile-deps-graph-converter.js +101 -32
  11. package/dist/lockfile-deps-graph-converter.js.map +1 -1
  12. package/dist/lockfile-deps-graph-converter.spec.js +200 -5
  13. package/dist/lockfile-deps-graph-converter.spec.js.map +1 -1
  14. package/dist/lynx.d.ts +53 -5
  15. package/dist/lynx.js +378 -322
  16. package/dist/lynx.js.map +1 -1
  17. package/dist/lynx.spec.d.ts +1 -0
  18. package/dist/lynx.spec.js +55 -0
  19. package/dist/lynx.spec.js.map +1 -0
  20. package/dist/pnpm-error-to-bit-error.d.ts +17 -2
  21. package/dist/pnpm-error-to-bit-error.js +7 -0
  22. package/dist/pnpm-error-to-bit-error.js.map +1 -1
  23. package/dist/pnpm-error-to-bit-error.spec.js +10 -11
  24. package/dist/pnpm-error-to-bit-error.spec.js.map +1 -1
  25. package/dist/pnpm-prune-modules.js +18 -8
  26. package/dist/pnpm-prune-modules.js.map +1 -1
  27. package/dist/pnpm.package-manager.d.ts +3 -4
  28. package/dist/pnpm.package-manager.js +168 -60
  29. package/dist/pnpm.package-manager.js.map +1 -1
  30. package/dist/pnpm.package-manager.spec.d.ts +1 -0
  31. package/dist/pnpm.package-manager.spec.js +48 -0
  32. package/dist/pnpm.package-manager.spec.js.map +1 -0
  33. package/dist/{preview-1785466791445.js → preview-1785493814568.js} +2 -2
  34. package/dist/read-config.d.ts +7 -1
  35. package/dist/read-config.js +22 -14
  36. package/dist/read-config.js.map +1 -1
  37. package/load-pnpm-esm.cjs +19 -0
  38. package/package.json +21 -33
package/dist/lynx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_semver","data","_interopRequireDefault","require","_parsePackageName","_defaultReporter","_logger","_pluginTrustedDeps","_pluginCommandsRebuild","_storeConnectionManager","_sortPackages","_pkgConfig","_bitError","_legacy","_core","_interopRequireWildcard","pnpm","_client","_worker","_workspace","_lockfile","_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","cafsLocker","Map","createStoreController","options","authConfig","getAuthConfig","registries","opts","dir","rootDir","cacheDir","storeDir","rawConfig","verifyStoreIntegrity","httpProxy","proxyConfig","httpsProxy","ca","networkConfig","cert","key","localAddress","noProxy","strictSsl","strictSSL","maxSockets","networkConcurrency","packageImportMethod","preferOffline","resolveSymlinksInInjectedDirs","pnpmHomeDir","userAgent","fetchRetries","fetchRetryFactor","fetchRetryMaxtimeout","fetchRetryMintimeout","fetchTimeout","virtualStoreDirMaxLength","VIRTUAL_STORE_DIR_MAX_LENGTH","toMap","fetchWarnTimeoutMs","fetchMinSpeedKiBps","createOrConnectStoreController","generateResolverAndFetcher","fullMetadata","pnpmConfig","readConfig","assign","config","timeout","retry","factor","maxTimeout","minTimeout","retries","result","createClient","getPeerDependencyIssues","manifestsByPaths","projects","manifest","entries","buildIndex","storeController","autoInstallPeers","excludeLinksFromLockfile","ctrl","overrides","peersSuffixMaxLength","install","logger","externalDependencies","Set","readPackage","createReadPackageHooks","rootComponents","rootComponentsForCapsules","name","add","forcedHarmonyVersion","dependenciesMeta","allProjects","packagesToBuild","groupPkgs","update","updateAll","hoistPattern","size","hoistInjectedDependencies","pkgName","autoInstallPeersFromHighestMatch","confirmModulesPurge","dedupePeerDependents","preferFrozenLockfile","pruneLockfileImporters","lockfileOnly","modulesCacheMaxAge","Infinity","resolutionMode","hooks","strictPeerDependencies","resolvePeersFromWorkspaceRoot","dedupeDirectDeps","include","dependencies","devDependencies","optionalDependencies","includeOptionalDeps","injectWorkspacePackages","resolveScriptPolicies","allowScripts","neverBuiltDependencies","dangerouslyAllowAllScripts","returnListOfDepsRequiringBuild","depth","disableRelinkLocalDirDeps","peerDependencyRules","allowAny","ignoreMissing","reportOptions","dependenciesChanged","depsRequiringBuild","dryRun","stopReporting","hidePackageManagerOutput","initReporter","hideAddedPkgsProgress","restartWorkerPool","mutateModules","installResult","sort","addDepsRequiringBuildToLockfile","stats","added","removed","linkedToRoot","err","warn","pnpmErrorToBitError","finishWorkers","rebuild","rebuildOpts","_opts","appendOnly","hideLifecycleOutput","handler","resolvedNeverBuilt","onlyBuiltDependencies","ignoredBuiltDependencies","packageDescriptor","allowedScript","trustedPkgName","TRUSTED_PACKAGE_NAMES","untrustedPkgName","initDefaultReporter","context","argv","process","reportingOptions","throttleProgress","hideProgressPrefix","approveBuildsInstructionText","streamParser","filterPkgsDiff","diff","startsWith","from","readPackageHook","removeLegacyFromDeps","removeHarmonyFromDeps","readPackageHookForCapsules","pkg","workspaceDir","peerDependencies","includes","BIT_ROOTS_DIR","readWorkspacePackageHook","newDeps","version","pkgs","map","graph","createPkgGraph","chunks","sortPackages","dirs","mutation","resolveRemoteVersion","packageName","resolve","resolveOpts","lockfileDir","preferredVersions","projectDir","registry","parsedPackage","parsePackageName","wantedDep","alias","bareSpecifier","val","BitError","wantedRange","semver","validRange","undefined","isSemver","resolvedVia","message","normalizedBareSpecifier","lockfile","readWantedLockfile","ignoreIncompatible","isEqual","bit","writeWantedLockfile"],"sources":["lynx.ts"],"sourcesContent":["import semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport { initDefaultReporter } from '@pnpm/default-reporter';\nimport { streamParser } from '@pnpm/logger';\nimport type { StoreController, WantedDependency } from '@pnpm/package-store';\nimport { TRUSTED_PACKAGE_NAMES } from '@pnpm/plugin-trusted-deps';\nimport { rebuild } from '@pnpm/plugin-commands-rebuild';\nimport type { CreateStoreControllerOptions } from '@pnpm/store-connection-manager';\nimport { createOrConnectStoreController } from '@pnpm/store-connection-manager';\nimport { sortPackages } from '@pnpm/sort-packages';\nimport type {\n PackageManifest,\n ProjectManifest,\n ReadPackageHook,\n PeerDependencyRules,\n ProjectRootDir,\n DepPath,\n} from '@pnpm/types';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport { getAuthConfig } from '@teambit/pkg.config.auth';\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 { MutatedProject, InstallOptions, PeerDependencyIssuesByProjects, ProjectOptions } from '@pnpm/core';\nimport { mutateModules } from '@pnpm/core';\nimport * as pnpm from '@pnpm/core';\nimport type { ClientOptions } from '@pnpm/client';\nimport { createClient } from '@pnpm/client';\nimport { restartWorkerPool, finishWorkers } from '@pnpm/worker';\nimport { createPkgGraph } from '@pnpm/workspace.pkgs-graph';\nimport { readWantedLockfile, writeWantedLockfile } 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>> = {};\nconst cafsLocker = new Map<string, number>();\n\nasync function createStoreController(\n options: {\n rootDir: string;\n storeDir?: string;\n cacheDir: string;\n registries: Registries;\n proxyConfig: PackageManagerProxyConfig;\n networkConfig: PackageManagerNetworkConfig;\n } & Pick<CreateStoreControllerOptions, 'packageImportMethod' | 'pnpmHomeDir' | 'preferOffline'>\n): Promise<{ ctrl: StoreController; dir: string }> {\n const authConfig = getAuthConfig(options.registries);\n const opts: CreateStoreControllerOptions = {\n dir: options.rootDir,\n cacheDir: options.cacheDir,\n cafsLocker,\n storeDir: options.storeDir,\n rawConfig: authConfig,\n verifyStoreIntegrity: true,\n httpProxy: options.proxyConfig?.httpProxy,\n httpsProxy: options.proxyConfig?.httpsProxy,\n ca: options.networkConfig?.ca,\n cert: options.networkConfig?.cert,\n key: options.networkConfig?.key,\n localAddress: options.networkConfig?.localAddress,\n noProxy: options.proxyConfig?.noProxy,\n strictSsl: options.networkConfig.strictSSL,\n maxSockets: options.networkConfig.maxSockets,\n networkConcurrency: options.networkConfig.networkConcurrency,\n packageImportMethod: options.packageImportMethod,\n preferOffline: options.preferOffline,\n resolveSymlinksInInjectedDirs: true,\n pnpmHomeDir: options.pnpmHomeDir,\n userAgent: options.networkConfig.userAgent,\n fetchRetries: options.networkConfig.fetchRetries,\n fetchRetryFactor: options.networkConfig.fetchRetryFactor,\n fetchRetryMaxtimeout: options.networkConfig.fetchRetryMaxtimeout,\n fetchRetryMintimeout: options.networkConfig.fetchRetryMintimeout,\n fetchTimeout: options.networkConfig.fetchTimeout,\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n registries: options.registries.toMap(),\n fetchWarnTimeoutMs: options.networkConfig.fetchWarnTimeoutMs,\n fetchMinSpeedKiBps: options.networkConfig.fetchMinSpeedKiBps,\n };\n return createOrConnectStoreController(opts);\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}) {\n const pnpmConfig = await readConfig();\n const authConfig = getAuthConfig(registries);\n proxyConfig ??= {};\n networkConfig ??= {};\n const opts: ClientOptions = {\n authConfig: Object.assign({}, pnpmConfig.config.rawConfig, authConfig),\n cacheDir,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n ca: networkConfig?.ca,\n cert: networkConfig?.cert,\n key: networkConfig?.key,\n localAddress: networkConfig?.localAddress,\n noProxy: proxyConfig?.noProxy,\n strictSsl: networkConfig.strictSSL,\n timeout: networkConfig.fetchTimeout,\n rawConfig: pnpmConfig.config.rawConfig,\n userAgent: networkConfig.userAgent,\n retry: {\n factor: networkConfig.fetchRetryFactor,\n maxTimeout: networkConfig.fetchRetryMaxtimeout,\n minTimeout: networkConfig.fetchRetryMintimeout,\n retries: networkConfig.fetchRetries,\n },\n registries: registries.toMap(),\n fullMetadata,\n fetchWarnTimeoutMs: networkConfig?.fetchWarnTimeoutMs,\n fetchMinSpeedKiBps: networkConfig?.fetchMinSpeedKiBps,\n };\n const result = createClient(opts);\n return result;\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 } & Pick<CreateStoreControllerOptions, 'packageImportMethod' | 'pnpmHomeDir'>\n): Promise<PeerDependencyIssuesByProjects> {\n const projects: ProjectOptions[] = [];\n for (const [rootDir, manifest] of Object.entries(manifestsByPaths)) {\n projects.push({\n buildIndex: 0, // this is not used while searching for peer issues anyway\n manifest,\n rootDir: rootDir as ProjectRootDir,\n });\n }\n const storeController = await createStoreController({\n ...opts,\n rootDir: opts.rootDir,\n });\n return pnpm.getPeerDependencyIssues(projects, {\n autoInstallPeers: false,\n excludeLinksFromLockfile: true,\n storeController: storeController.ctrl,\n storeDir: storeController.dir,\n overrides: opts.overrides,\n peersSuffixMaxLength: 1000,\n registries: opts.registries.toMap(),\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\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 } & Pick<\n InstallOptions,\n | 'autoInstallPeers'\n | 'publicHoistPattern'\n | 'hoistPattern'\n | 'lockfileOnly'\n | 'nodeVersion'\n | 'enableModulesDir'\n | 'engineStrict'\n | 'excludeLinksFromLockfile'\n | 'minimumReleaseAge'\n | 'minimumReleaseAgeExclude'\n | 'neverBuiltDependencies'\n | 'ignorePackageManifest'\n | 'hoistWorkspacePackages'\n | 'returnListOfDepsRequiringBuild'\n > &\n Pick<CreateStoreControllerOptions, 'packageImportMethod' | 'pnpmHomeDir' | 'preferOffline'>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n logger?: Logger\n): Promise<{ dependenciesChanged: boolean; rebuild: RebuildFn; storeDir: string; depsRequiringBuild?: DepPath[] }> {\n const externalDependencies = new Set<string>();\n const readPackage = 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 { allProjects, packagesToBuild } = groupPkgs(manifestsByPaths, {\n update: options?.updateAll,\n });\n const authConfig = getAuthConfig(registries);\n const storeController = await createStoreController({\n rootDir,\n storeDir,\n cacheDir,\n registries,\n preferOffline: options?.preferOffline,\n proxyConfig,\n networkConfig,\n packageImportMethod: options?.packageImportMethod,\n pnpmHomeDir: options?.pnpmHomeDir,\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 opts: InstallOptions = {\n allProjects,\n autoInstallPeers: options.autoInstallPeers,\n autoInstallPeersFromHighestMatch: options.autoInstallPeers,\n confirmModulesPurge: false,\n storeDir: storeController.dir,\n dedupePeerDependents: true,\n dir: rootDir,\n storeController: storeController.ctrl,\n preferFrozenLockfile: true,\n pruneLockfileImporters: true,\n lockfileOnly: options.lockfileOnly ?? false,\n modulesCacheMaxAge: Infinity, // pnpm should never prune the virtual store. Bit does it on its own.\n registries: registries.toMap(),\n resolutionMode: 'highest',\n rawConfig: authConfig,\n hooks: { readPackage },\n externalDependencies,\n strictPeerDependencies: false,\n peersSuffixMaxLength: 1000,\n resolveSymlinksInInjectedDirs: true,\n resolvePeersFromWorkspaceRoot: true,\n dedupeDirectDeps: true,\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: options?.includeOptionalDeps !== false,\n },\n userAgent: networkConfig.userAgent,\n ...options,\n injectWorkspacePackages: true,\n ...resolveScriptPolicies({\n allowScripts: options.allowScripts,\n neverBuiltDependencies: options.neverBuiltDependencies,\n dangerouslyAllowAllScripts: options.dangerouslyAllowAllScripts,\n }),\n returnListOfDepsRequiringBuild: true,\n excludeLinksFromLockfile: options.excludeLinksFromLockfile ?? true,\n depth: options.updateAll ? Infinity : 0,\n disableRelinkLocalDirDeps: true,\n hoistPattern,\n virtualStoreDirMaxLength: VIRTUAL_STORE_DIR_MAX_LENGTH,\n overrides,\n peerDependencyRules: {\n allowAny: ['*'],\n ignoreMissing: ['*'],\n ...options.reportOptions?.peerDependencyRules,\n },\n };\n\n let dependenciesChanged = false;\n let depsRequiringBuild: DepPath[] | undefined;\n if (!options.dryRun) {\n let stopReporting: Function | undefined;\n if (!options.hidePackageManagerOutput) {\n stopReporting = initReporter({\n ...options.reportOptions,\n hideAddedPkgsProgress: options.lockfileOnly,\n });\n }\n try {\n await installsRunning[rootDir];\n await restartWorkerPool();\n installsRunning[rootDir] = mutateModules(packagesToBuild, opts);\n const installResult = await installsRunning[rootDir];\n depsRequiringBuild = installResult.depsRequiringBuild?.sort();\n if (depsRequiringBuild != null) {\n await addDepsRequiringBuildToLockfile(rootDir, depsRequiringBuild);\n }\n dependenciesChanged =\n installResult.stats.added + installResult.stats.removed + installResult.stats.linkedToRoot > 0;\n delete installsRunning[rootDir];\n } catch (err: any) {\n if (logger) {\n logger.warn('got an error from pnpm mutateModules function', err);\n }\n throw pnpmErrorToBitError(err);\n } finally {\n stopReporting?.();\n await finishWorkers();\n }\n }\n return {\n dependenciesChanged,\n rebuild: async (rebuildOpts) => {\n let stopReporting: Function | undefined;\n const _opts = {\n ...opts,\n ...rebuildOpts,\n cacheDir,\n } as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n if (!_opts.hidePackageManagerOutput) {\n stopReporting = initReporter({\n appendOnly: true,\n hideLifecycleOutput: true,\n });\n }\n try {\n await rebuild.handler(_opts, []);\n } finally {\n stopReporting?.();\n }\n },\n storeDir: storeController.dir,\n depsRequiringBuild,\n };\n}\n\ntype ScriptPolicyConfig = {\n allowScripts?: Record<string, boolean | 'warn'>;\n neverBuiltDependencies?: string[];\n dangerouslyAllowAllScripts?: boolean;\n};\n\nfunction resolveScriptPolicies({\n allowScripts,\n neverBuiltDependencies,\n dangerouslyAllowAllScripts,\n}: ScriptPolicyConfig) {\n let resolvedNeverBuilt = neverBuiltDependencies;\n let onlyBuiltDependencies: string[] | undefined;\n let ignoredBuiltDependencies: string[] | undefined;\n if (dangerouslyAllowAllScripts) {\n if (resolvedNeverBuilt == null) {\n // If neverBuiltDependencies is not explicitly set, use a default list\n // we tell pnpm to allow all scripts to be executed, except the packages listed below.\n resolvedNeverBuilt = ['core-js'];\n }\n } else {\n onlyBuiltDependencies = [];\n ignoredBuiltDependencies = [];\n for (const [packageDescriptor, allowedScript] of Object.entries(allowScripts ?? {})) {\n switch (allowedScript) {\n case true:\n onlyBuiltDependencies.push(packageDescriptor);\n break;\n case false:\n ignoredBuiltDependencies.push(packageDescriptor);\n break;\n default:\n // Ignore any non-boolean values. String values are placeholders that the user\n // should replace with booleans.\n // pnpm will print a warning about these during installation.\n break;\n }\n }\n for (const trustedPkgName of TRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[trustedPkgName] == null) {\n onlyBuiltDependencies.push(trustedPkgName);\n }\n }\n // Add untrusted packages to ignoredBuiltDependencies unless the user explicitly allows them\n for (const untrustedPkgName of UNTRUSTED_PACKAGE_NAMES) {\n if (allowScripts?.[untrustedPkgName] !== true) {\n ignoredBuiltDependencies.push(untrustedPkgName);\n }\n }\n }\n\n return { neverBuiltDependencies: resolvedNeverBuilt, onlyBuiltDependencies, ignoredBuiltDependencies };\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 if (!pkg.dependencies) {\n return pkg;\n }\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\nfunction groupPkgs(manifestsByPaths: Record<string, ProjectManifest>, opts: { update?: boolean }) {\n const pkgs = Object.entries(manifestsByPaths).map(([rootDir, manifest]) => ({\n rootDir: rootDir as ProjectRootDir,\n manifest,\n }));\n const { graph } = createPkgGraph(pkgs);\n const chunks = sortPackages(graph as any);\n\n // This will create local link by pnpm to a component exists in the ws.\n // it will later deleted by the link process\n // we keep it here to better support case like this:\n // compA@1.0.0 uses compB@1.0.0\n // I have compB@2.0.0 in my workspace\n // now I install compA@1.0.0\n // compA is hoisted to the root and install B@1.0.0 hoisted to the root as well\n // now we will make link to B@2.0.0 and A will break\n // with this we will have a link to the local B by pnpm so it will install B@1.0.0 inside A\n // then when overriding the link, A will still works\n // This is the rational behind not deleting this completely, but need further check that it really works\n const packagesToBuild: MutatedProject[] = []; // @pnpm/core will use this to install the packages\n const allProjects: ProjectOptions[] = [];\n\n chunks.forEach((dirs, buildIndex) => {\n for (const rootDir of dirs) {\n const manifest = manifestsByPaths[rootDir];\n allProjects.push({\n buildIndex,\n manifest,\n rootDir,\n });\n packagesToBuild.push({\n rootDir,\n mutation: 'install',\n update: opts.update,\n });\n }\n });\n return { packagesToBuild, allProjects };\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: WantedDependency = {\n alias: parsedPackage.name,\n bareSpecifier: parsedPackage.version,\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 wantedRange =\n parsedPackage.version && semver.validRange(parsedPackage.version) ? parsedPackage.version : undefined;\n\n return {\n packageName: val.manifest.name,\n version: val.manifest.version,\n wantedRange,\n isSemver: true,\n resolvedVia: val.resolvedVia,\n manifest: val.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: 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 return {\n packageName: val.manifest.name,\n version: val.normalizedBareSpecifier,\n isSemver: false,\n resolvedVia: val.resolvedVia,\n manifest: val.manifest,\n };\n }\n}\n\nasync function addDepsRequiringBuildToLockfile(rootDir: string, depsRequiringBuild: string[]) {\n const lockfile = (await readWantedLockfile(rootDir, { ignoreIncompatible: true })) as BitLockfile;\n if (lockfile == null) return;\n if (isEqual(lockfile.bit?.depsRequiringBuild, depsRequiringBuild)) return;\n lockfile.bit = {\n ...lockfile.bit,\n depsRequiringBuild,\n };\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}\n"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,55 @@
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 _lynx() {
11
+ const data = require("./lynx");
12
+ _lynx = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ describe('resolveScriptPolicies()', () => {
18
+ it('should pass through the pnpm allow-all builds flag', () => {
19
+ (0, _chai().expect)((0, _lynx().resolveScriptPolicies)({
20
+ dangerouslyAllowAllScripts: true
21
+ })).to.deep.equal({
22
+ allowBuilds: {},
23
+ dangerouslyAllowAllBuilds: true
24
+ });
25
+ });
26
+ it('should preserve explicit never-built packages instead of passing the allow-all builds flag', () => {
27
+ (0, _chai().expect)((0, _lynx().resolveScriptPolicies)({
28
+ dangerouslyAllowAllScripts: true,
29
+ neverBuiltDependencies: ['native-pkg']
30
+ })).to.deep.equal({
31
+ allowBuilds: {
32
+ 'native-pkg': false
33
+ },
34
+ neverBuildPackageNames: ['native-pkg']
35
+ });
36
+ });
37
+ });
38
+ describe('createReadPackageHooks()', () => {
39
+ it('should install workspace peer dependencies when the project has no runtime dependencies', () => {
40
+ const manifest = (0, _lynx().createReadPackageHooks)({
41
+ rootComponents: true
42
+ }).reduce((current, hook) => hook(current, '/workspace/components/peer-only'), {
43
+ name: '@scope/peer-only',
44
+ version: '1.0.0',
45
+ peerDependencies: {
46
+ '@apollo/client': '^3.12.0'
47
+ }
48
+ });
49
+ (0, _chai().expect)(manifest.dependencies).to.deep.equal({
50
+ '@apollo/client': '^3.12.0'
51
+ });
52
+ });
53
+ });
54
+
55
+ //# sourceMappingURL=lynx.spec.js.map
@@ -0,0 +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,8 +1,23 @@
1
- import type { PnpmError } from '@pnpm/error';
2
1
  import { BitError } from '@teambit/bit-error';
2
+ /**
3
+ * Structural shape of a pnpm error. Errors thrown by `@pnpm/napi` are plain
4
+ * `Error` objects that may carry these extra fields — they are NOT instances of
5
+ * `@pnpm/error`'s `PnpmError` class, so this converter reads everything
6
+ * structurally instead of relying on `instanceof`.
7
+ */
8
+ export interface PnpmErrorLike extends Error {
9
+ code?: string;
10
+ hint?: string;
11
+ prefix?: string;
12
+ pkgsStack?: Array<{
13
+ id: string;
14
+ name: string;
15
+ version: string;
16
+ }>;
17
+ }
3
18
  export declare class BitErrorWithRichMessage extends BitError {
4
19
  private richMessage;
5
20
  constructor(message: string, richMessage: string);
6
21
  report(): string;
7
22
  }
8
- export declare function pnpmErrorToBitError(err: PnpmError): BitError;
23
+ export declare function pnpmErrorToBitError(err: PnpmErrorLike): BitError;
@@ -15,6 +15,13 @@ function _bitError() {
15
15
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
17
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ /**
19
+ * Structural shape of a pnpm error. Errors thrown by `@pnpm/napi` are plain
20
+ * `Error` objects that may carry these extra fields — they are NOT instances of
21
+ * `@pnpm/error`'s `PnpmError` class, so this converter reads everything
22
+ * structurally instead of relying on `instanceof`.
23
+ */
24
+
18
25
  class BitErrorWithRichMessage extends _bitError().BitError {
19
26
  constructor(message, richMessage) {
20
27
  super(message);
@@ -1 +1 @@
1
- {"version":3,"names":["_bitError","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BitErrorWithRichMessage","BitError","constructor","message","richMessage","report","exports","pnpmErrorToBitError","err","msg","renderErrorMessage","newErr","cause","output","hint","pkgsStack","length","formatPkgsStack","prefix","name","version","slice","map","join"],"sources":["pnpm-error-to-bit-error.ts"],"sourcesContent":["import type { PnpmError } from '@pnpm/error';\nimport { BitError } from '@teambit/bit-error';\n\nexport class BitErrorWithRichMessage extends BitError {\n private richMessage: string;\n constructor(message: string, richMessage: string) {\n super(message);\n this.richMessage = richMessage;\n }\n public report() {\n return this.richMessage;\n }\n}\n\nexport function pnpmErrorToBitError(err: PnpmError): BitError {\n const msg = renderErrorMessage(err);\n const newErr = new BitErrorWithRichMessage(msg, msg);\n newErr.cause = err;\n return newErr;\n}\n\nfunction renderErrorMessage(err: PnpmError): string {\n let output = err.message;\n if (err.hint) {\n output += `\\n\\n${err.hint}`;\n }\n if (err.pkgsStack != null) {\n if (err.pkgsStack.length > 0) {\n output += `\\n\\n${formatPkgsStack(err.pkgsStack)}`;\n } else if (err.prefix) {\n output += `\\n\\nThis error happened while installing a direct dependency of ${err.prefix as string}`;\n }\n }\n return output;\n}\n\nfunction formatPkgsStack(pkgsStack: Array<{ id: string; name: string; version: string }>) {\n return `This error happened while installing the dependencies of \\\n${pkgsStack[0].name}@${pkgsStack[0].version}\\\n${pkgsStack\n .slice(1)\n .map(({ name, version }) => `\\n at ${name}@${version}`)\n .join('')}`;\n}\n"],"mappings":";;;;;;;AACA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8C,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEvC,MAAMgB,uBAAuB,SAASC,oBAAQ,CAAC;EAEpDC,WAAWA,CAACC,OAAe,EAAEC,WAAmB,EAAE;IAChD,KAAK,CAACD,OAAO,CAAC;IAACtB,eAAA;IACf,IAAI,CAACuB,WAAW,GAAGA,WAAW;EAChC;EACOC,MAAMA,CAAA,EAAG;IACd,OAAO,IAAI,CAACD,WAAW;EACzB;AACF;AAACE,OAAA,CAAAN,uBAAA,GAAAA,uBAAA;AAEM,SAASO,mBAAmBA,CAACC,GAAc,EAAY;EAC5D,MAAMC,GAAG,GAAGC,kBAAkB,CAACF,GAAG,CAAC;EACnC,MAAMG,MAAM,GAAG,IAAIX,uBAAuB,CAACS,GAAG,EAAEA,GAAG,CAAC;EACpDE,MAAM,CAACC,KAAK,GAAGJ,GAAG;EAClB,OAAOG,MAAM;AACf;AAEA,SAASD,kBAAkBA,CAACF,GAAc,EAAU;EAClD,IAAIK,MAAM,GAAGL,GAAG,CAACL,OAAO;EACxB,IAAIK,GAAG,CAACM,IAAI,EAAE;IACZD,MAAM,IAAI,OAAOL,GAAG,CAACM,IAAI,EAAE;EAC7B;EACA,IAAIN,GAAG,CAACO,SAAS,IAAI,IAAI,EAAE;IACzB,IAAIP,GAAG,CAACO,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;MAC5BH,MAAM,IAAI,OAAOI,eAAe,CAACT,GAAG,CAACO,SAAS,CAAC,EAAE;IACnD,CAAC,MAAM,IAAIP,GAAG,CAACU,MAAM,EAAE;MACrBL,MAAM,IAAI,mEAAmEL,GAAG,CAACU,MAAM,EAAY;IACrG;EACF;EACA,OAAOL,MAAM;AACf;AAEA,SAASI,eAAeA,CAACF,SAA+D,EAAE;EACxF,OAAO;AACT,EAAEA,SAAS,CAAC,CAAC,CAAC,CAACI,IAAI,IAAIJ,SAAS,CAAC,CAAC,CAAC,CAACK,OAAO;AAC3C,EAAEL,SAAS,CACRM,KAAK,CAAC,CAAC,CAAC,CACRC,GAAG,CAAC,CAAC;IAAEH,IAAI;IAAEC;EAAQ,CAAC,KAAK,SAASD,IAAI,IAAIC,OAAO,EAAE,CAAC,CACtDG,IAAI,CAAC,EAAE,CAAC,EAAE;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_bitError","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BitErrorWithRichMessage","BitError","constructor","message","richMessage","report","exports","pnpmErrorToBitError","err","msg","renderErrorMessage","newErr","cause","output","hint","pkgsStack","length","formatPkgsStack","prefix","name","version","slice","map","join"],"sources":["pnpm-error-to-bit-error.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\n/**\n * Structural shape of a pnpm error. Errors thrown by `@pnpm/napi` are plain\n * `Error` objects that may carry these extra fields — they are NOT instances of\n * `@pnpm/error`'s `PnpmError` class, so this converter reads everything\n * structurally instead of relying on `instanceof`.\n */\nexport interface PnpmErrorLike extends Error {\n code?: string;\n hint?: string;\n prefix?: string;\n pkgsStack?: Array<{ id: string; name: string; version: string }>;\n}\n\nexport class BitErrorWithRichMessage extends BitError {\n private richMessage: string;\n constructor(message: string, richMessage: string) {\n super(message);\n this.richMessage = richMessage;\n }\n public report() {\n return this.richMessage;\n }\n}\n\nexport function pnpmErrorToBitError(err: PnpmErrorLike): BitError {\n const msg = renderErrorMessage(err);\n const newErr = new BitErrorWithRichMessage(msg, msg);\n newErr.cause = err;\n return newErr;\n}\n\nfunction renderErrorMessage(err: PnpmErrorLike): string {\n let output = err.message;\n if (err.hint) {\n output += `\\n\\n${err.hint}`;\n }\n if (err.pkgsStack != null) {\n if (err.pkgsStack.length > 0) {\n output += `\\n\\n${formatPkgsStack(err.pkgsStack)}`;\n } else if (err.prefix) {\n output += `\\n\\nThis error happened while installing a direct dependency of ${err.prefix as string}`;\n }\n }\n return output;\n}\n\nfunction formatPkgsStack(pkgsStack: Array<{ id: string; name: string; version: string }>) {\n return `This error happened while installing the dependencies of \\\n${pkgsStack[0].name}@${pkgsStack[0].version}\\\n${pkgsStack\n .slice(1)\n .map(({ name, version }) => `\\n at ${name}@${version}`)\n .join('')}`;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8C,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAQO,MAAMgB,uBAAuB,SAASC,oBAAQ,CAAC;EAEpDC,WAAWA,CAACC,OAAe,EAAEC,WAAmB,EAAE;IAChD,KAAK,CAACD,OAAO,CAAC;IAACtB,eAAA;IACf,IAAI,CAACuB,WAAW,GAAGA,WAAW;EAChC;EACOC,MAAMA,CAAA,EAAG;IACd,OAAO,IAAI,CAACD,WAAW;EACzB;AACF;AAACE,OAAA,CAAAN,uBAAA,GAAAA,uBAAA;AAEM,SAASO,mBAAmBA,CAACC,GAAkB,EAAY;EAChE,MAAMC,GAAG,GAAGC,kBAAkB,CAACF,GAAG,CAAC;EACnC,MAAMG,MAAM,GAAG,IAAIX,uBAAuB,CAACS,GAAG,EAAEA,GAAG,CAAC;EACpDE,MAAM,CAACC,KAAK,GAAGJ,GAAG;EAClB,OAAOG,MAAM;AACf;AAEA,SAASD,kBAAkBA,CAACF,GAAkB,EAAU;EACtD,IAAIK,MAAM,GAAGL,GAAG,CAACL,OAAO;EACxB,IAAIK,GAAG,CAACM,IAAI,EAAE;IACZD,MAAM,IAAI,OAAOL,GAAG,CAACM,IAAI,EAAE;EAC7B;EACA,IAAIN,GAAG,CAACO,SAAS,IAAI,IAAI,EAAE;IACzB,IAAIP,GAAG,CAACO,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;MAC5BH,MAAM,IAAI,OAAOI,eAAe,CAACT,GAAG,CAACO,SAAS,CAAC,EAAE;IACnD,CAAC,MAAM,IAAIP,GAAG,CAACU,MAAM,EAAE;MACrBL,MAAM,IAAI,mEAAmEL,GAAG,CAACU,MAAM,EAAY;IACrG;EACF;EACA,OAAOL,MAAM;AACf;AAEA,SAASI,eAAeA,CAACF,SAA+D,EAAE;EACxF,OAAO;AACT,EAAEA,SAAS,CAAC,CAAC,CAAC,CAACI,IAAI,IAAIJ,SAAS,CAAC,CAAC,CAAC,CAACK,OAAO;AAC3C,EAAEL,SAAS,CACRM,KAAK,CAAC,CAAC,CAAC,CACRC,GAAG,CAAC,CAAC;IAAEH,IAAI;IAAEC;EAAQ,CAAC,KAAK,SAASD,IAAI,IAAIC,OAAO,EAAE,CAAC,CACtDG,IAAI,CAAC,EAAE,CAAC,EAAE;AACb","ignoreList":[]}
@@ -1,12 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function _error() {
4
- const data = require("@pnpm/error");
5
- _error = function () {
6
- return data;
7
- };
8
- return data;
9
- }
10
3
  function _chai() {
11
4
  const data = require("chai");
12
5
  _chai = function () {
@@ -21,12 +14,18 @@ function _pnpmErrorToBitError() {
21
14
  };
22
15
  return data;
23
16
  }
17
+ // Build a PnpmError-like object without importing `@pnpm/error`, which is ESM
18
+ // and can trip up Babel/mocha when pulled into the test context.
19
+ function makePnpmError(code, message, hint) {
20
+ const err = new Error(message);
21
+ err.code = code.startsWith('ERR_PNPM_') ? code : `ERR_PNPM_${code}`;
22
+ if (hint) err.hint = hint;
23
+ return err;
24
+ }
24
25
  it('the hint from the fetch error is used', () => {
25
- const bitError = (0, _pnpmErrorToBitError().pnpmErrorToBitError)(new (_error().PnpmError)('FETCH_404', 'GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404', {
26
- hint: `dsffsdf is not in the npm registry, or you have no permission to fetch it.
26
+ const bitError = (0, _pnpmErrorToBitError().pnpmErrorToBitError)(makePnpmError('FETCH_404', 'GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404', `dsffsdf is not in the npm registry, or you have no permission to fetch it.
27
27
 
28
- An authorization header was used: Bearer df96[hidden]`
29
- }));
28
+ An authorization header was used: Bearer df96[hidden]`));
30
29
  (0, _chai().expect)(bitError.report()).to.equal(`GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404
31
30
 
32
31
  dsffsdf is not in the npm registry, or you have no permission to fetch it.
@@ -1 +1 @@
1
- {"version":3,"names":["_error","data","require","_chai","_pnpmErrorToBitError","it","bitError","pnpmErrorToBitError","PnpmError","hint","expect","report","to","equal","Error"],"sources":["pnpm-error-to-bit-error.spec.ts"],"sourcesContent":["import { PnpmError } from '@pnpm/error';\nimport { expect } from 'chai';\nimport { pnpmErrorToBitError } from './pnpm-error-to-bit-error';\n\nit('the hint from the fetch error is used', () => {\n const bitError = pnpmErrorToBitError(\n new PnpmError('FETCH_404', 'GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404', {\n hint: `dsffsdf is not in the npm registry, or you have no permission to fetch it.\n\nAn authorization header was used: Bearer df96[hidden]`,\n })\n );\n expect(bitError.report()).to.equal(`GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404\n\ndsffsdf is not in the npm registry, or you have no permission to fetch it.\n\nAn authorization header was used: Bearer df96[hidden]`);\n});\n\nit('a regular error object is reported', () => {\n const bitError = pnpmErrorToBitError(new Error('some error') as any);\n expect(bitError.report()).to.equal('some error');\n});\n"],"mappings":";;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,MAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,qBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,oBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEAI,EAAE,CAAC,uCAAuC,EAAE,MAAM;EAChD,MAAMC,QAAQ,GAAG,IAAAC,0CAAmB,EAClC,KAAIC,kBAAS,EAAC,WAAW,EAAE,8DAA8D,EAAE;IACzFC,IAAI,EAAE;AACZ;AACA;EACI,CAAC,CACH,CAAC;EACD,IAAAC,cAAM,EAACJ,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,CAACC,EAAE,CAACC,KAAK,CAAC;AACrC;AACA;AACA;AACA,sDAAsD,CAAC;AACvD,CAAC,CAAC;AAEFR,EAAE,CAAC,oCAAoC,EAAE,MAAM;EAC7C,MAAMC,QAAQ,GAAG,IAAAC,0CAAmB,EAAC,IAAIO,KAAK,CAAC,YAAY,CAAQ,CAAC;EACpE,IAAAJ,cAAM,EAACJ,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,CAACC,EAAE,CAACC,KAAK,CAAC,YAAY,CAAC;AAClD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_pnpmErrorToBitError","makePnpmError","code","message","hint","err","Error","startsWith","it","bitError","pnpmErrorToBitError","expect","report","to","equal"],"sources":["pnpm-error-to-bit-error.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { pnpmErrorToBitError } from './pnpm-error-to-bit-error';\n\n// Build a PnpmError-like object without importing `@pnpm/error`, which is ESM\n// and can trip up Babel/mocha when pulled into the test context.\nfunction makePnpmError(code: string, message: string, hint?: string): any {\n const err: any = new Error(message);\n err.code = code.startsWith('ERR_PNPM_') ? code : `ERR_PNPM_${code}`;\n if (hint) err.hint = hint;\n return err;\n}\n\nit('the hint from the fetch error is used', () => {\n const bitError = pnpmErrorToBitError(\n makePnpmError(\n 'FETCH_404',\n 'GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404',\n `dsffsdf is not in the npm registry, or you have no permission to fetch it.\n\nAn authorization header was used: Bearer df96[hidden]`\n )\n );\n expect(bitError.report()).to.equal(`GET https://node-registry.bit.cloud/dsffsdf: Not Found - 404\n\ndsffsdf is not in the npm registry, or you have no permission to fetch it.\n\nAn authorization header was used: Bearer df96[hidden]`);\n});\n\nit('a regular error object is reported', () => {\n const bitError = pnpmErrorToBitError(new Error('some error') as any);\n expect(bitError.report()).to.equal('some error');\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,qBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA;AACA,SAASG,aAAaA,CAACC,IAAY,EAAEC,OAAe,EAAEC,IAAa,EAAO;EACxE,MAAMC,GAAQ,GAAG,IAAIC,KAAK,CAACH,OAAO,CAAC;EACnCE,GAAG,CAACH,IAAI,GAAGA,IAAI,CAACK,UAAU,CAAC,WAAW,CAAC,GAAGL,IAAI,GAAG,YAAYA,IAAI,EAAE;EACnE,IAAIE,IAAI,EAAEC,GAAG,CAACD,IAAI,GAAGA,IAAI;EACzB,OAAOC,GAAG;AACZ;AAEAG,EAAE,CAAC,uCAAuC,EAAE,MAAM;EAChD,MAAMC,QAAQ,GAAG,IAAAC,0CAAmB,EAClCT,aAAa,CACX,WAAW,EACX,8DAA8D,EAC9D;AACN;AACA,sDACI,CACF,CAAC;EACD,IAAAU,cAAM,EAACF,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC,CAACC,EAAE,CAACC,KAAK,CAAC;AACrC;AACA;AACA;AACA,sDAAsD,CAAC;AACvD,CAAC,CAAC;AAEFN,EAAE,CAAC,oCAAoC,EAAE,MAAM;EAC7C,MAAMC,QAAQ,GAAG,IAAAC,0CAAmB,EAAC,IAAIJ,KAAK,CAAC,YAAY,CAAQ,CAAC;EACpE,IAAAK,cAAM,EAACF,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC,CAACC,EAAE,CAACC,KAAK,CAAC,YAAY,CAAC;AAClD,CAAC,CAAC","ignoreList":[]}
@@ -25,13 +25,6 @@ function _lodash() {
25
25
  };
26
26
  return data;
27
27
  }
28
- function _lockfile() {
29
- const data = require("@pnpm/lockfile.fs");
30
- _lockfile = function () {
31
- return data;
32
- };
33
- return data;
34
- }
35
28
  function _dependenciesPnpm() {
36
29
  const data = require("@teambit/dependencies.pnpm.dep-path");
37
30
  _dependenciesPnpm = function () {
@@ -40,6 +33,20 @@ function _dependenciesPnpm() {
40
33
  return data;
41
34
  }
42
35
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
36
+ let lockfileFsPromise;
37
+ function loadLockfileFs() {
38
+ lockfileFsPromise ??= (async () => {
39
+ const {
40
+ loadEsm
41
+ } = require('./load-pnpm-esm.cjs');
42
+ const {
43
+ lockfileFs
44
+ } = await loadEsm();
45
+ return lockfileFs;
46
+ })();
47
+ return lockfileFsPromise;
48
+ }
49
+
43
50
  /**
44
51
  * Reads the private lockfile at node_modules/.pnpm/lock.yaml
45
52
  * and removes any directories from node_modules/.pnpm that are not listed in the lockfile.
@@ -48,7 +55,10 @@ async function pnpmPruneModules(rootDir) {
48
55
  const virtualStoreDir = _path().default.join(rootDir, 'node_modules/.pnpm');
49
56
  const pkgDirs = await readPackageDirsFromVirtualStore(virtualStoreDir);
50
57
  if (pkgDirs.length === 0) return;
51
- const lockfile = await (0, _lockfile().readCurrentLockfile)(virtualStoreDir, {
58
+ const {
59
+ readCurrentLockfile
60
+ } = await loadLockfileFs();
61
+ const lockfile = await readCurrentLockfile(virtualStoreDir, {
52
62
  ignoreIncompatible: false
53
63
  });
54
64
  const dirsShouldBePresent = Object.keys(lockfile?.packages ?? {}).map(depPath => (0, _dependenciesPnpm().depPathToDirName)(depPath));
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_lockfile","_dependenciesPnpm","e","__esModule","default","pnpmPruneModules","rootDir","virtualStoreDir","path","join","pkgDirs","readPackageDirsFromVirtualStore","length","lockfile","readCurrentLockfile","ignoreIncompatible","dirsShouldBePresent","Object","keys","packages","map","depPath","depPathToDirName","Promise","all","difference","dir","fs","remove","allDirs","readdir","filter"],"sources":["pnpm-prune-modules.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport { difference } from 'lodash';\nimport { readCurrentLockfile } from '@pnpm/lockfile.fs';\nimport { depPathToDirName } from '@teambit/dependencies.pnpm.dep-path';\n\n/**\n * Reads the private lockfile at node_modules/.pnpm/lock.yaml\n * and removes any directories from node_modules/.pnpm that are not listed in the lockfile.\n */\nexport async function pnpmPruneModules(rootDir: string): Promise<void> {\n const virtualStoreDir = path.join(rootDir, 'node_modules/.pnpm');\n const pkgDirs = await readPackageDirsFromVirtualStore(virtualStoreDir);\n if (pkgDirs.length === 0) return;\n const lockfile = await readCurrentLockfile(virtualStoreDir, { ignoreIncompatible: false });\n const dirsShouldBePresent = Object.keys(lockfile?.packages ?? {}).map((depPath) => depPathToDirName(depPath));\n await Promise.all(difference(pkgDirs, dirsShouldBePresent).map((dir) => fs.remove(path.join(virtualStoreDir, dir))));\n}\n\nasync function readPackageDirsFromVirtualStore(virtualStoreDir: string): Promise<string[]> {\n const allDirs = await fs.readdir(virtualStoreDir);\n return allDirs.filter((dir) => dir !== 'lock.yaml' && dir !== 'node_modules');\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,UAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,kBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,iBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuE,SAAAC,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvE;AACA;AACA;AACA;AACO,eAAeG,gBAAgBA,CAACC,OAAe,EAAiB;EACrE,MAAMC,eAAe,GAAGC,eAAI,CAACC,IAAI,CAACH,OAAO,EAAE,oBAAoB,CAAC;EAChE,MAAMI,OAAO,GAAG,MAAMC,+BAA+B,CAACJ,eAAe,CAAC;EACtE,IAAIG,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;EAC1B,MAAMC,QAAQ,GAAG,MAAM,IAAAC,+BAAmB,EAACP,eAAe,EAAE;IAAEQ,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC1F,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACL,QAAQ,EAAEM,QAAQ,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAEC,OAAO,IAAK,IAAAC,oCAAgB,EAACD,OAAO,CAAC,CAAC;EAC7G,MAAME,OAAO,CAACC,GAAG,CAAC,IAAAC,oBAAU,EAACf,OAAO,EAAEM,mBAAmB,CAAC,CAACI,GAAG,CAAEM,GAAG,IAAKC,kBAAE,CAACC,MAAM,CAACpB,eAAI,CAACC,IAAI,CAACF,eAAe,EAAEmB,GAAG,CAAC,CAAC,CAAC,CAAC;AACtH;AAEA,eAAef,+BAA+BA,CAACJ,eAAuB,EAAqB;EACzF,MAAMsB,OAAO,GAAG,MAAMF,kBAAE,CAACG,OAAO,CAACvB,eAAe,CAAC;EACjD,OAAOsB,OAAO,CAACE,MAAM,CAAEL,GAAG,IAAKA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,cAAc,CAAC;AAC/E","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_dependenciesPnpm","e","__esModule","default","lockfileFsPromise","loadLockfileFs","loadEsm","lockfileFs","pnpmPruneModules","rootDir","virtualStoreDir","path","join","pkgDirs","readPackageDirsFromVirtualStore","length","readCurrentLockfile","lockfile","ignoreIncompatible","dirsShouldBePresent","Object","keys","packages","map","depPath","depPathToDirName","Promise","all","difference","dir","fs","remove","allDirs","readdir","filter"],"sources":["pnpm-prune-modules.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport { difference } from 'lodash';\nimport type * as LockfileFs from '@pnpm/lockfile.fs';\nimport { depPathToDirName } from '@teambit/dependencies.pnpm.dep-path';\n\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 * Reads the private lockfile at node_modules/.pnpm/lock.yaml\n * and removes any directories from node_modules/.pnpm that are not listed in the lockfile.\n */\nexport async function pnpmPruneModules(rootDir: string): Promise<void> {\n const virtualStoreDir = path.join(rootDir, 'node_modules/.pnpm');\n const pkgDirs = await readPackageDirsFromVirtualStore(virtualStoreDir);\n if (pkgDirs.length === 0) return;\n const { readCurrentLockfile } = await loadLockfileFs();\n const lockfile = await readCurrentLockfile(virtualStoreDir, { ignoreIncompatible: false });\n const dirsShouldBePresent = Object.keys(lockfile?.packages ?? {}).map((depPath) => depPathToDirName(depPath));\n await Promise.all(difference(pkgDirs, dirsShouldBePresent).map((dir) => fs.remove(path.join(virtualStoreDir, dir))));\n}\n\nasync function readPackageDirsFromVirtualStore(virtualStoreDir: string): Promise<string[]> {\n const allDirs = await fs.readdir(virtualStoreDir);\n return allDirs.filter((dir) => dir !== 'lock.yaml' && dir !== 'node_modules');\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,kBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,iBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuE,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvE,IAAIG,iBAAwD;AAE5D,SAASC,cAAcA,CAAA,EAA8B;EACnDD,iBAAiB,KAAK,CAAC,YAAY;IACjC,MAAM;MAAEE;IAAQ,CAAC,GAAGT,OAAO,CAAC,qBAAqB,CAEhD;IACD,MAAM;MAAEU;IAAW,CAAC,GAAG,MAAMD,OAAO,CAAC,CAAC;IACtC,OAAOC,UAAU;EACnB,CAAC,EAAE,CAAC;EACJ,OAAOH,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACO,eAAeI,gBAAgBA,CAACC,OAAe,EAAiB;EACrE,MAAMC,eAAe,GAAGC,eAAI,CAACC,IAAI,CAACH,OAAO,EAAE,oBAAoB,CAAC;EAChE,MAAMI,OAAO,GAAG,MAAMC,+BAA+B,CAACJ,eAAe,CAAC;EACtE,IAAIG,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;EAC1B,MAAM;IAAEC;EAAoB,CAAC,GAAG,MAAMX,cAAc,CAAC,CAAC;EACtD,MAAMY,QAAQ,GAAG,MAAMD,mBAAmB,CAACN,eAAe,EAAE;IAAEQ,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC1F,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACJ,QAAQ,EAAEK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAEC,OAAO,IAAK,IAAAC,oCAAgB,EAACD,OAAO,CAAC,CAAC;EAC7G,MAAME,OAAO,CAACC,GAAG,CAAC,IAAAC,oBAAU,EAACf,OAAO,EAAEM,mBAAmB,CAAC,CAACI,GAAG,CAAEM,GAAG,IAAKC,kBAAE,CAACC,MAAM,CAACpB,eAAI,CAACC,IAAI,CAACF,eAAe,EAAEmB,GAAG,CAAC,CAAC,CAAC,CAAC;AACtH;AAEA,eAAef,+BAA+BA,CAACJ,eAAuB,EAAqB;EACzF,MAAMsB,OAAO,GAAG,MAAMF,kBAAE,CAACG,OAAO,CAACvB,eAAe,CAAC;EACjD,OAAOsB,OAAO,CAACE,MAAM,CAAEL,GAAG,IAAKA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,cAAc,CAAC;AAC/E","ignoreList":[]}
@@ -2,10 +2,9 @@ import type { CloudMain } from '@teambit/cloud';
2
2
  import type { DependencyResolverMain, InstallationContext, PackageManager, PackageManagerInstallOptions, PackageManagerResolveRemoteVersionOptions, ResolvedPackageVersion, PackageManagerProxyConfig, PackageManagerNetworkConfig, CalcDepsGraphOptions } from '@teambit/dependency-resolver';
3
3
  import { Registries } from '@teambit/pkg.entities.registry';
4
4
  import type { Logger } from '@teambit/logger';
5
- import type { PeerDependencyIssuesByProjects } from '@pnpm/core';
6
- import type { Config } from '@pnpm/config';
5
+ import type { PeerDependencyIssuesByProjects, ResolvedConfig } from '@pnpm/napi';
7
6
  import { type ProjectManifest, type DepPath } from '@pnpm/types';
8
- import type { Modules } from '@pnpm/modules-yaml';
7
+ import type { Modules } from '@pnpm/installing.modules-yaml';
9
8
  import type { RebuildFn } from './lynx';
10
9
  import { type DependenciesGraph } from '@teambit/objects';
11
10
  export type { RebuildFn };
@@ -16,7 +15,7 @@ export interface InstallResult {
16
15
  depsRequiringBuild?: DepPath[];
17
16
  }
18
17
  type ReadConfigResult = Promise<{
19
- config: Config;
18
+ config: ResolvedConfig;
20
19
  warnings: string[];
21
20
  }>;
22
21
  export declare class PnpmPackageManager implements PackageManager {