{
  "version": 3,
  "sources": ["../../../../src/packages/lockfile.preferred-versions/index.ts"],
  "sourcesContent": ["import type { PackageSnapshots } from '../lockfile.types/index.ts';\nimport { nameVerFromPkgSnapshot } from '../lockfile.utils/index.ts';\nimport { getAllDependenciesFromManifest } from '../manifest-utils/index.ts';\nimport {\n  type PreferredVersions,\n  DIRECT_DEP_SELECTOR_WEIGHT,\n} from '../resolver-base/index.ts';\nimport type { DependencyManifest, ProjectManifest } from '../types/index.ts';\nimport getVersionSelectorType from 'version-selector-type';\n\nexport function getPreferredVersionsFromLockfileAndManifests(\n  snapshots: PackageSnapshots | undefined,\n  manifests: Array<DependencyManifest | ProjectManifest>\n): PreferredVersions {\n  const preferredVersions: PreferredVersions = {};\n\n  for (const manifest of manifests) {\n    const specs = getAllDependenciesFromManifest(manifest);\n\n    for (const [name, spec] of Object.entries(specs)) {\n      const selector = getVersionSelectorType(spec);\n\n      if (!selector) continue;\n\n      preferredVersions[name] = preferredVersions[name] ?? {};\n\n      preferredVersions[name][spec] = {\n        selectorType: selector.type,\n        weight: DIRECT_DEP_SELECTOR_WEIGHT,\n      };\n    }\n  }\n\n  if (typeof snapshots === 'undefined') {\n    return preferredVersions;\n  }\n\n  addPreferredVersionsFromLockfile(snapshots, preferredVersions);\n\n  return preferredVersions;\n}\n\nfunction addPreferredVersionsFromLockfile(\n  snapshots: PackageSnapshots,\n  preferredVersions: PreferredVersions\n): void {\n  for (const [depPath, snapshot] of Object.entries(snapshots)) {\n    const { name, version } = nameVerFromPkgSnapshot(depPath, snapshot);\n\n    const v = preferredVersions[name];\n\n    if (typeof v === 'undefined') {\n      preferredVersions[name] = { [version]: 'version' };\n    } else if (typeof v[version] === 'undefined') {\n      v[version] = 'version';\n    }\n  }\n}\n"],
  "mappings": "AACA,SAAS,8BAA8B;AACvC,SAAS,sCAAsC;AAC/C;AAAA,EAEE;AAAA,OACK;AAEP,OAAO,4BAA4B;AAE5B,SAAS,6CACd,WACA,WACmB;AACnB,QAAM,oBAAuC,CAAC;AAE9C,aAAW,YAAY,WAAW;AAChC,UAAM,QAAQ,+BAA+B,QAAQ;AAErD,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,YAAM,WAAW,uBAAuB,IAAI;AAE5C,UAAI,CAAC,SAAU;AAEf,wBAAkB,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC;AAEtD,wBAAkB,IAAI,EAAE,IAAI,IAAI;AAAA,QAC9B,cAAc,SAAS;AAAA,QACvB,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,cAAc,aAAa;AACpC,WAAO;AAAA,EACT;AAEA,mCAAiC,WAAW,iBAAiB;AAE7D,SAAO;AACT;AAEA,SAAS,iCACP,WACA,mBACM;AACN,aAAW,CAAC,SAAS,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC3D,UAAM,EAAE,MAAM,QAAQ,IAAI,uBAAuB,SAAS,QAAQ;AAElE,UAAM,IAAI,kBAAkB,IAAI;AAEhC,QAAI,OAAO,MAAM,aAAa;AAC5B,wBAAkB,IAAI,IAAI,EAAE,CAAC,OAAO,GAAG,UAAU;AAAA,IACnD,WAAW,OAAO,EAAE,OAAO,MAAM,aAAa;AAC5C,QAAE,OAAO,IAAI;AAAA,IACf;AAAA,EACF;AACF;",
  "names": []
}
