{"version":3,"file":"metadata-utils.mjs","names":[],"sources":["../../src/lib/metadata-utils.ts"],"sourcesContent":["import _ from 'lodash';\nimport semver from 'semver';\n\nimport { Package } from '@verdaccio/types';\n\nimport { DIST_TAGS } from './constants';\n\n/**\n * Function gets a local info and an info from uplinks and tries to merge it\n exported for unit tests only.\n  * @param {*} local\n  * @param {*} up\n  * @param {*} config\n  * @static\n  */\nexport function mergeVersions(local: Package, up: Package) {\n  // copy new versions to a cache\n  // NOTE: if a certain version was updated, we can't refresh it reliably\n  for (const i in up.versions) {\n    if (_.isNil(local.versions[i])) {\n      local.versions[i] = up.versions[i];\n    }\n  }\n\n  for (const i in up[DIST_TAGS]) {\n    if (local[DIST_TAGS][i] !== up[DIST_TAGS][i]) {\n      if (!local[DIST_TAGS][i] || semver.lte(local[DIST_TAGS][i], up[DIST_TAGS][i])) {\n        local[DIST_TAGS][i] = up[DIST_TAGS][i];\n      }\n      if (i === 'latest' && local[DIST_TAGS][i] === up[DIST_TAGS][i]) {\n        // if remote has more fresh package, we should borrow its readme\n        local.readme = up.readme;\n      }\n    }\n  }\n}\n"],"mappings":";;;;;;;;;;;;AAeA,SAAgB,cAAc,OAAgB,IAAa;CAGzD,KAAK,MAAM,KAAK,GAAG,UACjB,IAAI,EAAE,MAAM,MAAM,SAAS,EAAE,GAC3B,MAAM,SAAS,KAAK,GAAG,SAAS;CAIpC,KAAK,MAAM,KAAK,GAAG,YACjB,IAAI,MAAA,YAAgB,CAAC,OAAO,GAAA,YAAa,CAAC,IAAI;EAC5C,IAAI,CAAC,MAAA,YAAgB,CAAC,MAAM,OAAO,IAAI,MAAA,YAAgB,CAAC,IAAI,GAAA,YAAa,CAAC,EAAE,GAC1E,MAAM,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;EAEtC,IAAI,MAAM,YAAY,MAAA,YAAgB,CAAC,OAAO,GAAA,YAAa,CAAC,IAE1D,MAAM,SAAS,GAAG;CAEtB;AAEJ"}