JezK
Edit File: list.js.map
{"version":3,"file":"list.js","names":["invariant","require","micromatch","requireLockfile","buildCount","trees","length","count","tree","shadow","children","buildTree","resolver","linker","patterns","opts","onlyFresh","ignoreHoisted","treesByKey","getFlatHoistedTree","flatTree","workspaceLayout","hoisted","virtualManifestName","filter","key","indexOf","hoistedByKey","info","ref","pkg","_reference","hint","parent","getParent","depth","color","isFresh","pattern","isNewPattern","originalKey","reqDepth","topLevel","showAll","nextDepthIsValid","Number","name","version","nextChildDepthIsValid","dedupePatterns","dependencies","getStrictResolvedPattern","push","split","parentKey","slice","lastIndexOf","hasWrapper","commander","args","setFlags","description","option","getReqDepth","inputDepth","test","filterTree","filters","child","notDim","hasChildren","found","any","contains","getDevDeps","manifest","devDependencies","Set","Object","keys","map","run","config","reporter","flags","Lockfile","fromDirectory","lockfileFolder","lockfile","install","Install","fetchRequestFromCwd","depRequests","requests","init","isFlat","flat","isFrozen","frozenLockfile","activePatterns","production","devDeps","has","warn","lang","force"],"sourceRoot":"../../../src","sources":["cli/commands/list.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport type PackageResolver from '../../package-resolver.js';\nimport type PackageLinker from '../../package-linker.js';\nimport type {Tree, Trees} from '../../reporters/types.js';\nimport {Install} from './install.js';\n\nimport Lockfile from '../../lockfile';\n\nconst invariant = require('invariant');\nconst micromatch = require('micromatch');\n\nexport const requireLockfile = true;\n\nexport type ListOptions = {\n reqDepth?: ?number,\n};\n\nfunction buildCount(trees: ?Trees): number {\n if (!trees || !trees.length) {\n return 0;\n }\n\n let count = 0;\n\n for (const tree of trees) {\n if (tree.shadow) {\n continue;\n }\n\n count++;\n count += buildCount(tree.children);\n }\n\n return count;\n}\n\nexport async function buildTree(\n resolver: PackageResolver,\n linker: PackageLinker,\n patterns: Array<string>,\n opts: ListOptions,\n onlyFresh?: boolean,\n ignoreHoisted?: boolean,\n): Promise<{\n count: number,\n trees: Trees,\n}> {\n const treesByKey = {};\n const trees = [];\n const flatTree = await linker.getFlatHoistedTree(patterns);\n\n // If using workspaces, filter out the virtual manifest\n const {workspaceLayout} = resolver;\n const hoisted =\n workspaceLayout && workspaceLayout.virtualManifestName\n ? flatTree.filter(([key]) => key.indexOf(workspaceLayout.virtualManifestName) === -1)\n : flatTree;\n\n const hoistedByKey = {};\n for (const [key, info] of hoisted) {\n hoistedByKey[key] = info;\n }\n\n // build initial trees\n for (const [, info] of hoisted) {\n const ref = info.pkg._reference;\n const hint = null;\n const parent = getParent(info.key, treesByKey);\n const children = [];\n let depth = 0;\n let color = 'bold';\n invariant(ref, 'expected reference');\n\n if (onlyFresh) {\n let isFresh = false;\n for (const pattern of ref.patterns) {\n if (resolver.isNewPattern(pattern)) {\n isFresh = true;\n break;\n }\n }\n if (!isFresh) {\n continue;\n }\n }\n\n if (info.originalKey !== info.key || opts.reqDepth === 0) {\n // was hoisted\n color = null;\n }\n // check parent to obtain next depth\n if (parent && parent.depth > 0) {\n depth = parent.depth + 1;\n } else {\n depth = 0;\n }\n\n const topLevel = opts.reqDepth === 0 && !parent;\n const showAll = opts.reqDepth === -1;\n const nextDepthIsValid = depth + 1 <= Number(opts.reqDepth);\n\n if (topLevel || nextDepthIsValid || showAll) {\n treesByKey[info.key] = {\n name: `${info.pkg.name}@${info.pkg.version}`,\n children,\n hint,\n color,\n depth,\n };\n }\n\n // add in dummy children for hoisted dependencies\n const nextChildDepthIsValid = depth + 1 < Number(opts.reqDepth);\n invariant(ref, 'expected reference');\n if ((!ignoreHoisted && nextDepthIsValid) || showAll) {\n for (const pattern of resolver.dedupePatterns(ref.dependencies)) {\n const pkg = resolver.getStrictResolvedPattern(pattern);\n\n if (!hoistedByKey[`${info.key}#${pkg.name}`] && (nextChildDepthIsValid || showAll)) {\n children.push({\n name: pattern,\n color: 'dim',\n shadow: true,\n });\n }\n }\n }\n }\n\n // add children\n for (const [, info] of hoisted) {\n const tree = treesByKey[info.key];\n const parent = getParent(info.key, treesByKey);\n if (!tree) {\n continue;\n }\n\n if (info.key.split('#').length === 1) {\n trees.push(tree);\n continue;\n }\n\n if (parent) {\n parent.children.push(tree);\n }\n }\n\n return {trees, count: buildCount(trees)};\n}\n\nexport function getParent(key: string, treesByKey: Object): Object {\n const parentKey = key.slice(0, key.lastIndexOf('#'));\n return treesByKey[parentKey];\n}\n\nexport function hasWrapper(commander: Object, args: Array<string>): boolean {\n return true;\n}\n\nexport function setFlags(commander: Object) {\n commander.description('Lists installed packages.');\n commander.option('--depth [depth]', 'Limit the depth of the shown dependencies');\n commander.option('--pattern [pattern]', 'Filter dependencies by pattern');\n}\n\nexport function getReqDepth(inputDepth: string): number {\n return inputDepth && /^\\d+$/.test(inputDepth) ? Number(inputDepth) : -1;\n}\n\nexport function filterTree(tree: Tree, filters: Array<string>, pattern: string = ''): boolean {\n if (tree.children) {\n tree.children = tree.children.filter(child => filterTree(child, filters, pattern));\n }\n\n const notDim = tree.color !== 'dim';\n const hasChildren = tree.children == null ? false : tree.children.length > 0;\n const name = tree.name.slice(0, tree.name.lastIndexOf('@'));\n const found = micromatch.any(name, filters) || micromatch.contains(name, pattern);\n\n return notDim && (found || hasChildren);\n}\n\nexport function getDevDeps(manifest: Object): Set<string> {\n if (manifest.devDependencies) {\n return new Set(Object.keys(manifest.devDependencies).map(key => `${key}@${manifest.devDependencies[key]}`));\n } else {\n return new Set();\n }\n}\n\nexport async function run(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n const lockfile = await Lockfile.fromDirectory(config.lockfileFolder, reporter);\n const install = new Install(flags, config, reporter, lockfile);\n\n const {requests: depRequests, patterns, manifest, workspaceLayout} = await install.fetchRequestFromCwd();\n await install.resolver.init(depRequests, {\n isFlat: install.flags.flat,\n isFrozen: install.flags.frozenLockfile,\n workspaceLayout,\n });\n\n let activePatterns = [];\n if (config.production) {\n const devDeps = getDevDeps(manifest);\n activePatterns = patterns.filter(pattern => !devDeps.has(pattern));\n } else {\n activePatterns = patterns;\n }\n\n const opts: ListOptions = {\n reqDepth: getReqDepth(flags.depth),\n };\n\n let {trees}: {trees: Trees} = await buildTree(install.resolver, install.linker, activePatterns, opts);\n\n if (args.length > 0) {\n reporter.warn(reporter.lang('deprecatedListArgs'));\n }\n if ((args.length > 0) || flags.pattern) {\n trees = trees.filter(tree => filterTree(tree, args, flags.pattern));\n }\n\n reporter.tree('list', trees, {force: true});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAsC;AAAA;AAAA;AAEtC,IAAMA,SAAS,GAAGC,OAAO,CAAC,WAAW,CAAC;AACtC,IAAMC,UAAU,GAAGD,OAAO,CAAC,YAAY,CAAC;AAEjC,IAAME,eAAe,GAAG,IAAI;AAAC;AAMpC,SAASC,UAAU,CAACC,KAAa,EAAU;EACzC,IAAI,CAACA,KAAK,IAAI,CAACA,KAAK,CAACC,MAAM,EAAE;IAC3B,OAAO,CAAC;EACV;EAEA,IAAIC,KAAK,GAAG,CAAC;EAAC,2CAEKF,KAAK;IAAA;EAAA;IAAxB,oDAA0B;MAAA,IAAfG,IAAI;MACb,IAAIA,IAAI,CAACC,MAAM,EAAE;QACf;MACF;MAEAF,KAAK,EAAE;MACPA,KAAK,IAAIH,UAAU,CAACI,IAAI,CAACE,QAAQ,CAAC;IACpC;EAAC;IAAA;EAAA;IAAA;EAAA;EAED,OAAOH,KAAK;AACd;AAAC,SAEqBI,SAAS;EAAA;AAAA;AAAA;EAAA,+FAAxB,iBACLC,QAAyB,EACzBC,MAAqB,EACrBC,QAAuB,EACvBC,IAAiB,EACjBC,SAAmB,EACnBC,aAAuB;IAAA;IAAA;MAAA;QAAA;UAKjBC,UAAU,GAAG,CAAC,CAAC;UACfb,KAAK,GAAG,EAAE;UAAA;UAAA,OACOQ,MAAM,CAACM,kBAAkB,CAACL,QAAQ,CAAC;QAAA;UAApDM,QAAQ;UAEd;UACOC,eAAe,GAAIT,QAAQ,CAA3BS,eAAe;UAChBC,OAAO,GACXD,eAAe,IAAIA,eAAe,CAACE,mBAAmB,GAClDH,QAAQ,CAACI,MAAM,CAAC;YAAA;cAAEC,GAAG;YAAA,OAAMA,GAAG,CAACC,OAAO,CAACL,eAAe,CAACE,mBAAmB,CAAC,KAAK,CAAC,CAAC;UAAA,EAAC,GACnFH,QAAQ;UAERO,YAAY,GAAG,CAAC,CAAC;UAAA,wCACGL,OAAO;UAAA;YAAjC,uDAAmC;cAAA,mEAAvBG,GAAG,oBAAEG,IAAI;cACnBD,YAAY,CAACF,GAAG,CAAC,GAAGG,IAAI;YAC1B;;YAEA;UAAA;YAAA;UAAA;YAAA;UAAA;UAAA,wCACuBN,OAAO;UAAA;UAAA;QAAA;UAAA;YAAA;YAAA;UAAA;UAAA,mEAAhBM,KAAI;UACVC,GAAG,GAAGD,KAAI,CAACE,GAAG,CAACC,UAAU;UACzBC,IAAI,GAAG,IAAI;UACXC,MAAM,GAAGC,SAAS,CAACN,KAAI,CAACH,GAAG,EAAEP,UAAU,CAAC;UACxCR,QAAQ,GAAG,EAAE;UACfyB,KAAK,GAAG,CAAC;UACTC,KAAK,GAAG,MAAM;UAClBpC,SAAS,CAAC6B,GAAG,EAAE,oBAAoB,CAAC;UAAC,KAEjCb,SAAS;YAAA;YAAA;UAAA;UACPqB,OAAO,GAAG,KAAK;UAAA,wCACGR,GAAG,CAACf,QAAQ;UAAA;UAAA;QAAA;UAAA;YAAA;YAAA;UAAA;UAAvBwB,OAAO;UAAA,KACZ1B,QAAQ,CAAC2B,YAAY,CAACD,OAAO,CAAC;YAAA;YAAA;UAAA;UAChCD,OAAO,GAAG,IAAI;UAAC;QAAA;UAAA;UAAA;QAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAAA,IAIdA,OAAO;YAAA;YAAA;UAAA;UAAA;QAAA;UAKd,IAAIT,KAAI,CAACY,WAAW,KAAKZ,KAAI,CAACH,GAAG,IAAIV,IAAI,CAAC0B,QAAQ,KAAK,CAAC,EAAE;YACxD;YACAL,KAAK,GAAG,IAAI;UACd;UACA;UACA,IAAIH,MAAM,IAAIA,MAAM,CAACE,KAAK,GAAG,CAAC,EAAE;YAC9BA,KAAK,GAAGF,MAAM,CAACE,KAAK,GAAG,CAAC;UAC1B,CAAC,MAAM;YACLA,KAAK,GAAG,CAAC;UACX;UAEMO,QAAQ,GAAG3B,IAAI,CAAC0B,QAAQ,KAAK,CAAC,IAAI,CAACR,MAAM;UACzCU,OAAO,GAAG5B,IAAI,CAAC0B,QAAQ,KAAK,CAAC,CAAC;UAC9BG,gBAAgB,GAAGT,KAAK,GAAG,CAAC,IAAIU,MAAM,CAAC9B,IAAI,CAAC0B,QAAQ,CAAC;UAE3D,IAAIC,QAAQ,IAAIE,gBAAgB,IAAID,OAAO,EAAE;YAC3CzB,UAAU,CAACU,KAAI,CAACH,GAAG,CAAC,GAAG;cACrBqB,IAAI,YAAKlB,KAAI,CAACE,GAAG,CAACgB,IAAI,cAAIlB,KAAI,CAACE,GAAG,CAACiB,OAAO,CAAE;cAC5CrC,QAAQ,EAARA,QAAQ;cACRsB,IAAI,EAAJA,IAAI;cACJI,KAAK,EAALA,KAAK;cACLD,KAAK,EAALA;YACF,CAAC;UACH;;UAEA;UACMa,qBAAqB,GAAGb,KAAK,GAAG,CAAC,GAAGU,MAAM,CAAC9B,IAAI,CAAC0B,QAAQ,CAAC;UAC/DzC,SAAS,CAAC6B,GAAG,EAAE,oBAAoB,CAAC;UACpC,IAAK,CAACZ,aAAa,IAAI2B,gBAAgB,IAAKD,OAAO,EAAE;YAAA,wCAC7B/B,QAAQ,CAACqC,cAAc,CAACpB,GAAG,CAACqB,YAAY,CAAC;YAAA;cAA/D,uDAAiE;gBAAtDZ,QAAO;gBACVR,GAAG,GAAGlB,QAAQ,CAACuC,wBAAwB,CAACb,QAAO,CAAC;gBAEtD,IAAI,CAACX,YAAY,WAAIC,KAAI,CAACH,GAAG,cAAIK,GAAG,CAACgB,IAAI,EAAG,KAAKE,qBAAqB,IAAIL,OAAO,CAAC,EAAE;kBAClFjC,QAAQ,CAAC0C,IAAI,CAAC;oBACZN,IAAI,EAAER,QAAO;oBACbF,KAAK,EAAE,KAAK;oBACZ3B,MAAM,EAAE;kBACV,CAAC,CAAC;gBACJ;cACF;YAAC;cAAA;YAAA;cAAA;YAAA;UACH;QAAC;UAAA;UAAA;QAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAGH;UAAA,wCACuBa,OAAO;UAAA;UAAA;QAAA;UAAA;YAAA;YAAA;UAAA;UAAA,mEAAhBM,MAAI;UACVpB,IAAI,GAAGU,UAAU,CAACU,MAAI,CAACH,GAAG,CAAC;UAC3BQ,OAAM,GAAGC,SAAS,CAACN,MAAI,CAACH,GAAG,EAAEP,UAAU,CAAC;UAAA,IACzCV,IAAI;YAAA;YAAA;UAAA;UAAA;QAAA;UAAA,MAILoB,MAAI,CAACH,GAAG,CAAC4B,KAAK,CAAC,GAAG,CAAC,CAAC/C,MAAM,KAAK,CAAC;YAAA;YAAA;UAAA;UAClCD,KAAK,CAAC+C,IAAI,CAAC5C,IAAI,CAAC;UAAC;QAAA;UAInB,IAAIyB,OAAM,EAAE;YACVA,OAAM,CAACvB,QAAQ,CAAC0C,IAAI,CAAC5C,IAAI,CAAC;UAC5B;QAAC;UAAA;UAAA;QAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAAA;UAAA;UAAA;QAAA;UAAA,iCAGI;YAACH,KAAK,EAALA,KAAK;YAAEE,KAAK,EAAEH,UAAU,CAACC,KAAK;UAAC,CAAC;QAAA;QAAA;UAAA;MAAA;IAAA;EAAA,CACzC;EAAA;AAAA;AAEM,SAAS6B,SAAS,CAACT,GAAW,EAAEP,UAAkB,EAAU;EACjE,IAAMoC,SAAS,GAAG7B,GAAG,CAAC8B,KAAK,CAAC,CAAC,EAAE9B,GAAG,CAAC+B,WAAW,CAAC,GAAG,CAAC,CAAC;EACpD,OAAOtC,UAAU,CAACoC,SAAS,CAAC;AAC9B;AAEO,SAASG,UAAU,CAACC,SAAiB,EAAEC,IAAmB,EAAW;EAC1E,OAAO,IAAI;AACb;AAEO,SAASC,QAAQ,CAACF,SAAiB,EAAE;EAC1CA,SAAS,CAACG,WAAW,CAAC,2BAA2B,CAAC;EAClDH,SAAS,CAACI,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;EAChFJ,SAAS,CAACI,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;AAC3E;AAEO,SAASC,WAAW,CAACC,UAAkB,EAAU;EACtD,OAAOA,UAAU,IAAI,OAAO,CAACC,IAAI,CAACD,UAAU,CAAC,GAAGnB,MAAM,CAACmB,UAAU,CAAC,GAAG,CAAC,CAAC;AACzE;AAEO,SAASE,UAAU,CAAC1D,IAAU,EAAE2D,OAAsB,EAAiC;EAAA,IAA/B7B,OAAe,uEAAG,EAAE;EACjF,IAAI9B,IAAI,CAACE,QAAQ,EAAE;IACjBF,IAAI,CAACE,QAAQ,GAAGF,IAAI,CAACE,QAAQ,CAACc,MAAM,CAAC,UAAA4C,KAAK;MAAA,OAAIF,UAAU,CAACE,KAAK,EAAED,OAAO,EAAE7B,OAAO,CAAC;IAAA,EAAC;EACpF;EAEA,IAAM+B,MAAM,GAAG7D,IAAI,CAAC4B,KAAK,KAAK,KAAK;EACnC,IAAMkC,WAAW,GAAG9D,IAAI,CAACE,QAAQ,IAAI,IAAI,GAAG,KAAK,GAAGF,IAAI,CAACE,QAAQ,CAACJ,MAAM,GAAG,CAAC;EAC5E,IAAMwC,IAAI,GAAGtC,IAAI,CAACsC,IAAI,CAACS,KAAK,CAAC,CAAC,EAAE/C,IAAI,CAACsC,IAAI,CAACU,WAAW,CAAC,GAAG,CAAC,CAAC;EAC3D,IAAMe,KAAK,GAAGrE,UAAU,CAACsE,GAAG,CAAC1B,IAAI,EAAEqB,OAAO,CAAC,IAAIjE,UAAU,CAACuE,QAAQ,CAAC3B,IAAI,EAAER,OAAO,CAAC;EAEjF,OAAO+B,MAAM,KAAKE,KAAK,IAAID,WAAW,CAAC;AACzC;AAEO,SAASI,UAAU,CAACC,QAAgB,EAAe;EACxD,IAAIA,QAAQ,CAACC,eAAe,EAAE;IAC5B,OAAO,IAAIC,GAAG,CAACC,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAACC,eAAe,CAAC,CAACI,GAAG,CAAC,UAAAvD,GAAG;MAAA,iBAAOA,GAAG,cAAIkD,QAAQ,CAACC,eAAe,CAACnD,GAAG,CAAC;IAAA,CAAE,CAAC,CAAC;EAC7G,CAAC,MAAM;IACL,OAAO,IAAIoD,GAAG,EAAE;EAClB;AACF;AAAC,SAEqBI,GAAG;EAAA;AAAA;AAAA;EAAA,yFAAlB,kBAAmBC,MAAc,EAAEC,QAAkB,EAAEzB,SAAiB,EAAE0B,KAAa,EAAEzB,IAAmB;IAAA;IAAA;MAAA;QAAA;UAAA;UAAA,OAC1F0B,sBAAQ,CAACC,aAAa,CAACJ,MAAM,CAACK,cAAc,EAAEJ,QAAQ,CAAC;QAAA;UAAxEK,QAAQ;UACRC,OAAO,GAAG,KAAIC,kBAAO,EAACN,KAAK,EAAEF,MAAM,EAAEC,QAAQ,EAAEK,QAAQ,CAAC;UAAA;UAAA,OAEaC,OAAO,CAACE,mBAAmB,EAAE;QAAA;UAAA;UAAvFC,WAAW,yBAArBC,QAAQ;UAAe/E,QAAQ,yBAARA,QAAQ;UAAE6D,QAAQ,yBAARA,QAAQ;UAAEtD,eAAe,yBAAfA,eAAe;UAAA;UAAA,OAC3DoE,OAAO,CAAC7E,QAAQ,CAACkF,IAAI,CAACF,WAAW,EAAE;YACvCG,MAAM,EAAEN,OAAO,CAACL,KAAK,CAACY,IAAI;YAC1BC,QAAQ,EAAER,OAAO,CAACL,KAAK,CAACc,cAAc;YACtC7E,eAAe,EAAfA;UACF,CAAC,CAAC;QAAA;UAEE8E,cAAc,GAAG,EAAE;UACvB,IAAIjB,MAAM,CAACkB,UAAU,EAAE;YACfC,OAAO,GAAG3B,UAAU,CAACC,QAAQ,CAAC;YACpCwB,cAAc,GAAGrF,QAAQ,CAACU,MAAM,CAAC,UAAAc,OAAO;cAAA,OAAI,CAAC+D,OAAO,CAACC,GAAG,CAAChE,OAAO,CAAC;YAAA,EAAC;UACpE,CAAC,MAAM;YACL6D,cAAc,GAAGrF,QAAQ;UAC3B;UAEMC,IAAiB,GAAG;YACxB0B,QAAQ,EAAEsB,WAAW,CAACqB,KAAK,CAACjD,KAAK;UACnC,CAAC;UAAA;UAAA,OAEmCxB,SAAS,CAAC8E,OAAO,CAAC7E,QAAQ,EAAE6E,OAAO,CAAC5E,MAAM,EAAEsF,cAAc,EAAEpF,IAAI,CAAC;QAAA;UAAA;UAAhGV,KAAK,oBAALA,KAAK;UAEV,IAAIsD,IAAI,CAACrD,MAAM,GAAG,CAAC,EAAE;YACnB6E,QAAQ,CAACoB,IAAI,CAACpB,QAAQ,CAACqB,IAAI,CAAC,oBAAoB,CAAC,CAAC;UACpD;UACA,IAAK7C,IAAI,CAACrD,MAAM,GAAG,CAAC,IAAK8E,KAAK,CAAC9C,OAAO,EAAE;YACtCjC,KAAK,GAAGA,KAAK,CAACmB,MAAM,CAAC,UAAAhB,IAAI;cAAA,OAAI0D,UAAU,CAAC1D,IAAI,EAAEmD,IAAI,EAAEyB,KAAK,CAAC9C,OAAO,CAAC;YAAA,EAAC;UACrE;UAEA6C,QAAQ,CAAC3E,IAAI,CAAC,MAAM,EAAEH,KAAK,EAAE;YAACoG,KAAK,EAAE;UAAI,CAAC,CAAC;QAAC;QAAA;UAAA;MAAA;IAAA;EAAA,CAC7C;EAAA;AAAA"}