{"version":3,"file":"cli.cjs","sources":["../src/cli.ts","../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n'use strict'\nimport info from './index.js'\nimport * as packageJson from \"../package.json\"\n\ninterface PackageJson {\n  description: string\n  version: string\n}\n\nasync function help (packageInfo: PackageJson): Promise<void> {\n  console.log(packageInfo.description)\n  console.log('')\n  console.log('Usage')\n  console.log('  $ package-info <package-name>')\n  console.log('')\n  console.log('Example')\n  console.log('  $ package-info pageres')\n}\n\nexport default async function cli (\n  processArgv: string[] = process.argv\n): Promise<void> {\n  const argv: string[] = processArgv.slice(2)\n  if ((argv.length === 0) || argv.includes('--help')) {\n    help(packageJson)\n    return\n  }\n\n  if (\n    processArgv.includes('-v') ||\n    processArgv.includes('--version')\n  ) {\n    console.log(packageJson.version)\n    return\n  }\n\n  const input = argv[0]\n  info(input)\n    .then(version => console.log(version))\n    .catch(err => {\n      console.error(err)\n      process.exit(1)\n    })\n}\n\ncli()\n","'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":["cli","processArgv","process","argv","slice","length","includes","help","packageJson","Promise","resolve","console","log","name","fetchData","url","version","description","license","homepage","author","request","_ref","body","json","then","dataParsed","_dataParsed$author","_dataParsed$maintaine","latest","maintainers","map","join","success","data","error","_catch","e","reject","registryUrl","toLowerCase","result","info","err","exit","packageInfo","undefined"],"mappings":";uvDAoBiCA,EAAA,SAC/BC,gBAAAA,IAAAA,EAAwBC,QAAQC,MAEhC,IAAMA,EAAiBF,EAAYG,MAAM,GACzC,OAAqB,IAAhBD,EAAKE,QAAiBF,EAAKG,SAAS,WACvCC,EAAKC,GACLC,QAAAC,WAIAT,EAAYK,SAAS,OACrBL,EAAYK,SAAS,cAErBK,QAAQC,aAETH,QAAAC,YCqD+B,SAAEG,GAAY,2BAhD1CC,SAAmBC,GAAuC,IAC9D,IAAQF,EAAG,GACPG,EAAU,GACVC,EAAc,GACPC,EAAG,GACFC,EAAG,GACXC,EAAS,GAAE,OAEXX,QAAAC,gCAAAD,QAAAC,QAMQW,UAAQN,qBADZ,OAAAN,QAAAC,QAAAY,EAAJC,KAGyCC,QAAMC,KAAA,SAA3CC,GAAU,IAAAC,EAAAC,EAahB,OAXAf,EAAOa,EAAWb,KAElBG,EAAUU,EAAW,aAAaG,OAClCZ,EAAcS,EAAWT,YACzBC,EAAUQ,EAAWR,QACrBC,EAAWO,EAAWP,UAAY,GAClCC,GACF,OAAAO,EAAAD,EAAWN,aAAX,EAAAO,EAAmBd,QACnB,OADuBe,EACvBF,EAAWI,kBAAX,EAAAF,EAAwBG,IAAI,SAAGlB,UAAAA,EAAAA,IAAe,GAAEmB,KAAK,QACrD,GAES,CACHC,SAAS,EACTC,KAAM,CACFrB,KAAAA,EACAG,QAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,OAAAA,GAEP,oBAEQ,CACLa,SAAS,EACTE,MAAO,wEAHZ,WACG,MAAO,CACLF,SAAS,EACTE,MAAO,wCAEZ,KArCGC,GAsCL,CAAA,MAAAC,GAAA,OAAA5B,QAAA6B,OAAAD,EAAA,CAAA,CAGuBvB,CAAUyB,EAAW,UAAK1B,EAAK2B,gBAAcf,KAAA,SAA5DgB,GAAM,OACJA,EAACR,QACHQ,EAAOP,KAGRO,EAAON,KAAK,GACnB,mCDzDCO,CADcvC,EAAK,IAEhBsB,KAAK,SAAAT,GAAO,eAAYJ,IAAII,EAAQ,GAAC,MAC/B,SAAA2B,GACLhC,QAAQwB,MAAMQ,GACdzC,QAAQ0C,KAAK,EACf,qBACH,CAAA,MAAAP,GAAA,OAAA5B,QAAA6B,OAAAD,EAAA,CAAA,EAlCkB9B,EAAA,SAAEsC,GAAwB,IAOJ,OANvClC,QAAQC,IAAIiC,EAAY5B,aACxBN,QAAQC,IAAI,IACZD,QAAQC,IAAI,SACZD,QAAQC,IAAI,mCACZD,QAAQC,IAAI,IACZD,QAAQC,IAAI,WACZD,QAAQC,IAAI,4BAA2BH,QAAAC,SAjBzCoC,CAkBC,MAlBDA,GAAAA,OAAAA,QAAAA,OAAAA,EAAAA,CAAAA,EA8CA9C"}