{
  "version": 3,
  "sources": ["../../../../src/packages/store-connection-manager/createNewStoreController.ts"],
  "sourcesContent": ["import { promises as fs } from 'node:fs';\nimport { createClient } from '../client/index.ts';\n\nimport type {\n  CafsLocker,\n  NewStoreController,\n  PackageResponse,\n} from '../package-store/index.ts';\nimport { packageManager } from '../cli-meta/index.ts';\nimport type { StoreServerController } from '../server/connectStoreController.ts';\nimport {\n  createNewPackageStore,\n  createServerPackageStore,\n} from '../package-store/storeController/index.ts';\nimport type { CookedHooks } from '../pnpmfile/requireHooks.ts';\nimport type { SslConfig } from '../types/index.ts';\n\nexport type CreateNewStoreControllerOptions = {\n  cacheDir: string;\n  storeDir: string;\n  rawConfig: Record<string, string>;\n\n  fetchRetries?: number | undefined;\n  fetchRetryFactor?: number | undefined;\n  fetchRetryMaxtimeout?: number | undefined;\n  fetchRetryMintimeout?: number | undefined;\n\n  ca?: string | string[] | undefined;\n  cert?: string | string[] | undefined;\n  engineStrict?: boolean | undefined;\n  force?: boolean | undefined;\n  nodeVersion?: string | undefined;\n  fetchTimeout?: number | undefined;\n  gitShallowHosts?: string[] | undefined;\n  ignoreScripts?: boolean | undefined;\n  hooks?: CookedHooks | undefined;\n  httpProxy?: string | undefined;\n  httpsProxy?: string | undefined;\n  key?: string | undefined;\n  localAddress?: string | undefined;\n  maxSockets?: number | undefined;\n  networkConcurrency?: number | undefined;\n  noProxy?: string | boolean | undefined;\n  offline?: boolean | undefined;\n  packageImportMethod?:\n    | 'auto'\n    | 'hardlink'\n    | 'copy'\n    | 'clone'\n    | 'clone-or-copy'\n    | undefined;\n  preferOffline?: boolean | undefined;\n  registry?: string | undefined;\n  registrySupportsTimeField?: boolean | undefined;\n  resolutionMode?: 'highest' | 'time-based' | 'lowest-direct' | undefined;\n  strictSsl?: boolean | undefined;\n  unsafePerm?: boolean | undefined;\n  userAgent?: string | undefined;\n  verifyStoreIntegrity?: boolean | undefined;\n  virtualStoreDirMaxLength: number;\n  cafsLocker?: CafsLocker | undefined;\n  ignoreFile?: ((filename: string) => boolean) | undefined;\n  fetchFullMetadata?: boolean | undefined;\n  userConfig?: Record<string, string> | undefined;\n  deployAllFiles?: boolean | undefined;\n  sslConfigs?: Record<string, SslConfig> | undefined;\n  strictStorePkgContentCheck?: boolean | undefined;\n  resolveSymlinksInInjectedDirs?: boolean | undefined;\n};\n\nexport async function createNewStoreController(\n  opts: CreateNewStoreControllerOptions\n): Promise<{\n  ctrl: NewStoreController<\n    PackageResponse,\n    PackageResponse,\n    { isBuilt: boolean; importMethod?: string | undefined }\n  >;\n  dir: string;\n}> {\n  const fullMetadata =\n    opts.fetchFullMetadata ??\n    (opts.resolutionMode === 'time-based' &&\n      opts.registrySupportsTimeField !== true);\n\n  const { resolve, fetchers, clearResolutionCache } = createClient({\n    customFetchers: opts.hooks?.fetchers,\n    userConfig: opts.userConfig,\n    unsafePerm: opts.unsafePerm,\n    authConfig: opts.rawConfig,\n    ca: opts.ca,\n    cacheDir: opts.cacheDir,\n    cert: opts.cert,\n    fullMetadata,\n    filterMetadata: fullMetadata,\n    httpProxy: opts.httpProxy,\n    httpsProxy: opts.httpsProxy,\n    ignoreScripts: opts.ignoreScripts,\n    key: opts.key,\n    localAddress: opts.localAddress,\n    noProxy: opts.noProxy,\n    offline: opts.offline,\n    preferOffline: opts.preferOffline,\n    rawConfig: opts.rawConfig,\n    sslConfigs: opts.sslConfigs,\n    retry: {\n      factor: opts.fetchRetryFactor ?? 10,\n      maxTimeout: opts.fetchRetryMaxtimeout ?? 60_000,\n      minTimeout: opts.fetchRetryMintimeout ?? 10_000,\n      retries: opts.fetchRetries ?? 3,\n    },\n    strictSsl: opts.strictSsl ?? true,\n    timeout: opts.fetchTimeout,\n    userAgent: opts.userAgent,\n    maxSockets:\n      opts.maxSockets ??\n      (opts.networkConcurrency != null\n        ? opts.networkConcurrency * 3\n        : undefined),\n    gitShallowHosts: opts.gitShallowHosts,\n    resolveSymlinksInInjectedDirs: opts.resolveSymlinksInInjectedDirs,\n    includeOnlyPackageFiles: opts.deployAllFiles !== true,\n  });\n\n  await fs.mkdir(opts.storeDir, { recursive: true });\n\n  return {\n    ctrl: createNewPackageStore(resolve, fetchers, {\n      cafsLocker: opts.cafsLocker,\n      engineStrict: opts.engineStrict,\n      force: opts.force,\n      nodeVersion: opts.nodeVersion,\n      pnpmVersion: packageManager.version,\n      ignoreFile: opts.ignoreFile,\n      importPackage: opts.hooks?.importPackage,\n      networkConcurrency: opts.networkConcurrency,\n      packageImportMethod: opts.packageImportMethod,\n      cacheDir: opts.cacheDir,\n      storeDir: opts.storeDir,\n      verifyStoreIntegrity:\n        typeof opts.verifyStoreIntegrity === 'boolean'\n          ? opts.verifyStoreIntegrity\n          : true,\n      virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,\n      strictStorePkgContentCheck: opts.strictStorePkgContentCheck,\n      clearResolutionCache,\n    }),\n    dir: opts.storeDir,\n  };\n}\n\nexport async function createNewServerStoreController(\n  opts: CreateNewStoreControllerOptions\n): Promise<{\n  ctrl: StoreServerController<\n    PackageResponse,\n    PackageResponse,\n    {\n      isBuilt: boolean;\n      importMethod?: string | undefined;\n    }\n  >;\n  dir: string;\n}> {\n  const fullMetadata =\n    opts.fetchFullMetadata ??\n    (opts.resolutionMode === 'time-based' &&\n      opts.registrySupportsTimeField !== true);\n\n  const { resolve, fetchers, clearResolutionCache } = createClient({\n    customFetchers: opts.hooks?.fetchers,\n    userConfig: opts.userConfig,\n    unsafePerm: opts.unsafePerm,\n    authConfig: opts.rawConfig,\n    ca: opts.ca,\n    cacheDir: opts.cacheDir,\n    cert: opts.cert,\n    fullMetadata,\n    filterMetadata: fullMetadata,\n    httpProxy: opts.httpProxy,\n    httpsProxy: opts.httpsProxy,\n    ignoreScripts: opts.ignoreScripts,\n    key: opts.key,\n    localAddress: opts.localAddress,\n    noProxy: opts.noProxy,\n    offline: opts.offline,\n    preferOffline: opts.preferOffline,\n    rawConfig: opts.rawConfig,\n    sslConfigs: opts.sslConfigs,\n    retry: {\n      factor: opts.fetchRetryFactor ?? 10,\n      maxTimeout: opts.fetchRetryMaxtimeout ?? 60_000,\n      minTimeout: opts.fetchRetryMintimeout ?? 10_000,\n      retries: opts.fetchRetries ?? 3,\n    },\n    strictSsl: opts.strictSsl ?? true,\n    timeout: opts.fetchTimeout,\n    userAgent: opts.userAgent,\n    maxSockets:\n      opts.maxSockets ??\n      (opts.networkConcurrency != null\n        ? opts.networkConcurrency * 3\n        : undefined),\n    gitShallowHosts: opts.gitShallowHosts,\n    resolveSymlinksInInjectedDirs: opts.resolveSymlinksInInjectedDirs,\n    includeOnlyPackageFiles: opts.deployAllFiles !== true,\n  });\n\n  // if (typeof opts.storeDir === 'string') {\n  // }\n  await fs.mkdir(opts.storeDir, { recursive: true });\n\n  return {\n    ctrl: createServerPackageStore(resolve, fetchers, {\n      cafsLocker: opts.cafsLocker,\n      engineStrict: opts.engineStrict,\n      force: opts.force,\n      nodeVersion: opts.nodeVersion,\n      pnpmVersion: packageManager.version,\n      ignoreFile: opts.ignoreFile,\n      importPackage: opts.hooks?.importPackage,\n      networkConcurrency: opts.networkConcurrency,\n      packageImportMethod: opts.packageImportMethod,\n      cacheDir: opts.cacheDir,\n      storeDir: opts.storeDir,\n      verifyStoreIntegrity:\n        typeof opts.verifyStoreIntegrity === 'boolean'\n          ? opts.verifyStoreIntegrity\n          : true,\n      virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,\n      strictStorePkgContentCheck: opts.strictStorePkgContentCheck,\n      clearResolutionCache,\n    }),\n    dir: opts.storeDir,\n  };\n}\n"],
  "mappings": "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",
  "names": []
}
