JezK
Edit File: licenses.js.map
{"version":3,"file":"licenses.js","names":["invariant","require","hasWrapper","flags","args","getManifests","config","Lockfile","fromDirectory","cwd","lockfile","install","Install","skipIntegrityCheck","NoopReporter","hydrate","manifests","resolver","sort","a","b","name","localeCompare","filter","manifest","ref","_reference","ignore","list","reporter","manifestsByLicense","Map","version","license","repository","homepage","author","licenseKey","url","vendorUrl","vendorName","has","set","byLicense","get","json","body","forEach","push","table","trees","licenseTree","children","format","bold","tree","force","buildSubCommands","ls","commander","warn","generateDisclaimer","readRootManifest","licenseText","noticeText","console","log","String","toUpperCase","replace","names","urls","size","heading","join","length","trim","run","_setFlags","setFlags","examples","description"],"sourceRoot":"../../../src","sources":["cli/commands/licenses.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport type {Manifest} from '../../types.js';\nimport NoopReporter from '../../reporters/base-reporter.js';\nimport {Install} from './install.js';\nimport Lockfile from '../../lockfile';\nimport buildSubCommands from './_build-sub-commands.js';\n\nconst invariant = require('invariant');\n\nexport function hasWrapper(flags: Object, args: Array<string>): boolean {\n return args[0] != 'generate-disclaimer';\n}\n\nasync function getManifests(config: Config, flags: Object): Promise<Array<Manifest>> {\n const lockfile = await Lockfile.fromDirectory(config.cwd);\n const install = new Install({skipIntegrityCheck: true, ...flags}, config, new NoopReporter(), lockfile);\n await install.hydrate(true);\n\n let manifests = install.resolver.getManifests();\n\n // sort by name\n manifests = manifests.sort(function(a, b): number {\n if (!a.name && !b.name) {\n return 0;\n }\n\n if (!a.name) {\n return 1;\n }\n\n if (!b.name) {\n return -1;\n }\n\n return a.name.localeCompare(b.name);\n });\n\n // filter ignored manifests\n manifests = manifests.filter((manifest: Manifest): boolean => {\n const ref = manifest._reference;\n return !!ref && !ref.ignore;\n });\n\n return manifests;\n}\n\nasync function list(config: Config, reporter: Reporter, flags: Object, args: Array<string>): Promise<void> {\n const manifests: Array<Manifest> = await getManifests(config, flags);\n const manifestsByLicense = new Map();\n\n for (const {name, version, license, repository, homepage, author} of manifests) {\n const licenseKey = license || 'UNKNOWN';\n const url = repository ? repository.url : homepage;\n const vendorUrl = homepage || (author && author.url);\n const vendorName = author && author.name;\n\n if (!manifestsByLicense.has(licenseKey)) {\n manifestsByLicense.set(licenseKey, new Map());\n }\n\n const byLicense = manifestsByLicense.get(licenseKey);\n invariant(byLicense, 'expected value');\n byLicense.set(`${name}@${version}`, {\n name,\n version,\n url,\n vendorUrl,\n vendorName,\n });\n }\n\n if (flags.json) {\n const body = [];\n\n manifestsByLicense.forEach((license, licenseKey) => {\n license.forEach(({name, version, url, vendorUrl, vendorName}) => {\n body.push([name, version, licenseKey, url || 'Unknown', vendorUrl || 'Unknown', vendorName || 'Unknown']);\n });\n });\n\n reporter.table(['Name', 'Version', 'License', 'URL', 'VendorUrl', 'VendorName'], body);\n } else {\n const trees = [];\n\n manifestsByLicense.forEach((license, licenseKey) => {\n const licenseTree = [];\n\n license.forEach(({name, version, url, vendorUrl, vendorName}) => {\n const children = [];\n\n if (url) {\n children.push({name: `${reporter.format.bold('URL:')} ${url}`});\n }\n\n if (vendorUrl) {\n children.push({name: `${reporter.format.bold('VendorUrl:')} ${vendorUrl}`});\n }\n\n if (vendorName) {\n children.push({name: `${reporter.format.bold('VendorName:')} ${vendorName}`});\n }\n\n licenseTree.push({\n name: `${name}@${version}`,\n children,\n });\n });\n\n trees.push({\n name: licenseKey,\n children: licenseTree,\n });\n });\n\n reporter.tree('licenses', trees, {force: true});\n }\n}\n\nconst {run, setFlags: _setFlags, examples} = buildSubCommands('licenses', {\n async ls(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n reporter.warn(`\\`yarn licenses ls\\` is deprecated. Please use \\`yarn licenses list\\`.`);\n await list(config, reporter, flags, args);\n },\n\n async list(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n await list(config, reporter, flags, args);\n },\n\n async generateDisclaimer(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n /* eslint-disable no-console */\n\n // `reporter.log` dumps a bunch of ANSI escapes to clear the current line and\n // is for abstracting the console output so it can be consumed by other tools\n // (JSON output being the primary one). This command is only for text consumption\n // and you should just be dumping it to a TXT file. Using a reporter here has the\n // potential to mess up the output since it might print ansi escapes.\n // @kittens - https://git.io/v7uts\n\n const manifests: Array<Manifest> = await getManifests(config, flags);\n const manifest = await config.readRootManifest();\n\n // Create a map of license text to manifest so that packages with exactly\n // the same license text are grouped together.\n const manifestsByLicense: Map<string, Map<string, Manifest>> = new Map();\n for (const manifest of manifests) {\n const {licenseText, noticeText} = manifest;\n let licenseKey;\n if (!licenseText) {\n continue;\n }\n\n if (!noticeText) {\n licenseKey = licenseText;\n } else {\n licenseKey = `${licenseText}\\n\\nNOTICE\\n\\n${noticeText}`;\n }\n\n if (!manifestsByLicense.has(licenseKey)) {\n manifestsByLicense.set(licenseKey, new Map());\n }\n\n const byLicense = manifestsByLicense.get(licenseKey);\n invariant(byLicense, 'expected value');\n byLicense.set(manifest.name, manifest);\n }\n\n console.log(\n 'THE FOLLOWING SETS FORTH ATTRIBUTION NOTICES FOR THIRD PARTY SOFTWARE THAT MAY BE CONTAINED ' +\n `IN PORTIONS OF THE ${String(manifest.name).toUpperCase().replace(/-/g, ' ')} PRODUCT.`,\n );\n console.log();\n\n for (const [licenseKey, manifests] of manifestsByLicense) {\n console.log('-----');\n console.log();\n\n const names = [];\n const urls = [];\n for (const [name, {repository}] of manifests) {\n names.push(name);\n if (repository && repository.url) {\n urls.push(manifests.size === 1 ? repository.url : `${repository.url} (${name})`);\n }\n }\n\n const heading = [];\n heading.push(`The following software may be included in this product: ${names.join(', ')}.`);\n if (urls.length > 0) {\n heading.push(`A copy of the source code may be downloaded from ${urls.join(', ')}.`);\n }\n heading.push('This software contains the following license and notice below:');\n\n console.log(heading.join(' '));\n console.log();\n\n if (licenseKey) {\n console.log(licenseKey.trim());\n } else {\n // what do we do here? base it on `license`?\n }\n\n console.log();\n }\n },\n});\n\nexport {run, examples};\n\nexport function setFlags(commander: Object) {\n _setFlags(commander);\n commander.description('Lists licenses for installed packages.');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwD;AAAA;AAAA;AAAA;AAAA;AAExD,IAAMA,SAAS,GAAGC,OAAO,CAAC,WAAW,CAAC;AAE/B,SAASC,UAAU,CAACC,KAAa,EAAEC,IAAmB,EAAW;EACtE,OAAOA,IAAI,CAAC,CAAC,CAAC,IAAI,qBAAqB;AACzC;AAAC,SAEcC,YAAY;EAAA;AAAA;AAAA;EAAA,kGAA3B,kBAA4BC,MAAc,EAAEH,KAAa;IAAA;IAAA;MAAA;QAAA;UAAA;UAAA,OAChCI,sBAAQ,CAACC,aAAa,CAACF,MAAM,CAACG,GAAG,CAAC;QAAA;UAAnDC,QAAQ;UACRC,OAAO,GAAG,KAAIC,kBAAO;YAAEC,kBAAkB,EAAE;UAAI,GAAKV,KAAK,GAAGG,MAAM,EAAE,KAAIQ,0BAAY,GAAE,EAAEJ,QAAQ,CAAC;UAAA;UAAA,OACjGC,OAAO,CAACI,OAAO,CAAC,IAAI,CAAC;QAAA;UAEvBC,SAAS,GAAGL,OAAO,CAACM,QAAQ,CAACZ,YAAY,EAAE,EAE/C;UACAW,SAAS,GAAGA,SAAS,CAACE,IAAI,CAAC,UAASC,CAAC,EAAEC,CAAC,EAAU;YAChD,IAAI,CAACD,CAAC,CAACE,IAAI,IAAI,CAACD,CAAC,CAACC,IAAI,EAAE;cACtB,OAAO,CAAC;YACV;YAEA,IAAI,CAACF,CAAC,CAACE,IAAI,EAAE;cACX,OAAO,CAAC;YACV;YAEA,IAAI,CAACD,CAAC,CAACC,IAAI,EAAE;cACX,OAAO,CAAC,CAAC;YACX;YAEA,OAAOF,CAAC,CAACE,IAAI,CAACC,aAAa,CAACF,CAAC,CAACC,IAAI,CAAC;UACrC,CAAC,CAAC;;UAEF;UACAL,SAAS,GAAGA,SAAS,CAACO,MAAM,CAAC,UAACC,QAAkB,EAAc;YAC5D,IAAMC,GAAG,GAAGD,QAAQ,CAACE,UAAU;YAC/B,OAAO,CAAC,CAACD,GAAG,IAAI,CAACA,GAAG,CAACE,MAAM;UAC7B,CAAC,CAAC;UAAC,kCAEIX,SAAS;QAAA;QAAA;UAAA;MAAA;IAAA;EAAA,CACjB;EAAA;AAAA;AAAA,SAEcY,MAAI;EAAA;AAAA;AAAA;EAAA,0FAAnB,kBAAoBtB,MAAc,EAAEuB,QAAkB,EAAE1B,KAAa,EAAEC,IAAmB;IAAA;IAAA;MAAA;QAAA;UAAA;UAAA,OAC/CC,YAAY,CAACC,MAAM,EAAEH,KAAK,CAAC;QAAA;UAA9Da,SAA0B;UAC1Bc,kBAAkB,GAAG,IAAIC,GAAG,EAAE;UAAA,wCAEiCf,SAAS;UAAA;YAA9E,uDAAgF;cAAA,6BAApEK,IAAI,gBAAJA,IAAI,EAAEW,OAAO,gBAAPA,OAAO,EAAEC,OAAO,gBAAPA,OAAO,EAAEC,UAAU,gBAAVA,UAAU,EAAEC,QAAQ,gBAARA,QAAQ,EAAEC,MAAM,gBAANA,MAAM;cACxDC,UAAU,GAAGJ,OAAO,IAAI,SAAS;cACjCK,GAAG,GAAGJ,UAAU,GAAGA,UAAU,CAACI,GAAG,GAAGH,QAAQ;cAC5CI,SAAS,GAAGJ,QAAQ,IAAKC,MAAM,IAAIA,MAAM,CAACE,GAAI;cAC9CE,UAAU,GAAGJ,MAAM,IAAIA,MAAM,CAACf,IAAI;cAExC,IAAI,CAACS,kBAAkB,CAACW,GAAG,CAACJ,UAAU,CAAC,EAAE;gBACvCP,kBAAkB,CAACY,GAAG,CAACL,UAAU,EAAE,IAAIN,GAAG,EAAE,CAAC;cAC/C;cAEMY,SAAS,GAAGb,kBAAkB,CAACc,GAAG,CAACP,UAAU,CAAC;cACpDrC,SAAS,CAAC2C,SAAS,EAAE,gBAAgB,CAAC;cACtCA,SAAS,CAACD,GAAG,WAAIrB,IAAI,cAAIW,OAAO,GAAI;gBAClCX,IAAI,EAAJA,IAAI;gBACJW,OAAO,EAAPA,OAAO;gBACPM,GAAG,EAAHA,GAAG;gBACHC,SAAS,EAATA,SAAS;gBACTC,UAAU,EAAVA;cACF,CAAC,CAAC;YACJ;UAAC;YAAA;UAAA;YAAA;UAAA;UAED,IAAIrC,KAAK,CAAC0C,IAAI,EAAE;YACRC,IAAI,GAAG,EAAE;YAEfhB,kBAAkB,CAACiB,OAAO,CAAC,UAACd,OAAO,EAAEI,UAAU,EAAK;cAClDJ,OAAO,CAACc,OAAO,CAAC,gBAAiD;gBAAA,IAA/C1B,IAAI,QAAJA,IAAI;kBAAEW,OAAO,QAAPA,OAAO;kBAAEM,GAAG,QAAHA,GAAG;kBAAEC,SAAS,QAATA,SAAS;kBAAEC,UAAU,QAAVA,UAAU;gBACzDM,IAAI,CAACE,IAAI,CAAC,CAAC3B,IAAI,EAAEW,OAAO,EAAEK,UAAU,EAAEC,GAAG,IAAI,SAAS,EAAEC,SAAS,IAAI,SAAS,EAAEC,UAAU,IAAI,SAAS,CAAC,CAAC;cAC3G,CAAC,CAAC;YACJ,CAAC,CAAC;YAEFX,QAAQ,CAACoB,KAAK,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,EAAEH,IAAI,CAAC;UACxF,CAAC,MAAM;YACCI,KAAK,GAAG,EAAE;YAEhBpB,kBAAkB,CAACiB,OAAO,CAAC,UAACd,OAAO,EAAEI,UAAU,EAAK;cAClD,IAAMc,WAAW,GAAG,EAAE;cAEtBlB,OAAO,CAACc,OAAO,CAAC,iBAAiD;gBAAA,IAA/C1B,IAAI,SAAJA,IAAI;kBAAEW,OAAO,SAAPA,OAAO;kBAAEM,GAAG,SAAHA,GAAG;kBAAEC,SAAS,SAATA,SAAS;kBAAEC,UAAU,SAAVA,UAAU;gBACzD,IAAMY,QAAQ,GAAG,EAAE;gBAEnB,IAAId,GAAG,EAAE;kBACPc,QAAQ,CAACJ,IAAI,CAAC;oBAAC3B,IAAI,YAAKQ,QAAQ,CAACwB,MAAM,CAACC,IAAI,CAAC,MAAM,CAAC,cAAIhB,GAAG;kBAAE,CAAC,CAAC;gBACjE;gBAEA,IAAIC,SAAS,EAAE;kBACba,QAAQ,CAACJ,IAAI,CAAC;oBAAC3B,IAAI,YAAKQ,QAAQ,CAACwB,MAAM,CAACC,IAAI,CAAC,YAAY,CAAC,cAAIf,SAAS;kBAAE,CAAC,CAAC;gBAC7E;gBAEA,IAAIC,UAAU,EAAE;kBACdY,QAAQ,CAACJ,IAAI,CAAC;oBAAC3B,IAAI,YAAKQ,QAAQ,CAACwB,MAAM,CAACC,IAAI,CAAC,aAAa,CAAC,cAAId,UAAU;kBAAE,CAAC,CAAC;gBAC/E;gBAEAW,WAAW,CAACH,IAAI,CAAC;kBACf3B,IAAI,YAAKA,IAAI,cAAIW,OAAO,CAAE;kBAC1BoB,QAAQ,EAARA;gBACF,CAAC,CAAC;cACJ,CAAC,CAAC;cAEFF,KAAK,CAACF,IAAI,CAAC;gBACT3B,IAAI,EAAEgB,UAAU;gBAChBe,QAAQ,EAAED;cACZ,CAAC,CAAC;YACJ,CAAC,CAAC;YAEFtB,QAAQ,CAAC0B,IAAI,CAAC,UAAU,EAAEL,KAAK,EAAE;cAACM,KAAK,EAAE;YAAI,CAAC,CAAC;UACjD;QAAC;QAAA;UAAA;MAAA;IAAA;EAAA,CACF;EAAA;AAAA;AAED,wBAA6C,IAAAC,+BAAgB,EAAC,UAAU,EAAE;IAClEC,EAAE,cAACpD,MAAc,EAAEuB,QAAkB,EAAE8B,SAAiB,EAAExD,KAAa,EAAEC,IAAmB,EAAiB;MAAA;QAAA;UAAA;YAAA;cACjHyB,QAAQ,CAAC+B,IAAI,sEAA0E;cAAC;cAAA,OAClFhC,MAAI,CAACtB,MAAM,EAAEuB,QAAQ,EAAE1B,KAAK,EAAEC,IAAI,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAC3C,CAAC;IAEKwB,IAAI,gBAACtB,MAAc,EAAEuB,QAAkB,EAAE8B,SAAiB,EAAExD,KAAa,EAAEC,IAAmB,EAAiB;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC7GwB,MAAI,CAACtB,MAAM,EAAEuB,QAAQ,EAAE1B,KAAK,EAAEC,IAAI,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAC3C,CAAC;IAEKyD,kBAAkB,8BAACvD,MAAc,EAAEuB,QAAkB,EAAE8B,SAAiB,EAAExD,KAAa,EAAEC,IAAmB,EAAiB;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAUxFC,YAAY,CAACC,MAAM,EAAEH,KAAK,CAAC;YAAA;cAA9Da,SAA0B;cAAA;cAAA,OACTV,MAAM,CAACwD,gBAAgB,EAAE;YAAA;cAA1CtC,QAAQ;cAEd;cACA;cACMM,kBAAsD,GAAG,IAAIC,GAAG,EAAE;cAAA,uCACjDf,SAAS;cAAA;cAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;cAArBQ,SAAQ;cACVuC,WAAW,GAAgBvC,SAAQ,CAAnCuC,WAAW,EAAEC,UAAU,GAAIxC,SAAQ,CAAtBwC,UAAU;cAC1B3B,UAAU;cAAA,IACT0B,WAAW;gBAAA;gBAAA;cAAA;cAAA;YAAA;cAIhB,IAAI,CAACC,UAAU,EAAE;gBACf3B,UAAU,GAAG0B,WAAW;cAC1B,CAAC,MAAM;gBACL1B,UAAU,aAAM0B,WAAW,2BAAiBC,UAAU,CAAE;cAC1D;cAEA,IAAI,CAAClC,kBAAkB,CAACW,GAAG,CAACJ,UAAU,CAAC,EAAE;gBACvCP,kBAAkB,CAACY,GAAG,CAACL,UAAU,EAAE,IAAIN,GAAG,EAAE,CAAC;cAC/C;cAEMY,SAAS,GAAGb,kBAAkB,CAACc,GAAG,CAACP,UAAU,CAAC;cACpDrC,SAAS,CAAC2C,SAAS,EAAE,gBAAgB,CAAC;cACtCA,SAAS,CAACD,GAAG,CAAClB,SAAQ,CAACH,IAAI,EAAEG,SAAQ,CAAC;YAAC;cAAA;cAAA;YAAA;cAAA;cAAA;YAAA;cAAA;cAAA;cAAA;YAAA;cAAA;cAAA;cAAA;YAAA;cAGzCyC,OAAO,CAACC,GAAG,CACT,8FAA8F,gCACtEC,MAAM,CAAC3C,QAAQ,CAACH,IAAI,CAAC,CAAC+C,WAAW,EAAE,CAACC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,cAAW,CAC1F;cACDJ,OAAO,CAACC,GAAG,EAAE;cAAC,wCAEwBpC,kBAAkB;cAAA;gBAAxD,uDAA0D;kBAAA,mEAA9CO,WAAU,oBAAErB,UAAS;kBAC/BiD,OAAO,CAACC,GAAG,CAAC,OAAO,CAAC;kBACpBD,OAAO,CAACC,GAAG,EAAE;kBAEPI,KAAK,GAAG,EAAE;kBACVC,IAAI,GAAG,EAAE;kBAAA,wCACoBvD,UAAS;kBAAA;oBAA5C,uDAA8C;sBAAA,mEAAlCK,IAAI,oBAAGa,UAAU,mBAAVA,UAAU;sBAC3BoC,KAAK,CAACtB,IAAI,CAAC3B,IAAI,CAAC;sBAChB,IAAIa,UAAU,IAAIA,UAAU,CAACI,GAAG,EAAE;wBAChCiC,IAAI,CAACvB,IAAI,CAAChC,UAAS,CAACwD,IAAI,KAAK,CAAC,GAAGtC,UAAU,CAACI,GAAG,aAAMJ,UAAU,CAACI,GAAG,eAAKjB,IAAI,MAAG,CAAC;sBAClF;oBACF;kBAAC;oBAAA;kBAAA;oBAAA;kBAAA;kBAEKoD,OAAO,GAAG,EAAE;kBAClBA,OAAO,CAACzB,IAAI,mEAA4DsB,KAAK,CAACI,IAAI,CAAC,IAAI,CAAC,OAAI;kBAC5F,IAAIH,IAAI,CAACI,MAAM,GAAG,CAAC,EAAE;oBACnBF,OAAO,CAACzB,IAAI,4DAAqDuB,IAAI,CAACG,IAAI,CAAC,IAAI,CAAC,OAAI;kBACtF;kBACAD,OAAO,CAACzB,IAAI,CAAC,gEAAgE,CAAC;kBAE9EiB,OAAO,CAACC,GAAG,CAACO,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;kBAC9BT,OAAO,CAACC,GAAG,EAAE;kBAEb,IAAI7B,WAAU,EAAE;oBACd4B,OAAO,CAACC,GAAG,CAAC7B,WAAU,CAACuC,IAAI,EAAE,CAAC;kBAChC,CAAC,MAAM;oBACL;kBAAA;kBAGFX,OAAO,CAACC,GAAG,EAAE;gBACf;cAAC;gBAAA;cAAA;gBAAA;cAAA;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IACH;EACF,CAAC,CAAC;EAtFKW,GAAG,qBAAHA,GAAG;EAAYC,SAAS,qBAAnBC,QAAQ;EAAaC,QAAQ,qBAARA,QAAQ;AAsFtC;AAAA;AAII,SAASD,QAAQ,CAACpB,SAAiB,EAAE;EAC1CmB,SAAS,CAACnB,SAAS,CAAC;EACpBA,SAAS,CAACsB,WAAW,CAAC,wCAAwC,CAAC;AACjE"}