{
  "version": 3,
  "sources": ["../../../../src/packages/client/index.ts"],
  "sourcesContent": ["import {\n  type ResolveFunction,\n  createResolver as _createResolver,\n} from '../default-resolver/index.ts';\nimport { createFetchFromRegistry } from '../fetch/index.ts';\nimport type { SslConfig } from '../types/index.ts';\nimport type {\n  FetchFromRegistry,\n  GetAuthHeader,\n  RetryTimeoutOptions,\n} from '../fetching-types/index.ts';\nimport type {\n  CustomFetchers,\n  GitFetcher,\n  DirectoryFetcher,\n} from '../fetcher-base/index.ts';\nimport { createDirectoryFetcher } from '../directory-fetcher/index.ts';\nimport { createGitFetcher } from '../git-fetcher/index.ts';\nimport {\n  createTarballFetcher,\n  type TarballFetchers,\n} from '../tarball-fetcher/index.ts';\nimport { createGetAuthHeaderByURI } from '../network.auth-header/index.ts';\nimport mapValue from 'ramda/src/map';\n\nexport type { ResolveFunction };\n\nexport type ClientOptions = {\n  authConfig: Record<string, string>;\n  customFetchers?: CustomFetchers | undefined;\n  ignoreScripts?: boolean | undefined;\n  rawConfig: Record<string, string>;\n  sslConfigs?: Record<string, SslConfig> | undefined;\n  retry?: RetryTimeoutOptions | undefined;\n  timeout?: number | undefined;\n  unsafePerm?: boolean | undefined;\n  userAgent?: string | undefined;\n  userConfig?: Record<string, string> | undefined;\n  gitShallowHosts?: string[] | undefined;\n  resolveSymlinksInInjectedDirs?: boolean | undefined;\n  includeOnlyPackageFiles?: boolean | undefined;\n\n  cacheDir: string;\n  fullMetadata?: boolean | undefined;\n  filterMetadata?: boolean | undefined;\n  offline?: boolean | undefined;\n  preferOffline?: boolean | undefined;\n\n  ca?: string | string[] | undefined;\n  cert?: string | string[] | undefined;\n  httpProxy?: string | undefined;\n  httpsProxy?: string | undefined;\n  key?: string | undefined;\n  localAddress?: string | undefined;\n  maxSockets?: number | undefined;\n  noProxy?: boolean | string | undefined;\n  strictSsl?: boolean | undefined;\n  clientCertificates?:\n    | {\n        [registryUrl: string]: {\n          cert: string;\n          key: string;\n          ca?: string | undefined;\n        };\n      }\n    | undefined;\n};\n\nexport type Client = {\n  fetchers: TarballFetchers;\n  resolve: ResolveFunction;\n  clearResolutionCache: () => void;\n};\n\nexport function createClient(opts: ClientOptions): Client {\n  const fetchFromRegistry = createFetchFromRegistry(opts);\n\n  const getAuthHeader = createGetAuthHeaderByURI({\n    allSettings: opts.authConfig,\n    userSettings: opts.userConfig,\n  });\n\n  const { resolve, clearCache: clearResolutionCache } = _createResolver(\n    fetchFromRegistry,\n    getAuthHeader,\n    opts\n  );\n\n  return {\n    fetchers: createFetchers(\n      fetchFromRegistry,\n      getAuthHeader,\n      opts,\n      opts.customFetchers\n    ),\n    resolve,\n    clearResolutionCache,\n  };\n}\n\nexport function createResolver(opts: ClientOptions): {\n  resolve: ResolveFunction;\n  clearCache: () => void;\n} {\n  const fetchFromRegistry = createFetchFromRegistry(opts);\n\n  const getAuthHeader = createGetAuthHeaderByURI({\n    allSettings: opts.authConfig,\n    userSettings: opts.userConfig,\n  });\n\n  return _createResolver(fetchFromRegistry, getAuthHeader, opts);\n}\n\ntype Fetchers = {\n  git: GitFetcher;\n  directory: DirectoryFetcher;\n} & TarballFetchers;\n\nfunction createFetchers(\n  fetchFromRegistry: FetchFromRegistry,\n  getAuthHeader: GetAuthHeader,\n  opts: Pick<\n    ClientOptions,\n    | 'rawConfig'\n    | 'retry'\n    | 'gitShallowHosts'\n    | 'resolveSymlinksInInjectedDirs'\n    | 'unsafePerm'\n    | 'includeOnlyPackageFiles'\n  >,\n  customFetchers?: CustomFetchers | undefined\n): Fetchers {\n  const defaultFetchers: Fetchers = {\n    ...createTarballFetcher(fetchFromRegistry, getAuthHeader, opts),\n    ...createGitFetcher(opts),\n    ...createDirectoryFetcher({\n      resolveSymlinks: opts.resolveSymlinksInInjectedDirs,\n      includeOnlyPackageFiles: opts.includeOnlyPackageFiles,\n    }),\n  };\n\n  // TODO: fix\n  const overwrites = mapValue.default(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (factory: any): any => {\n      return factory({ defaultFetchers });\n    },\n    customFetchers ?? ({} as CustomFetchers)\n  );\n\n  return {\n    ...defaultFetchers,\n    ...overwrites,\n  };\n}\n"],
  "mappings": "AAAA;AAAA,EAEE,kBAAkB;AAAA,OACb;AACP,SAAS,+BAA+B;AAYxC,SAAS,8BAA8B;AACvC,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,gCAAgC;AACzC,OAAO,cAAc;AAmDd,SAAS,aAAa,MAA6B;AACxD,QAAM,oBAAoB,wBAAwB,IAAI;AAEtD,QAAM,gBAAgB,yBAAyB;AAAA,IAC7C,aAAa,KAAK;AAAA,IAClB,cAAc,KAAK;AAAA,EACrB,CAAC;AAED,QAAM,EAAE,SAAS,YAAY,qBAAqB,IAAI;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,eAAe,MAG7B;AACA,QAAM,oBAAoB,wBAAwB,IAAI;AAEtD,QAAM,gBAAgB,yBAAyB;AAAA,IAC7C,aAAa,KAAK;AAAA,IAClB,cAAc,KAAK;AAAA,EACrB,CAAC;AAED,SAAO,gBAAgB,mBAAmB,eAAe,IAAI;AAC/D;AAOA,SAAS,eACP,mBACA,eACA,MASA,gBACU;AACV,QAAM,kBAA4B;AAAA,IAChC,GAAG,qBAAqB,mBAAmB,eAAe,IAAI;AAAA,IAC9D,GAAG,iBAAiB,IAAI;AAAA,IACxB,GAAG,uBAAuB;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,yBAAyB,KAAK;AAAA,IAChC,CAAC;AAAA,EACH;AAGA,QAAM,aAAa,SAAS;AAAA;AAAA,IAE1B,CAAC,YAAsB;AACrB,aAAO,QAAQ,EAAE,gBAAgB,CAAC;AAAA,IACpC;AAAA,IACA,kBAAmB,CAAC;AAAA,EACtB;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;",
  "names": []
}
