├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── README.md ├── get-linked.js ├── npm-list-linked.js ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf 3 | insert_final_newline = true 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 4 7 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | lib/server/mock 3 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "commonjs": true, 5 | "es6": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "parserOptions": { 9 | "sourceType": "module" 10 | }, 11 | "rules": { 12 | "indent": [ 13 | "error", 14 | 4 15 | ], 16 | "linebreak-style": [ 17 | "error", 18 | "unix" 19 | ], 20 | "quotes": [ 21 | "error", 22 | "single" 23 | ], 24 | "semi": [ 25 | "error", 26 | "always" 27 | ], 28 | "curly": [ 29 | "error", 30 | "all" 31 | ], 32 | "space-before-function-paren": ["error", "never"], 33 | "no-console": "off" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea 3 | npm-debug.log 4 | node_modules 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # npm-list-linked 2 | 3 | List linked npm packages in a project; also recursively for chains of dependencies. 4 | 5 | $ npm-list-linked 6 | Linked packages in /home/user/projects/some-project/ 7 | @prefix/package 0.2.7 8 | other-package 0.1.2 9 | 10 | ## Use globally 11 | 12 | npm i -g npm-list-linked 13 | npm-list-linked [path to project root, default cwd] 14 | 15 | ## Use in a project 16 | 17 | npm i --save-dev npm-list-linked 18 | 19 | **package.json:** 20 | 21 | "scripts": { 22 | "linked": "npm-list-linked" 23 | } 24 | 25 | Run script: 26 | 27 | npm run linked 28 | 29 | ## Using as a module 30 | 31 | const {getLinked} = require('npm-list-linked'); 32 | console.log(getLinked()); 33 | -------------------------------------------------------------------------------- /get-linked.js: -------------------------------------------------------------------------------- 1 | const glob = require('glob'); 2 | const fs = require('fs-extra'); 3 | const path = require('path'); 4 | 5 | const PACKAGES_GLOB = '{@*/*,[^@]*}/'; 6 | const NODE_MODULES = 'node_modules'; 7 | 8 | /** 9 | * Returns a list of the listed packages in the directory 10 | * @param {String} [cwd] Node modules directory - Defaults to process directory 11 | */ 12 | function getLinked(cwd = path.join(process.cwd(), NODE_MODULES)) { 13 | return glob.sync(PACKAGES_GLOB, {cwd}) 14 | .map(match => match.slice(0, -1)) 15 | .filter(file => { 16 | const stat = fs.lstatSync(path.join(cwd, file)); 17 | return stat.isSymbolicLink(); 18 | }); 19 | } 20 | 21 | module.exports = { 22 | getLinked, 23 | }; -------------------------------------------------------------------------------- /npm-list-linked.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const fs = require('fs-extra'); 4 | const path = require('path'); 5 | const {getLinked} = require('./get-linked'); 6 | 7 | const NODE_MODULES = 'node_modules'; 8 | 9 | function printLinked(cwd, level = 1) { 10 | const indentation = ' '.repeat(level * 4); 11 | const linked = getLinked(); 12 | 13 | if(level === 1) { 14 | if(linked.length > 0) { 15 | console.log(`Linked packages in ${cwd}:`); 16 | } else { 17 | console.log('No linked packages in', cwd); 18 | } 19 | } 20 | 21 | linked.forEach(link => { 22 | const version = fs.readJsonSync(path.join(NODE_MODULES, link, 'package.json')).version; 23 | console.log(indentation + link, version); 24 | printLinked(path.join(NODE_MODULES, link), level + 1); 25 | }); 26 | } 27 | 28 | const cwd = process.argv.length > 2 ? process.argv[2] : process.cwd(); 29 | 30 | printLinked(cwd); 31 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm-list-linked", 3 | "version": "0.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/highlight": { 17 | "version": "7.0.0", 18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 20 | "dev": true, 21 | "requires": { 22 | "chalk": "^2.0.0", 23 | "esutils": "^2.0.2", 24 | "js-tokens": "^4.0.0" 25 | } 26 | }, 27 | "acorn": { 28 | "version": "6.1.1", 29 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", 30 | "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", 31 | "dev": true 32 | }, 33 | "acorn-jsx": { 34 | "version": "5.0.1", 35 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", 36 | "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", 37 | "dev": true 38 | }, 39 | "ajv": { 40 | "version": "6.10.0", 41 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", 42 | "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", 43 | "dev": true, 44 | "requires": { 45 | "fast-deep-equal": "^2.0.1", 46 | "fast-json-stable-stringify": "^2.0.0", 47 | "json-schema-traverse": "^0.4.1", 48 | "uri-js": "^4.2.2" 49 | } 50 | }, 51 | "ansi-escapes": { 52 | "version": "3.2.0", 53 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 54 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 55 | "dev": true 56 | }, 57 | "ansi-regex": { 58 | "version": "3.0.0", 59 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 60 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 61 | "dev": true 62 | }, 63 | "ansi-styles": { 64 | "version": "3.2.1", 65 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 66 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 67 | "dev": true, 68 | "requires": { 69 | "color-convert": "^1.9.0" 70 | } 71 | }, 72 | "argparse": { 73 | "version": "1.0.10", 74 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 75 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 76 | "dev": true, 77 | "requires": { 78 | "sprintf-js": "~1.0.2" 79 | } 80 | }, 81 | "astral-regex": { 82 | "version": "1.0.0", 83 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 84 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 85 | "dev": true 86 | }, 87 | "balanced-match": { 88 | "version": "0.4.2", 89 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", 90 | "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" 91 | }, 92 | "brace-expansion": { 93 | "version": "1.1.7", 94 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", 95 | "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", 96 | "requires": { 97 | "balanced-match": "^0.4.1", 98 | "concat-map": "0.0.1" 99 | } 100 | }, 101 | "callsites": { 102 | "version": "3.1.0", 103 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 104 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 105 | "dev": true 106 | }, 107 | "chalk": { 108 | "version": "2.4.2", 109 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 110 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 111 | "dev": true, 112 | "requires": { 113 | "ansi-styles": "^3.2.1", 114 | "escape-string-regexp": "^1.0.5", 115 | "supports-color": "^5.3.0" 116 | } 117 | }, 118 | "chardet": { 119 | "version": "0.7.0", 120 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 121 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 122 | "dev": true 123 | }, 124 | "cli-cursor": { 125 | "version": "2.1.0", 126 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 127 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 128 | "dev": true, 129 | "requires": { 130 | "restore-cursor": "^2.0.0" 131 | } 132 | }, 133 | "cli-width": { 134 | "version": "2.2.0", 135 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 136 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 137 | "dev": true 138 | }, 139 | "color-convert": { 140 | "version": "1.9.3", 141 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 142 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 143 | "dev": true, 144 | "requires": { 145 | "color-name": "1.1.3" 146 | } 147 | }, 148 | "color-name": { 149 | "version": "1.1.3", 150 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 151 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 152 | "dev": true 153 | }, 154 | "concat-map": { 155 | "version": "0.0.1", 156 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 157 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 158 | }, 159 | "cross-spawn": { 160 | "version": "6.0.5", 161 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 162 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 163 | "dev": true, 164 | "requires": { 165 | "nice-try": "^1.0.4", 166 | "path-key": "^2.0.1", 167 | "semver": "^5.5.0", 168 | "shebang-command": "^1.2.0", 169 | "which": "^1.2.9" 170 | } 171 | }, 172 | "debug": { 173 | "version": "4.1.1", 174 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 175 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 176 | "dev": true, 177 | "requires": { 178 | "ms": "^2.1.1" 179 | } 180 | }, 181 | "deep-is": { 182 | "version": "0.1.3", 183 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 184 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 185 | "dev": true 186 | }, 187 | "doctrine": { 188 | "version": "3.0.0", 189 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 190 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 191 | "dev": true, 192 | "requires": { 193 | "esutils": "^2.0.2" 194 | } 195 | }, 196 | "emoji-regex": { 197 | "version": "7.0.3", 198 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 199 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 200 | "dev": true 201 | }, 202 | "escape-string-regexp": { 203 | "version": "1.0.5", 204 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 205 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 206 | "dev": true 207 | }, 208 | "eslint": { 209 | "version": "5.16.0", 210 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", 211 | "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", 212 | "dev": true, 213 | "requires": { 214 | "@babel/code-frame": "^7.0.0", 215 | "ajv": "^6.9.1", 216 | "chalk": "^2.1.0", 217 | "cross-spawn": "^6.0.5", 218 | "debug": "^4.0.1", 219 | "doctrine": "^3.0.0", 220 | "eslint-scope": "^4.0.3", 221 | "eslint-utils": "^1.3.1", 222 | "eslint-visitor-keys": "^1.0.0", 223 | "espree": "^5.0.1", 224 | "esquery": "^1.0.1", 225 | "esutils": "^2.0.2", 226 | "file-entry-cache": "^5.0.1", 227 | "functional-red-black-tree": "^1.0.1", 228 | "glob": "^7.1.2", 229 | "globals": "^11.7.0", 230 | "ignore": "^4.0.6", 231 | "import-fresh": "^3.0.0", 232 | "imurmurhash": "^0.1.4", 233 | "inquirer": "^6.2.2", 234 | "js-yaml": "^3.13.0", 235 | "json-stable-stringify-without-jsonify": "^1.0.1", 236 | "levn": "^0.3.0", 237 | "lodash": "^4.17.11", 238 | "minimatch": "^3.0.4", 239 | "mkdirp": "^0.5.1", 240 | "natural-compare": "^1.4.0", 241 | "optionator": "^0.8.2", 242 | "path-is-inside": "^1.0.2", 243 | "progress": "^2.0.0", 244 | "regexpp": "^2.0.1", 245 | "semver": "^5.5.1", 246 | "strip-ansi": "^4.0.0", 247 | "strip-json-comments": "^2.0.1", 248 | "table": "^5.2.3", 249 | "text-table": "^0.2.0" 250 | } 251 | }, 252 | "eslint-scope": { 253 | "version": "4.0.3", 254 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", 255 | "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", 256 | "dev": true, 257 | "requires": { 258 | "esrecurse": "^4.1.0", 259 | "estraverse": "^4.1.1" 260 | } 261 | }, 262 | "eslint-utils": { 263 | "version": "1.3.1", 264 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", 265 | "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", 266 | "dev": true 267 | }, 268 | "eslint-visitor-keys": { 269 | "version": "1.0.0", 270 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 271 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 272 | "dev": true 273 | }, 274 | "espree": { 275 | "version": "5.0.1", 276 | "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", 277 | "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", 278 | "dev": true, 279 | "requires": { 280 | "acorn": "^6.0.7", 281 | "acorn-jsx": "^5.0.0", 282 | "eslint-visitor-keys": "^1.0.0" 283 | } 284 | }, 285 | "esprima": { 286 | "version": "4.0.1", 287 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 288 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 289 | "dev": true 290 | }, 291 | "esquery": { 292 | "version": "1.0.1", 293 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 294 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 295 | "dev": true, 296 | "requires": { 297 | "estraverse": "^4.0.0" 298 | } 299 | }, 300 | "esrecurse": { 301 | "version": "4.2.1", 302 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 303 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 304 | "dev": true, 305 | "requires": { 306 | "estraverse": "^4.1.0" 307 | } 308 | }, 309 | "estraverse": { 310 | "version": "4.2.0", 311 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 312 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 313 | "dev": true 314 | }, 315 | "esutils": { 316 | "version": "2.0.2", 317 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 318 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 319 | "dev": true 320 | }, 321 | "external-editor": { 322 | "version": "3.0.3", 323 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", 324 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", 325 | "dev": true, 326 | "requires": { 327 | "chardet": "^0.7.0", 328 | "iconv-lite": "^0.4.24", 329 | "tmp": "^0.0.33" 330 | } 331 | }, 332 | "fast-deep-equal": { 333 | "version": "2.0.1", 334 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 335 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 336 | "dev": true 337 | }, 338 | "fast-json-stable-stringify": { 339 | "version": "2.0.0", 340 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 341 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 342 | "dev": true 343 | }, 344 | "fast-levenshtein": { 345 | "version": "2.0.6", 346 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 347 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 348 | "dev": true 349 | }, 350 | "figures": { 351 | "version": "2.0.0", 352 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 353 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 354 | "dev": true, 355 | "requires": { 356 | "escape-string-regexp": "^1.0.5" 357 | } 358 | }, 359 | "file-entry-cache": { 360 | "version": "5.0.1", 361 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 362 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 363 | "dev": true, 364 | "requires": { 365 | "flat-cache": "^2.0.1" 366 | } 367 | }, 368 | "flat-cache": { 369 | "version": "2.0.1", 370 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 371 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 372 | "dev": true, 373 | "requires": { 374 | "flatted": "^2.0.0", 375 | "rimraf": "2.6.3", 376 | "write": "1.0.3" 377 | } 378 | }, 379 | "flatted": { 380 | "version": "2.0.0", 381 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", 382 | "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", 383 | "dev": true 384 | }, 385 | "fs-extra": { 386 | "version": "3.0.1", 387 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", 388 | "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", 389 | "requires": { 390 | "graceful-fs": "^4.1.2", 391 | "jsonfile": "^3.0.0", 392 | "universalify": "^0.1.0" 393 | } 394 | }, 395 | "fs.realpath": { 396 | "version": "1.0.0", 397 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 398 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 399 | }, 400 | "functional-red-black-tree": { 401 | "version": "1.0.1", 402 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 403 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 404 | "dev": true 405 | }, 406 | "glob": { 407 | "version": "7.1.2", 408 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 409 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 410 | "requires": { 411 | "fs.realpath": "^1.0.0", 412 | "inflight": "^1.0.4", 413 | "inherits": "2", 414 | "minimatch": "^3.0.4", 415 | "once": "^1.3.0", 416 | "path-is-absolute": "^1.0.0" 417 | } 418 | }, 419 | "globals": { 420 | "version": "11.12.0", 421 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 422 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 423 | "dev": true 424 | }, 425 | "graceful-fs": { 426 | "version": "4.1.11", 427 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 428 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 429 | }, 430 | "has-flag": { 431 | "version": "3.0.0", 432 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 433 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 434 | "dev": true 435 | }, 436 | "iconv-lite": { 437 | "version": "0.4.24", 438 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 439 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 440 | "dev": true, 441 | "requires": { 442 | "safer-buffer": ">= 2.1.2 < 3" 443 | } 444 | }, 445 | "ignore": { 446 | "version": "4.0.6", 447 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 448 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 449 | "dev": true 450 | }, 451 | "import-fresh": { 452 | "version": "3.0.0", 453 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", 454 | "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", 455 | "dev": true, 456 | "requires": { 457 | "parent-module": "^1.0.0", 458 | "resolve-from": "^4.0.0" 459 | } 460 | }, 461 | "imurmurhash": { 462 | "version": "0.1.4", 463 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 464 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 465 | "dev": true 466 | }, 467 | "inflight": { 468 | "version": "1.0.6", 469 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 470 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 471 | "requires": { 472 | "once": "^1.3.0", 473 | "wrappy": "1" 474 | } 475 | }, 476 | "inherits": { 477 | "version": "2.0.3", 478 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 479 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 480 | }, 481 | "inquirer": { 482 | "version": "6.3.1", 483 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", 484 | "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", 485 | "dev": true, 486 | "requires": { 487 | "ansi-escapes": "^3.2.0", 488 | "chalk": "^2.4.2", 489 | "cli-cursor": "^2.1.0", 490 | "cli-width": "^2.0.0", 491 | "external-editor": "^3.0.3", 492 | "figures": "^2.0.0", 493 | "lodash": "^4.17.11", 494 | "mute-stream": "0.0.7", 495 | "run-async": "^2.2.0", 496 | "rxjs": "^6.4.0", 497 | "string-width": "^2.1.0", 498 | "strip-ansi": "^5.1.0", 499 | "through": "^2.3.6" 500 | }, 501 | "dependencies": { 502 | "ansi-regex": { 503 | "version": "4.1.0", 504 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 505 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 506 | "dev": true 507 | }, 508 | "strip-ansi": { 509 | "version": "5.2.0", 510 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 511 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 512 | "dev": true, 513 | "requires": { 514 | "ansi-regex": "^4.1.0" 515 | } 516 | } 517 | } 518 | }, 519 | "is-fullwidth-code-point": { 520 | "version": "2.0.0", 521 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 522 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 523 | "dev": true 524 | }, 525 | "is-promise": { 526 | "version": "2.1.0", 527 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 528 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 529 | "dev": true 530 | }, 531 | "isexe": { 532 | "version": "2.0.0", 533 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 534 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 535 | "dev": true 536 | }, 537 | "js-tokens": { 538 | "version": "4.0.0", 539 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 540 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 541 | "dev": true 542 | }, 543 | "js-yaml": { 544 | "version": "3.13.1", 545 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 546 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 547 | "dev": true, 548 | "requires": { 549 | "argparse": "^1.0.7", 550 | "esprima": "^4.0.0" 551 | } 552 | }, 553 | "json-schema-traverse": { 554 | "version": "0.4.1", 555 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 556 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 557 | "dev": true 558 | }, 559 | "json-stable-stringify-without-jsonify": { 560 | "version": "1.0.1", 561 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 562 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 563 | "dev": true 564 | }, 565 | "jsonfile": { 566 | "version": "3.0.0", 567 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz", 568 | "integrity": "sha1-kufHRE5f/V+jLmqa6LhQNN+DR9A=", 569 | "requires": { 570 | "graceful-fs": "^4.1.6" 571 | } 572 | }, 573 | "levn": { 574 | "version": "0.3.0", 575 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 576 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 577 | "dev": true, 578 | "requires": { 579 | "prelude-ls": "~1.1.2", 580 | "type-check": "~0.3.2" 581 | } 582 | }, 583 | "lodash": { 584 | "version": "4.17.11", 585 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 586 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 587 | "dev": true 588 | }, 589 | "mimic-fn": { 590 | "version": "1.2.0", 591 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 592 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 593 | "dev": true 594 | }, 595 | "minimatch": { 596 | "version": "3.0.4", 597 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 598 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 599 | "requires": { 600 | "brace-expansion": "^1.1.7" 601 | } 602 | }, 603 | "minimist": { 604 | "version": "0.0.8", 605 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 606 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 607 | "dev": true 608 | }, 609 | "mkdirp": { 610 | "version": "0.5.1", 611 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 612 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 613 | "dev": true, 614 | "requires": { 615 | "minimist": "0.0.8" 616 | } 617 | }, 618 | "ms": { 619 | "version": "2.1.1", 620 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 621 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 622 | "dev": true 623 | }, 624 | "mute-stream": { 625 | "version": "0.0.7", 626 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 627 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 628 | "dev": true 629 | }, 630 | "natural-compare": { 631 | "version": "1.4.0", 632 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 633 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 634 | "dev": true 635 | }, 636 | "nice-try": { 637 | "version": "1.0.5", 638 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 639 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 640 | "dev": true 641 | }, 642 | "once": { 643 | "version": "1.4.0", 644 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 645 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 646 | "requires": { 647 | "wrappy": "1" 648 | } 649 | }, 650 | "onetime": { 651 | "version": "2.0.1", 652 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 653 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 654 | "dev": true, 655 | "requires": { 656 | "mimic-fn": "^1.0.0" 657 | } 658 | }, 659 | "optionator": { 660 | "version": "0.8.2", 661 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 662 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 663 | "dev": true, 664 | "requires": { 665 | "deep-is": "~0.1.3", 666 | "fast-levenshtein": "~2.0.4", 667 | "levn": "~0.3.0", 668 | "prelude-ls": "~1.1.2", 669 | "type-check": "~0.3.2", 670 | "wordwrap": "~1.0.0" 671 | } 672 | }, 673 | "os-tmpdir": { 674 | "version": "1.0.2", 675 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 676 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 677 | "dev": true 678 | }, 679 | "parent-module": { 680 | "version": "1.0.1", 681 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 682 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 683 | "dev": true, 684 | "requires": { 685 | "callsites": "^3.0.0" 686 | } 687 | }, 688 | "path-is-absolute": { 689 | "version": "1.0.1", 690 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 691 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 692 | }, 693 | "path-is-inside": { 694 | "version": "1.0.2", 695 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 696 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 697 | "dev": true 698 | }, 699 | "path-key": { 700 | "version": "2.0.1", 701 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 702 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 703 | "dev": true 704 | }, 705 | "prelude-ls": { 706 | "version": "1.1.2", 707 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 708 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 709 | "dev": true 710 | }, 711 | "progress": { 712 | "version": "2.0.3", 713 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 714 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 715 | "dev": true 716 | }, 717 | "punycode": { 718 | "version": "2.1.1", 719 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 720 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 721 | "dev": true 722 | }, 723 | "regexpp": { 724 | "version": "2.0.1", 725 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 726 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 727 | "dev": true 728 | }, 729 | "resolve-from": { 730 | "version": "4.0.0", 731 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 732 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 733 | "dev": true 734 | }, 735 | "restore-cursor": { 736 | "version": "2.0.0", 737 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 738 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 739 | "dev": true, 740 | "requires": { 741 | "onetime": "^2.0.0", 742 | "signal-exit": "^3.0.2" 743 | } 744 | }, 745 | "rimraf": { 746 | "version": "2.6.3", 747 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 748 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 749 | "dev": true, 750 | "requires": { 751 | "glob": "^7.1.3" 752 | }, 753 | "dependencies": { 754 | "glob": { 755 | "version": "7.1.4", 756 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 757 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 758 | "dev": true, 759 | "requires": { 760 | "fs.realpath": "^1.0.0", 761 | "inflight": "^1.0.4", 762 | "inherits": "2", 763 | "minimatch": "^3.0.4", 764 | "once": "^1.3.0", 765 | "path-is-absolute": "^1.0.0" 766 | } 767 | } 768 | } 769 | }, 770 | "run-async": { 771 | "version": "2.3.0", 772 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 773 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 774 | "dev": true, 775 | "requires": { 776 | "is-promise": "^2.1.0" 777 | } 778 | }, 779 | "rxjs": { 780 | "version": "6.5.2", 781 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", 782 | "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", 783 | "dev": true, 784 | "requires": { 785 | "tslib": "^1.9.0" 786 | } 787 | }, 788 | "safer-buffer": { 789 | "version": "2.1.2", 790 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 791 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 792 | "dev": true 793 | }, 794 | "semver": { 795 | "version": "5.7.0", 796 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 797 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", 798 | "dev": true 799 | }, 800 | "shebang-command": { 801 | "version": "1.2.0", 802 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 803 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 804 | "dev": true, 805 | "requires": { 806 | "shebang-regex": "^1.0.0" 807 | } 808 | }, 809 | "shebang-regex": { 810 | "version": "1.0.0", 811 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 812 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 813 | "dev": true 814 | }, 815 | "signal-exit": { 816 | "version": "3.0.2", 817 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 818 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 819 | "dev": true 820 | }, 821 | "slice-ansi": { 822 | "version": "2.1.0", 823 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 824 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 825 | "dev": true, 826 | "requires": { 827 | "ansi-styles": "^3.2.0", 828 | "astral-regex": "^1.0.0", 829 | "is-fullwidth-code-point": "^2.0.0" 830 | } 831 | }, 832 | "sprintf-js": { 833 | "version": "1.0.3", 834 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 835 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 836 | "dev": true 837 | }, 838 | "string-width": { 839 | "version": "2.1.1", 840 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 841 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 842 | "dev": true, 843 | "requires": { 844 | "is-fullwidth-code-point": "^2.0.0", 845 | "strip-ansi": "^4.0.0" 846 | } 847 | }, 848 | "strip-ansi": { 849 | "version": "4.0.0", 850 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 851 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 852 | "dev": true, 853 | "requires": { 854 | "ansi-regex": "^3.0.0" 855 | } 856 | }, 857 | "strip-json-comments": { 858 | "version": "2.0.1", 859 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 860 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 861 | "dev": true 862 | }, 863 | "supports-color": { 864 | "version": "5.5.0", 865 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 866 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 867 | "dev": true, 868 | "requires": { 869 | "has-flag": "^3.0.0" 870 | } 871 | }, 872 | "table": { 873 | "version": "5.4.0", 874 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.0.tgz", 875 | "integrity": "sha512-nHFDrxmbrkU7JAFKqKbDJXfzrX2UBsWmrieXFTGxiI5e4ncg3VqsZeI4EzNmX0ncp4XNGVeoxIWJXfCIXwrsvw==", 876 | "dev": true, 877 | "requires": { 878 | "ajv": "^6.9.1", 879 | "lodash": "^4.17.11", 880 | "slice-ansi": "^2.1.0", 881 | "string-width": "^3.0.0" 882 | }, 883 | "dependencies": { 884 | "ansi-regex": { 885 | "version": "4.1.0", 886 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 887 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 888 | "dev": true 889 | }, 890 | "string-width": { 891 | "version": "3.1.0", 892 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 893 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 894 | "dev": true, 895 | "requires": { 896 | "emoji-regex": "^7.0.1", 897 | "is-fullwidth-code-point": "^2.0.0", 898 | "strip-ansi": "^5.1.0" 899 | } 900 | }, 901 | "strip-ansi": { 902 | "version": "5.2.0", 903 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 904 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 905 | "dev": true, 906 | "requires": { 907 | "ansi-regex": "^4.1.0" 908 | } 909 | } 910 | } 911 | }, 912 | "text-table": { 913 | "version": "0.2.0", 914 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 915 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 916 | "dev": true 917 | }, 918 | "through": { 919 | "version": "2.3.8", 920 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 921 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 922 | "dev": true 923 | }, 924 | "tmp": { 925 | "version": "0.0.33", 926 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 927 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 928 | "dev": true, 929 | "requires": { 930 | "os-tmpdir": "~1.0.2" 931 | } 932 | }, 933 | "tslib": { 934 | "version": "1.9.3", 935 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", 936 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", 937 | "dev": true 938 | }, 939 | "type-check": { 940 | "version": "0.3.2", 941 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 942 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 943 | "dev": true, 944 | "requires": { 945 | "prelude-ls": "~1.1.2" 946 | } 947 | }, 948 | "universalify": { 949 | "version": "0.1.0", 950 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz", 951 | "integrity": "sha1-nrHEZR3rzGcMyU8adXYjMruWd3g=" 952 | }, 953 | "uri-js": { 954 | "version": "4.2.2", 955 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 956 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 957 | "dev": true, 958 | "requires": { 959 | "punycode": "^2.1.0" 960 | } 961 | }, 962 | "which": { 963 | "version": "1.3.1", 964 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 965 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 966 | "dev": true, 967 | "requires": { 968 | "isexe": "^2.0.0" 969 | } 970 | }, 971 | "wordwrap": { 972 | "version": "1.0.0", 973 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 974 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 975 | "dev": true 976 | }, 977 | "wrappy": { 978 | "version": "1.0.2", 979 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 980 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 981 | }, 982 | "write": { 983 | "version": "1.0.3", 984 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 985 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 986 | "dev": true, 987 | "requires": { 988 | "mkdirp": "^0.5.1" 989 | } 990 | } 991 | } 992 | } 993 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm-list-linked", 3 | "version": "0.1.0", 4 | "description": "List linked npm packages in a project; also recursively for chains of dependencies.", 5 | "main": "get-linked.js", 6 | "bin": { 7 | "npm-list-linked": "npm-list-linked.js" 8 | }, 9 | "scripts": { 10 | "lint": "eslint .", 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "keywords": [ 14 | "npm", 15 | "link", 16 | "cli" 17 | ], 18 | "author": "Kristoffer Lundén ", 19 | "license": "ISC", 20 | "dependencies": { 21 | "fs-extra": "^3.0.1", 22 | "glob": "^7.1.2" 23 | }, 24 | "devDependencies": { 25 | "eslint": "^5.16.0" 26 | }, 27 | "repository": { 28 | "type": "git", 29 | "url": "git+https://github.com/kribblo/npm-list-linked.git" 30 | }, 31 | "bugs": { 32 | "url": "https://github.com/kribblo/npm-list-linked/issues" 33 | }, 34 | "homepage": "https://github.com/kribblo/npm-list-linked#readme" 35 | } 36 | --------------------------------------------------------------------------------