├── .gitignore ├── .nvmrc ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── spec ├── generator.spec.js ├── nouns-adjectives.spec.js └── spec-helpers.js └── src ├── adjectives.js ├── generator-bin.js ├── generator.d.ts ├── generator.js └── nouns.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .idea 3 | .DS_Store 4 | *.swp 5 | *.log 6 | 7 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 4.2.6 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Akash Kurdekar 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 9 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 11 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 12 | OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 13 | PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⚰️ ⚰️ DEPRECATED ⚰️ ⚰️ 2 | This project is no longer being supported. 3 | 4 | # Project Name Generator 5 | 6 | Generate quirky names like *spiffy-waterfall*, *sassy-bread*, *mature-dew-8239* to use wherever you need a random but memorable name. 7 | 8 | Useful for object names, temp folders, passwords, project names, unique ids etc 9 | 10 | ## Install 11 | `npm install project-name-generator --save` 12 | 13 | ## Quick Start 14 | ```javascript 15 | var generate = require('project-name-generator'); 16 | 17 | generate().dashed; // 'uptight-guitar' 18 | 19 | generate().spaced; // 'grandiose clam' 20 | 21 | generate().raw; // ['deluxe', 'grandmother'] 22 | 23 | generate({ number: true }).dashed; // 'disgraceful-temper-7794' 24 | 25 | generate({ words: 4 }).raw; // ['tiny', 'crabby', 'wired', 'quicksand'] 26 | 27 | generate({ words: 4, number: true }).dashed; // 'breakable-judicious-luxuriant-tax-3931' 28 | 29 | generate({ words: 2, alliterative: true }).spaced; // 'elegant experience' 30 | 31 | ``` 32 | 33 | ## Quickstart CLI 34 | This package contains a cli script. You can pull in the package globally using npm 35 | `npm install -g project-name-generator` 36 | 37 | Call from your command line 38 | ``` 39 | $ project-name-generator 40 | { raw: [ 'spry', 'bath' ], 41 | dashed: 'spry-bath', 42 | spaced: 'spry bath' } 43 | ``` 44 | 45 | For CLI options 46 | ``` 47 | project-name-generator -h 48 | 49 | Usage: project-name-generator [options] 50 | 51 | 52 | Options: 53 | 54 | -V, --version output the version number 55 | -w, --words [num] number of words [2] 56 | -n, --numbers use numbers 57 | -a, --alliterative use alliterative 58 | -o, --output [output] output type [raw|dashed|spaced] 59 | -h, --help output usage information 60 | ``` 61 | 62 | ## API 63 | The module returns a single function, `generate(options)` 64 | 65 | Calling `generate()` with no arguments will return an object: 66 | ```javascript 67 | { 68 | raw: ['whispering', 'valley'], 69 | dashed: 'whispering-valley', 70 | spaced: 'whispering valley' 71 | } 72 | ``` 73 | 74 | The `options` argument object can have properties 75 | 76 | * **words** (number) - Number of words generated (excluding number). All words will be adjectives, except the last one which will be a noun. Defaults to **2**. 77 | * **number** (boolean) - Whether a numeric suffix is generated or not. The number is between 1 - 9999, both inclusive. Defaults to **false**. 78 | * **alliterative** (boolean) - Whether to output words beginning with the same letter or not. Defaults to **false**. 79 | 80 | `generate({ words: 3 })` will return: 81 | ```javascript 82 | { 83 | raw: ['harmonious', 'endurable', 'substance'], 84 | dashed: 'harmonious-endurable-substance', 85 | spaced: 'harmonious endurable substance' 86 | } 87 | ``` 88 | 89 | `generate({ words: 5, number: true })` will return: 90 | ```javascript 91 | { 92 | raw: [ 'exciting', 'cooperative', 'legal', 'lackadaisical', 'blood', 4099 ], 93 | dashed: 'exciting-cooperative-legal-lackadaisical-blood-4099', 94 | spaced: 'exciting cooperative legal lackadaisical blood 4099' 95 | } 96 | ``` 97 | 98 | `generate({ words: 2, number: false, alliterative: true })` will return: 99 | ```javascript 100 | { 101 | raw: [ 'elegant', 'experience' ], 102 | dashed: 'elegant-experience', 103 | spaced: 'elegant experience' 104 | } 105 | ``` 106 | 107 | ## Tests 108 | To run tests locally: 109 | ``` 110 | npm install 111 | 112 | npm test 113 | ``` 114 | 115 | The library has been tested with Node.js 12.18.4 116 | 117 | ## Status 118 | ![How up-to-date are dependencies?](https://david-dm.org/aceakash/project-name-generator.svg) 119 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "project-name-generator", 3 | "version": "2.1.9", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/color-name": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 10 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 11 | "dev": true 12 | }, 13 | "ansi-colors": { 14 | "version": "4.1.1", 15 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 16 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 17 | "dev": true 18 | }, 19 | "ansi-regex": { 20 | "version": "3.0.0", 21 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 22 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 23 | "dev": true 24 | }, 25 | "ansi-styles": { 26 | "version": "4.2.1", 27 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 28 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 29 | "dev": true, 30 | "requires": { 31 | "@types/color-name": "^1.1.1", 32 | "color-convert": "^2.0.1" 33 | } 34 | }, 35 | "anymatch": { 36 | "version": "3.1.1", 37 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 38 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 39 | "dev": true, 40 | "requires": { 41 | "normalize-path": "^3.0.0", 42 | "picomatch": "^2.0.4" 43 | } 44 | }, 45 | "argparse": { 46 | "version": "1.0.10", 47 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 48 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 49 | "dev": true, 50 | "requires": { 51 | "sprintf-js": "~1.0.2" 52 | } 53 | }, 54 | "array.prototype.map": { 55 | "version": "1.0.2", 56 | "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", 57 | "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", 58 | "dev": true, 59 | "requires": { 60 | "define-properties": "^1.1.3", 61 | "es-abstract": "^1.17.0-next.1", 62 | "es-array-method-boxes-properly": "^1.0.0", 63 | "is-string": "^1.0.4" 64 | } 65 | }, 66 | "balanced-match": { 67 | "version": "1.0.0", 68 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/balanced-match/-/balanced-match-1.0.0.tgz", 69 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 70 | "dev": true 71 | }, 72 | "binary-extensions": { 73 | "version": "2.1.0", 74 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", 75 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", 76 | "dev": true 77 | }, 78 | "brace-expansion": { 79 | "version": "1.1.11", 80 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 81 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 82 | "dev": true, 83 | "requires": { 84 | "balanced-match": "^1.0.0", 85 | "concat-map": "0.0.1" 86 | } 87 | }, 88 | "braces": { 89 | "version": "3.0.2", 90 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 91 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 92 | "dev": true, 93 | "requires": { 94 | "fill-range": "^7.0.1" 95 | } 96 | }, 97 | "browser-stdout": { 98 | "version": "1.3.1", 99 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 100 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 101 | "dev": true 102 | }, 103 | "camelcase": { 104 | "version": "5.3.1", 105 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 106 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 107 | "dev": true 108 | }, 109 | "chalk": { 110 | "version": "4.1.0", 111 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 112 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 113 | "dev": true, 114 | "requires": { 115 | "ansi-styles": "^4.1.0", 116 | "supports-color": "^7.1.0" 117 | } 118 | }, 119 | "chokidar": { 120 | "version": "3.4.2", 121 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", 122 | "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", 123 | "dev": true, 124 | "requires": { 125 | "anymatch": "~3.1.1", 126 | "braces": "~3.0.2", 127 | "fsevents": "~2.1.2", 128 | "glob-parent": "~5.1.0", 129 | "is-binary-path": "~2.1.0", 130 | "is-glob": "~4.0.1", 131 | "normalize-path": "~3.0.0", 132 | "readdirp": "~3.4.0" 133 | } 134 | }, 135 | "cliui": { 136 | "version": "5.0.0", 137 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 138 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 139 | "dev": true, 140 | "requires": { 141 | "string-width": "^3.1.0", 142 | "strip-ansi": "^5.2.0", 143 | "wrap-ansi": "^5.1.0" 144 | }, 145 | "dependencies": { 146 | "ansi-regex": { 147 | "version": "4.1.0", 148 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 149 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 150 | "dev": true 151 | }, 152 | "string-width": { 153 | "version": "3.1.0", 154 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 155 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 156 | "dev": true, 157 | "requires": { 158 | "emoji-regex": "^7.0.1", 159 | "is-fullwidth-code-point": "^2.0.0", 160 | "strip-ansi": "^5.1.0" 161 | } 162 | }, 163 | "strip-ansi": { 164 | "version": "5.2.0", 165 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 166 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 167 | "dev": true, 168 | "requires": { 169 | "ansi-regex": "^4.1.0" 170 | } 171 | } 172 | } 173 | }, 174 | "color-convert": { 175 | "version": "2.0.1", 176 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 177 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 178 | "dev": true, 179 | "requires": { 180 | "color-name": "~1.1.4" 181 | } 182 | }, 183 | "color-name": { 184 | "version": "1.1.4", 185 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 186 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 187 | "dev": true 188 | }, 189 | "commander": { 190 | "version": "6.1.0", 191 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", 192 | "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==" 193 | }, 194 | "concat-map": { 195 | "version": "0.0.1", 196 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/concat-map/-/concat-map-0.0.1.tgz", 197 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 198 | "dev": true 199 | }, 200 | "debug": { 201 | "version": "4.1.1", 202 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 203 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 204 | "dev": true, 205 | "requires": { 206 | "ms": "^2.1.1" 207 | } 208 | }, 209 | "decamelize": { 210 | "version": "1.2.0", 211 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 212 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 213 | "dev": true 214 | }, 215 | "define-properties": { 216 | "version": "1.1.3", 217 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 218 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 219 | "requires": { 220 | "object-keys": "^1.0.12" 221 | } 222 | }, 223 | "diff": { 224 | "version": "4.0.2", 225 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 226 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 227 | "dev": true 228 | }, 229 | "egal": { 230 | "version": "1.3.0", 231 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/egal/-/egal-1.3.0.tgz", 232 | "integrity": "sha1-IKGc+oDOlzP4QTY10AQmQfQpGHs=", 233 | "dev": true, 234 | "requires": { 235 | "kindof": ">= 2.0.0 < 3" 236 | } 237 | }, 238 | "emoji-regex": { 239 | "version": "7.0.3", 240 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 241 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 242 | "dev": true 243 | }, 244 | "es-abstract": { 245 | "version": "1.17.7", 246 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", 247 | "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", 248 | "requires": { 249 | "es-to-primitive": "^1.2.1", 250 | "function-bind": "^1.1.1", 251 | "has": "^1.0.3", 252 | "has-symbols": "^1.0.1", 253 | "is-callable": "^1.2.2", 254 | "is-regex": "^1.1.1", 255 | "object-inspect": "^1.8.0", 256 | "object-keys": "^1.1.1", 257 | "object.assign": "^4.1.1", 258 | "string.prototype.trimend": "^1.0.1", 259 | "string.prototype.trimstart": "^1.0.1" 260 | }, 261 | "dependencies": { 262 | "es-abstract": { 263 | "version": "1.18.0-next.1", 264 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", 265 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", 266 | "requires": { 267 | "es-to-primitive": "^1.2.1", 268 | "function-bind": "^1.1.1", 269 | "has": "^1.0.3", 270 | "has-symbols": "^1.0.1", 271 | "is-callable": "^1.2.2", 272 | "is-negative-zero": "^2.0.0", 273 | "is-regex": "^1.1.1", 274 | "object-inspect": "^1.8.0", 275 | "object-keys": "^1.1.1", 276 | "object.assign": "^4.1.1", 277 | "string.prototype.trimend": "^1.0.1", 278 | "string.prototype.trimstart": "^1.0.1" 279 | } 280 | }, 281 | "object.assign": { 282 | "version": "4.1.1", 283 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", 284 | "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", 285 | "requires": { 286 | "define-properties": "^1.1.3", 287 | "es-abstract": "^1.18.0-next.0", 288 | "has-symbols": "^1.0.1", 289 | "object-keys": "^1.1.1" 290 | }, 291 | "dependencies": { 292 | "es-abstract": { 293 | "version": "1.18.0-next.1", 294 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", 295 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", 296 | "requires": { 297 | "es-to-primitive": "^1.2.1", 298 | "function-bind": "^1.1.1", 299 | "has": "^1.0.3", 300 | "has-symbols": "^1.0.1", 301 | "is-callable": "^1.2.2", 302 | "is-negative-zero": "^2.0.0", 303 | "is-regex": "^1.1.1", 304 | "object-inspect": "^1.8.0", 305 | "object-keys": "^1.1.1", 306 | "object.assign": "^4.1.1", 307 | "string.prototype.trimend": "^1.0.1", 308 | "string.prototype.trimstart": "^1.0.1" 309 | } 310 | } 311 | } 312 | } 313 | } 314 | }, 315 | "es-array-method-boxes-properly": { 316 | "version": "1.0.0", 317 | "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", 318 | "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", 319 | "dev": true 320 | }, 321 | "es-get-iterator": { 322 | "version": "1.1.0", 323 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", 324 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", 325 | "dev": true, 326 | "requires": { 327 | "es-abstract": "^1.17.4", 328 | "has-symbols": "^1.0.1", 329 | "is-arguments": "^1.0.4", 330 | "is-map": "^2.0.1", 331 | "is-set": "^2.0.1", 332 | "is-string": "^1.0.5", 333 | "isarray": "^2.0.5" 334 | } 335 | }, 336 | "es-to-primitive": { 337 | "version": "1.2.1", 338 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 339 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 340 | "requires": { 341 | "is-callable": "^1.1.4", 342 | "is-date-object": "^1.0.1", 343 | "is-symbol": "^1.0.2" 344 | } 345 | }, 346 | "escape-string-regexp": { 347 | "version": "4.0.0", 348 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 349 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 350 | "dev": true 351 | }, 352 | "esprima": { 353 | "version": "4.0.1", 354 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 355 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 356 | "dev": true 357 | }, 358 | "fill-range": { 359 | "version": "7.0.1", 360 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 361 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 362 | "dev": true, 363 | "requires": { 364 | "to-regex-range": "^5.0.1" 365 | } 366 | }, 367 | "find-up": { 368 | "version": "5.0.0", 369 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 370 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 371 | "dev": true, 372 | "requires": { 373 | "locate-path": "^6.0.0", 374 | "path-exists": "^4.0.0" 375 | } 376 | }, 377 | "flat": { 378 | "version": "4.1.0", 379 | "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", 380 | "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", 381 | "dev": true, 382 | "requires": { 383 | "is-buffer": "~2.0.3" 384 | } 385 | }, 386 | "fs.realpath": { 387 | "version": "1.0.0", 388 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/fs.realpath/-/fs.realpath-1.0.0.tgz", 389 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 390 | "dev": true 391 | }, 392 | "fsevents": { 393 | "version": "2.1.3", 394 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", 395 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", 396 | "dev": true, 397 | "optional": true 398 | }, 399 | "function-bind": { 400 | "version": "1.1.1", 401 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 402 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 403 | }, 404 | "get-caller-file": { 405 | "version": "2.0.5", 406 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 407 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 408 | "dev": true 409 | }, 410 | "glob": { 411 | "version": "7.1.6", 412 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 413 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 414 | "dev": true, 415 | "requires": { 416 | "fs.realpath": "^1.0.0", 417 | "inflight": "^1.0.4", 418 | "inherits": "2", 419 | "minimatch": "^3.0.4", 420 | "once": "^1.3.0", 421 | "path-is-absolute": "^1.0.0" 422 | } 423 | }, 424 | "glob-parent": { 425 | "version": "5.1.1", 426 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 427 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 428 | "dev": true, 429 | "requires": { 430 | "is-glob": "^4.0.1" 431 | } 432 | }, 433 | "growl": { 434 | "version": "1.10.5", 435 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 436 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 437 | "dev": true 438 | }, 439 | "has": { 440 | "version": "1.0.3", 441 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 442 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 443 | "requires": { 444 | "function-bind": "^1.1.1" 445 | } 446 | }, 447 | "has-flag": { 448 | "version": "4.0.0", 449 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 450 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 451 | "dev": true 452 | }, 453 | "has-symbols": { 454 | "version": "1.0.1", 455 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 456 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" 457 | }, 458 | "he": { 459 | "version": "1.2.0", 460 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 461 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 462 | "dev": true 463 | }, 464 | "inflight": { 465 | "version": "1.0.6", 466 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/inflight/-/inflight-1.0.6.tgz", 467 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 468 | "dev": true, 469 | "requires": { 470 | "once": "^1.3.0", 471 | "wrappy": "1" 472 | } 473 | }, 474 | "inherits": { 475 | "version": "2.0.4", 476 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 477 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 478 | "dev": true 479 | }, 480 | "is-arguments": { 481 | "version": "1.0.4", 482 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", 483 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", 484 | "dev": true 485 | }, 486 | "is-binary-path": { 487 | "version": "2.1.0", 488 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 489 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 490 | "dev": true, 491 | "requires": { 492 | "binary-extensions": "^2.0.0" 493 | } 494 | }, 495 | "is-buffer": { 496 | "version": "2.0.4", 497 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", 498 | "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", 499 | "dev": true 500 | }, 501 | "is-callable": { 502 | "version": "1.2.2", 503 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", 504 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" 505 | }, 506 | "is-date-object": { 507 | "version": "1.0.2", 508 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 509 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" 510 | }, 511 | "is-extglob": { 512 | "version": "2.1.1", 513 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 514 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 515 | "dev": true 516 | }, 517 | "is-fullwidth-code-point": { 518 | "version": "2.0.0", 519 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 520 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 521 | "dev": true 522 | }, 523 | "is-glob": { 524 | "version": "4.0.1", 525 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 526 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 527 | "dev": true, 528 | "requires": { 529 | "is-extglob": "^2.1.1" 530 | } 531 | }, 532 | "is-map": { 533 | "version": "2.0.1", 534 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", 535 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", 536 | "dev": true 537 | }, 538 | "is-negative-zero": { 539 | "version": "2.0.0", 540 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", 541 | "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" 542 | }, 543 | "is-number": { 544 | "version": "7.0.0", 545 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 546 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 547 | "dev": true 548 | }, 549 | "is-plain-obj": { 550 | "version": "1.1.0", 551 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 552 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 553 | "dev": true 554 | }, 555 | "is-regex": { 556 | "version": "1.1.1", 557 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", 558 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", 559 | "requires": { 560 | "has-symbols": "^1.0.1" 561 | } 562 | }, 563 | "is-set": { 564 | "version": "2.0.1", 565 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", 566 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", 567 | "dev": true 568 | }, 569 | "is-string": { 570 | "version": "1.0.5", 571 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", 572 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", 573 | "dev": true 574 | }, 575 | "is-symbol": { 576 | "version": "1.0.3", 577 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 578 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 579 | "requires": { 580 | "has-symbols": "^1.0.1" 581 | } 582 | }, 583 | "isarray": { 584 | "version": "2.0.5", 585 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 586 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 587 | "dev": true 588 | }, 589 | "isexe": { 590 | "version": "2.0.0", 591 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 592 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 593 | "dev": true 594 | }, 595 | "iterate-iterator": { 596 | "version": "1.0.1", 597 | "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", 598 | "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", 599 | "dev": true 600 | }, 601 | "iterate-value": { 602 | "version": "1.0.2", 603 | "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", 604 | "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", 605 | "dev": true, 606 | "requires": { 607 | "es-get-iterator": "^1.0.2", 608 | "iterate-iterator": "^1.0.1" 609 | } 610 | }, 611 | "js-yaml": { 612 | "version": "3.14.0", 613 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 614 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 615 | "dev": true, 616 | "requires": { 617 | "argparse": "^1.0.7", 618 | "esprima": "^4.0.0" 619 | } 620 | }, 621 | "json-stringify-safe": { 622 | "version": "5.0.1", 623 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 624 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 625 | "dev": true 626 | }, 627 | "kindof": { 628 | "version": "2.0.0", 629 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/kindof/-/kindof-2.0.0.tgz", 630 | "integrity": "sha1-wzW69gOnfMN/i0Brc7ZGP9vfGr4=", 631 | "dev": true 632 | }, 633 | "locate-path": { 634 | "version": "6.0.0", 635 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 636 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 637 | "dev": true, 638 | "requires": { 639 | "p-locate": "^5.0.0" 640 | } 641 | }, 642 | "lodash": { 643 | "version": "4.17.20", 644 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 645 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 646 | }, 647 | "lodash._createwrapper": { 648 | "version": "3.2.0", 649 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/lodash._createwrapper/-/lodash._createwrapper-3.2.0.tgz", 650 | "integrity": "sha1-30U+ZkFjIXuJWkVAZa8cR6DqPE0=", 651 | "dev": true, 652 | "requires": { 653 | "lodash._root": "^3.0.0" 654 | } 655 | }, 656 | "lodash._root": { 657 | "version": "3.0.1", 658 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/lodash._root/-/lodash._root-3.0.1.tgz", 659 | "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", 660 | "dev": true 661 | }, 662 | "lodash.wrap": { 663 | "version": "3.0.1", 664 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/lodash.wrap/-/lodash.wrap-3.0.1.tgz", 665 | "integrity": "sha1-P82L74Z7LsjCG6xjjYFhgFk/cas=", 666 | "dev": true, 667 | "requires": { 668 | "lodash._createwrapper": "^3.0.0" 669 | } 670 | }, 671 | "log-symbols": { 672 | "version": "4.0.0", 673 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", 674 | "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", 675 | "dev": true, 676 | "requires": { 677 | "chalk": "^4.0.0" 678 | } 679 | }, 680 | "minimatch": { 681 | "version": "3.0.4", 682 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 683 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 684 | "dev": true, 685 | "requires": { 686 | "brace-expansion": "^1.1.7" 687 | } 688 | }, 689 | "mocha": { 690 | "version": "8.1.3", 691 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz", 692 | "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==", 693 | "dev": true, 694 | "requires": { 695 | "ansi-colors": "4.1.1", 696 | "browser-stdout": "1.3.1", 697 | "chokidar": "3.4.2", 698 | "debug": "4.1.1", 699 | "diff": "4.0.2", 700 | "escape-string-regexp": "4.0.0", 701 | "find-up": "5.0.0", 702 | "glob": "7.1.6", 703 | "growl": "1.10.5", 704 | "he": "1.2.0", 705 | "js-yaml": "3.14.0", 706 | "log-symbols": "4.0.0", 707 | "minimatch": "3.0.4", 708 | "ms": "2.1.2", 709 | "object.assign": "4.1.0", 710 | "promise.allsettled": "1.0.2", 711 | "serialize-javascript": "4.0.0", 712 | "strip-json-comments": "3.0.1", 713 | "supports-color": "7.1.0", 714 | "which": "2.0.2", 715 | "wide-align": "1.1.3", 716 | "workerpool": "6.0.0", 717 | "yargs": "13.3.2", 718 | "yargs-parser": "13.1.2", 719 | "yargs-unparser": "1.6.1" 720 | } 721 | }, 722 | "ms": { 723 | "version": "2.1.2", 724 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 725 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 726 | "dev": true 727 | }, 728 | "must": { 729 | "version": "0.13.4", 730 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/must/-/must-0.13.4.tgz", 731 | "integrity": "sha1-nROJ9FjolLKqBAMr/rekBxT3gXE=", 732 | "dev": true, 733 | "requires": { 734 | "egal": ">= 1.3.0 < 2", 735 | "json-stringify-safe": ">= 5 < 6", 736 | "kindof": ">= 2.0.0 < 3", 737 | "lodash.wrap": ">= 3 < 4", 738 | "oolong": ">= 1.11.0 < 2" 739 | } 740 | }, 741 | "normalize-path": { 742 | "version": "3.0.0", 743 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 744 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 745 | "dev": true 746 | }, 747 | "object-inspect": { 748 | "version": "1.8.0", 749 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", 750 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" 751 | }, 752 | "object-keys": { 753 | "version": "1.1.1", 754 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 755 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 756 | }, 757 | "object.assign": { 758 | "version": "4.1.0", 759 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 760 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 761 | "dev": true, 762 | "requires": { 763 | "define-properties": "^1.1.2", 764 | "function-bind": "^1.1.1", 765 | "has-symbols": "^1.0.0", 766 | "object-keys": "^1.0.11" 767 | } 768 | }, 769 | "once": { 770 | "version": "1.4.0", 771 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/once/-/once-1.4.0.tgz", 772 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 773 | "dev": true, 774 | "requires": { 775 | "wrappy": "1" 776 | } 777 | }, 778 | "oolong": { 779 | "version": "1.15.1", 780 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/oolong/-/oolong-1.15.1.tgz", 781 | "integrity": "sha1-kLrJ585S9gkGqyIo2eKxFfEIbOo=", 782 | "dev": true 783 | }, 784 | "p-limit": { 785 | "version": "3.0.2", 786 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", 787 | "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", 788 | "dev": true, 789 | "requires": { 790 | "p-try": "^2.0.0" 791 | } 792 | }, 793 | "p-locate": { 794 | "version": "5.0.0", 795 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 796 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 797 | "dev": true, 798 | "requires": { 799 | "p-limit": "^3.0.2" 800 | } 801 | }, 802 | "p-try": { 803 | "version": "2.2.0", 804 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 805 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 806 | "dev": true 807 | }, 808 | "path-exists": { 809 | "version": "4.0.0", 810 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 811 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 812 | "dev": true 813 | }, 814 | "path-is-absolute": { 815 | "version": "1.0.1", 816 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 817 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 818 | "dev": true 819 | }, 820 | "picomatch": { 821 | "version": "2.2.2", 822 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 823 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 824 | "dev": true 825 | }, 826 | "promise.allsettled": { 827 | "version": "1.0.2", 828 | "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", 829 | "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", 830 | "dev": true, 831 | "requires": { 832 | "array.prototype.map": "^1.0.1", 833 | "define-properties": "^1.1.3", 834 | "es-abstract": "^1.17.0-next.1", 835 | "function-bind": "^1.1.1", 836 | "iterate-value": "^1.0.0" 837 | } 838 | }, 839 | "randombytes": { 840 | "version": "2.1.0", 841 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 842 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 843 | "dev": true, 844 | "requires": { 845 | "safe-buffer": "^5.1.0" 846 | } 847 | }, 848 | "readdirp": { 849 | "version": "3.4.0", 850 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", 851 | "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", 852 | "dev": true, 853 | "requires": { 854 | "picomatch": "^2.2.1" 855 | } 856 | }, 857 | "require-directory": { 858 | "version": "2.1.1", 859 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 860 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 861 | "dev": true 862 | }, 863 | "require-main-filename": { 864 | "version": "2.0.0", 865 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 866 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 867 | "dev": true 868 | }, 869 | "safe-buffer": { 870 | "version": "5.2.1", 871 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 872 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 873 | "dev": true 874 | }, 875 | "serialize-javascript": { 876 | "version": "4.0.0", 877 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", 878 | "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", 879 | "dev": true, 880 | "requires": { 881 | "randombytes": "^2.1.0" 882 | } 883 | }, 884 | "set-blocking": { 885 | "version": "2.0.0", 886 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 887 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 888 | "dev": true 889 | }, 890 | "sprintf-js": { 891 | "version": "1.0.3", 892 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 893 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 894 | "dev": true 895 | }, 896 | "string-width": { 897 | "version": "2.1.1", 898 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 899 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 900 | "dev": true, 901 | "requires": { 902 | "is-fullwidth-code-point": "^2.0.0", 903 | "strip-ansi": "^4.0.0" 904 | } 905 | }, 906 | "string.prototype.trimend": { 907 | "version": "1.0.1", 908 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", 909 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", 910 | "requires": { 911 | "define-properties": "^1.1.3", 912 | "es-abstract": "^1.17.5" 913 | } 914 | }, 915 | "string.prototype.trimstart": { 916 | "version": "1.0.1", 917 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", 918 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", 919 | "requires": { 920 | "define-properties": "^1.1.3", 921 | "es-abstract": "^1.17.5" 922 | } 923 | }, 924 | "strip-ansi": { 925 | "version": "4.0.0", 926 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 927 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 928 | "dev": true, 929 | "requires": { 930 | "ansi-regex": "^3.0.0" 931 | } 932 | }, 933 | "strip-json-comments": { 934 | "version": "3.0.1", 935 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", 936 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", 937 | "dev": true 938 | }, 939 | "supports-color": { 940 | "version": "7.1.0", 941 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 942 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 943 | "dev": true, 944 | "requires": { 945 | "has-flag": "^4.0.0" 946 | } 947 | }, 948 | "to-regex-range": { 949 | "version": "5.0.1", 950 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 951 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 952 | "dev": true, 953 | "requires": { 954 | "is-number": "^7.0.0" 955 | } 956 | }, 957 | "which": { 958 | "version": "2.0.2", 959 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 960 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 961 | "dev": true, 962 | "requires": { 963 | "isexe": "^2.0.0" 964 | } 965 | }, 966 | "which-module": { 967 | "version": "2.0.0", 968 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 969 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 970 | "dev": true 971 | }, 972 | "wide-align": { 973 | "version": "1.1.3", 974 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 975 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 976 | "dev": true, 977 | "requires": { 978 | "string-width": "^1.0.2 || 2" 979 | } 980 | }, 981 | "workerpool": { 982 | "version": "6.0.0", 983 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", 984 | "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", 985 | "dev": true 986 | }, 987 | "wrap-ansi": { 988 | "version": "5.1.0", 989 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 990 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 991 | "dev": true, 992 | "requires": { 993 | "ansi-styles": "^3.2.0", 994 | "string-width": "^3.0.0", 995 | "strip-ansi": "^5.0.0" 996 | }, 997 | "dependencies": { 998 | "ansi-regex": { 999 | "version": "4.1.0", 1000 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1001 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1002 | "dev": true 1003 | }, 1004 | "ansi-styles": { 1005 | "version": "3.2.1", 1006 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1007 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1008 | "dev": true, 1009 | "requires": { 1010 | "color-convert": "^1.9.0" 1011 | } 1012 | }, 1013 | "color-convert": { 1014 | "version": "1.9.3", 1015 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1016 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1017 | "dev": true, 1018 | "requires": { 1019 | "color-name": "1.1.3" 1020 | } 1021 | }, 1022 | "color-name": { 1023 | "version": "1.1.3", 1024 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1025 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1026 | "dev": true 1027 | }, 1028 | "string-width": { 1029 | "version": "3.1.0", 1030 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1031 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1032 | "dev": true, 1033 | "requires": { 1034 | "emoji-regex": "^7.0.1", 1035 | "is-fullwidth-code-point": "^2.0.0", 1036 | "strip-ansi": "^5.1.0" 1037 | } 1038 | }, 1039 | "strip-ansi": { 1040 | "version": "5.2.0", 1041 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1042 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1043 | "dev": true, 1044 | "requires": { 1045 | "ansi-regex": "^4.1.0" 1046 | } 1047 | } 1048 | } 1049 | }, 1050 | "wrappy": { 1051 | "version": "1.0.2", 1052 | "resolved": "https://mmrepo.jfrog.io/mmrepo/api/npm/npm-virtual/wrappy/-/wrappy-1.0.2.tgz", 1053 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1054 | "dev": true 1055 | }, 1056 | "y18n": { 1057 | "version": "4.0.0", 1058 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1059 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 1060 | "dev": true 1061 | }, 1062 | "yargs": { 1063 | "version": "13.3.2", 1064 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", 1065 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", 1066 | "dev": true, 1067 | "requires": { 1068 | "cliui": "^5.0.0", 1069 | "find-up": "^3.0.0", 1070 | "get-caller-file": "^2.0.1", 1071 | "require-directory": "^2.1.1", 1072 | "require-main-filename": "^2.0.0", 1073 | "set-blocking": "^2.0.0", 1074 | "string-width": "^3.0.0", 1075 | "which-module": "^2.0.0", 1076 | "y18n": "^4.0.0", 1077 | "yargs-parser": "^13.1.2" 1078 | }, 1079 | "dependencies": { 1080 | "ansi-regex": { 1081 | "version": "4.1.0", 1082 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1083 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1084 | "dev": true 1085 | }, 1086 | "find-up": { 1087 | "version": "3.0.0", 1088 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1089 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1090 | "dev": true, 1091 | "requires": { 1092 | "locate-path": "^3.0.0" 1093 | } 1094 | }, 1095 | "locate-path": { 1096 | "version": "3.0.0", 1097 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1098 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1099 | "dev": true, 1100 | "requires": { 1101 | "p-locate": "^3.0.0", 1102 | "path-exists": "^3.0.0" 1103 | } 1104 | }, 1105 | "p-limit": { 1106 | "version": "2.3.0", 1107 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1108 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1109 | "dev": true, 1110 | "requires": { 1111 | "p-try": "^2.0.0" 1112 | } 1113 | }, 1114 | "p-locate": { 1115 | "version": "3.0.0", 1116 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1117 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1118 | "dev": true, 1119 | "requires": { 1120 | "p-limit": "^2.0.0" 1121 | } 1122 | }, 1123 | "path-exists": { 1124 | "version": "3.0.0", 1125 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1126 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1127 | "dev": true 1128 | }, 1129 | "string-width": { 1130 | "version": "3.1.0", 1131 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1132 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1133 | "dev": true, 1134 | "requires": { 1135 | "emoji-regex": "^7.0.1", 1136 | "is-fullwidth-code-point": "^2.0.0", 1137 | "strip-ansi": "^5.1.0" 1138 | } 1139 | }, 1140 | "strip-ansi": { 1141 | "version": "5.2.0", 1142 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1143 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1144 | "dev": true, 1145 | "requires": { 1146 | "ansi-regex": "^4.1.0" 1147 | } 1148 | } 1149 | } 1150 | }, 1151 | "yargs-parser": { 1152 | "version": "13.1.2", 1153 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 1154 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 1155 | "dev": true, 1156 | "requires": { 1157 | "camelcase": "^5.0.0", 1158 | "decamelize": "^1.2.0" 1159 | } 1160 | }, 1161 | "yargs-unparser": { 1162 | "version": "1.6.1", 1163 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", 1164 | "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", 1165 | "dev": true, 1166 | "requires": { 1167 | "camelcase": "^5.3.1", 1168 | "decamelize": "^1.2.0", 1169 | "flat": "^4.1.0", 1170 | "is-plain-obj": "^1.1.0", 1171 | "yargs": "^14.2.3" 1172 | }, 1173 | "dependencies": { 1174 | "ansi-regex": { 1175 | "version": "4.1.0", 1176 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1177 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1178 | "dev": true 1179 | }, 1180 | "find-up": { 1181 | "version": "3.0.0", 1182 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1183 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1184 | "dev": true, 1185 | "requires": { 1186 | "locate-path": "^3.0.0" 1187 | } 1188 | }, 1189 | "locate-path": { 1190 | "version": "3.0.0", 1191 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1192 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1193 | "dev": true, 1194 | "requires": { 1195 | "p-locate": "^3.0.0", 1196 | "path-exists": "^3.0.0" 1197 | } 1198 | }, 1199 | "p-limit": { 1200 | "version": "2.3.0", 1201 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1202 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1203 | "dev": true, 1204 | "requires": { 1205 | "p-try": "^2.0.0" 1206 | } 1207 | }, 1208 | "p-locate": { 1209 | "version": "3.0.0", 1210 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1211 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1212 | "dev": true, 1213 | "requires": { 1214 | "p-limit": "^2.0.0" 1215 | } 1216 | }, 1217 | "path-exists": { 1218 | "version": "3.0.0", 1219 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1220 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1221 | "dev": true 1222 | }, 1223 | "string-width": { 1224 | "version": "3.1.0", 1225 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1226 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1227 | "dev": true, 1228 | "requires": { 1229 | "emoji-regex": "^7.0.1", 1230 | "is-fullwidth-code-point": "^2.0.0", 1231 | "strip-ansi": "^5.1.0" 1232 | } 1233 | }, 1234 | "strip-ansi": { 1235 | "version": "5.2.0", 1236 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1237 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1238 | "dev": true, 1239 | "requires": { 1240 | "ansi-regex": "^4.1.0" 1241 | } 1242 | }, 1243 | "yargs": { 1244 | "version": "14.2.3", 1245 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", 1246 | "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", 1247 | "dev": true, 1248 | "requires": { 1249 | "cliui": "^5.0.0", 1250 | "decamelize": "^1.2.0", 1251 | "find-up": "^3.0.0", 1252 | "get-caller-file": "^2.0.1", 1253 | "require-directory": "^2.1.1", 1254 | "require-main-filename": "^2.0.0", 1255 | "set-blocking": "^2.0.0", 1256 | "string-width": "^3.0.0", 1257 | "which-module": "^2.0.0", 1258 | "y18n": "^4.0.0", 1259 | "yargs-parser": "^15.0.1" 1260 | } 1261 | }, 1262 | "yargs-parser": { 1263 | "version": "15.0.1", 1264 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", 1265 | "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", 1266 | "dev": true, 1267 | "requires": { 1268 | "camelcase": "^5.0.0", 1269 | "decamelize": "^1.2.0" 1270 | } 1271 | } 1272 | } 1273 | } 1274 | } 1275 | } 1276 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "project-name-generator", 3 | "version": "2.1.9", 4 | "description": "Generate a random, unique, heroku-like name for your app/project/server etc. e.g. \"resonant-silence\"", 5 | "types": "src/generator.d.ts", 6 | "main": "src/generator.js", 7 | "scripts": { 8 | "test": "mocha spec/**/*.spec.js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git://github.com/aceakash/project-name-generator.git" 13 | }, 14 | "keywords": [ 15 | "heroku", 16 | "project", 17 | "server", 18 | "app", 19 | "name", 20 | "generate", 21 | "unique", 22 | "random", 23 | "generator", 24 | "generater" 25 | ], 26 | "author": "Akash Kurdekar", 27 | "license": "ISC", 28 | "devDependencies": { 29 | "mocha": "^8.1.3", 30 | "must": "^0.13.4" 31 | }, 32 | "dependencies": { 33 | "commander": "^6.1.0", 34 | "lodash": "^4.17.20" 35 | }, 36 | "bin": { 37 | "project-name-generator": "src/generator-bin.js" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spec/generator.spec.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'), 2 | nouns = require('../src/nouns'), 3 | adjectives = require('../src/adjectives'), 4 | generate = require('../src/generator'), 5 | expect = require('must'); 6 | 7 | describe('generator', function () { 8 | it('has a generate function', function () { 9 | expect(generate).to.be.a(Function); 10 | }); 11 | 12 | describe('generate', function () { 13 | describe('when called with no argument', function () { 14 | var projName; 15 | 16 | beforeEach(function () { 17 | projName = generate(); 18 | }); 19 | 20 | it('returns an object with keys: dashed, spaced, raw', function () { 21 | expect(projName).to.not.be.undefined(); 22 | expect(projName.dashed).to.not.be.undefined(); 23 | expect(projName.spaced).to.not.be.undefined(); 24 | expect(projName.raw).to.not.be.undefined(); 25 | }); 26 | 27 | it('has a property raw which is an array of two strings', function () { 28 | expect(projName.raw.length).to.be(2); 29 | expect(typeof projName.raw[0]).to.be('string'); 30 | expect(typeof projName.raw[1]).to.be('string'); 31 | }); 32 | 33 | it('has an array raw, the first item of which is from the adjectives array', function () { 34 | expect(_.includes(adjectives, projName.raw[0])).to.be(true); 35 | }); 36 | 37 | it('has an array raw, the second item of which is from the nouns array', function () { 38 | expect(_.includes(nouns, projName.raw[1])).to.be(true); 39 | }); 40 | 41 | it("has a property dashed, which is a string of raw's items joined with a dash", function () { 42 | expect(projName.dashed).to.be(projName.raw.join('-')); 43 | }); 44 | 45 | it("has a property spaced, which is a string of raw's items joined with a space", function () { 46 | expect(projName.spaced).to.be(projName.raw.join(' ')); 47 | }); 48 | }); 49 | 50 | describe('when called with an options object', function () { 51 | var projName; 52 | 53 | it('with {}, shows default behaviour', function () { 54 | projName = generate({}); 55 | expect(projName.raw.length).to.be(2); 56 | expect(typeof projName.raw[0]).to.be('string'); 57 | expect(typeof projName.raw[1]).to.be('string'); 58 | }); 59 | 60 | it('with {number: true}, includes number', function () { 61 | projName = generate({number: true}); 62 | expect(projName.raw.length).to.be(3); 63 | expect(typeof projName.raw[0]).to.be('string'); 64 | expect(typeof projName.raw[1]).to.be('string'); 65 | expect(typeof projName.raw[2]).to.be('number'); 66 | }); 67 | 68 | it('with {words: n}, has n-1 adjectives and 1 noun', function () { 69 | projName = generate({words: 3}); 70 | expect(projName.raw.length).to.be(3); 71 | expect(_.includes(adjectives, projName.raw[0])).to.be(true); 72 | expect(_.includes(adjectives, projName.raw[1])).to.be(true); 73 | expect(_.includes(nouns, projName.raw[2])).to.be(true); 74 | 75 | projName = generate({words: 5}); 76 | expect(projName.raw.length).to.be(5); 77 | expect(_.includes(adjectives, projName.raw[0])).to.be(true); 78 | expect(_.includes(adjectives, projName.raw[1])).to.be(true); 79 | expect(_.includes(adjectives, projName.raw[2])).to.be(true); 80 | expect(_.includes(adjectives, projName.raw[3])).to.be(true); 81 | expect(_.includes(nouns, projName.raw[4])).to.be(true); 82 | }); 83 | 84 | it('with {words: 3, number: true}, has 2 adjectives, 1 noun and 1 number', function () { 85 | projName = generate({words: 3, number: true}); 86 | expect(projName.raw.length).to.be(4); 87 | expect(_.includes(adjectives, projName.raw[0])).to.be(true); 88 | expect(_.includes(adjectives, projName.raw[1])).to.be(true); 89 | expect(_.includes(nouns, projName.raw[2])).to.be(true); 90 | expect(typeof projName.raw[3]).to.be('number'); 91 | }); 92 | 93 | it('with {words: 2, number: false, alliterative: true}, has 1 adjective and 1 noun beginning with same letter', function() { 94 | projName = generate({words: 2, number: false, alliterative: true}); 95 | expect(projName.raw.length).to.be(2); 96 | expect(_.includes(adjectives, projName.raw[0])).to.be(true); 97 | expect(_.includes(nouns, projName.raw[1])).to.be(true); 98 | expect(projName.raw[0].substring(0, 1).toLowerCase() === projName.raw[1].substring(0, 1).toLowerCase()).to.be(true); 99 | }); 100 | }); 101 | }); 102 | 103 | describe('legacy generate property', function () { 104 | it('is also available as a generate property', function () { 105 | var name = require('../src/generator').generate(); 106 | expect(name.dashed).to.not.be.undefined(); 107 | expect(name.spaced).to.not.be.undefined(); 108 | expect(name.raw).to.not.be.undefined(); 109 | }); 110 | }); 111 | }); 112 | -------------------------------------------------------------------------------- /spec/nouns-adjectives.spec.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'), 2 | nouns = require('../src/nouns'), 3 | adjectives = require('../src/adjectives'), 4 | helpers = require('./spec-helpers'), 5 | expect = require('must'); 6 | 7 | describe('nouns', stringArrayTestSuite.bind(this, nouns)); 8 | describe('adjectives', stringArrayTestSuite.bind(this, adjectives)); 9 | 10 | function stringArrayTestSuite(collection) { 11 | it('is an array', function () { 12 | expect(helpers.isArray(collection)).to.be(true); 13 | }); 14 | 15 | it('has at least one item', function () { 16 | expect(collection.length).to.be.gt(0); 17 | }); 18 | 19 | it('has each item as a string', function () { 20 | var everyItemIsAString = _.every(collection, function (item) { 21 | return typeof item === 'string'; 22 | }); 23 | expect(everyItemIsAString).to.be(true); 24 | }); 25 | 26 | it('has every item with no spaces', function () { 27 | var anyItemWithSpaces = _.some(collection, function (item) { 28 | return item.indexOf(' ') !== -1; 29 | }); 30 | expect(anyItemWithSpaces).to.be(false); 31 | }); 32 | 33 | it('has every item with no dashes', function () { 34 | var anyItemWithDashes = _.some(collection, function (item) { 35 | return item.indexOf('-') !== -1; 36 | }); 37 | expect(anyItemWithDashes).to.be(false); 38 | }); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spec/spec-helpers.js: -------------------------------------------------------------------------------- 1 | var isArray = ('isArray' in Array) ? 2 | Array.isArray : 3 | function (value) { 4 | return Object.prototype.toString.call(value) === '[object Array]'; 5 | }; 6 | 7 | module.exports = { 8 | isArray: isArray 9 | }; 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/adjectives.js: -------------------------------------------------------------------------------- 1 | module.exports = 2 | [ 3 | 'abandoned', 4 | 'abashed', 5 | 'aberrant', 6 | 'abhorrent', 7 | 'abiding', 8 | 'abject', 9 | 'ablaze', 10 | 'able', 11 | 'abounding', 12 | 'abrasive', 13 | 'abrupt', 14 | 'absent', 15 | 'absorbed', 16 | 'absorbing', 17 | 'abstracted', 18 | 'absurd', 19 | 'abundant', 20 | 'acceptable', 21 | 'accessible', 22 | 'accidental', 23 | 'accurate', 24 | 'acidic', 25 | 'acoustic', 26 | 'acrid', 27 | 'actionable', 28 | 'active', 29 | 'actual', 30 | 'adamant', 31 | 'adaptable', 32 | 'adept', 33 | 'adhesive', 34 | 'adjoining', 35 | 'adorable', 36 | 'adroit', 37 | 'adventurous', 38 | 'affable', 39 | 'affectionate', 40 | 'afraid', 41 | 'aggressive', 42 | 'agile', 43 | 'agonizing', 44 | 'agreeable', 45 | 'airy', 46 | 'alert', 47 | 'alive', 48 | 'alleged', 49 | 'alluring', 50 | 'aloof', 51 | 'amazing', 52 | 'ambiguous', 53 | 'ambitious', 54 | 'amiable', 55 | 'ample', 56 | 'amused', 57 | 'amusing', 58 | 'ancient', 59 | 'angry', 60 | 'animated', 61 | 'annoyed', 62 | 'annoying', 63 | 'anxious', 64 | 'apathetic', 65 | 'apt', 66 | 'aquatic', 67 | 'ardent', 68 | 'aromatic', 69 | 'arrogant', 70 | 'ashamed', 71 | 'aspiring', 72 | 'assorted', 73 | 'astonishing', 74 | 'astute', 75 | 'attractive', 76 | 'august', 77 | 'auspicious', 78 | 'automatic', 79 | 'available', 80 | 'average', 81 | 'avid', 82 | 'aware', 83 | 'awesome', 84 | 'awful', 85 | 'axiomatic', 86 | 'bad', 87 | 'balmy', 88 | 'barbarous', 89 | 'bashful', 90 | 'bawdy', 91 | 'beautiful', 92 | 'befitting', 93 | 'belligerent', 94 | 'beneficial', 95 | 'benevolent', 96 | 'bent', 97 | 'berserk', 98 | 'best', 99 | 'better', 100 | 'bewildered', 101 | 'big', 102 | 'billowing', 103 | 'billowy', 104 | 'bitter', 105 | 'bizarre', 106 | 'blessed', 107 | 'bloody', 108 | 'blue', 109 | 'blushing', 110 | 'boiling', 111 | 'bold', 112 | 'boorish', 113 | 'bored', 114 | 'boring', 115 | 'boss', 116 | 'bouncy', 117 | 'boundless', 118 | 'brainy', 119 | 'brash', 120 | 'brave', 121 | 'brawny', 122 | 'breakable', 123 | 'breezy', 124 | 'brief', 125 | 'bright', 126 | 'brisk', 127 | 'broad', 128 | 'broken', 129 | 'bumpy', 130 | 'burly', 131 | 'bustling', 132 | 'busy', 133 | 'cagey', 134 | 'calculating', 135 | 'callous', 136 | 'calm', 137 | 'can', 138 | 'canny', 139 | 'capable', 140 | 'capricious', 141 | 'cared', 142 | 'careful', 143 | 'careless', 144 | 'caring', 145 | 'casual', 146 | 'cautious', 147 | 'ceaseless', 148 | 'celestial', 149 | 'certain', 150 | 'changeable', 151 | 'charming', 152 | 'cheap', 153 | 'cheerful', 154 | 'chemical', 155 | 'chic', 156 | 'chief', 157 | 'childlike', 158 | 'chilly', 159 | 'chivalrous', 160 | 'choice', 161 | 'chosen', 162 | 'chubby', 163 | 'chummy', 164 | 'chunky', 165 | 'civic', 166 | 'civil', 167 | 'clammy', 168 | 'classy', 169 | 'clean', 170 | 'clear', 171 | 'clever', 172 | 'cloistered', 173 | 'close', 174 | 'closed', 175 | 'cloudy', 176 | 'clumsy', 177 | 'cluttered', 178 | 'cogent', 179 | 'coherent', 180 | 'cold', 181 | 'colorful', 182 | 'colossal', 183 | 'combative', 184 | 'comfortable', 185 | 'common', 186 | 'complete', 187 | 'complex', 188 | 'composed', 189 | 'concerned', 190 | 'condemned', 191 | 'confused', 192 | 'conscious', 193 | 'cooing', 194 | 'cool', 195 | 'cooperative', 196 | 'coordinated', 197 | 'cosmic', 198 | 'courageous', 199 | 'cowardly', 200 | 'cozy', 201 | 'crabby', 202 | 'craven', 203 | 'crazy', 204 | 'creepy', 205 | 'crooked', 206 | 'crowded', 207 | 'cruel', 208 | 'cuddly', 209 | 'cultured', 210 | 'cumbersome', 211 | 'curious', 212 | 'curly', 213 | 'curved', 214 | 'curvy', 215 | 'cut', 216 | 'cute', 217 | 'cynical', 218 | 'daffy', 219 | 'daily', 220 | 'dainty', 221 | 'damaged', 222 | 'damaging', 223 | 'damp', 224 | 'dandy', 225 | 'dangerous', 226 | 'dapper', 227 | 'daring', 228 | 'dark', 229 | 'dashing', 230 | 'dazzling', 231 | 'dead', 232 | 'deadpan', 233 | 'deafening', 234 | 'dear', 235 | 'debonair', 236 | 'decent', 237 | 'decisive', 238 | 'decorous', 239 | 'deep', 240 | 'deeply', 241 | 'defeated', 242 | 'defective', 243 | 'defiant', 244 | 'deft', 245 | 'delicate', 246 | 'delicious', 247 | 'delightful', 248 | 'delirious', 249 | 'deluxe', 250 | 'demonic', 251 | 'dependent', 252 | 'deranged', 253 | 'descriptive', 254 | 'deserted', 255 | 'detailed', 256 | 'determined', 257 | 'devilish', 258 | 'devout', 259 | 'didactic', 260 | 'different', 261 | 'difficult', 262 | 'diligent', 263 | 'direct', 264 | 'direful', 265 | 'dirty', 266 | 'disagreeable', 267 | 'disastrous', 268 | 'discreet', 269 | 'disgusted', 270 | 'disgusting', 271 | 'disillusioned', 272 | 'dispensable', 273 | 'distinct', 274 | 'disturbed', 275 | 'divergent', 276 | 'divine', 277 | 'dizzy', 278 | 'domineering', 279 | 'doted', 280 | 'doting', 281 | 'doubtful', 282 | 'drab', 283 | 'draconian', 284 | 'dramatic', 285 | 'dreamy', 286 | 'dreary', 287 | 'driven', 288 | 'dry', 289 | 'dull', 290 | 'dusty', 291 | 'dynamic', 292 | 'dysfunctional', 293 | 'eager', 294 | 'early', 295 | 'earsplitting', 296 | 'earthy', 297 | 'easy', 298 | 'eatable', 299 | 'economic', 300 | 'educated', 301 | 'efficacious', 302 | 'efficient', 303 | 'eight', 304 | 'elastic', 305 | 'elated', 306 | 'electric', 307 | 'elegant', 308 | 'elfin', 309 | 'elite', 310 | 'embarrassed', 311 | 'eminent', 312 | 'empty', 313 | 'enchanted', 314 | 'enchanting', 315 | 'encouraging', 316 | 'end', 317 | 'endurable', 318 | 'energetic', 319 | 'energized', 320 | 'enigmatic', 321 | 'enormous', 322 | 'entertaining', 323 | 'enthusiastic', 324 | 'envious', 325 | 'equable', 326 | 'equal', 327 | 'erect', 328 | 'erratic', 329 | 'ethereal', 330 | 'evanescent', 331 | 'evasive', 332 | 'even', 333 | 'evil', 334 | 'exact', 335 | 'excellent', 336 | 'excited', 337 | 'exciting', 338 | 'exclusive', 339 | 'exotic', 340 | 'expensive', 341 | 'expert', 342 | 'exuberant', 343 | 'exultant', 344 | 'fabulous', 345 | 'faded', 346 | 'faint', 347 | 'fair', 348 | 'faithful', 349 | 'fallacious', 350 | 'false', 351 | 'famed', 352 | 'familiar', 353 | 'famous', 354 | 'fanatical', 355 | 'fancy', 356 | 'fantastic', 357 | 'far', 358 | 'fascinated', 359 | 'fast', 360 | 'faulty', 361 | 'fearful', 362 | 'fearless', 363 | 'feigned', 364 | 'fertile', 365 | 'festive', 366 | 'few', 367 | 'fierce', 368 | 'fiery', 369 | 'filthy', 370 | 'fine', 371 | 'finicky', 372 | 'first', 373 | 'fit', 374 | 'fixed', 375 | 'flagrant', 376 | 'flaky', 377 | 'flashy', 378 | 'flat', 379 | 'flawless', 380 | 'fleet', 381 | 'flimsy', 382 | 'flippant', 383 | 'flowery', 384 | 'flowing', 385 | 'fluent', 386 | 'fluffy', 387 | 'fluttering', 388 | 'flying', 389 | 'foamy', 390 | 'fond', 391 | 'foolish', 392 | 'for', 393 | 'foregoing', 394 | 'forgetful', 395 | 'forlorn', 396 | 'fortunate', 397 | 'fragile', 398 | 'frail', 399 | 'frank', 400 | 'frantic', 401 | 'free', 402 | 'freezing', 403 | 'frequent', 404 | 'fresh', 405 | 'fretful', 406 | 'friendly', 407 | 'frightened', 408 | 'frightening', 409 | 'full', 410 | 'fumbling', 411 | 'fun', 412 | 'functional', 413 | 'funny', 414 | 'furry', 415 | 'furtive', 416 | 'fuscia', 417 | 'future', 418 | 'futuristic', 419 | 'fuzzy', 420 | 'gabby', 421 | 'gainful', 422 | 'gamy', 423 | 'gaping', 424 | 'garrulous', 425 | 'gas', 426 | 'gaudy', 427 | 'general', 428 | 'genial', 429 | 'gentle', 430 | 'giant', 431 | 'giddy', 432 | 'gifted', 433 | 'gigantic', 434 | 'giving', 435 | 'glad', 436 | 'glamorous', 437 | 'gleaming', 438 | 'glib', 439 | 'glistening', 440 | 'glorious', 441 | 'glossy', 442 | 'gnarly', 443 | 'godly', 444 | 'gold', 445 | 'golden', 446 | 'good', 447 | 'goodly', 448 | 'goofy', 449 | 'gorgeous', 450 | 'graceful', 451 | 'grand', 452 | 'grandiose', 453 | 'grateful', 454 | 'gratis', 455 | 'gray', 456 | 'greasy', 457 | 'great', 458 | 'greedy', 459 | 'green', 460 | 'grey', 461 | 'grieving', 462 | 'groovy', 463 | 'grotesque', 464 | 'grouchy', 465 | 'grubby', 466 | 'gruesome', 467 | 'grumpy', 468 | 'guarded', 469 | 'guided', 470 | 'guiltless', 471 | 'gullible', 472 | 'gusty', 473 | 'gutsy', 474 | 'guttural', 475 | 'habitual', 476 | 'half', 477 | 'hallowed', 478 | 'haloed', 479 | 'halting', 480 | 'handsome', 481 | 'handsomely', 482 | 'handy', 483 | 'hanging', 484 | 'hapless', 485 | 'happy', 486 | 'hard', 487 | 'hardy', 488 | 'harmonious', 489 | 'harsh', 490 | 'heady', 491 | 'healthy', 492 | 'heartbreaking', 493 | 'hearty', 494 | 'heavenly', 495 | 'heavy', 496 | 'hellish', 497 | 'helpful', 498 | 'helpless', 499 | 'heroic', 500 | 'hesitant', 501 | 'hideous', 502 | 'high', 503 | 'highfalutin', 504 | 'hilarious', 505 | 'hip', 506 | 'hissing', 507 | 'historical', 508 | 'holistic', 509 | 'hollow', 510 | 'holy', 511 | 'homely', 512 | 'honest', 513 | 'honorable', 514 | 'horrible', 515 | 'hospitable', 516 | 'hot', 517 | 'huge', 518 | 'hulking', 519 | 'human', 520 | 'humane', 521 | 'humble', 522 | 'humdrum', 523 | 'humorous', 524 | 'hungry', 525 | 'hunky', 526 | 'hurried', 527 | 'hurt', 528 | 'hushed', 529 | 'husky', 530 | 'hypnotic', 531 | 'hysterical', 532 | 'icky', 533 | 'icy', 534 | 'ideal', 535 | 'ignorant', 536 | 'ill', 537 | 'illegal', 538 | 'illustrious', 539 | 'imaginary', 540 | 'immense', 541 | 'imminent', 542 | 'immune', 543 | 'impartial', 544 | 'imperfect', 545 | 'impolite', 546 | 'important', 547 | 'imported', 548 | 'impossible', 549 | 'incandescent', 550 | 'incompetent', 551 | 'inconclusive', 552 | 'incredible', 553 | 'indigo', 554 | 'industrious', 555 | 'inexpensive', 556 | 'infamous', 557 | 'innate', 558 | 'innocent', 559 | 'inquisitive', 560 | 'insidious', 561 | 'instinctive', 562 | 'intelligent', 563 | 'interesting', 564 | 'internal', 565 | 'invincible', 566 | 'irate', 567 | 'irritating', 568 | 'itchy', 569 | 'jaded', 570 | 'jagged', 571 | 'jazzed', 572 | 'jazzy', 573 | 'jealous', 574 | 'jittery', 575 | 'jolly', 576 | 'jovial', 577 | 'joyful', 578 | 'joyous', 579 | 'jubilant', 580 | 'judicious', 581 | 'juicy', 582 | 'jumbled', 583 | 'jumpy', 584 | 'just', 585 | 'kaput', 586 | 'keen', 587 | 'khaki', 588 | 'kind', 589 | 'kindhearted', 590 | 'kindly', 591 | 'kingly', 592 | 'knotty', 593 | 'knowing', 594 | 'knowledgeable', 595 | 'known', 596 | 'labored', 597 | 'lackadaisical', 598 | 'lacking', 599 | 'lame', 600 | 'lamentable', 601 | 'languid', 602 | 'large', 603 | 'last', 604 | 'late', 605 | 'laughable', 606 | 'lavish', 607 | 'lawful', 608 | 'lazy', 609 | 'lean', 610 | 'legal', 611 | 'legit', 612 | 'lethal', 613 | 'level', 614 | 'lewd', 615 | 'light', 616 | 'like', 617 | 'likeable', 618 | 'likely', 619 | 'limber', 620 | 'limitless', 621 | 'limping', 622 | 'literate', 623 | 'little', 624 | 'lively', 625 | 'living', 626 | 'lonely', 627 | 'long', 628 | 'longing', 629 | 'loose', 630 | 'lopsided', 631 | 'loud', 632 | 'lousy', 633 | 'loutish', 634 | 'loved', 635 | 'lovely', 636 | 'loving', 637 | 'low', 638 | 'lowly', 639 | 'loyal', 640 | 'lucid', 641 | 'lucky', 642 | 'ludicrous', 643 | 'lumpy', 644 | 'lush', 645 | 'luxuriant', 646 | 'lying', 647 | 'lyrical', 648 | 'macabre', 649 | 'macho', 650 | 'maddening', 651 | 'madly', 652 | 'magenta', 653 | 'magical', 654 | 'magnificent', 655 | 'main', 656 | 'majestic', 657 | 'major', 658 | 'makeshift', 659 | 'malicious', 660 | 'mammoth', 661 | 'maniacal', 662 | 'many', 663 | 'marked', 664 | 'married', 665 | 'marvelous', 666 | 'massive', 667 | 'material', 668 | 'materialistic', 669 | 'max', 670 | 'maxed', 671 | 'mean', 672 | 'measly', 673 | 'meaty', 674 | 'medical', 675 | 'meek', 676 | 'mellow', 677 | 'melodic', 678 | 'melted', 679 | 'merciful', 680 | 'mere', 681 | 'merry', 682 | 'messy', 683 | 'mighty', 684 | 'military', 685 | 'milky', 686 | 'mindless', 687 | 'miniature', 688 | 'minor', 689 | 'mint', 690 | 'mirthful', 691 | 'miscreant', 692 | 'misty', 693 | 'mixed', 694 | 'moaning', 695 | 'modern', 696 | 'modest', 697 | 'moldy', 698 | 'momentous', 699 | 'money', 700 | 'moonlit', 701 | 'moral', 702 | 'motionless', 703 | 'mountainous', 704 | 'moving', 705 | 'mucho', 706 | 'muddled', 707 | 'mundane', 708 | 'murky', 709 | 'mushy', 710 | 'mute', 711 | 'mutual', 712 | 'mysterious', 713 | 'naive', 714 | 'nappy', 715 | 'narrow', 716 | 'nasty', 717 | 'native', 718 | 'natural', 719 | 'naughty', 720 | 'nauseating', 721 | 'near', 722 | 'neat', 723 | 'nebulous', 724 | 'necessary', 725 | 'needed', 726 | 'needless', 727 | 'needy', 728 | 'neighborly', 729 | 'nervous', 730 | 'new', 731 | 'next', 732 | 'nice', 733 | 'nifty', 734 | 'nimble', 735 | 'nippy', 736 | 'noble', 737 | 'noiseless', 738 | 'noisy', 739 | 'nonchalant', 740 | 'nondescript', 741 | 'nonstop', 742 | 'normal', 743 | 'nostalgic', 744 | 'nosy', 745 | 'noted', 746 | 'novel', 747 | 'noxious', 748 | 'null', 749 | 'numberless', 750 | 'numero', 751 | 'numerous', 752 | 'nutritious', 753 | 'nutty', 754 | 'oafish', 755 | 'obedient', 756 | 'obeisant', 757 | 'obnoxious', 758 | 'obscene', 759 | 'obsequious', 760 | 'observant', 761 | 'obsolete', 762 | 'obtainable', 763 | 'oceanic', 764 | 'odd', 765 | 'offbeat', 766 | 'okay', 767 | 'omniscient', 768 | 'onerous', 769 | 'open', 770 | 'opposite', 771 | 'optimal', 772 | 'orange', 773 | 'ordinary', 774 | 'organic', 775 | 'ossified', 776 | 'outgoing', 777 | 'outrageous', 778 | 'outstanding', 779 | 'oval', 780 | 'overconfident', 781 | 'overjoyed', 782 | 'overrated', 783 | 'overt', 784 | 'overwrought', 785 | 'pacific', 786 | 'painful', 787 | 'painstaking', 788 | 'pale', 789 | 'paltry', 790 | 'panicky', 791 | 'panoramic', 792 | 'parallel', 793 | 'parched', 794 | 'parsimonious', 795 | 'past', 796 | 'pastoral', 797 | 'pathetic', 798 | 'peaceful', 799 | 'peachy', 800 | 'penitent', 801 | 'peppy', 802 | 'perfect', 803 | 'periodic', 804 | 'permissible', 805 | 'perpetual', 806 | 'petite', 807 | 'phobic', 808 | 'physical', 809 | 'picayune', 810 | 'pink', 811 | 'piquant', 812 | 'pithy', 813 | 'placid', 814 | 'plain', 815 | 'plant', 816 | 'plastic', 817 | 'plausible', 818 | 'pleasant', 819 | 'plucky', 820 | 'plum', 821 | 'poetic', 822 | 'pointless', 823 | 'poised', 824 | 'polite', 825 | 'political', 826 | 'posh', 827 | 'possessive', 828 | 'possible', 829 | 'potent', 830 | 'powerful', 831 | 'precious', 832 | 'premium', 833 | 'present', 834 | 'pretty', 835 | 'previous', 836 | 'pricey', 837 | 'prickly', 838 | 'prime', 839 | 'primo', 840 | 'private', 841 | 'prized', 842 | 'pro', 843 | 'probable', 844 | 'productive', 845 | 'profuse', 846 | 'prompt', 847 | 'proper', 848 | 'protective', 849 | 'proud', 850 | 'psychedelic', 851 | 'psychotic', 852 | 'public', 853 | 'puffy', 854 | 'pumped', 855 | 'punchy', 856 | 'puny', 857 | 'pure', 858 | 'purple', 859 | 'purring', 860 | 'pushy', 861 | 'puzzled', 862 | 'puzzling', 863 | 'quack', 864 | 'quaint', 865 | 'quarrelsome', 866 | 'questionable', 867 | 'quick', 868 | 'quickest', 869 | 'quiet', 870 | 'quirky', 871 | 'quixotic', 872 | 'quizzical', 873 | 'rabid', 874 | 'racial', 875 | 'rad', 876 | 'radioactive', 877 | 'ragged', 878 | 'rainy', 879 | 'rambunctious', 880 | 'rampant', 881 | 'rapid', 882 | 'rare', 883 | 'raspy', 884 | 'ratty', 885 | 'reach', 886 | 'ready', 887 | 'real', 888 | 'rebel', 889 | 'receptive', 890 | 'recondite', 891 | 'red', 892 | 'redundant', 893 | 'reflective', 894 | 'regal', 895 | 'regular', 896 | 'relieved', 897 | 'remarkable', 898 | 'reminiscent', 899 | 'repulsive', 900 | 'resilient', 901 | 'resolute', 902 | 'resonant', 903 | 'responsible', 904 | 'rhetorical', 905 | 'rich', 906 | 'right', 907 | 'righteous', 908 | 'rightful', 909 | 'rigid', 910 | 'ripe', 911 | 'ritzy', 912 | 'roasted', 913 | 'robust', 914 | 'romantic', 915 | 'roomy', 916 | 'rooted', 917 | 'rosy', 918 | 'rotten', 919 | 'rough', 920 | 'round', 921 | 'royal', 922 | 'ruddy', 923 | 'rude', 924 | 'rugged', 925 | 'rural', 926 | 'rustic', 927 | 'ruthless', 928 | 'sable', 929 | 'sad', 930 | 'safe', 931 | 'salty', 932 | 'same', 933 | 'sassy', 934 | 'satisfying', 935 | 'saucy', 936 | 'savory', 937 | 'savvy', 938 | 'scandalous', 939 | 'scarce', 940 | 'scared', 941 | 'scary', 942 | 'scattered', 943 | 'scenic', 944 | 'scientific', 945 | 'scintillating', 946 | 'scrawny', 947 | 'screeching', 948 | 'second', 949 | 'secret', 950 | 'secretive', 951 | 'sedate', 952 | 'seemly', 953 | 'selective', 954 | 'selfish', 955 | 'sensitive', 956 | 'separate', 957 | 'serene', 958 | 'serious', 959 | 'shaggy', 960 | 'shaky', 961 | 'shallow', 962 | 'sharp', 963 | 'shiny', 964 | 'shivering', 965 | 'shocking', 966 | 'short', 967 | 'showy', 968 | 'shrewd', 969 | 'shrill', 970 | 'shut', 971 | 'shy', 972 | 'sick', 973 | 'silent', 974 | 'silky', 975 | 'silly', 976 | 'simple', 977 | 'simplistic', 978 | 'sincere', 979 | 'skillful', 980 | 'skinny', 981 | 'sleek', 982 | 'sleepy', 983 | 'slick', 984 | 'slim', 985 | 'slimy', 986 | 'slippery', 987 | 'sloppy', 988 | 'slow', 989 | 'small', 990 | 'smart', 991 | 'smelly', 992 | 'smiley', 993 | 'smiling', 994 | 'smoggy', 995 | 'smooth', 996 | 'snappy', 997 | 'snazzy', 998 | 'sneaky', 999 | 'snobbish', 1000 | 'snotty', 1001 | 'snowy', 1002 | 'snugly', 1003 | 'social', 1004 | 'soft', 1005 | 'soggy', 1006 | 'sole', 1007 | 'solid', 1008 | 'solitary', 1009 | 'somber', 1010 | 'sophisticated', 1011 | 'sordid', 1012 | 'sore', 1013 | 'sound', 1014 | 'sour', 1015 | 'spacial', 1016 | 'sparkling', 1017 | 'special', 1018 | 'spectacular', 1019 | 'spicy', 1020 | 'spiffy', 1021 | 'spiky', 1022 | 'spiritual', 1023 | 'spiteful', 1024 | 'splendid', 1025 | 'spooky', 1026 | 'spotless', 1027 | 'spotted', 1028 | 'spotty', 1029 | 'spry', 1030 | 'spurious', 1031 | 'squalid', 1032 | 'square', 1033 | 'squealing', 1034 | 'squeamish', 1035 | 'stable', 1036 | 'staking', 1037 | 'stale', 1038 | 'standing', 1039 | 'star', 1040 | 'stark', 1041 | 'statuesque', 1042 | 'steadfast', 1043 | 'steady', 1044 | 'steep', 1045 | 'stereotyped', 1046 | 'sticky', 1047 | 'stiff', 1048 | 'stimulating', 1049 | 'stingy', 1050 | 'stoic', 1051 | 'stormy', 1052 | 'straight', 1053 | 'strange', 1054 | 'striped', 1055 | 'strong', 1056 | 'stunning', 1057 | 'stupendous', 1058 | 'sturdy', 1059 | 'suave', 1060 | 'subdued', 1061 | 'subsequent', 1062 | 'substantial', 1063 | 'subtle', 1064 | 'successful', 1065 | 'succinct', 1066 | 'sudden', 1067 | 'sulky', 1068 | 'sunny', 1069 | 'sunset', 1070 | 'super', 1071 | 'superb', 1072 | 'superficial', 1073 | 'supreme', 1074 | 'sure', 1075 | 'swank', 1076 | 'swanky', 1077 | 'sweet', 1078 | 'swell', 1079 | 'sweltering', 1080 | 'swift', 1081 | 'symptomatic', 1082 | 'synonymous', 1083 | 'taboo', 1084 | 'tacit', 1085 | 'tacky', 1086 | 'talented', 1087 | 'tall', 1088 | 'tame', 1089 | 'tan', 1090 | 'tangible', 1091 | 'tangy', 1092 | 'tart', 1093 | 'tasteful', 1094 | 'tasteless', 1095 | 'tasty', 1096 | 'tawdry', 1097 | 'teal', 1098 | 'tearful', 1099 | 'tedious', 1100 | 'teeny', 1101 | 'telling', 1102 | 'temporary', 1103 | 'tender', 1104 | 'tense', 1105 | 'tenuous', 1106 | 'terrible', 1107 | 'terrific', 1108 | 'tested', 1109 | 'testy', 1110 | 'thankful', 1111 | 'therapeutic', 1112 | 'thin', 1113 | 'thinkable', 1114 | 'third', 1115 | 'thoughtful', 1116 | 'thoughtless', 1117 | 'threatening', 1118 | 'thriving', 1119 | 'thundering', 1120 | 'tidy', 1121 | 'timely', 1122 | 'tiny', 1123 | 'tired', 1124 | 'tiresome', 1125 | 'toothsome', 1126 | 'top', 1127 | 'tops', 1128 | 'torpid', 1129 | 'tough', 1130 | 'touted', 1131 | 'towering', 1132 | 'tranquil', 1133 | 'trashy', 1134 | 'tremendous', 1135 | 'tricky', 1136 | 'trim', 1137 | 'trite', 1138 | 'tropical', 1139 | 'troubled', 1140 | 'truculent', 1141 | 'true', 1142 | 'trusty', 1143 | 'truthful', 1144 | 'try', 1145 | 'typical', 1146 | 'ubiquitous', 1147 | 'ultra', 1148 | 'unable', 1149 | 'unaccountable', 1150 | 'unadvised', 1151 | 'unarmed', 1152 | 'unbecoming', 1153 | 'unbiased', 1154 | 'uncovered', 1155 | 'understood', 1156 | 'undisturbed', 1157 | 'unequal', 1158 | 'unequaled', 1159 | 'uneven', 1160 | 'unhealthy', 1161 | 'uninterested', 1162 | 'unique', 1163 | 'united', 1164 | 'unkempt', 1165 | 'unknown', 1166 | 'unnatural', 1167 | 'unruly', 1168 | 'unsightly', 1169 | 'unsuitable', 1170 | 'untidy', 1171 | 'unused', 1172 | 'unusual', 1173 | 'unwavering', 1174 | 'unwieldy', 1175 | 'unwritten', 1176 | 'upbeat', 1177 | 'uplifting', 1178 | 'uppity', 1179 | 'upset', 1180 | 'uptight', 1181 | 'urbane', 1182 | 'usable', 1183 | 'used', 1184 | 'useful', 1185 | 'utmost', 1186 | 'utopian', 1187 | 'utter', 1188 | 'uttermost', 1189 | 'vacuous', 1190 | 'vagabond', 1191 | 'vague', 1192 | 'valid', 1193 | 'valuable', 1194 | 'various', 1195 | 'vast', 1196 | 'vengeful', 1197 | 'venomous', 1198 | 'verdant', 1199 | 'versed', 1200 | 'vestal', 1201 | 'viable', 1202 | 'victorious', 1203 | 'vigorous', 1204 | 'violent', 1205 | 'violet', 1206 | 'vital', 1207 | 'vivacious', 1208 | 'vivid', 1209 | 'vocal', 1210 | 'vogue', 1211 | 'voiceless', 1212 | 'volatile', 1213 | 'voracious', 1214 | 'wacky', 1215 | 'waggish', 1216 | 'waiting', 1217 | 'wakeful', 1218 | 'wandering', 1219 | 'wanted', 1220 | 'wanting', 1221 | 'warlike', 1222 | 'warm', 1223 | 'wary', 1224 | 'wasteful', 1225 | 'watery', 1226 | 'weak', 1227 | 'wealthy', 1228 | 'weary', 1229 | 'wet', 1230 | 'whimsical', 1231 | 'whispering', 1232 | 'whole', 1233 | 'wholesale', 1234 | 'wicked', 1235 | 'wide', 1236 | 'wiggly', 1237 | 'wild', 1238 | 'willing', 1239 | 'windy', 1240 | 'winged', 1241 | 'wired', 1242 | 'wiry', 1243 | 'wise', 1244 | 'wistful', 1245 | 'witty', 1246 | 'woebegone', 1247 | 'wonderful', 1248 | 'wooden', 1249 | 'woozy', 1250 | 'workable', 1251 | 'worried', 1252 | 'worthy', 1253 | 'wrathful', 1254 | 'wretched', 1255 | 'wrong', 1256 | 'wry', 1257 | 'yielding', 1258 | 'young', 1259 | 'youthful', 1260 | 'yummy', 1261 | 'zany', 1262 | 'zealous', 1263 | 'zesty', 1264 | 'zippy', 1265 | 'zonked' ]; 1266 | -------------------------------------------------------------------------------- /src/generator-bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const generate = require('./generator') 4 | const program = require('commander') 5 | 6 | program 7 | .version('1.0.0') 8 | .option('-w, --words [num]', 'number of words [2]', 2) 9 | .option('-n, --numbers', 'use numbers') 10 | .option('-a, --alliterative', 'use alliterative') 11 | .option('-o, --output [output]', 'output type [raw|dashed|spaced]', /^(raw|dashed|spaced)$/i) 12 | .parse(process.argv) 13 | 14 | let project_name = generate({words: program.words, number: program.numbers, alliterative: program.alliterative}); 15 | 16 | if (program.output == "dashed"){ 17 | console.log(project_name.dashed); 18 | } else if (program.output == "raw") { 19 | console.log(project_name.raw); 20 | } else if (program.output == "spaced") { 21 | console.log(project_name.spaced); 22 | } else { 23 | console.log(project_name); 24 | } -------------------------------------------------------------------------------- /src/generator.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'project-name-generator' { 2 | interface Options { 3 | alliterative?: boolean; 4 | number?: boolean; 5 | words?: number; 6 | } 7 | 8 | type Result = { 9 | dashed: string; 10 | raw: string[]; 11 | spaced: string; 12 | }; 13 | 14 | export default function(options?: Options): Result; 15 | } 16 | -------------------------------------------------------------------------------- /src/generator.js: -------------------------------------------------------------------------------- 1 | const _ = require('lodash'); 2 | const nouns = require('./nouns'); 3 | const adjectives = require('./adjectives'); 4 | 5 | 6 | module.exports = generate; 7 | 8 | generate.generate = generate; 9 | function generate(options) { 10 | var defaults = { 11 | number: false, 12 | words: 2, 13 | alliterative: false, 14 | }; 15 | options = _.merge(defaults, options || {}); 16 | 17 | var raw = getRawProjName(options); 18 | 19 | return { 20 | raw: raw, 21 | dashed: raw.join('-'), 22 | spaced: raw.join(' ') 23 | }; 24 | } 25 | 26 | function getRawProjName(options) { 27 | var raw = []; 28 | _.times(options.words - 1, function () { 29 | if (options.alliterative && raw.length) 30 | raw.push(_.sample(getAlliterativeMatches(adjectives, raw[0].substring(0, 1)))); 31 | else 32 | raw.push(_.sample(adjectives).toLowerCase()); 33 | }); 34 | 35 | if (options.alliterative) 36 | raw.push(_.sample(getAlliterativeMatches(nouns, raw[0].substring(0, 1)))); 37 | else 38 | raw.push(_.sample(nouns).toLowerCase()); 39 | 40 | if (options.number) { 41 | raw.push(_.random(1, 9999)); 42 | } 43 | return raw; 44 | } 45 | 46 | function getAlliterativeMatches(arr, letter) { 47 | var check = letter.toLowerCase(); 48 | return _.filter(arr, function(elm) { return elm.substring(0, 1).toLowerCase() === check; }); 49 | } 50 | -------------------------------------------------------------------------------- /src/nouns.js: -------------------------------------------------------------------------------- 1 | module.exports = [ 2 | "account", 3 | "achiever", 4 | "acoustics", 5 | "act", 6 | "action", 7 | "activity", 8 | "actor", 9 | "addition", 10 | "adjustment", 11 | "advertisement", 12 | "advice", 13 | "aftermath", 14 | "afternoon", 15 | "afterthought", 16 | "agreement", 17 | "air", 18 | "airplane", 19 | "airport", 20 | "alarm", 21 | "amount", 22 | "amusement", 23 | "anger", 24 | "angle", 25 | "animal", 26 | "ants", 27 | "apparatus", 28 | "apparel", 29 | "appliance", 30 | "approval", 31 | "arch", 32 | "argument", 33 | "arithmetic", 34 | "arm", 35 | "army", 36 | "art", 37 | "attack", 38 | "attraction", 39 | "authority", 40 | "back", 41 | "badge", 42 | "bag", 43 | "bait", 44 | "balance", 45 | "ball", 46 | "base", 47 | "baseball", 48 | "basin", 49 | "basket", 50 | "basketball", 51 | "bat", 52 | "bath", 53 | "battle", 54 | "bead", 55 | "bear", 56 | "bed", 57 | "bedroom", 58 | "beds", 59 | "bee", 60 | "beef", 61 | "beginner", 62 | "behavior", 63 | "belief", 64 | "believe", 65 | "bell", 66 | "bells", 67 | "berry", 68 | "bike", 69 | "bikes", 70 | "bird", 71 | "birds", 72 | "birth", 73 | "birthday", 74 | "bit", 75 | "bite", 76 | "blade", 77 | "blood", 78 | "blow", 79 | "board", 80 | "boat", 81 | "bomb", 82 | "bone", 83 | "book", 84 | "books", 85 | "boot", 86 | "border", 87 | "bottle", 88 | "boundary", 89 | "box", 90 | "brake", 91 | "branch", 92 | "brass", 93 | "breath", 94 | "brick", 95 | "bridge", 96 | "bubble", 97 | "bucket", 98 | "building", 99 | "bulb", 100 | "burst", 101 | "bushes", 102 | "business", 103 | "butter", 104 | "button", 105 | "cabbage", 106 | "cable", 107 | "cactus", 108 | "cake", 109 | "cakes", 110 | "calculator", 111 | "calendar", 112 | "camera", 113 | "camp", 114 | "can", 115 | "cannon", 116 | "canvas", 117 | "cap", 118 | "caption", 119 | "car", 120 | "card", 121 | "care", 122 | "carpenter", 123 | "carriage", 124 | "cars", 125 | "cart", 126 | "cast", 127 | "cat", 128 | "cats", 129 | "cattle", 130 | "cause", 131 | "cave", 132 | "celery", 133 | "cellar", 134 | "cemetery", 135 | "cent", 136 | "chalk", 137 | "chance", 138 | "change", 139 | "channel", 140 | "cheese", 141 | "cherries", 142 | "cherry", 143 | "chess", 144 | "chicken", 145 | "chickens", 146 | "chin", 147 | "church", 148 | "circle", 149 | "clam", 150 | "class", 151 | "cloth", 152 | "clover", 153 | "club", 154 | "coach", 155 | "coal", 156 | "coast", 157 | "coat", 158 | "cobweb", 159 | "coil", 160 | "collar", 161 | "color", 162 | "committee", 163 | "company", 164 | "comparison", 165 | "competition", 166 | "condition", 167 | "connection", 168 | "control", 169 | "cook", 170 | "copper", 171 | "corn", 172 | "cough", 173 | "country", 174 | "cover", 175 | "cow", 176 | "cows", 177 | "crack", 178 | "cracker", 179 | "crate", 180 | "crayon", 181 | "cream", 182 | "creator", 183 | "creature", 184 | "credit", 185 | "crib", 186 | "crime", 187 | "crook", 188 | "crow", 189 | "crowd", 190 | "crown", 191 | "cub", 192 | "cup", 193 | "current", 194 | "curtain", 195 | "curve", 196 | "cushion", 197 | "day", 198 | "death", 199 | "debt", 200 | "decision", 201 | "deer", 202 | "degree", 203 | "design", 204 | "desire", 205 | "desk", 206 | "destruction", 207 | "detail", 208 | "development", 209 | "digestion", 210 | "dime", 211 | "dinner", 212 | "dinosaurs", 213 | "direction", 214 | "dirt", 215 | "discovery", 216 | "discussion", 217 | "distance", 218 | "distribution", 219 | "division", 220 | "dock", 221 | "doctor", 222 | "dog", 223 | "dogs", 224 | "doll", 225 | "dolls", 226 | "donkey", 227 | "door", 228 | "downtown", 229 | "drain", 230 | "drawer", 231 | "dress", 232 | "drink", 233 | "driving", 234 | "drop", 235 | "duck", 236 | "ducks", 237 | "dust", 238 | "ear", 239 | "earth", 240 | "earthquake", 241 | "edge", 242 | "education", 243 | "effect", 244 | "egg", 245 | "eggnog", 246 | "eggs", 247 | "elbow", 248 | "end", 249 | "engine", 250 | "error", 251 | "event", 252 | "example", 253 | "exchange", 254 | "existence", 255 | "expansion", 256 | "experience", 257 | "expert", 258 | "eye", 259 | "eyes", 260 | "face", 261 | "fact", 262 | "fairies", 263 | "fall", 264 | "fang", 265 | "farm", 266 | "fear", 267 | "feeling", 268 | "field", 269 | "finger", 270 | "fire", 271 | "fish", 272 | "flag", 273 | "flame", 274 | "flavor", 275 | "flesh", 276 | "flight", 277 | "flock", 278 | "floor", 279 | "flower", 280 | "flowers", 281 | "fly", 282 | "fog", 283 | "fold", 284 | "food", 285 | "foot", 286 | "force", 287 | "fork", 288 | "form", 289 | "fowl", 290 | "frame", 291 | "friction", 292 | "friend", 293 | "friends", 294 | "frog", 295 | "frogs", 296 | "front", 297 | "fruit", 298 | "fuel", 299 | "furniture", 300 | "gate", 301 | "geese", 302 | "ghost", 303 | "giants", 304 | "giraffe", 305 | "glass", 306 | "glove", 307 | "gold", 308 | "government", 309 | "governor", 310 | "grade", 311 | "grain", 312 | "grape", 313 | "grass", 314 | "grip", 315 | "ground", 316 | "group", 317 | "growth", 318 | "guide", 319 | "guitar", 320 | "gun", 321 | "hair", 322 | "haircut", 323 | "hall", 324 | "hammer", 325 | "hand", 326 | "hands", 327 | "harbor", 328 | "harmony", 329 | "hat", 330 | "head", 331 | "health", 332 | "heat", 333 | "hill", 334 | "history", 335 | "hobbies", 336 | "hole", 337 | "holiday", 338 | "home", 339 | "honey", 340 | "hook", 341 | "hope", 342 | "horn", 343 | "horse", 344 | "horses", 345 | "hose", 346 | "hospital", 347 | "hot", 348 | "hour", 349 | "house", 350 | "houses", 351 | "humor", 352 | "hydrant", 353 | "ice", 354 | "icicle", 355 | "idea", 356 | "impulse", 357 | "income", 358 | "increase", 359 | "industry", 360 | "ink", 361 | "insect", 362 | "instrument", 363 | "insurance", 364 | "interest", 365 | "invention", 366 | "iron", 367 | "island", 368 | "jail", 369 | "jam", 370 | "jar", 371 | "jeans", 372 | "jelly", 373 | "jellyfish", 374 | "jewel", 375 | "join", 376 | "judge", 377 | "juice", 378 | "jump", 379 | "kettle", 380 | "key", 381 | "kick", 382 | "kiss", 383 | "kittens", 384 | "kitty", 385 | "knee", 386 | "knife", 387 | "knot", 388 | "knowledge", 389 | "laborer", 390 | "lace", 391 | "ladybug", 392 | "lake", 393 | "lamp", 394 | "land", 395 | "language", 396 | "laugh", 397 | "leather", 398 | "leg", 399 | "legs", 400 | "letter", 401 | "letters", 402 | "lettuce", 403 | "level", 404 | "library", 405 | "limit", 406 | "line", 407 | "linen", 408 | "lip", 409 | "liquid", 410 | "loaf", 411 | "lock", 412 | "locket", 413 | "look", 414 | "loss", 415 | "love", 416 | "low", 417 | "lumber", 418 | "lunch", 419 | "lunchroom", 420 | "machine", 421 | "magic", 422 | "maid", 423 | "mailbox", 424 | "marble", 425 | "mark", 426 | "market", 427 | "mask", 428 | "mass", 429 | "match", 430 | "meal", 431 | "measure", 432 | "meat", 433 | "meeting", 434 | "memory", 435 | "metal", 436 | "mice", 437 | "middle", 438 | "milk", 439 | "mind", 440 | "mine", 441 | "minister", 442 | "mint", 443 | "minute", 444 | "mist", 445 | "mitten", 446 | "money", 447 | "month", 448 | "moon", 449 | "morning", 450 | "mother", 451 | "motion", 452 | "mountain", 453 | "mouth", 454 | "move", 455 | "muscle", 456 | "name", 457 | "nation", 458 | "neck", 459 | "need", 460 | "needle", 461 | "nerve", 462 | "nest", 463 | "night", 464 | "noise", 465 | "north", 466 | "nose", 467 | "note", 468 | "notebook", 469 | "number", 470 | "nut", 471 | "oatmeal", 472 | "observation", 473 | "ocean", 474 | "offer", 475 | "office", 476 | "oil", 477 | "orange", 478 | "oranges", 479 | "order", 480 | "oven", 481 | "page", 482 | "pail", 483 | "pan", 484 | "pancake", 485 | "paper", 486 | "parcel", 487 | "part", 488 | "partner", 489 | "party", 490 | "passenger", 491 | "payment", 492 | "peace", 493 | "pear", 494 | "pen", 495 | "pencil", 496 | "person", 497 | "pest", 498 | "pet", 499 | "pets", 500 | "pickle", 501 | "picture", 502 | "pie", 503 | "pies", 504 | "pig", 505 | "pigs", 506 | "pin", 507 | "pipe", 508 | "pizzas", 509 | "place", 510 | "plane", 511 | "planes", 512 | "plant", 513 | "plantation", 514 | "plants", 515 | "plastic", 516 | "plate", 517 | "play", 518 | "playground", 519 | "pleasure", 520 | "plot", 521 | "plough", 522 | "pocket", 523 | "point", 524 | "poison", 525 | "pollution", 526 | "popcorn", 527 | "porter", 528 | "position", 529 | "pot", 530 | "potato", 531 | "powder", 532 | "power", 533 | "price", 534 | "produce", 535 | "profit", 536 | "property", 537 | "prose", 538 | "protest", 539 | "pull", 540 | "pump", 541 | "punishment", 542 | "purpose", 543 | "push", 544 | "quarter", 545 | "quartz", 546 | "question", 547 | "quicksand", 548 | "quiet", 549 | "quill", 550 | "quilt", 551 | "quince", 552 | "quiver", 553 | "rabbit", 554 | "rabbits", 555 | "rail", 556 | "railway", 557 | "rain", 558 | "rainstorm", 559 | "rake", 560 | "range", 561 | "rat", 562 | "rate", 563 | "ray", 564 | "reaction", 565 | "reading", 566 | "reason", 567 | "receipt", 568 | "recess", 569 | "record", 570 | "regret", 571 | "relation", 572 | "religion", 573 | "representative", 574 | "request", 575 | "respect", 576 | "rest", 577 | "reward", 578 | "rhythm", 579 | "rice", 580 | "riddle", 581 | "rifle", 582 | "ring", 583 | "rings", 584 | "river", 585 | "road", 586 | "robin", 587 | "rock", 588 | "rod", 589 | "roll", 590 | "roof", 591 | "room", 592 | "root", 593 | "rose", 594 | "route", 595 | "rub", 596 | "rule", 597 | "run", 598 | "sack", 599 | "sail", 600 | "salt", 601 | "sand", 602 | "scale", 603 | "scarecrow", 604 | "scarf", 605 | "scene", 606 | "scent", 607 | "school", 608 | "science", 609 | "scissors", 610 | "screw", 611 | "sea", 612 | "seashore", 613 | "seat", 614 | "secretary", 615 | "seed", 616 | "selection", 617 | "self", 618 | "sense", 619 | "servant", 620 | "shade", 621 | "shake", 622 | "shame", 623 | "shape", 624 | "sheep", 625 | "sheet", 626 | "shelf", 627 | "ship", 628 | "shirt", 629 | "shock", 630 | "shoe", 631 | "shoes", 632 | "shop", 633 | "show", 634 | "side", 635 | "sidewalk", 636 | "sign", 637 | "silk", 638 | "silver", 639 | "sink", 640 | "size", 641 | "skate", 642 | "skin", 643 | "skirt", 644 | "sky", 645 | "slave", 646 | "sleep", 647 | "sleet", 648 | "slip", 649 | "slope", 650 | "smash", 651 | "smell", 652 | "smile", 653 | "smoke", 654 | "snail", 655 | "snails", 656 | "snake", 657 | "snakes", 658 | "sneeze", 659 | "snow", 660 | "soap", 661 | "society", 662 | "sock", 663 | "soda", 664 | "sofa", 665 | "song", 666 | "songs", 667 | "sort", 668 | "sound", 669 | "soup", 670 | "space", 671 | "spade", 672 | "spark", 673 | "spiders", 674 | "sponge", 675 | "spoon", 676 | "spot", 677 | "spring", 678 | "spy", 679 | "square", 680 | "squirrel", 681 | "stage", 682 | "stamp", 683 | "star", 684 | "start", 685 | "statement", 686 | "station", 687 | "steam", 688 | "steel", 689 | "stem", 690 | "step", 691 | "stew", 692 | "stick", 693 | "sticks", 694 | "stitch", 695 | "stocking", 696 | "stomach", 697 | "stone", 698 | "stop", 699 | "store", 700 | "story", 701 | "stove", 702 | "stranger", 703 | "straw", 704 | "stream", 705 | "street", 706 | "stretch", 707 | "string", 708 | "structure", 709 | "substance", 710 | "sugar", 711 | "suggestion", 712 | "suit", 713 | "summer", 714 | "sun", 715 | "support", 716 | "surprise", 717 | "sweater", 718 | "swim", 719 | "swing", 720 | "system", 721 | "table", 722 | "tail", 723 | "talk", 724 | "tank", 725 | "taste", 726 | "tax", 727 | "teaching", 728 | "team", 729 | "teeth", 730 | "temper", 731 | "tendency", 732 | "tent", 733 | "territory", 734 | "test", 735 | "texture", 736 | "theory", 737 | "thing", 738 | "things", 739 | "thought", 740 | "thread", 741 | "thrill", 742 | "throat", 743 | "throne", 744 | "thumb", 745 | "thunder", 746 | "ticket", 747 | "tiger", 748 | "time", 749 | "tin", 750 | "title", 751 | "toad", 752 | "toe", 753 | "toes", 754 | "tomatoes", 755 | "tongue", 756 | "tooth", 757 | "toothbrush", 758 | "toothpaste", 759 | "top", 760 | "touch", 761 | "town", 762 | "toy", 763 | "toys", 764 | "trade", 765 | "trail", 766 | "train", 767 | "trains", 768 | "tramp", 769 | "transport", 770 | "tray", 771 | "treatment", 772 | "tree", 773 | "trees", 774 | "trick", 775 | "trip", 776 | "trouble", 777 | "trousers", 778 | "truck", 779 | "trucks", 780 | "tub", 781 | "turkey", 782 | "turn", 783 | "twig", 784 | "twist", 785 | "umbrella", 786 | "underwear", 787 | "unit", 788 | "use", 789 | "vacation", 790 | "value", 791 | "van", 792 | "vase", 793 | "vegetable", 794 | "veil", 795 | "vein", 796 | "verse", 797 | "vessel", 798 | "vest", 799 | "view", 800 | "visitor", 801 | "voice", 802 | "volcano", 803 | "volleyball", 804 | "voyage", 805 | "walk", 806 | "wall", 807 | "war", 808 | "wash", 809 | "waste", 810 | "watch", 811 | "water", 812 | "wave", 813 | "waves", 814 | "wax", 815 | "way", 816 | "wealth", 817 | "weather", 818 | "week", 819 | "weight", 820 | "wheel", 821 | "whip", 822 | "whistle", 823 | "wilderness", 824 | "wind", 825 | "window", 826 | "wine", 827 | "wing", 828 | "winter", 829 | "wire", 830 | "wish", 831 | "wood", 832 | "wool", 833 | "word", 834 | "work", 835 | "worm", 836 | "wound", 837 | "wren", 838 | "wrench", 839 | "wrist", 840 | "writer", 841 | "writing", 842 | "yak", 843 | "yam", 844 | "yard", 845 | "yarn", 846 | "year", 847 | "yoke", 848 | "zebra", 849 | "zephyr", 850 | "zinc", 851 | "zipper", 852 | "zoo" 853 | ]; 854 | --------------------------------------------------------------------------------