{
  "version": 3,
  "sources": ["../../../../../src/packages/plugin-commands-store/storeStatus/index.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport {\n  getIndexFilePathInCafs,\n  type PackageFilesIndex,\n} from '../../store.cafs/index.ts';\nimport { getContextForSingleImporter } from '../../get-context/index.ts';\nimport {\n  nameVerFromPkgSnapshot,\n  packageIdFromSnapshot,\n} from '../../lockfile.utils/index.ts';\nimport { streamParser } from '../../logger/index.ts';\nimport * as dp from '../../dependency-path/index.ts';\nimport type {\n  DepPath,\n  ModulesDir,\n  PkgId,\n  PkgResolutionId,\n} from '../../types/index.ts';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport dint from 'dint';\nimport { loadJsonFile } from 'load-json-file';\nimport pFilter from 'p-filter';\nimport {\n  extendStoreStatusOptions,\n  type StoreStatusOptions,\n} from './extendStoreStatusOptions.ts';\nimport type { PackageSnapshot } from '../../lockfile.types/index.ts';\nimport type { TarballResolution } from '../../resolver-base/index.ts';\n\nexport async function storeStatus(\n  maybeOpts: StoreStatusOptions\n): Promise<string[]> {\n  const reporter = maybeOpts.reporter;\n\n  if (typeof reporter === 'function') {\n    streamParser.on('data', reporter);\n  }\n\n  const opts = await extendStoreStatusOptions(maybeOpts);\n\n  const { storeDir, skipped, virtualStoreDir, wantedLockfile } =\n    await getContextForSingleImporter(\n      {\n        name: '',\n        version: '',\n      },\n      {\n        ...opts,\n        lockfileDir: opts.lockfileDir,\n        modulesDir: 'node_modules' as ModulesDir,\n        extraBinPaths: [], // ctx.extraBinPaths is not needed, so this is fine\n      }\n    );\n\n  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n  if (!wantedLockfile) {\n    return [];\n  }\n\n  const pkgs = (\n    Object.entries(wantedLockfile.packages ?? {}) as Array<\n      [DepPath, PackageSnapshot]\n    >\n  )\n    .filter(([depPath]: [DepPath, PackageSnapshot]): boolean => {\n      return !skipped.has(depPath);\n    })\n    .map(\n      ([depPath, pkgSnapshot]: [DepPath, PackageSnapshot]): {\n        name: string;\n        peersSuffix: string;\n        version: string;\n        nonSemverVersion?: PkgResolutionId | undefined;\n        depPath: DepPath;\n        id: PkgId;\n        integrity: string | undefined;\n        pkgPath: DepPath;\n      } => {\n        const id = packageIdFromSnapshot(depPath, pkgSnapshot);\n\n        return {\n          depPath,\n          id,\n          integrity: (pkgSnapshot.resolution as TarballResolution).integrity,\n          pkgPath: depPath,\n          ...nameVerFromPkgSnapshot(depPath, pkgSnapshot),\n        };\n      }\n    );\n\n  const modified = await pFilter(\n    pkgs,\n    async ({\n      id,\n      integrity,\n      depPath,\n      name,\n    }: {\n      name: string;\n      peersSuffix: string;\n      version: string;\n      nonSemverVersion?: PkgResolutionId | undefined;\n      depPath: DepPath;\n      id: PkgId;\n      integrity: string | undefined;\n      pkgPath: DepPath;\n    }): Promise<boolean> => {\n      const pkgIndexFilePath =\n        typeof integrity === 'string'\n          ? getIndexFilePathInCafs(storeDir, integrity, id)\n          : path.join(\n              storeDir,\n              dp.depPathToFilename(id, maybeOpts.virtualStoreDirMaxLength),\n              'integrity.json'\n            );\n\n      const { files } = await loadJsonFile<PackageFilesIndex>(pkgIndexFilePath);\n\n      return (\n        (await dint.check(\n          path.join(\n            virtualStoreDir,\n            dp.depPathToFilename(depPath, maybeOpts.virtualStoreDirMaxLength),\n            'node_modules',\n            name\n          ),\n          files\n        )) === false\n      );\n    },\n    { concurrency: 8 }\n  );\n\n  if (reporter != null && typeof reporter === 'function') {\n    streamParser.removeListener('data', reporter);\n  }\n\n  return modified.map(\n    ({\n      pkgPath,\n    }: {\n      name: string;\n      peersSuffix: string;\n      version: string;\n      nonSemverVersion?: PkgResolutionId | undefined;\n      depPath: DepPath;\n      id: PkgId;\n      integrity: string | undefined;\n      pkgPath: DepPath;\n    }): DepPath => {\n      return pkgPath;\n    }\n  );\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,mCAAmC;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,YAAY,QAAQ;AASpB,OAAO,UAAU;AACjB,SAAS,oBAAoB;AAC7B,OAAO,aAAa;AACpB;AAAA,EACE;AAAA,OAEK;AAIP,eAAsB,YACpB,WACmB;AACnB,QAAM,WAAW,UAAU;AAE3B,MAAI,OAAO,aAAa,YAAY;AAClC,iBAAa,GAAG,QAAQ,QAAQ;AAAA,EAClC;AAEA,QAAM,OAAO,MAAM,yBAAyB,SAAS;AAErD,QAAM,EAAE,UAAU,SAAS,iBAAiB,eAAe,IACzD,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,aAAa,KAAK;AAAA,MAClB,YAAY;AAAA,MACZ,eAAe,CAAC;AAAA;AAAA,IAClB;AAAA,EACF;AAGF,MAAI,CAAC,gBAAgB;AACnB,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,OACJ,OAAO,QAAQ,eAAe,YAAY,CAAC,CAAC,EAI3C,OAAO,CAAC,CAAC,OAAO,MAA2C;AAC1D,WAAO,CAAC,QAAQ,IAAI,OAAO;AAAA,EAC7B,CAAC,EACA;AAAA,IACC,CAAC,CAAC,SAAS,WAAW,MASjB;AACH,YAAM,KAAK,sBAAsB,SAAS,WAAW;AAErD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,WAAY,YAAY,WAAiC;AAAA,QACzD,SAAS;AAAA,QACT,GAAG,uBAAuB,SAAS,WAAW;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAEF,QAAM,WAAW,MAAM;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MASwB;AACtB,YAAM,mBACJ,OAAO,cAAc,WACjB,uBAAuB,UAAU,WAAW,EAAE,IAC9C,KAAK;AAAA,QACH;AAAA,QACA,GAAG,kBAAkB,IAAI,UAAU,wBAAwB;AAAA,QAC3D;AAAA,MACF;AAEN,YAAM,EAAE,MAAM,IAAI,MAAM,aAAgC,gBAAgB;AAExE,aACG,MAAM,KAAK;AAAA,QACV,KAAK;AAAA,UACH;AAAA,UACA,GAAG,kBAAkB,SAAS,UAAU,wBAAwB;AAAA,UAChE;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,MACF,MAAO;AAAA,IAEX;AAAA,IACA,EAAE,aAAa,EAAE;AAAA,EACnB;AAEA,MAAI,YAAY,QAAQ,OAAO,aAAa,YAAY;AACtD,iBAAa,eAAe,QAAQ,QAAQ;AAAA,EAC9C;AAEA,SAAO,SAAS;AAAA,IACd,CAAC;AAAA,MACC;AAAA,IACF,MASe;AACb,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
  "names": []
}
