{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["'use strict'\n\nimport registryUrl from 'registry-url'\nimport { request } from 'undici'\n\ninterface DistTags {\n  latest: string\n}\n\ninterface Author {\n  name: string\n}\n\ninterface PackageData {\n  name: string\n  'dist-tags': DistTags\n  description: string\n  license: string\n  homepage?: string\n  author?: Author\n  maintainers: Author[]\n}\n\ninterface Package {\n  name: string\n  version: string\n  description: string\n  license: string\n  homepage: string\n  author: string\n}\n\ntype PackageResult = {\n  success: true\n  data: Package\n} | {\n  success: false\n  error: string\n}\n\nconst fetchData = async (url: string): Promise<PackageResult> => {\n  let name = ''\n  let version = ''\n  let description = ''\n  let license = ''\n  let homepage = ''\n  let author = ''\n\n  try {\n    const {\n      statusCode,\n      headers,\n      trailers,\n      body\n    } = await request(url)\n\n    const dataParsed: PackageData = await body.json()\n\n    name = dataParsed.name\n\n    version = dataParsed['dist-tags'].latest\n    description = dataParsed.description\n    license = dataParsed.license\n    homepage = dataParsed.homepage || ''\n    author =\n\t\tdataParsed.author?.name ||\n\t\tdataParsed.maintainers?.map(({ name }) => name).join(', ') ||\n\t\t''\n\n    return {\n        success: true,\n        data: {\n            name,\n            version,\n            description,\n            license,\n            homepage,\n            author\n        }\n    }\n  } catch (error) {\n      return {\n        success: false,\n        error: 'Error on retrieve package information'\n      }\n  }\n}\n\nexport default async function info (name: string) {\n  \tconst result = await fetchData(registryUrl() + name.toLowerCase())\n\tif (result.success) {\n\t\treturn result.data\n\t}\n\n\treturn result.error\n}\n"],"names":["name","fetchData","url","version","description","license","homepage","author","Promise","resolve","request","_ref","body","json","then","dataParsed","_dataParsed$author","_dataParsed$maintaine","latest","maintainers","map","join","success","data","error","_catch","e","reject","registryUrl","toLowerCase","result"],"mappings":";iKAwFkC,SAAEA,GAAY,2BAhD1CC,SAAmBC,GAAuC,IAC9D,IAAQF,EAAG,GACPG,EAAU,GACVC,EAAc,GACPC,EAAG,GACFC,EAAG,GACXC,EAAS,GAAE,OAEXC,QAAAC,gCAAAD,QAAAC,QAMQC,UAAQR,qBADZ,OAAAM,QAAAC,QAAAE,EAAJC,KAGyCC,QAAMC,KAAA,SAA3CC,GAAU,IAAAC,EAAAC,EAahB,OAXAjB,EAAOe,EAAWf,KAElBG,EAAUY,EAAW,aAAaG,OAClCd,EAAcW,EAAWX,YACzBC,EAAUU,EAAWV,QACrBC,EAAWS,EAAWT,UAAY,GAClCC,GACF,OAAAS,EAAAD,EAAWR,aAAX,EAAAS,EAAmBhB,QACnB,OADuBiB,EACvBF,EAAWI,kBAAX,EAAAF,EAAwBG,IAAI,SAAGpB,UAAAA,EAAAA,IAAe,GAAEqB,KAAK,QACrD,GAES,CACHC,SAAS,EACTC,KAAM,CACFvB,KAAAA,EACAG,QAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,OAAAA,GAEP,oBAEQ,CACLe,SAAS,EACTE,MAAO,wEAHZ,WACG,MAAO,CACLF,SAAS,EACTE,MAAO,wCAEZ,KArCGC,GAsCL,CAAA,MAAAC,GAAA,OAAAlB,QAAAmB,OAAAD,EAAA,CAAA,CAGuBzB,CAAU2B,EAAW,UAAK5B,EAAK6B,gBAAcf,KAAA,SAA5DgB,GAAM,OACJA,EAACR,QACHQ,EAAOP,KAGRO,EAAON,KAAK,GACnB"}