{"version":3,"sources":["../../src/package/getPackageReleaseInfo.ts"],"names":["getPackageReleaseInfo","packageName","results","execScript","info","distTags","lastVersion","result","tag","value","semver"],"mappings":";;;;AA8BA,eAAsBA,CAAAA,CAAsBC,EAAoB,CAC5D,IAAIC,EAAU,MAAMC,CAAAA,CAAW,YAAYF,CAAW,CAAA,OAAA,CAAA,CAAU,CAAC,MAAO,CAAA,IAAI,CAAC,CACvEG,CAAAA,CAAAA,CAAO,IAAK,CAAA,KAAA,CAAMF,CAAc,CAAA,CAChCG,EAAWD,CAAK,CAAA,WAAW,EAG3BE,CAAc,CAAA,MAAA,CAAO,QAAQD,CAAQ,CAAA,CAAE,OAAO,CAACE,CAAAA,CAAO,CAACC,CAAIC,CAAAA,CAAK,KAC/DC,CAAO,CAAA,EAAA,CAAGD,EAAOF,CAAO,CAAA,KAAK,CAC5BA,GAAAA,CAAAA,CAAS,CAAC,GAAA,CAAAC,EAAI,KAAAC,CAAAA,CAAK,GAEhBF,CACT,CAAA,CAAA,CACE,IAAQ,QACR,CAAA,KAAA,CAAQH,EAAK,OACjB,CAAC,EAED,OAAO,CACH,KAAeH,CACf,CAAA,IAAA,CAAeI,EACf,OAAeD,CAAAA,CAAAA,CAAK,OACpB,CAAA,MAAA,CAAeA,CAAK,CAAA,MAAA,CACpB,QAAe,CAAGE,EAAAA,CAAAA,CAAY,KAAK,CAAIA,CAAAA,EAAAA,CAAAA,CAAY,GAAG,CACtD,CAAA,CAAA,aAAA,CAAeF,EAAK,OACpB,CAAA,YAAA,CAAeA,EAAK,IAAK,CAAA,OAAA,CACzB,YAAeA,CAAK,CAAA,IAAA,CAAK,SACzB,IAAeA,CAAAA,CAAAA,CAAK,IAAK,CAAA,YAC7B,CACJ","file":"getPackageReleaseInfo.mjs","sourcesContent":["import { execScript } from \"../misc/execScript\"\nimport semver from \"semver\"\n\nexport type PackageReleaseInfo = {\n    name         : string\n    tags         : { [key:string]:string }\n    license      : string\n    author       : string\n    version      : string\n    latestVersion: string\n    firstCreated : string\n    lastPublish  : string\n    size         : number\n}\n\n\n/**\n * 从NPM获取包最近发布的版本信息\n * {\n    tags: { latest: '1.1.30' },\n    license: 'MIT',\n    author: 'wxzhang',\n    version: '1.1.30-latest',\n    latestVersion: '1.1.30',\n    firstCreated: '2022-03-24T09:32:51.748Z',\n    lastPublish: '2023-01-28T08:49:33.139Z',\n    size: 888125\n    }\n * @param {*} packageName \n */\nexport async function getPackageReleaseInfo(packageName:string) { \n    let results = await execScript(`npm info ${packageName} --json`,{silent:true})\n    const info = JSON.parse(results as any)\n    const distTags = info[\"dist-tags\"] as string[]\n\n    // 取得最新版本的版本号，不是latest\n    const lastVersion = Object.entries(distTags).reduce((result,[tag,value])=>{\n        if(semver.gt(value, result.value)){\n            result = {tag,value}\n        }\n        return result\n    },{\n        tag   : 'latest',\n        value : info[\"version\"]\n    })\n\n    return {\n        name         : packageName,\n        tags         : distTags, \n        license      : info[\"license\"], \n        author       : info[\"author\"],\n        version      : `${lastVersion.value}-${lastVersion.tag}`,\n        latestVersion: info[\"version\"],\n        firstCreated : info.time[\"created\"],\n        lastPublish  : info.time[\"modified\"],\n        size         : info.dist[\"unpackedSize\"] \n    }  \n}\n    \n\n"]}