{"version":3,"file":"cache.mjs","names":[],"sources":["../../src/cache/index.ts"],"sourcesContent":["// Cache\nexport { getCacheDir } from \"./paths.ts\";\nexport {\n  getStorage,\n  getEcosystemStorage,\n  computeIntegrity,\n  disposeStorage,\n  clearStorage,\n  configureStorage,\n} from \"./storage.ts\";\nexport { CachedRegistry } from \"./cached-registry.ts\";\nexport {\n  readLockfile,\n  writeLockfile,\n  cacheKey,\n  isFresh,\n  getFreshEntry,\n  setEntry,\n  removeEntry,\n  pruneStale,\n  DEFAULT_TTL,\n} from \"./lockfile.ts\";\nexport type { Lockfile, LockfileEntry, EntryType } from \"./lockfile.ts\";\n\n// Convenience\nimport type { Storage } from \"unstorage\";\nimport type { Client } from \"../core/client.ts\";\nimport { create, type Registry } from \"../core/registry.ts\";\nimport { CachedRegistry } from \"./cached-registry.ts\";\n\n/** Options for creating a cached registry. */\nexport interface CreateCachedOptions {\n  /** Custom base URL for the registry API. */\n  baseURL?: string;\n  /** Custom HTTP client. */\n  client?: Client;\n  /** Custom unstorage instance. Overrides the globally configured storage. */\n  storage?: Storage;\n}\n\n/**\n * Create a registry with cache and lockfile tracking.\n *\n * @param ecosystem - Registry ecosystem key.\n * @param options - Optional registry, client, and storage overrides.\n * @returns {Promise<Registry>} A cached registry instance.\n */\nexport async function createCached(\n  ecosystem: string,\n  options?: CreateCachedOptions,\n): Promise<Registry> {\n  const inner = await create(ecosystem, options?.baseURL, options?.client);\n  return new CachedRegistry(inner, options?.storage);\n}\n"],"mappings":";;;;;;;;;AA+CA,eAAsB,aACpB,WACA,SACmB;AAEnB,QAAO,IAAI,eADG,MAAM,OAAO,WAAW,SAAS,SAAS,SAAS,OAAO,EACvC,SAAS,QAAQ"}