{
  "version": 3,
  "sources": ["../../../../src/packages/outdated/outdatedDepsOfProjects.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport type { Catalogs } from '../catalogs.types/index.ts';\nimport {\n  readCurrentLockfile,\n  readWantedLockfile,\n} from '../lockfile.fs/index.ts';\nimport { createMatcher } from '../matcher/index.ts';\nimport { readModulesManifest } from '../modules-yaml/index.ts';\nimport type {\n  GlobalPkgDir,\n  IncludedDependencies,\n  LockFileDir,\n  ModulesDir,\n  ProjectManifest,\n  ProjectRootDir,\n  ProjectRootDirRealPath,\n  WorkspaceDir,\n} from '../types/index.ts';\nimport unnest from 'ramda/src/unnest';\nimport {\n  createManifestGetter,\n  type ManifestGetterOptions,\n} from './createManifestGetter.ts';\nimport { outdated, type OutdatedPackage } from './outdated.ts';\n\nexport async function outdatedDepsOfProjects(\n  pkgs: Array<{\n    rootDir:\n      | ProjectRootDir\n      | ProjectRootDirRealPath\n      | GlobalPkgDir\n      | WorkspaceDir\n      | LockFileDir;\n    manifest: ProjectManifest;\n  }>,\n  args: string[],\n  opts: Omit<ManifestGetterOptions, 'fullMetadata' | 'lockfileDir'> & {\n    catalogs?: Catalogs | undefined;\n    compatible?: boolean | undefined;\n    ignoreDependencies?: string[] | undefined;\n    include: IncludedDependencies;\n  } & Partial<Pick<ManifestGetterOptions, 'fullMetadata' | 'lockfileDir'>>\n): Promise<OutdatedPackage[][]> {\n  if (typeof opts.lockfileDir === 'undefined') {\n    return unnest.default(\n      await Promise.all(\n        pkgs.map(\n          async (pkg: {\n            rootDir:\n              | ProjectRootDir\n              | ProjectRootDirRealPath\n              | GlobalPkgDir\n              | WorkspaceDir\n              | LockFileDir;\n            manifest: ProjectManifest;\n          }) => {\n            return outdatedDepsOfProjects([pkg], args, {\n              ...opts,\n              lockfileDir: pkg.rootDir as LockFileDir,\n            });\n          }\n        )\n      )\n    );\n  }\n\n  const lockfileDir: LockFileDir = opts.lockfileDir ?? opts.dir;\n\n  const modules = await readModulesManifest(\n    path.join(lockfileDir, 'node_modules') as ModulesDir\n  );\n\n  const virtualStoreDir =\n    modules?.virtualStoreDir ?? path.join(lockfileDir, 'node_modules/.pnpm');\n\n  const currentLockfile = await readCurrentLockfile(virtualStoreDir, {\n    ignoreIncompatible: false,\n  });\n\n  const wantedLockfile =\n    (await readWantedLockfile(lockfileDir, { ignoreIncompatible: false })) ??\n    currentLockfile;\n\n  const getLatestManifest = createManifestGetter({\n    ...opts,\n    fullMetadata: opts.fullMetadata === true,\n    lockfileDir,\n  });\n\n  return Promise.all(\n    pkgs.map(async ({ rootDir, manifest }): Promise<OutdatedPackage[]> => {\n      const match = args.length > 0 ? createMatcher(args) : undefined;\n\n      return outdated({\n        catalogs: opts.catalogs,\n        compatible: opts.compatible,\n        currentLockfile,\n        getLatestManifest,\n        ignoreDependencies: opts.ignoreDependencies,\n        include: opts.include,\n        lockfileDir,\n        manifest,\n        match,\n        prefix: rootDir,\n        registries: opts.registries,\n        wantedLockfile,\n      });\n    })\n  );\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AAEjB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AAWpC,OAAO,YAAY;AACnB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,gBAAsC;AAE/C,eAAsB,uBACpB,MASA,MACA,MAM8B;AAC9B,MAAI,OAAO,KAAK,gBAAgB,aAAa;AAC3C,WAAO,OAAO;AAAA,MACZ,MAAM,QAAQ;AAAA,QACZ,KAAK;AAAA,UACH,OAAO,QAQD;AACJ,mBAAO,uBAAuB,CAAC,GAAG,GAAG,MAAM;AAAA,cACzC,GAAG;AAAA,cACH,aAAa,IAAI;AAAA,YACnB,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAA2B,KAAK,eAAe,KAAK;AAE1D,QAAM,UAAU,MAAM;AAAA,IACpB,KAAK,KAAK,aAAa,cAAc;AAAA,EACvC;AAEA,QAAM,kBACJ,SAAS,mBAAmB,KAAK,KAAK,aAAa,oBAAoB;AAEzE,QAAM,kBAAkB,MAAM,oBAAoB,iBAAiB;AAAA,IACjE,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,iBACH,MAAM,mBAAmB,aAAa,EAAE,oBAAoB,MAAM,CAAC,KACpE;AAEF,QAAM,oBAAoB,qBAAqB;AAAA,IAC7C,GAAG;AAAA,IACH,cAAc,KAAK,iBAAiB;AAAA,IACpC;AAAA,EACF,CAAC;AAED,SAAO,QAAQ;AAAA,IACb,KAAK,IAAI,OAAO,EAAE,SAAS,SAAS,MAAkC;AACpE,YAAM,QAAQ,KAAK,SAAS,IAAI,cAAc,IAAI,IAAI;AAEtD,aAAO,SAAS;AAAA,QACd,UAAU,KAAK;AAAA,QACf,YAAY,KAAK;AAAA,QACjB;AAAA,QACA;AAAA,QACA,oBAAoB,KAAK;AAAA,QACzB,SAAS,KAAK;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,QACR,YAAY,KAAK;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;",
  "names": []
}
