{
  "version": 3,
  "sources": ["../../../../src/packages/cache.commands/cache.cmd.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport { docsUrl } from '../cli-utils/index.ts';\nimport { type Config, types as allTypes } from '../config/index.ts';\nimport {\n  FULL_FILTERED_META_DIR,\n  ABBREVIATED_META_DIR,\n} from '../constants/index.ts';\nimport { getStorePath } from '../store-path/index.ts';\nimport pick from 'ramda/src/pick';\nimport renderHelp from 'render-help';\nimport {\n  cacheList,\n  cacheView,\n  cacheDelete,\n  cacheListRegistries,\n} from '../cache.api/index.ts';\nimport { PnpmError } from '../error/index.ts';\n\nexport const rcOptionsTypes = cliOptionsTypes;\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    ...pick.default(['registry', 'store-dir'], allTypes),\n  };\n}\n\nexport const commandNames = ['cache'];\n\nexport function help(): string {\n  return renderHelp({\n    description: 'Inspect and manage the metadata cache',\n    descriptionLists: [\n      {\n        title: 'Commands',\n\n        list: [\n          {\n            description:\n              'Lists the available packages metadata cache. Supports filtering by glob',\n            name: 'list',\n          },\n          {\n            description:\n              'Lists all registries that have their metadata cache locally',\n            name: 'list-registries',\n          },\n          {\n            description: \"Views information from the specified package's cache\",\n            name: 'view',\n          },\n          {\n            description:\n              'Deletes metadata cache for the specified package(s). Supports patterns',\n            name: 'delete',\n          },\n        ],\n      },\n    ],\n    url: docsUrl('cache'),\n    usages: ['pnpm cache <command>'],\n  });\n}\n\nexport type CacheCommandOptions = Pick<\n  Config,\n  | 'cacheDir'\n  | 'storeDir'\n  | 'pnpmHomeDir'\n  | 'cliOptions'\n  | 'resolutionMode'\n  | 'registrySupportsTimeField'\n>;\n\nexport async function handler(\n  opts: CacheCommandOptions,\n  params: string[]\n): Promise<string | undefined> {\n  const cacheType =\n    opts.resolutionMode === 'time-based' &&\n    opts.registrySupportsTimeField !== true\n      ? FULL_FILTERED_META_DIR\n      : ABBREVIATED_META_DIR;\n\n  const cacheDir = path.join(opts.cacheDir, cacheType);\n\n  switch (params[0]) {\n    case 'list-registries': {\n      return cacheListRegistries({\n        ...opts,\n        cacheDir,\n      });\n    }\n\n    case 'list': {\n      return cacheList(\n        {\n          ...opts,\n          cacheDir,\n          registry: opts.cliOptions['registry'],\n        },\n        params.slice(1)\n      );\n    }\n\n    case 'delete': {\n      return cacheDelete(\n        {\n          ...opts,\n          cacheDir,\n          registry: opts.cliOptions['registry'],\n        },\n        params.slice(1)\n      );\n    }\n\n    case 'view': {\n      if (typeof params[1] === 'undefined') {\n        throw new PnpmError(\n          'MISSING_PACKAGE_NAME',\n          '`pnpm cache view` requires the package name'\n        );\n      }\n\n      if (params.length > 2) {\n        throw new PnpmError(\n          'TOO_MANY_PARAMS',\n          '`pnpm cache view` only accepts one package name'\n        );\n      }\n\n      const storeDir = await getStorePath({\n        pkgRoot: process.cwd(),\n        storePath: opts.storeDir,\n        pnpmHomeDir: opts.pnpmHomeDir,\n      });\n\n      return cacheView(\n        {\n          ...opts,\n          cacheDir,\n          storeDir,\n          registry: opts.cliOptions['registry'],\n        },\n        params[1]\n      );\n    }\n\n    default: {\n      return help();\n    }\n  }\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,eAAe;AACxB,SAAsB,SAAS,gBAAgB;AAC/C;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAiB;AAEnB,MAAM,iBAAiB;AAEvB,SAAS,kBAA2C;AACzD,SAAO;AAAA,IACL,GAAG,KAAK,QAAQ,CAAC,YAAY,WAAW,GAAG,QAAQ;AAAA,EACrD;AACF;AAEO,MAAM,eAAe,CAAC,OAAO;AAE7B,SAAS,OAAe;AAC7B,SAAO,WAAW;AAAA,IAChB,aAAa;AAAA,IACb,kBAAkB;AAAA,MAChB;AAAA,QACE,OAAO;AAAA,QAEP,MAAM;AAAA,UACJ;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,QAAQ,OAAO;AAAA,IACpB,QAAQ,CAAC,sBAAsB;AAAA,EACjC,CAAC;AACH;AAYA,eAAsB,QACpB,MACA,QAC6B;AAC7B,QAAM,YACJ,KAAK,mBAAmB,gBACxB,KAAK,8BAA8B,OAC/B,yBACA;AAEN,QAAM,WAAW,KAAK,KAAK,KAAK,UAAU,SAAS;AAEnD,UAAQ,OAAO,CAAC,GAAG;AAAA,IACjB,KAAK,mBAAmB;AACtB,aAAO,oBAAoB;AAAA,QACzB,GAAG;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,KAAK,QAAQ;AACX,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH;AAAA,UACA,UAAU,KAAK,WAAW,UAAU;AAAA,QACtC;AAAA,QACA,OAAO,MAAM,CAAC;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,KAAK,UAAU;AACb,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH;AAAA,UACA,UAAU,KAAK,WAAW,UAAU;AAAA,QACtC;AAAA,QACA,OAAO,MAAM,CAAC;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,KAAK,QAAQ;AACX,UAAI,OAAO,OAAO,CAAC,MAAM,aAAa;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,UAAI,OAAO,SAAS,GAAG;AACrB,cAAM,IAAI;AAAA,UACR;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,aAAa;AAAA,QAClC,SAAS,QAAQ,IAAI;AAAA,QACrB,WAAW,KAAK;AAAA,QAChB,aAAa,KAAK;AAAA,MACpB,CAAC;AAED,aAAO;AAAA,QACL;AAAA,UACE,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA,UAAU,KAAK,WAAW,UAAU;AAAA,QACtC;AAAA,QACA,OAAO,CAAC;AAAA,MACV;AAAA,IACF;AAAA,IAEA,SAAS;AACP,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;",
  "names": []
}
