├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .gitignore ├── README.md ├── bin ├── run └── run.cmd ├── img └── commands.png ├── package-lock.json ├── package.json ├── src ├── commands │ ├── init.ts │ └── list.ts └── index.ts └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /lib 2 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "oclif", 4 | "oclif-typescript" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *-debug.log 2 | *-error.log 3 | /.nyc_output 4 | /dist 5 | /lib 6 | /tmp 7 | /yarn.lock 8 | node_modules 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | cdkp 2 | ==== 3 | 4 | [![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io) 5 | [![Downloads](https://img.shields.io/npm/dt/cdkp)](https://npmjs.org/package/cdkp) 6 | 7 | CLI tool for cdkpatterns.com to make it as simple as one command to download and learn a new pattern. This tool will only download the one pattern you are interested in rather than the whole repo. 8 | 9 | ### Three Simple Commands To Deploy A pattern 10 | 11 | three simple commands 12 | 13 | 14 | ## Requirements 15 | 16 | You must have git installed on your system as this is what is used to download the pattern. This uses the code at cdkpatterns.com, there is no external api. 17 | 18 | ## Usage 19 | 20 | ### Downloading a pattern 21 | 22 | `npx cdkp init {pattern-name}` 23 | 24 | pattern-name is the string name of any of the existing patterns on cdkpatterns.com with - instead of spaces e.g. 25 | 26 | * `npx cdkp init the-big-fan` 27 | * `npx cdkp init the-simple-webservice` 28 | * `npx cdkp init the-eventbridge-atm` 29 | 30 | ### Viewing Available Patterns 31 | 32 | you can view all available patterns by using the list command: 33 | 34 | * `npx cdkp list` 35 | 36 | ### Advanced Usage 37 | 38 | If you want to download the python version of a pattern you just need to include the --lang=python flag in the command: 39 | 40 | * `npx cdkp init the-big-fan --lang=python` 41 | 42 | You can also only init a pattern into a directory once because the second time would wipe the contents of the folder. There is a -f flag if you really want to wipe the contents e.g. 43 | 44 | * `npx cdkp init the-big-fan -f` 45 | 46 | If a folder called the-big-fan already existed in the directory you ran the command because you added the force flag it will be wiped 47 | -------------------------------------------------------------------------------- /bin/run: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('@oclif/command').run() 4 | .then(require('@oclif/command/flush')) 5 | .catch(require('@oclif/errors/handle')) 6 | -------------------------------------------------------------------------------- /bin/run.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | node "%~dp0\run" %* 4 | -------------------------------------------------------------------------------- /img/commands.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdk-patterns/cli/5a0c6baf97578bad1a483728408e7f8bd6d26dfc/img/commands.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cdkp", 3 | "version": "0.7.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.8.3", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", 10 | "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.8.3" 14 | } 15 | }, 16 | "@babel/generator": { 17 | "version": "7.8.8", 18 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz", 19 | "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==", 20 | "dev": true, 21 | "requires": { 22 | "@babel/types": "^7.8.7", 23 | "jsesc": "^2.5.1", 24 | "lodash": "^4.17.13", 25 | "source-map": "^0.5.0" 26 | } 27 | }, 28 | "@babel/helper-function-name": { 29 | "version": "7.8.3", 30 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", 31 | "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", 32 | "dev": true, 33 | "requires": { 34 | "@babel/helper-get-function-arity": "^7.8.3", 35 | "@babel/template": "^7.8.3", 36 | "@babel/types": "^7.8.3" 37 | } 38 | }, 39 | "@babel/helper-get-function-arity": { 40 | "version": "7.8.3", 41 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", 42 | "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", 43 | "dev": true, 44 | "requires": { 45 | "@babel/types": "^7.8.3" 46 | } 47 | }, 48 | "@babel/helper-split-export-declaration": { 49 | "version": "7.8.3", 50 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", 51 | "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", 52 | "dev": true, 53 | "requires": { 54 | "@babel/types": "^7.8.3" 55 | } 56 | }, 57 | "@babel/highlight": { 58 | "version": "7.8.3", 59 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", 60 | "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", 61 | "dev": true, 62 | "requires": { 63 | "chalk": "^2.0.0", 64 | "esutils": "^2.0.2", 65 | "js-tokens": "^4.0.0" 66 | } 67 | }, 68 | "@babel/parser": { 69 | "version": "7.8.8", 70 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz", 71 | "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==", 72 | "dev": true 73 | }, 74 | "@babel/template": { 75 | "version": "7.8.6", 76 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", 77 | "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", 78 | "dev": true, 79 | "requires": { 80 | "@babel/code-frame": "^7.8.3", 81 | "@babel/parser": "^7.8.6", 82 | "@babel/types": "^7.8.6" 83 | } 84 | }, 85 | "@babel/traverse": { 86 | "version": "7.8.6", 87 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", 88 | "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", 89 | "dev": true, 90 | "requires": { 91 | "@babel/code-frame": "^7.8.3", 92 | "@babel/generator": "^7.8.6", 93 | "@babel/helper-function-name": "^7.8.3", 94 | "@babel/helper-split-export-declaration": "^7.8.3", 95 | "@babel/parser": "^7.8.6", 96 | "@babel/types": "^7.8.6", 97 | "debug": "^4.1.0", 98 | "globals": "^11.1.0", 99 | "lodash": "^4.17.13" 100 | } 101 | }, 102 | "@babel/types": { 103 | "version": "7.8.7", 104 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", 105 | "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", 106 | "dev": true, 107 | "requires": { 108 | "esutils": "^2.0.2", 109 | "lodash": "^4.17.13", 110 | "to-fast-properties": "^2.0.0" 111 | } 112 | }, 113 | "@nodelib/fs.scandir": { 114 | "version": "2.1.3", 115 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", 116 | "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", 117 | "dev": true, 118 | "requires": { 119 | "@nodelib/fs.stat": "2.0.3", 120 | "run-parallel": "^1.1.9" 121 | } 122 | }, 123 | "@nodelib/fs.stat": { 124 | "version": "2.0.3", 125 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", 126 | "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", 127 | "dev": true 128 | }, 129 | "@nodelib/fs.walk": { 130 | "version": "1.2.4", 131 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", 132 | "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", 133 | "dev": true, 134 | "requires": { 135 | "@nodelib/fs.scandir": "2.1.3", 136 | "fastq": "^1.6.0" 137 | } 138 | }, 139 | "@oclif/command": { 140 | "version": "1.5.19", 141 | "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.5.19.tgz", 142 | "integrity": "sha512-6+iaCMh/JXJaB2QWikqvGE9//wLEVYYwZd5sud8aLoLKog1Q75naZh2vlGVtg5Mq/NqpqGQvdIjJb3Bm+64AUQ==", 143 | "requires": { 144 | "@oclif/config": "^1", 145 | "@oclif/errors": "^1.2.2", 146 | "@oclif/parser": "^3.8.3", 147 | "@oclif/plugin-help": "^2", 148 | "debug": "^4.1.1", 149 | "semver": "^5.6.0" 150 | } 151 | }, 152 | "@oclif/config": { 153 | "version": "1.14.0", 154 | "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.14.0.tgz", 155 | "integrity": "sha512-KsOP/mx9lzTah+EtGqLUXN3PDL0J3zb9/dTneFyiUK2K6T7vFEGhV6OasmqTh4uMZHGYTGrNPV8x/Yw6qZNL6A==", 156 | "requires": { 157 | "@oclif/errors": "^1.0.0", 158 | "@oclif/parser": "^3.8.0", 159 | "debug": "^4.1.1", 160 | "tslib": "^1.9.3" 161 | } 162 | }, 163 | "@oclif/dev-cli": { 164 | "version": "1.22.2", 165 | "resolved": "https://registry.npmjs.org/@oclif/dev-cli/-/dev-cli-1.22.2.tgz", 166 | "integrity": "sha512-c7633R37RxrQIpwqPKxjNRm6/jb1yuG8fd16hmNz9Nw+/MUhEtQtKHSCe9ScH8n5M06l6LEo4ldk9LEGtpaWwA==", 167 | "dev": true, 168 | "requires": { 169 | "@oclif/command": "^1.5.13", 170 | "@oclif/config": "^1.12.12", 171 | "@oclif/errors": "^1.2.2", 172 | "@oclif/plugin-help": "^2.1.6", 173 | "cli-ux": "^5.2.1", 174 | "debug": "^4.1.1", 175 | "fs-extra": "^7.0.1", 176 | "github-slugger": "^1.2.1", 177 | "lodash": "^4.17.11", 178 | "normalize-package-data": "^2.5.0", 179 | "qqjs": "^0.3.10", 180 | "tslib": "^1.9.3" 181 | }, 182 | "dependencies": { 183 | "fs-extra": { 184 | "version": "7.0.1", 185 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", 186 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", 187 | "dev": true, 188 | "requires": { 189 | "graceful-fs": "^4.1.2", 190 | "jsonfile": "^4.0.0", 191 | "universalify": "^0.1.0" 192 | } 193 | } 194 | } 195 | }, 196 | "@oclif/errors": { 197 | "version": "1.2.2", 198 | "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.2.2.tgz", 199 | "integrity": "sha512-Eq8BFuJUQcbAPVofDxwdE0bL14inIiwt5EaKRVY9ZDIG11jwdXZqiQEECJx0VfnLyUZdYfRd/znDI/MytdJoKg==", 200 | "requires": { 201 | "clean-stack": "^1.3.0", 202 | "fs-extra": "^7.0.0", 203 | "indent-string": "^3.2.0", 204 | "strip-ansi": "^5.0.0", 205 | "wrap-ansi": "^4.0.0" 206 | }, 207 | "dependencies": { 208 | "fs-extra": { 209 | "version": "7.0.1", 210 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", 211 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", 212 | "requires": { 213 | "graceful-fs": "^4.1.2", 214 | "jsonfile": "^4.0.0", 215 | "universalify": "^0.1.0" 216 | } 217 | } 218 | } 219 | }, 220 | "@oclif/linewrap": { 221 | "version": "1.0.0", 222 | "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", 223 | "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" 224 | }, 225 | "@oclif/parser": { 226 | "version": "3.8.4", 227 | "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.4.tgz", 228 | "integrity": "sha512-cyP1at3l42kQHZtqDS3KfTeyMvxITGwXwH1qk9ktBYvqgMp5h4vHT+cOD74ld3RqJUOZY/+Zi9lb4Tbza3BtuA==", 229 | "requires": { 230 | "@oclif/linewrap": "^1.0.0", 231 | "chalk": "^2.4.2", 232 | "tslib": "^1.9.3" 233 | } 234 | }, 235 | "@oclif/plugin-help": { 236 | "version": "2.2.3", 237 | "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-2.2.3.tgz", 238 | "integrity": "sha512-bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==", 239 | "requires": { 240 | "@oclif/command": "^1.5.13", 241 | "chalk": "^2.4.1", 242 | "indent-string": "^4.0.0", 243 | "lodash.template": "^4.4.0", 244 | "string-width": "^3.0.0", 245 | "strip-ansi": "^5.0.0", 246 | "widest-line": "^2.0.1", 247 | "wrap-ansi": "^4.0.0" 248 | }, 249 | "dependencies": { 250 | "indent-string": { 251 | "version": "4.0.0", 252 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 253 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" 254 | }, 255 | "string-width": { 256 | "version": "3.1.0", 257 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 258 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 259 | "requires": { 260 | "emoji-regex": "^7.0.1", 261 | "is-fullwidth-code-point": "^2.0.0", 262 | "strip-ansi": "^5.1.0" 263 | } 264 | } 265 | } 266 | }, 267 | "@oclif/screen": { 268 | "version": "1.0.4", 269 | "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz", 270 | "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==", 271 | "dev": true 272 | }, 273 | "@oclif/test": { 274 | "version": "1.2.5", 275 | "resolved": "https://registry.npmjs.org/@oclif/test/-/test-1.2.5.tgz", 276 | "integrity": "sha512-8Y+Ix4A3Zhm87aL0ldVonDK7vFWyLfnFHzP3goYaLyIeh/60KL37lMxfmbp/kBN6/Y0Ru17iR1pdDi/hTDClLQ==", 277 | "dev": true, 278 | "requires": { 279 | "fancy-test": "^1.4.3" 280 | } 281 | }, 282 | "@types/chai": { 283 | "version": "4.2.11", 284 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz", 285 | "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==", 286 | "dev": true 287 | }, 288 | "@types/eslint-visitor-keys": { 289 | "version": "1.0.0", 290 | "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 291 | "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", 292 | "dev": true 293 | }, 294 | "@types/events": { 295 | "version": "3.0.0", 296 | "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", 297 | "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", 298 | "dev": true 299 | }, 300 | "@types/glob": { 301 | "version": "7.1.1", 302 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", 303 | "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", 304 | "dev": true, 305 | "requires": { 306 | "@types/events": "*", 307 | "@types/minimatch": "*", 308 | "@types/node": "*" 309 | } 310 | }, 311 | "@types/json-schema": { 312 | "version": "7.0.4", 313 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", 314 | "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", 315 | "dev": true 316 | }, 317 | "@types/lodash": { 318 | "version": "4.14.149", 319 | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", 320 | "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", 321 | "dev": true 322 | }, 323 | "@types/minimatch": { 324 | "version": "3.0.3", 325 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 326 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", 327 | "dev": true 328 | }, 329 | "@types/mocha": { 330 | "version": "5.2.7", 331 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", 332 | "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", 333 | "dev": true 334 | }, 335 | "@types/node": { 336 | "version": "10.17.17", 337 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz", 338 | "integrity": "sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q==", 339 | "dev": true 340 | }, 341 | "@types/sinon": { 342 | "version": "7.5.2", 343 | "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.2.tgz", 344 | "integrity": "sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg==", 345 | "dev": true 346 | }, 347 | "@typescript-eslint/eslint-plugin": { 348 | "version": "2.23.0", 349 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.23.0.tgz", 350 | "integrity": "sha512-8iA4FvRsz8qTjR0L/nK9RcRUN3QtIHQiOm69FzV7WS3SE+7P7DyGGwh3k4UNR2JBbk+Ej2Io+jLAaqKibNhmtw==", 351 | "dev": true, 352 | "requires": { 353 | "@typescript-eslint/experimental-utils": "2.23.0", 354 | "eslint-utils": "^1.4.3", 355 | "functional-red-black-tree": "^1.0.1", 356 | "regexpp": "^3.0.0", 357 | "tsutils": "^3.17.1" 358 | }, 359 | "dependencies": { 360 | "regexpp": { 361 | "version": "3.0.0", 362 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", 363 | "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", 364 | "dev": true 365 | } 366 | } 367 | }, 368 | "@typescript-eslint/experimental-utils": { 369 | "version": "2.23.0", 370 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.23.0.tgz", 371 | "integrity": "sha512-OswxY59RcXH3NNPmq+4Kis2CYZPurRU6mG5xPcn24CjFyfdVli5mySwZz/g/xDbJXgDsYqNGq7enV0IziWGXVQ==", 372 | "dev": true, 373 | "requires": { 374 | "@types/json-schema": "^7.0.3", 375 | "@typescript-eslint/typescript-estree": "2.23.0", 376 | "eslint-scope": "^5.0.0" 377 | }, 378 | "dependencies": { 379 | "eslint-scope": { 380 | "version": "5.0.0", 381 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", 382 | "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", 383 | "dev": true, 384 | "requires": { 385 | "esrecurse": "^4.1.0", 386 | "estraverse": "^4.1.1" 387 | } 388 | } 389 | } 390 | }, 391 | "@typescript-eslint/parser": { 392 | "version": "2.23.0", 393 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.23.0.tgz", 394 | "integrity": "sha512-k61pn/Nepk43qa1oLMiyqApC6x5eP5ddPz6VUYXCAuXxbmRLqkPYzkFRKl42ltxzB2luvejlVncrEpflgQoSUg==", 395 | "dev": true, 396 | "requires": { 397 | "@types/eslint-visitor-keys": "^1.0.0", 398 | "@typescript-eslint/experimental-utils": "2.23.0", 399 | "@typescript-eslint/typescript-estree": "2.23.0", 400 | "eslint-visitor-keys": "^1.1.0" 401 | } 402 | }, 403 | "@typescript-eslint/typescript-estree": { 404 | "version": "2.23.0", 405 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.23.0.tgz", 406 | "integrity": "sha512-pmf7IlmvXdlEXvE/JWNNJpEvwBV59wtJqA8MLAxMKLXNKVRC3HZBXR/SlZLPWTCcwOSg9IM7GeRSV3SIerGVqw==", 407 | "dev": true, 408 | "requires": { 409 | "debug": "^4.1.1", 410 | "eslint-visitor-keys": "^1.1.0", 411 | "glob": "^7.1.6", 412 | "is-glob": "^4.0.1", 413 | "lodash": "^4.17.15", 414 | "semver": "^6.3.0", 415 | "tsutils": "^3.17.1" 416 | }, 417 | "dependencies": { 418 | "semver": { 419 | "version": "6.3.0", 420 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 421 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 422 | "dev": true 423 | } 424 | } 425 | }, 426 | "acorn": { 427 | "version": "6.4.1", 428 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", 429 | "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", 430 | "dev": true 431 | }, 432 | "acorn-jsx": { 433 | "version": "5.2.0", 434 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", 435 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", 436 | "dev": true 437 | }, 438 | "ajv": { 439 | "version": "6.12.0", 440 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", 441 | "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", 442 | "dev": true, 443 | "requires": { 444 | "fast-deep-equal": "^3.1.1", 445 | "fast-json-stable-stringify": "^2.0.0", 446 | "json-schema-traverse": "^0.4.1", 447 | "uri-js": "^4.2.2" 448 | } 449 | }, 450 | "ansi-escapes": { 451 | "version": "3.2.0", 452 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 453 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 454 | "dev": true 455 | }, 456 | "ansi-regex": { 457 | "version": "4.1.0", 458 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 459 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" 460 | }, 461 | "ansi-styles": { 462 | "version": "3.2.1", 463 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 464 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 465 | "requires": { 466 | "color-convert": "^1.9.0" 467 | } 468 | }, 469 | "ansicolors": { 470 | "version": "0.3.2", 471 | "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", 472 | "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", 473 | "dev": true 474 | }, 475 | "append-transform": { 476 | "version": "1.0.0", 477 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", 478 | "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", 479 | "dev": true, 480 | "requires": { 481 | "default-require-extensions": "^2.0.0" 482 | } 483 | }, 484 | "archy": { 485 | "version": "1.0.0", 486 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 487 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", 488 | "dev": true 489 | }, 490 | "arg": { 491 | "version": "4.1.3", 492 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", 493 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", 494 | "dev": true 495 | }, 496 | "argparse": { 497 | "version": "1.0.10", 498 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 499 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 500 | "dev": true, 501 | "requires": { 502 | "sprintf-js": "~1.0.2" 503 | } 504 | }, 505 | "array-union": { 506 | "version": "2.1.0", 507 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 508 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 509 | "dev": true 510 | }, 511 | "assertion-error": { 512 | "version": "1.1.0", 513 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 514 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 515 | "dev": true 516 | }, 517 | "astral-regex": { 518 | "version": "1.0.0", 519 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 520 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 521 | "dev": true 522 | }, 523 | "balanced-match": { 524 | "version": "1.0.0", 525 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 526 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 527 | "dev": true 528 | }, 529 | "bl": { 530 | "version": "4.0.1", 531 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.1.tgz", 532 | "integrity": "sha512-FL/TdvchukRCuWVxT0YMO/7+L5TNeNrVFvRU2IY63aUyv9mpt8splf2NEr6qXtPo5fya5a66YohQKvGNmLrWNA==", 533 | "dev": true, 534 | "requires": { 535 | "readable-stream": "^3.4.0" 536 | } 537 | }, 538 | "brace-expansion": { 539 | "version": "1.1.11", 540 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 541 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 542 | "dev": true, 543 | "requires": { 544 | "balanced-match": "^1.0.0", 545 | "concat-map": "0.0.1" 546 | } 547 | }, 548 | "braces": { 549 | "version": "3.0.2", 550 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 551 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 552 | "dev": true, 553 | "requires": { 554 | "fill-range": "^7.0.1" 555 | } 556 | }, 557 | "browser-stdout": { 558 | "version": "1.3.1", 559 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 560 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 561 | "dev": true 562 | }, 563 | "buffer-from": { 564 | "version": "1.1.1", 565 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 566 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 567 | "dev": true 568 | }, 569 | "caching-transform": { 570 | "version": "3.0.2", 571 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", 572 | "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", 573 | "dev": true, 574 | "requires": { 575 | "hasha": "^3.0.0", 576 | "make-dir": "^2.0.0", 577 | "package-hash": "^3.0.0", 578 | "write-file-atomic": "^2.4.2" 579 | }, 580 | "dependencies": { 581 | "make-dir": { 582 | "version": "2.1.0", 583 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 584 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 585 | "dev": true, 586 | "requires": { 587 | "pify": "^4.0.1", 588 | "semver": "^5.6.0" 589 | } 590 | }, 591 | "write-file-atomic": { 592 | "version": "2.4.3", 593 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", 594 | "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", 595 | "dev": true, 596 | "requires": { 597 | "graceful-fs": "^4.1.11", 598 | "imurmurhash": "^0.1.4", 599 | "signal-exit": "^3.0.2" 600 | } 601 | } 602 | } 603 | }, 604 | "callsites": { 605 | "version": "3.1.0", 606 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 607 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 608 | "dev": true 609 | }, 610 | "camelcase": { 611 | "version": "5.3.1", 612 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 613 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 614 | "dev": true 615 | }, 616 | "cardinal": { 617 | "version": "2.1.1", 618 | "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", 619 | "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", 620 | "dev": true, 621 | "requires": { 622 | "ansicolors": "~0.3.2", 623 | "redeyed": "~2.1.0" 624 | } 625 | }, 626 | "chai": { 627 | "version": "4.2.0", 628 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", 629 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", 630 | "dev": true, 631 | "requires": { 632 | "assertion-error": "^1.1.0", 633 | "check-error": "^1.0.2", 634 | "deep-eql": "^3.0.1", 635 | "get-func-name": "^2.0.0", 636 | "pathval": "^1.1.0", 637 | "type-detect": "^4.0.5" 638 | } 639 | }, 640 | "chalk": { 641 | "version": "2.4.2", 642 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 643 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 644 | "requires": { 645 | "ansi-styles": "^3.2.1", 646 | "escape-string-regexp": "^1.0.5", 647 | "supports-color": "^5.3.0" 648 | } 649 | }, 650 | "chardet": { 651 | "version": "0.7.0", 652 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 653 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 654 | "dev": true 655 | }, 656 | "check-error": { 657 | "version": "1.0.2", 658 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 659 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 660 | "dev": true 661 | }, 662 | "chownr": { 663 | "version": "1.1.4", 664 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 665 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 666 | "dev": true 667 | }, 668 | "clean-regexp": { 669 | "version": "1.0.0", 670 | "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", 671 | "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", 672 | "dev": true, 673 | "requires": { 674 | "escape-string-regexp": "^1.0.5" 675 | } 676 | }, 677 | "clean-stack": { 678 | "version": "1.3.0", 679 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", 680 | "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=" 681 | }, 682 | "cli-cursor": { 683 | "version": "2.1.0", 684 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 685 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 686 | "dev": true, 687 | "requires": { 688 | "restore-cursor": "^2.0.0" 689 | } 690 | }, 691 | "cli-progress": { 692 | "version": "3.6.0", 693 | "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.6.0.tgz", 694 | "integrity": "sha512-elg6jkiDedYrvwqWSae2FGvtbMo37Lo04oI9jJ5cI43Ge3jrDPWzeL3axv7MgBLYHDY/kGio/CXa49m4MWMrNw==", 695 | "dev": true, 696 | "requires": { 697 | "colors": "^1.1.2", 698 | "string-width": "^2.1.1" 699 | } 700 | }, 701 | "cli-ux": { 702 | "version": "5.4.5", 703 | "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.5.tgz", 704 | "integrity": "sha512-5A6FuU0wPUlfCWUjtizUvNIbXElp6jN9QUJsDibs6F9cVX1kTgaMR3m6KT0R3iriEXpMrmPKV6yYS8XICNuQ6Q==", 705 | "dev": true, 706 | "requires": { 707 | "@oclif/command": "^1.5.1", 708 | "@oclif/errors": "^1.2.1", 709 | "@oclif/linewrap": "^1.0.0", 710 | "@oclif/screen": "^1.0.3", 711 | "ansi-escapes": "^3.1.0", 712 | "ansi-styles": "^3.2.1", 713 | "cardinal": "^2.1.1", 714 | "chalk": "^2.4.1", 715 | "clean-stack": "^2.0.0", 716 | "cli-progress": "^3.4.0", 717 | "extract-stack": "^1.0.0", 718 | "fs-extra": "^7.0.1", 719 | "hyperlinker": "^1.0.0", 720 | "indent-string": "^4.0.0", 721 | "is-wsl": "^1.1.0", 722 | "js-yaml": "^3.13.1", 723 | "lodash": "^4.17.11", 724 | "natural-orderby": "^2.0.1", 725 | "password-prompt": "^1.1.2", 726 | "semver": "^5.6.0", 727 | "string-width": "^3.1.0", 728 | "strip-ansi": "^5.1.0", 729 | "supports-color": "^5.5.0", 730 | "supports-hyperlinks": "^1.0.1", 731 | "treeify": "^1.1.0", 732 | "tslib": "^1.9.3" 733 | }, 734 | "dependencies": { 735 | "clean-stack": { 736 | "version": "2.2.0", 737 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", 738 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", 739 | "dev": true 740 | }, 741 | "fs-extra": { 742 | "version": "7.0.1", 743 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", 744 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", 745 | "dev": true, 746 | "requires": { 747 | "graceful-fs": "^4.1.2", 748 | "jsonfile": "^4.0.0", 749 | "universalify": "^0.1.0" 750 | } 751 | }, 752 | "indent-string": { 753 | "version": "4.0.0", 754 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 755 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 756 | "dev": true 757 | }, 758 | "string-width": { 759 | "version": "3.1.0", 760 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 761 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 762 | "dev": true, 763 | "requires": { 764 | "emoji-regex": "^7.0.1", 765 | "is-fullwidth-code-point": "^2.0.0", 766 | "strip-ansi": "^5.1.0" 767 | } 768 | } 769 | } 770 | }, 771 | "cli-width": { 772 | "version": "2.2.0", 773 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 774 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 775 | "dev": true 776 | }, 777 | "cliui": { 778 | "version": "5.0.0", 779 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 780 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 781 | "dev": true, 782 | "requires": { 783 | "string-width": "^3.1.0", 784 | "strip-ansi": "^5.2.0", 785 | "wrap-ansi": "^5.1.0" 786 | }, 787 | "dependencies": { 788 | "string-width": { 789 | "version": "3.1.0", 790 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 791 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 792 | "dev": true, 793 | "requires": { 794 | "emoji-regex": "^7.0.1", 795 | "is-fullwidth-code-point": "^2.0.0", 796 | "strip-ansi": "^5.1.0" 797 | } 798 | }, 799 | "wrap-ansi": { 800 | "version": "5.1.0", 801 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 802 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 803 | "dev": true, 804 | "requires": { 805 | "ansi-styles": "^3.2.0", 806 | "string-width": "^3.0.0", 807 | "strip-ansi": "^5.0.0" 808 | } 809 | } 810 | } 811 | }, 812 | "color-convert": { 813 | "version": "1.9.3", 814 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 815 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 816 | "requires": { 817 | "color-name": "1.1.3" 818 | } 819 | }, 820 | "color-name": { 821 | "version": "1.1.3", 822 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 823 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 824 | }, 825 | "colors": { 826 | "version": "1.4.0", 827 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 828 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 829 | "dev": true 830 | }, 831 | "commander": { 832 | "version": "2.15.1", 833 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", 834 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", 835 | "dev": true 836 | }, 837 | "commondir": { 838 | "version": "1.0.1", 839 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 840 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 841 | "dev": true 842 | }, 843 | "concat-map": { 844 | "version": "0.0.1", 845 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 846 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 847 | "dev": true 848 | }, 849 | "content-type": { 850 | "version": "1.0.4", 851 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 852 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 853 | "dev": true 854 | }, 855 | "convert-source-map": { 856 | "version": "1.7.0", 857 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 858 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 859 | "dev": true, 860 | "requires": { 861 | "safe-buffer": "~5.1.1" 862 | }, 863 | "dependencies": { 864 | "safe-buffer": { 865 | "version": "5.1.2", 866 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 867 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 868 | "dev": true 869 | } 870 | } 871 | }, 872 | "cp-file": { 873 | "version": "6.2.0", 874 | "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", 875 | "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", 876 | "dev": true, 877 | "requires": { 878 | "graceful-fs": "^4.1.2", 879 | "make-dir": "^2.0.0", 880 | "nested-error-stacks": "^2.0.0", 881 | "pify": "^4.0.1", 882 | "safe-buffer": "^5.0.1" 883 | }, 884 | "dependencies": { 885 | "make-dir": { 886 | "version": "2.1.0", 887 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 888 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 889 | "dev": true, 890 | "requires": { 891 | "pify": "^4.0.1", 892 | "semver": "^5.6.0" 893 | } 894 | } 895 | } 896 | }, 897 | "cross-spawn": { 898 | "version": "6.0.5", 899 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 900 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 901 | "dev": true, 902 | "requires": { 903 | "nice-try": "^1.0.4", 904 | "path-key": "^2.0.1", 905 | "semver": "^5.5.0", 906 | "shebang-command": "^1.2.0", 907 | "which": "^1.2.9" 908 | } 909 | }, 910 | "debug": { 911 | "version": "4.1.1", 912 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 913 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 914 | "requires": { 915 | "ms": "^2.1.1" 916 | } 917 | }, 918 | "decamelize": { 919 | "version": "1.2.0", 920 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 921 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 922 | "dev": true 923 | }, 924 | "deep-eql": { 925 | "version": "3.0.1", 926 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 927 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 928 | "dev": true, 929 | "requires": { 930 | "type-detect": "^4.0.0" 931 | } 932 | }, 933 | "deep-is": { 934 | "version": "0.1.3", 935 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 936 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 937 | "dev": true 938 | }, 939 | "default-require-extensions": { 940 | "version": "2.0.0", 941 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", 942 | "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", 943 | "dev": true, 944 | "requires": { 945 | "strip-bom": "^3.0.0" 946 | }, 947 | "dependencies": { 948 | "strip-bom": { 949 | "version": "3.0.0", 950 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 951 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 952 | "dev": true 953 | } 954 | } 955 | }, 956 | "detect-indent": { 957 | "version": "6.0.0", 958 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 959 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 960 | "dev": true 961 | }, 962 | "diff": { 963 | "version": "3.5.0", 964 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 965 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 966 | "dev": true 967 | }, 968 | "dir-glob": { 969 | "version": "3.0.1", 970 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 971 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 972 | "dev": true, 973 | "requires": { 974 | "path-type": "^4.0.0" 975 | } 976 | }, 977 | "doctrine": { 978 | "version": "3.0.0", 979 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 980 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 981 | "dev": true, 982 | "requires": { 983 | "esutils": "^2.0.2" 984 | } 985 | }, 986 | "emoji-regex": { 987 | "version": "7.0.3", 988 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 989 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" 990 | }, 991 | "end-of-stream": { 992 | "version": "1.4.4", 993 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 994 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 995 | "dev": true, 996 | "requires": { 997 | "once": "^1.4.0" 998 | } 999 | }, 1000 | "error-ex": { 1001 | "version": "1.3.2", 1002 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1003 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1004 | "dev": true, 1005 | "requires": { 1006 | "is-arrayish": "^0.2.1" 1007 | } 1008 | }, 1009 | "es6-error": { 1010 | "version": "4.1.1", 1011 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", 1012 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", 1013 | "dev": true 1014 | }, 1015 | "escape-string-regexp": { 1016 | "version": "1.0.5", 1017 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1018 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1019 | }, 1020 | "eslint": { 1021 | "version": "5.16.0", 1022 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", 1023 | "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", 1024 | "dev": true, 1025 | "requires": { 1026 | "@babel/code-frame": "^7.0.0", 1027 | "ajv": "^6.9.1", 1028 | "chalk": "^2.1.0", 1029 | "cross-spawn": "^6.0.5", 1030 | "debug": "^4.0.1", 1031 | "doctrine": "^3.0.0", 1032 | "eslint-scope": "^4.0.3", 1033 | "eslint-utils": "^1.3.1", 1034 | "eslint-visitor-keys": "^1.0.0", 1035 | "espree": "^5.0.1", 1036 | "esquery": "^1.0.1", 1037 | "esutils": "^2.0.2", 1038 | "file-entry-cache": "^5.0.1", 1039 | "functional-red-black-tree": "^1.0.1", 1040 | "glob": "^7.1.2", 1041 | "globals": "^11.7.0", 1042 | "ignore": "^4.0.6", 1043 | "import-fresh": "^3.0.0", 1044 | "imurmurhash": "^0.1.4", 1045 | "inquirer": "^6.2.2", 1046 | "js-yaml": "^3.13.0", 1047 | "json-stable-stringify-without-jsonify": "^1.0.1", 1048 | "levn": "^0.3.0", 1049 | "lodash": "^4.17.11", 1050 | "minimatch": "^3.0.4", 1051 | "mkdirp": "^0.5.1", 1052 | "natural-compare": "^1.4.0", 1053 | "optionator": "^0.8.2", 1054 | "path-is-inside": "^1.0.2", 1055 | "progress": "^2.0.0", 1056 | "regexpp": "^2.0.1", 1057 | "semver": "^5.5.1", 1058 | "strip-ansi": "^4.0.0", 1059 | "strip-json-comments": "^2.0.1", 1060 | "table": "^5.2.3", 1061 | "text-table": "^0.2.0" 1062 | }, 1063 | "dependencies": { 1064 | "ansi-regex": { 1065 | "version": "3.0.0", 1066 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1067 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1068 | "dev": true 1069 | }, 1070 | "ignore": { 1071 | "version": "4.0.6", 1072 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1073 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1074 | "dev": true 1075 | }, 1076 | "strip-ansi": { 1077 | "version": "4.0.0", 1078 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1079 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1080 | "dev": true, 1081 | "requires": { 1082 | "ansi-regex": "^3.0.0" 1083 | } 1084 | } 1085 | } 1086 | }, 1087 | "eslint-ast-utils": { 1088 | "version": "1.1.0", 1089 | "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", 1090 | "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", 1091 | "dev": true, 1092 | "requires": { 1093 | "lodash.get": "^4.4.2", 1094 | "lodash.zip": "^4.2.0" 1095 | } 1096 | }, 1097 | "eslint-config-oclif": { 1098 | "version": "3.1.0", 1099 | "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-3.1.0.tgz", 1100 | "integrity": "sha512-Tqgy43cNXsSdhTLWW4RuDYGFhV240sC4ISSv/ZiUEg/zFxExSEUpRE6J+AGnkKY9dYwIW4C9b2YSUVv8z/miMA==", 1101 | "dev": true, 1102 | "requires": { 1103 | "eslint-config-xo-space": "^0.20.0", 1104 | "eslint-plugin-mocha": "^5.2.0", 1105 | "eslint-plugin-node": "^7.0.1", 1106 | "eslint-plugin-unicorn": "^6.0.1" 1107 | } 1108 | }, 1109 | "eslint-config-oclif-typescript": { 1110 | "version": "0.1.0", 1111 | "resolved": "https://registry.npmjs.org/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-0.1.0.tgz", 1112 | "integrity": "sha512-BjXNJcH2F02MdaSFml9vJskviUFVkLHbTPGM5tinIt98H6klFNKP7/lQ+fB/Goc2wB45usEuuw6+l/fwAv9i7g==", 1113 | "dev": true, 1114 | "requires": { 1115 | "@typescript-eslint/eslint-plugin": "^2.6.1", 1116 | "@typescript-eslint/parser": "^2.6.1", 1117 | "eslint-config-oclif": "^3.1.0", 1118 | "eslint-config-xo-space": "^0.20.0", 1119 | "eslint-plugin-mocha": "^5.2.0", 1120 | "eslint-plugin-node": "^7.0.1", 1121 | "eslint-plugin-unicorn": "^6.0.1" 1122 | } 1123 | }, 1124 | "eslint-config-xo": { 1125 | "version": "0.24.2", 1126 | "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.24.2.tgz", 1127 | "integrity": "sha512-ivQ7qISScW6gfBp+p31nQntz1rg34UCybd3uvlngcxt5Utsf4PMMi9QoAluLFcPUM5Tvqk4JGraR9qu3msKPKQ==", 1128 | "dev": true 1129 | }, 1130 | "eslint-config-xo-space": { 1131 | "version": "0.20.0", 1132 | "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.20.0.tgz", 1133 | "integrity": "sha512-bOsoZA8M6v1HviDUIGVq1fLVnSu3mMZzn85m2tqKb73tSzu4GKD4Jd2Py4ZKjCgvCbRRByEB5HPC3fTMnnJ1uw==", 1134 | "dev": true, 1135 | "requires": { 1136 | "eslint-config-xo": "^0.24.0" 1137 | } 1138 | }, 1139 | "eslint-plugin-es": { 1140 | "version": "1.4.1", 1141 | "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", 1142 | "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", 1143 | "dev": true, 1144 | "requires": { 1145 | "eslint-utils": "^1.4.2", 1146 | "regexpp": "^2.0.1" 1147 | } 1148 | }, 1149 | "eslint-plugin-mocha": { 1150 | "version": "5.3.0", 1151 | "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz", 1152 | "integrity": "sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==", 1153 | "dev": true, 1154 | "requires": { 1155 | "ramda": "^0.26.1" 1156 | } 1157 | }, 1158 | "eslint-plugin-node": { 1159 | "version": "7.0.1", 1160 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", 1161 | "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", 1162 | "dev": true, 1163 | "requires": { 1164 | "eslint-plugin-es": "^1.3.1", 1165 | "eslint-utils": "^1.3.1", 1166 | "ignore": "^4.0.2", 1167 | "minimatch": "^3.0.4", 1168 | "resolve": "^1.8.1", 1169 | "semver": "^5.5.0" 1170 | }, 1171 | "dependencies": { 1172 | "ignore": { 1173 | "version": "4.0.6", 1174 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1175 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1176 | "dev": true 1177 | } 1178 | } 1179 | }, 1180 | "eslint-plugin-unicorn": { 1181 | "version": "6.0.1", 1182 | "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-6.0.1.tgz", 1183 | "integrity": "sha512-hjy9LhTdtL7pz8WTrzS0CGXRkWK3VAPLDjihofj8JC+uxQLfXm0WwZPPPB7xKmcjRyoH+jruPHOCrHNEINpG/Q==", 1184 | "dev": true, 1185 | "requires": { 1186 | "clean-regexp": "^1.0.0", 1187 | "eslint-ast-utils": "^1.0.0", 1188 | "import-modules": "^1.1.0", 1189 | "lodash.camelcase": "^4.1.1", 1190 | "lodash.kebabcase": "^4.0.1", 1191 | "lodash.snakecase": "^4.0.1", 1192 | "lodash.upperfirst": "^4.2.0", 1193 | "safe-regex": "^1.1.0" 1194 | } 1195 | }, 1196 | "eslint-scope": { 1197 | "version": "4.0.3", 1198 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", 1199 | "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", 1200 | "dev": true, 1201 | "requires": { 1202 | "esrecurse": "^4.1.0", 1203 | "estraverse": "^4.1.1" 1204 | } 1205 | }, 1206 | "eslint-utils": { 1207 | "version": "1.4.3", 1208 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", 1209 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", 1210 | "dev": true, 1211 | "requires": { 1212 | "eslint-visitor-keys": "^1.1.0" 1213 | } 1214 | }, 1215 | "eslint-visitor-keys": { 1216 | "version": "1.1.0", 1217 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", 1218 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", 1219 | "dev": true 1220 | }, 1221 | "espree": { 1222 | "version": "5.0.1", 1223 | "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", 1224 | "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", 1225 | "dev": true, 1226 | "requires": { 1227 | "acorn": "^6.0.7", 1228 | "acorn-jsx": "^5.0.0", 1229 | "eslint-visitor-keys": "^1.0.0" 1230 | } 1231 | }, 1232 | "esprima": { 1233 | "version": "4.0.1", 1234 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1235 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1236 | "dev": true 1237 | }, 1238 | "esquery": { 1239 | "version": "1.1.0", 1240 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", 1241 | "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", 1242 | "dev": true, 1243 | "requires": { 1244 | "estraverse": "^4.0.0" 1245 | } 1246 | }, 1247 | "esrecurse": { 1248 | "version": "4.2.1", 1249 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 1250 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 1251 | "dev": true, 1252 | "requires": { 1253 | "estraverse": "^4.1.0" 1254 | } 1255 | }, 1256 | "estraverse": { 1257 | "version": "4.3.0", 1258 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1259 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1260 | "dev": true 1261 | }, 1262 | "esutils": { 1263 | "version": "2.0.3", 1264 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1265 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1266 | "dev": true 1267 | }, 1268 | "execa": { 1269 | "version": "0.10.0", 1270 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", 1271 | "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", 1272 | "dev": true, 1273 | "requires": { 1274 | "cross-spawn": "^6.0.0", 1275 | "get-stream": "^3.0.0", 1276 | "is-stream": "^1.1.0", 1277 | "npm-run-path": "^2.0.0", 1278 | "p-finally": "^1.0.0", 1279 | "signal-exit": "^3.0.0", 1280 | "strip-eof": "^1.0.0" 1281 | }, 1282 | "dependencies": { 1283 | "get-stream": { 1284 | "version": "3.0.0", 1285 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1286 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1287 | "dev": true 1288 | } 1289 | } 1290 | }, 1291 | "external-editor": { 1292 | "version": "3.1.0", 1293 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 1294 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 1295 | "dev": true, 1296 | "requires": { 1297 | "chardet": "^0.7.0", 1298 | "iconv-lite": "^0.4.24", 1299 | "tmp": "^0.0.33" 1300 | }, 1301 | "dependencies": { 1302 | "tmp": { 1303 | "version": "0.0.33", 1304 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1305 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1306 | "dev": true, 1307 | "requires": { 1308 | "os-tmpdir": "~1.0.2" 1309 | } 1310 | } 1311 | } 1312 | }, 1313 | "extract-stack": { 1314 | "version": "1.0.0", 1315 | "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-1.0.0.tgz", 1316 | "integrity": "sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo=", 1317 | "dev": true 1318 | }, 1319 | "fancy-test": { 1320 | "version": "1.4.7", 1321 | "resolved": "https://registry.npmjs.org/fancy-test/-/fancy-test-1.4.7.tgz", 1322 | "integrity": "sha512-drgNrpNbvXXbPAz0rn7jvzjoEihDKpm1fFF+aZ+FVLatjE3jZSc6WwfgC5x7N/+nhmentMx4TXPQ0OkS0SElVQ==", 1323 | "dev": true, 1324 | "requires": { 1325 | "@types/chai": "*", 1326 | "@types/lodash": "*", 1327 | "@types/mocha": "*", 1328 | "@types/node": "*", 1329 | "@types/sinon": "*", 1330 | "lodash": "^4.17.13", 1331 | "mock-stdin": "^0.3.1", 1332 | "stdout-stderr": "^0.1.9" 1333 | } 1334 | }, 1335 | "fast-deep-equal": { 1336 | "version": "3.1.1", 1337 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", 1338 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", 1339 | "dev": true 1340 | }, 1341 | "fast-glob": { 1342 | "version": "3.2.2", 1343 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", 1344 | "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", 1345 | "dev": true, 1346 | "requires": { 1347 | "@nodelib/fs.stat": "^2.0.2", 1348 | "@nodelib/fs.walk": "^1.2.3", 1349 | "glob-parent": "^5.1.0", 1350 | "merge2": "^1.3.0", 1351 | "micromatch": "^4.0.2", 1352 | "picomatch": "^2.2.1" 1353 | } 1354 | }, 1355 | "fast-json-stable-stringify": { 1356 | "version": "2.1.0", 1357 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1358 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1359 | "dev": true 1360 | }, 1361 | "fast-levenshtein": { 1362 | "version": "2.0.6", 1363 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1364 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1365 | "dev": true 1366 | }, 1367 | "fastq": { 1368 | "version": "1.6.1", 1369 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz", 1370 | "integrity": "sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==", 1371 | "dev": true, 1372 | "requires": { 1373 | "reusify": "^1.0.4" 1374 | } 1375 | }, 1376 | "figures": { 1377 | "version": "2.0.0", 1378 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1379 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1380 | "dev": true, 1381 | "requires": { 1382 | "escape-string-regexp": "^1.0.5" 1383 | } 1384 | }, 1385 | "file-entry-cache": { 1386 | "version": "5.0.1", 1387 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 1388 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 1389 | "dev": true, 1390 | "requires": { 1391 | "flat-cache": "^2.0.1" 1392 | } 1393 | }, 1394 | "fill-range": { 1395 | "version": "7.0.1", 1396 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1397 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1398 | "dev": true, 1399 | "requires": { 1400 | "to-regex-range": "^5.0.1" 1401 | } 1402 | }, 1403 | "find-cache-dir": { 1404 | "version": "2.1.0", 1405 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", 1406 | "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", 1407 | "dev": true, 1408 | "requires": { 1409 | "commondir": "^1.0.1", 1410 | "make-dir": "^2.0.0", 1411 | "pkg-dir": "^3.0.0" 1412 | }, 1413 | "dependencies": { 1414 | "find-up": { 1415 | "version": "3.0.0", 1416 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1417 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1418 | "dev": true, 1419 | "requires": { 1420 | "locate-path": "^3.0.0" 1421 | } 1422 | }, 1423 | "locate-path": { 1424 | "version": "3.0.0", 1425 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1426 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1427 | "dev": true, 1428 | "requires": { 1429 | "p-locate": "^3.0.0", 1430 | "path-exists": "^3.0.0" 1431 | } 1432 | }, 1433 | "make-dir": { 1434 | "version": "2.1.0", 1435 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 1436 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 1437 | "dev": true, 1438 | "requires": { 1439 | "pify": "^4.0.1", 1440 | "semver": "^5.6.0" 1441 | } 1442 | }, 1443 | "p-locate": { 1444 | "version": "3.0.0", 1445 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1446 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1447 | "dev": true, 1448 | "requires": { 1449 | "p-limit": "^2.0.0" 1450 | } 1451 | }, 1452 | "path-exists": { 1453 | "version": "3.0.0", 1454 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1455 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1456 | "dev": true 1457 | }, 1458 | "pkg-dir": { 1459 | "version": "3.0.0", 1460 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", 1461 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", 1462 | "dev": true, 1463 | "requires": { 1464 | "find-up": "^3.0.0" 1465 | } 1466 | } 1467 | } 1468 | }, 1469 | "find-up": { 1470 | "version": "4.1.0", 1471 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1472 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1473 | "dev": true, 1474 | "requires": { 1475 | "locate-path": "^5.0.0", 1476 | "path-exists": "^4.0.0" 1477 | } 1478 | }, 1479 | "flat-cache": { 1480 | "version": "2.0.1", 1481 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 1482 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 1483 | "dev": true, 1484 | "requires": { 1485 | "flatted": "^2.0.0", 1486 | "rimraf": "2.6.3", 1487 | "write": "1.0.3" 1488 | }, 1489 | "dependencies": { 1490 | "rimraf": { 1491 | "version": "2.6.3", 1492 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 1493 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 1494 | "dev": true, 1495 | "requires": { 1496 | "glob": "^7.1.3" 1497 | } 1498 | } 1499 | } 1500 | }, 1501 | "flatted": { 1502 | "version": "2.0.1", 1503 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", 1504 | "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", 1505 | "dev": true 1506 | }, 1507 | "foreground-child": { 1508 | "version": "1.5.6", 1509 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", 1510 | "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", 1511 | "dev": true, 1512 | "requires": { 1513 | "cross-spawn": "^4", 1514 | "signal-exit": "^3.0.0" 1515 | }, 1516 | "dependencies": { 1517 | "cross-spawn": { 1518 | "version": "4.0.2", 1519 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", 1520 | "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", 1521 | "dev": true, 1522 | "requires": { 1523 | "lru-cache": "^4.0.1", 1524 | "which": "^1.2.9" 1525 | } 1526 | } 1527 | } 1528 | }, 1529 | "fs-constants": { 1530 | "version": "1.0.0", 1531 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1532 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 1533 | "dev": true 1534 | }, 1535 | "fs-extra": { 1536 | "version": "8.1.0", 1537 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 1538 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 1539 | "requires": { 1540 | "graceful-fs": "^4.2.0", 1541 | "jsonfile": "^4.0.0", 1542 | "universalify": "^0.1.0" 1543 | } 1544 | }, 1545 | "fs.realpath": { 1546 | "version": "1.0.0", 1547 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1548 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1549 | "dev": true 1550 | }, 1551 | "functional-red-black-tree": { 1552 | "version": "1.0.1", 1553 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1554 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1555 | "dev": true 1556 | }, 1557 | "get-caller-file": { 1558 | "version": "2.0.5", 1559 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1560 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 1561 | "dev": true 1562 | }, 1563 | "get-func-name": { 1564 | "version": "2.0.0", 1565 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 1566 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 1567 | "dev": true 1568 | }, 1569 | "get-stream": { 1570 | "version": "5.1.0", 1571 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", 1572 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", 1573 | "dev": true, 1574 | "requires": { 1575 | "pump": "^3.0.0" 1576 | } 1577 | }, 1578 | "github-slugger": { 1579 | "version": "1.3.0", 1580 | "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", 1581 | "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", 1582 | "dev": true, 1583 | "requires": { 1584 | "emoji-regex": ">=6.0.0 <=6.1.1" 1585 | }, 1586 | "dependencies": { 1587 | "emoji-regex": { 1588 | "version": "6.1.1", 1589 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", 1590 | "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=", 1591 | "dev": true 1592 | } 1593 | } 1594 | }, 1595 | "glob": { 1596 | "version": "7.1.6", 1597 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1598 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1599 | "dev": true, 1600 | "requires": { 1601 | "fs.realpath": "^1.0.0", 1602 | "inflight": "^1.0.4", 1603 | "inherits": "2", 1604 | "minimatch": "^3.0.4", 1605 | "once": "^1.3.0", 1606 | "path-is-absolute": "^1.0.0" 1607 | } 1608 | }, 1609 | "glob-parent": { 1610 | "version": "5.1.0", 1611 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", 1612 | "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", 1613 | "dev": true, 1614 | "requires": { 1615 | "is-glob": "^4.0.1" 1616 | } 1617 | }, 1618 | "globals": { 1619 | "version": "11.12.0", 1620 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1621 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1622 | "dev": true 1623 | }, 1624 | "globby": { 1625 | "version": "10.0.2", 1626 | "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", 1627 | "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", 1628 | "dev": true, 1629 | "requires": { 1630 | "@types/glob": "^7.1.1", 1631 | "array-union": "^2.1.0", 1632 | "dir-glob": "^3.0.1", 1633 | "fast-glob": "^3.0.3", 1634 | "glob": "^7.1.3", 1635 | "ignore": "^5.1.1", 1636 | "merge2": "^1.2.3", 1637 | "slash": "^3.0.0" 1638 | } 1639 | }, 1640 | "graceful-fs": { 1641 | "version": "4.2.3", 1642 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 1643 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" 1644 | }, 1645 | "growl": { 1646 | "version": "1.10.5", 1647 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 1648 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 1649 | "dev": true 1650 | }, 1651 | "has-flag": { 1652 | "version": "3.0.0", 1653 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1654 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 1655 | }, 1656 | "hasha": { 1657 | "version": "3.0.0", 1658 | "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", 1659 | "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", 1660 | "dev": true, 1661 | "requires": { 1662 | "is-stream": "^1.0.1" 1663 | } 1664 | }, 1665 | "he": { 1666 | "version": "1.1.1", 1667 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 1668 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", 1669 | "dev": true 1670 | }, 1671 | "hosted-git-info": { 1672 | "version": "2.8.8", 1673 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 1674 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", 1675 | "dev": true 1676 | }, 1677 | "html-escaper": { 1678 | "version": "2.0.0", 1679 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", 1680 | "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", 1681 | "dev": true 1682 | }, 1683 | "http-call": { 1684 | "version": "5.3.0", 1685 | "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", 1686 | "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", 1687 | "dev": true, 1688 | "requires": { 1689 | "content-type": "^1.0.4", 1690 | "debug": "^4.1.1", 1691 | "is-retry-allowed": "^1.1.0", 1692 | "is-stream": "^2.0.0", 1693 | "parse-json": "^4.0.0", 1694 | "tunnel-agent": "^0.6.0" 1695 | }, 1696 | "dependencies": { 1697 | "is-stream": { 1698 | "version": "2.0.0", 1699 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", 1700 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 1701 | "dev": true 1702 | } 1703 | } 1704 | }, 1705 | "hyperlinker": { 1706 | "version": "1.0.0", 1707 | "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", 1708 | "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", 1709 | "dev": true 1710 | }, 1711 | "iconv-lite": { 1712 | "version": "0.4.24", 1713 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1714 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1715 | "dev": true, 1716 | "requires": { 1717 | "safer-buffer": ">= 2.1.2 < 3" 1718 | } 1719 | }, 1720 | "ignore": { 1721 | "version": "5.1.4", 1722 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", 1723 | "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", 1724 | "dev": true 1725 | }, 1726 | "import-fresh": { 1727 | "version": "3.2.1", 1728 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 1729 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 1730 | "dev": true, 1731 | "requires": { 1732 | "parent-module": "^1.0.0", 1733 | "resolve-from": "^4.0.0" 1734 | } 1735 | }, 1736 | "import-modules": { 1737 | "version": "1.1.0", 1738 | "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-1.1.0.tgz", 1739 | "integrity": "sha1-dI23nFzEK7lwHvq0JPiU5yYA6dw=", 1740 | "dev": true 1741 | }, 1742 | "imurmurhash": { 1743 | "version": "0.1.4", 1744 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1745 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1746 | "dev": true 1747 | }, 1748 | "indent-string": { 1749 | "version": "3.2.0", 1750 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", 1751 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" 1752 | }, 1753 | "inflight": { 1754 | "version": "1.0.6", 1755 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1756 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1757 | "dev": true, 1758 | "requires": { 1759 | "once": "^1.3.0", 1760 | "wrappy": "1" 1761 | } 1762 | }, 1763 | "inherits": { 1764 | "version": "2.0.4", 1765 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1766 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1767 | "dev": true 1768 | }, 1769 | "inquirer": { 1770 | "version": "6.5.2", 1771 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", 1772 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", 1773 | "dev": true, 1774 | "requires": { 1775 | "ansi-escapes": "^3.2.0", 1776 | "chalk": "^2.4.2", 1777 | "cli-cursor": "^2.1.0", 1778 | "cli-width": "^2.0.0", 1779 | "external-editor": "^3.0.3", 1780 | "figures": "^2.0.0", 1781 | "lodash": "^4.17.12", 1782 | "mute-stream": "0.0.7", 1783 | "run-async": "^2.2.0", 1784 | "rxjs": "^6.4.0", 1785 | "string-width": "^2.1.0", 1786 | "strip-ansi": "^5.1.0", 1787 | "through": "^2.3.6" 1788 | } 1789 | }, 1790 | "is-arrayish": { 1791 | "version": "0.2.1", 1792 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1793 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1794 | "dev": true 1795 | }, 1796 | "is-extglob": { 1797 | "version": "2.1.1", 1798 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1799 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1800 | "dev": true 1801 | }, 1802 | "is-fullwidth-code-point": { 1803 | "version": "2.0.0", 1804 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1805 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 1806 | }, 1807 | "is-glob": { 1808 | "version": "4.0.1", 1809 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1810 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1811 | "dev": true, 1812 | "requires": { 1813 | "is-extglob": "^2.1.1" 1814 | } 1815 | }, 1816 | "is-number": { 1817 | "version": "7.0.0", 1818 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1819 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1820 | "dev": true 1821 | }, 1822 | "is-plain-obj": { 1823 | "version": "2.1.0", 1824 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 1825 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 1826 | "dev": true 1827 | }, 1828 | "is-promise": { 1829 | "version": "2.1.0", 1830 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 1831 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 1832 | "dev": true 1833 | }, 1834 | "is-retry-allowed": { 1835 | "version": "1.2.0", 1836 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", 1837 | "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", 1838 | "dev": true 1839 | }, 1840 | "is-stream": { 1841 | "version": "1.1.0", 1842 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1843 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 1844 | "dev": true 1845 | }, 1846 | "is-typedarray": { 1847 | "version": "1.0.0", 1848 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1849 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1850 | "dev": true 1851 | }, 1852 | "is-wsl": { 1853 | "version": "1.1.0", 1854 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 1855 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 1856 | "dev": true 1857 | }, 1858 | "isexe": { 1859 | "version": "2.0.0", 1860 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1861 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1862 | "dev": true 1863 | }, 1864 | "istanbul-lib-coverage": { 1865 | "version": "2.0.5", 1866 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", 1867 | "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", 1868 | "dev": true 1869 | }, 1870 | "istanbul-lib-hook": { 1871 | "version": "2.0.7", 1872 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", 1873 | "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", 1874 | "dev": true, 1875 | "requires": { 1876 | "append-transform": "^1.0.0" 1877 | } 1878 | }, 1879 | "istanbul-lib-instrument": { 1880 | "version": "3.3.0", 1881 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", 1882 | "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", 1883 | "dev": true, 1884 | "requires": { 1885 | "@babel/generator": "^7.4.0", 1886 | "@babel/parser": "^7.4.3", 1887 | "@babel/template": "^7.4.0", 1888 | "@babel/traverse": "^7.4.3", 1889 | "@babel/types": "^7.4.0", 1890 | "istanbul-lib-coverage": "^2.0.5", 1891 | "semver": "^6.0.0" 1892 | }, 1893 | "dependencies": { 1894 | "semver": { 1895 | "version": "6.3.0", 1896 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1897 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1898 | "dev": true 1899 | } 1900 | } 1901 | }, 1902 | "istanbul-lib-report": { 1903 | "version": "2.0.8", 1904 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", 1905 | "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", 1906 | "dev": true, 1907 | "requires": { 1908 | "istanbul-lib-coverage": "^2.0.5", 1909 | "make-dir": "^2.1.0", 1910 | "supports-color": "^6.1.0" 1911 | }, 1912 | "dependencies": { 1913 | "make-dir": { 1914 | "version": "2.1.0", 1915 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 1916 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 1917 | "dev": true, 1918 | "requires": { 1919 | "pify": "^4.0.1", 1920 | "semver": "^5.6.0" 1921 | } 1922 | }, 1923 | "supports-color": { 1924 | "version": "6.1.0", 1925 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 1926 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 1927 | "dev": true, 1928 | "requires": { 1929 | "has-flag": "^3.0.0" 1930 | } 1931 | } 1932 | } 1933 | }, 1934 | "istanbul-lib-source-maps": { 1935 | "version": "3.0.6", 1936 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", 1937 | "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", 1938 | "dev": true, 1939 | "requires": { 1940 | "debug": "^4.1.1", 1941 | "istanbul-lib-coverage": "^2.0.5", 1942 | "make-dir": "^2.1.0", 1943 | "rimraf": "^2.6.3", 1944 | "source-map": "^0.6.1" 1945 | }, 1946 | "dependencies": { 1947 | "make-dir": { 1948 | "version": "2.1.0", 1949 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 1950 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 1951 | "dev": true, 1952 | "requires": { 1953 | "pify": "^4.0.1", 1954 | "semver": "^5.6.0" 1955 | } 1956 | }, 1957 | "source-map": { 1958 | "version": "0.6.1", 1959 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1960 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1961 | "dev": true 1962 | } 1963 | } 1964 | }, 1965 | "istanbul-reports": { 1966 | "version": "2.2.7", 1967 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", 1968 | "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", 1969 | "dev": true, 1970 | "requires": { 1971 | "html-escaper": "^2.0.0" 1972 | } 1973 | }, 1974 | "js-tokens": { 1975 | "version": "4.0.0", 1976 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1977 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1978 | "dev": true 1979 | }, 1980 | "js-yaml": { 1981 | "version": "3.13.1", 1982 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 1983 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 1984 | "dev": true, 1985 | "requires": { 1986 | "argparse": "^1.0.7", 1987 | "esprima": "^4.0.0" 1988 | } 1989 | }, 1990 | "jsesc": { 1991 | "version": "2.5.2", 1992 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1993 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1994 | "dev": true 1995 | }, 1996 | "json-parse-better-errors": { 1997 | "version": "1.0.2", 1998 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1999 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2000 | "dev": true 2001 | }, 2002 | "json-schema-traverse": { 2003 | "version": "0.4.1", 2004 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2005 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2006 | "dev": true 2007 | }, 2008 | "json-stable-stringify-without-jsonify": { 2009 | "version": "1.0.1", 2010 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2011 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2012 | "dev": true 2013 | }, 2014 | "jsonfile": { 2015 | "version": "4.0.0", 2016 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2017 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 2018 | "requires": { 2019 | "graceful-fs": "^4.1.6" 2020 | } 2021 | }, 2022 | "levn": { 2023 | "version": "0.3.0", 2024 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2025 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2026 | "dev": true, 2027 | "requires": { 2028 | "prelude-ls": "~1.1.2", 2029 | "type-check": "~0.3.2" 2030 | } 2031 | }, 2032 | "lines-and-columns": { 2033 | "version": "1.1.6", 2034 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 2035 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 2036 | "dev": true 2037 | }, 2038 | "load-json-file": { 2039 | "version": "6.2.0", 2040 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", 2041 | "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", 2042 | "dev": true, 2043 | "requires": { 2044 | "graceful-fs": "^4.1.15", 2045 | "parse-json": "^5.0.0", 2046 | "strip-bom": "^4.0.0", 2047 | "type-fest": "^0.6.0" 2048 | }, 2049 | "dependencies": { 2050 | "parse-json": { 2051 | "version": "5.0.0", 2052 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", 2053 | "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", 2054 | "dev": true, 2055 | "requires": { 2056 | "@babel/code-frame": "^7.0.0", 2057 | "error-ex": "^1.3.1", 2058 | "json-parse-better-errors": "^1.0.1", 2059 | "lines-and-columns": "^1.1.6" 2060 | } 2061 | } 2062 | } 2063 | }, 2064 | "locate-path": { 2065 | "version": "5.0.0", 2066 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 2067 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 2068 | "dev": true, 2069 | "requires": { 2070 | "p-locate": "^4.1.0" 2071 | } 2072 | }, 2073 | "lodash": { 2074 | "version": "4.17.19", 2075 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", 2076 | "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", 2077 | "dev": true 2078 | }, 2079 | "lodash._reinterpolate": { 2080 | "version": "3.0.0", 2081 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", 2082 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" 2083 | }, 2084 | "lodash.camelcase": { 2085 | "version": "4.3.0", 2086 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 2087 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", 2088 | "dev": true 2089 | }, 2090 | "lodash.flattendeep": { 2091 | "version": "4.4.0", 2092 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", 2093 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", 2094 | "dev": true 2095 | }, 2096 | "lodash.get": { 2097 | "version": "4.4.2", 2098 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 2099 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", 2100 | "dev": true 2101 | }, 2102 | "lodash.kebabcase": { 2103 | "version": "4.1.1", 2104 | "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", 2105 | "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", 2106 | "dev": true 2107 | }, 2108 | "lodash.snakecase": { 2109 | "version": "4.1.1", 2110 | "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", 2111 | "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", 2112 | "dev": true 2113 | }, 2114 | "lodash.template": { 2115 | "version": "4.5.0", 2116 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", 2117 | "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", 2118 | "requires": { 2119 | "lodash._reinterpolate": "^3.0.0", 2120 | "lodash.templatesettings": "^4.0.0" 2121 | } 2122 | }, 2123 | "lodash.templatesettings": { 2124 | "version": "4.2.0", 2125 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", 2126 | "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", 2127 | "requires": { 2128 | "lodash._reinterpolate": "^3.0.0" 2129 | } 2130 | }, 2131 | "lodash.upperfirst": { 2132 | "version": "4.3.1", 2133 | "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", 2134 | "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", 2135 | "dev": true 2136 | }, 2137 | "lodash.zip": { 2138 | "version": "4.2.0", 2139 | "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", 2140 | "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", 2141 | "dev": true 2142 | }, 2143 | "lru-cache": { 2144 | "version": "4.1.5", 2145 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 2146 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 2147 | "dev": true, 2148 | "requires": { 2149 | "pseudomap": "^1.0.2", 2150 | "yallist": "^2.1.2" 2151 | } 2152 | }, 2153 | "make-dir": { 2154 | "version": "3.0.2", 2155 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", 2156 | "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", 2157 | "dev": true, 2158 | "requires": { 2159 | "semver": "^6.0.0" 2160 | }, 2161 | "dependencies": { 2162 | "semver": { 2163 | "version": "6.3.0", 2164 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2165 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2166 | "dev": true 2167 | } 2168 | } 2169 | }, 2170 | "make-error": { 2171 | "version": "1.3.6", 2172 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 2173 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 2174 | "dev": true 2175 | }, 2176 | "merge-source-map": { 2177 | "version": "1.1.0", 2178 | "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", 2179 | "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", 2180 | "dev": true, 2181 | "requires": { 2182 | "source-map": "^0.6.1" 2183 | }, 2184 | "dependencies": { 2185 | "source-map": { 2186 | "version": "0.6.1", 2187 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2188 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2189 | "dev": true 2190 | } 2191 | } 2192 | }, 2193 | "merge2": { 2194 | "version": "1.3.0", 2195 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", 2196 | "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", 2197 | "dev": true 2198 | }, 2199 | "micromatch": { 2200 | "version": "4.0.2", 2201 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", 2202 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", 2203 | "dev": true, 2204 | "requires": { 2205 | "braces": "^3.0.1", 2206 | "picomatch": "^2.0.5" 2207 | } 2208 | }, 2209 | "mimic-fn": { 2210 | "version": "1.2.0", 2211 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 2212 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 2213 | "dev": true 2214 | }, 2215 | "minimatch": { 2216 | "version": "3.0.4", 2217 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2218 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2219 | "dev": true, 2220 | "requires": { 2221 | "brace-expansion": "^1.1.7" 2222 | } 2223 | }, 2224 | "minimist": { 2225 | "version": "0.0.8", 2226 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2227 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2228 | "dev": true 2229 | }, 2230 | "mkdirp": { 2231 | "version": "0.5.1", 2232 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2233 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2234 | "dev": true, 2235 | "requires": { 2236 | "minimist": "0.0.8" 2237 | } 2238 | }, 2239 | "mocha": { 2240 | "version": "5.2.0", 2241 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", 2242 | "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", 2243 | "dev": true, 2244 | "requires": { 2245 | "browser-stdout": "1.3.1", 2246 | "commander": "2.15.1", 2247 | "debug": "3.1.0", 2248 | "diff": "3.5.0", 2249 | "escape-string-regexp": "1.0.5", 2250 | "glob": "7.1.2", 2251 | "growl": "1.10.5", 2252 | "he": "1.1.1", 2253 | "minimatch": "3.0.4", 2254 | "mkdirp": "0.5.1", 2255 | "supports-color": "5.4.0" 2256 | }, 2257 | "dependencies": { 2258 | "debug": { 2259 | "version": "3.1.0", 2260 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 2261 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 2262 | "dev": true, 2263 | "requires": { 2264 | "ms": "2.0.0" 2265 | } 2266 | }, 2267 | "glob": { 2268 | "version": "7.1.2", 2269 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2270 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2271 | "dev": true, 2272 | "requires": { 2273 | "fs.realpath": "^1.0.0", 2274 | "inflight": "^1.0.4", 2275 | "inherits": "2", 2276 | "minimatch": "^3.0.4", 2277 | "once": "^1.3.0", 2278 | "path-is-absolute": "^1.0.0" 2279 | } 2280 | }, 2281 | "ms": { 2282 | "version": "2.0.0", 2283 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2284 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2285 | "dev": true 2286 | }, 2287 | "supports-color": { 2288 | "version": "5.4.0", 2289 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 2290 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 2291 | "dev": true, 2292 | "requires": { 2293 | "has-flag": "^3.0.0" 2294 | } 2295 | } 2296 | } 2297 | }, 2298 | "mock-stdin": { 2299 | "version": "0.3.1", 2300 | "resolved": "https://registry.npmjs.org/mock-stdin/-/mock-stdin-0.3.1.tgz", 2301 | "integrity": "sha1-xlfZZC2QeGQ1xkyl6Zu9TQm9fdM=", 2302 | "dev": true 2303 | }, 2304 | "ms": { 2305 | "version": "2.1.2", 2306 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2307 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 2308 | }, 2309 | "mute-stream": { 2310 | "version": "0.0.7", 2311 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 2312 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 2313 | "dev": true 2314 | }, 2315 | "natural-compare": { 2316 | "version": "1.4.0", 2317 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2318 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2319 | "dev": true 2320 | }, 2321 | "natural-orderby": { 2322 | "version": "2.0.3", 2323 | "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", 2324 | "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", 2325 | "dev": true 2326 | }, 2327 | "nested-error-stacks": { 2328 | "version": "2.1.0", 2329 | "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", 2330 | "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", 2331 | "dev": true 2332 | }, 2333 | "nice-try": { 2334 | "version": "1.0.5", 2335 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 2336 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 2337 | "dev": true 2338 | }, 2339 | "normalize-package-data": { 2340 | "version": "2.5.0", 2341 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 2342 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 2343 | "dev": true, 2344 | "requires": { 2345 | "hosted-git-info": "^2.1.4", 2346 | "resolve": "^1.10.0", 2347 | "semver": "2 || 3 || 4 || 5", 2348 | "validate-npm-package-license": "^3.0.1" 2349 | } 2350 | }, 2351 | "npm-run-path": { 2352 | "version": "2.0.2", 2353 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 2354 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 2355 | "dev": true, 2356 | "requires": { 2357 | "path-key": "^2.0.0" 2358 | } 2359 | }, 2360 | "nyc": { 2361 | "version": "14.1.1", 2362 | "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", 2363 | "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", 2364 | "dev": true, 2365 | "requires": { 2366 | "archy": "^1.0.0", 2367 | "caching-transform": "^3.0.2", 2368 | "convert-source-map": "^1.6.0", 2369 | "cp-file": "^6.2.0", 2370 | "find-cache-dir": "^2.1.0", 2371 | "find-up": "^3.0.0", 2372 | "foreground-child": "^1.5.6", 2373 | "glob": "^7.1.3", 2374 | "istanbul-lib-coverage": "^2.0.5", 2375 | "istanbul-lib-hook": "^2.0.7", 2376 | "istanbul-lib-instrument": "^3.3.0", 2377 | "istanbul-lib-report": "^2.0.8", 2378 | "istanbul-lib-source-maps": "^3.0.6", 2379 | "istanbul-reports": "^2.2.4", 2380 | "js-yaml": "^3.13.1", 2381 | "make-dir": "^2.1.0", 2382 | "merge-source-map": "^1.1.0", 2383 | "resolve-from": "^4.0.0", 2384 | "rimraf": "^2.6.3", 2385 | "signal-exit": "^3.0.2", 2386 | "spawn-wrap": "^1.4.2", 2387 | "test-exclude": "^5.2.3", 2388 | "uuid": "^3.3.2", 2389 | "yargs": "^13.2.2", 2390 | "yargs-parser": "^13.0.0" 2391 | }, 2392 | "dependencies": { 2393 | "find-up": { 2394 | "version": "3.0.0", 2395 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 2396 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 2397 | "dev": true, 2398 | "requires": { 2399 | "locate-path": "^3.0.0" 2400 | } 2401 | }, 2402 | "locate-path": { 2403 | "version": "3.0.0", 2404 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2405 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2406 | "dev": true, 2407 | "requires": { 2408 | "p-locate": "^3.0.0", 2409 | "path-exists": "^3.0.0" 2410 | } 2411 | }, 2412 | "make-dir": { 2413 | "version": "2.1.0", 2414 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 2415 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 2416 | "dev": true, 2417 | "requires": { 2418 | "pify": "^4.0.1", 2419 | "semver": "^5.6.0" 2420 | } 2421 | }, 2422 | "p-locate": { 2423 | "version": "3.0.0", 2424 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 2425 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 2426 | "dev": true, 2427 | "requires": { 2428 | "p-limit": "^2.0.0" 2429 | } 2430 | }, 2431 | "path-exists": { 2432 | "version": "3.0.0", 2433 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2434 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2435 | "dev": true 2436 | } 2437 | } 2438 | }, 2439 | "once": { 2440 | "version": "1.4.0", 2441 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2442 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2443 | "dev": true, 2444 | "requires": { 2445 | "wrappy": "1" 2446 | } 2447 | }, 2448 | "onetime": { 2449 | "version": "2.0.1", 2450 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 2451 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 2452 | "dev": true, 2453 | "requires": { 2454 | "mimic-fn": "^1.0.0" 2455 | } 2456 | }, 2457 | "optionator": { 2458 | "version": "0.8.3", 2459 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 2460 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 2461 | "dev": true, 2462 | "requires": { 2463 | "deep-is": "~0.1.3", 2464 | "fast-levenshtein": "~2.0.6", 2465 | "levn": "~0.3.0", 2466 | "prelude-ls": "~1.1.2", 2467 | "type-check": "~0.3.2", 2468 | "word-wrap": "~1.2.3" 2469 | } 2470 | }, 2471 | "os-homedir": { 2472 | "version": "1.0.2", 2473 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2474 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2475 | "dev": true 2476 | }, 2477 | "os-tmpdir": { 2478 | "version": "1.0.2", 2479 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2480 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2481 | "dev": true 2482 | }, 2483 | "p-finally": { 2484 | "version": "1.0.0", 2485 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 2486 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 2487 | "dev": true 2488 | }, 2489 | "p-limit": { 2490 | "version": "2.2.2", 2491 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", 2492 | "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", 2493 | "dev": true, 2494 | "requires": { 2495 | "p-try": "^2.0.0" 2496 | } 2497 | }, 2498 | "p-locate": { 2499 | "version": "4.1.0", 2500 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 2501 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 2502 | "dev": true, 2503 | "requires": { 2504 | "p-limit": "^2.2.0" 2505 | } 2506 | }, 2507 | "p-try": { 2508 | "version": "2.2.0", 2509 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2510 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2511 | "dev": true 2512 | }, 2513 | "package-hash": { 2514 | "version": "3.0.0", 2515 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", 2516 | "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", 2517 | "dev": true, 2518 | "requires": { 2519 | "graceful-fs": "^4.1.15", 2520 | "hasha": "^3.0.0", 2521 | "lodash.flattendeep": "^4.4.0", 2522 | "release-zalgo": "^1.0.0" 2523 | } 2524 | }, 2525 | "parent-module": { 2526 | "version": "1.0.1", 2527 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2528 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2529 | "dev": true, 2530 | "requires": { 2531 | "callsites": "^3.0.0" 2532 | } 2533 | }, 2534 | "parse-json": { 2535 | "version": "4.0.0", 2536 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 2537 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 2538 | "dev": true, 2539 | "requires": { 2540 | "error-ex": "^1.3.1", 2541 | "json-parse-better-errors": "^1.0.1" 2542 | } 2543 | }, 2544 | "password-prompt": { 2545 | "version": "1.1.2", 2546 | "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", 2547 | "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", 2548 | "dev": true, 2549 | "requires": { 2550 | "ansi-escapes": "^3.1.0", 2551 | "cross-spawn": "^6.0.5" 2552 | } 2553 | }, 2554 | "path-exists": { 2555 | "version": "4.0.0", 2556 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2557 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2558 | "dev": true 2559 | }, 2560 | "path-is-absolute": { 2561 | "version": "1.0.1", 2562 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2563 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2564 | "dev": true 2565 | }, 2566 | "path-is-inside": { 2567 | "version": "1.0.2", 2568 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 2569 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 2570 | "dev": true 2571 | }, 2572 | "path-key": { 2573 | "version": "2.0.1", 2574 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 2575 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 2576 | "dev": true 2577 | }, 2578 | "path-parse": { 2579 | "version": "1.0.6", 2580 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 2581 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 2582 | "dev": true 2583 | }, 2584 | "path-type": { 2585 | "version": "4.0.0", 2586 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2587 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2588 | "dev": true 2589 | }, 2590 | "pathval": { 2591 | "version": "1.1.0", 2592 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", 2593 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", 2594 | "dev": true 2595 | }, 2596 | "picomatch": { 2597 | "version": "2.2.1", 2598 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", 2599 | "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", 2600 | "dev": true 2601 | }, 2602 | "pify": { 2603 | "version": "4.0.1", 2604 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 2605 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 2606 | "dev": true 2607 | }, 2608 | "pkg-dir": { 2609 | "version": "4.2.0", 2610 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 2611 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 2612 | "dev": true, 2613 | "requires": { 2614 | "find-up": "^4.0.0" 2615 | } 2616 | }, 2617 | "prelude-ls": { 2618 | "version": "1.1.2", 2619 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 2620 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 2621 | "dev": true 2622 | }, 2623 | "progress": { 2624 | "version": "2.0.3", 2625 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 2626 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 2627 | "dev": true 2628 | }, 2629 | "pseudomap": { 2630 | "version": "1.0.2", 2631 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 2632 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 2633 | "dev": true 2634 | }, 2635 | "pump": { 2636 | "version": "3.0.0", 2637 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 2638 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 2639 | "dev": true, 2640 | "requires": { 2641 | "end-of-stream": "^1.1.0", 2642 | "once": "^1.3.1" 2643 | } 2644 | }, 2645 | "punycode": { 2646 | "version": "2.1.1", 2647 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2648 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2649 | "dev": true 2650 | }, 2651 | "qqjs": { 2652 | "version": "0.3.11", 2653 | "resolved": "https://registry.npmjs.org/qqjs/-/qqjs-0.3.11.tgz", 2654 | "integrity": "sha512-pB2X5AduTl78J+xRSxQiEmga1jQV0j43jOPs/MTgTLApGFEOn6NgdE2dEjp7nvDtjkIOZbvFIojAiYUx6ep3zg==", 2655 | "dev": true, 2656 | "requires": { 2657 | "chalk": "^2.4.1", 2658 | "debug": "^4.1.1", 2659 | "execa": "^0.10.0", 2660 | "fs-extra": "^6.0.1", 2661 | "get-stream": "^5.1.0", 2662 | "glob": "^7.1.2", 2663 | "globby": "^10.0.1", 2664 | "http-call": "^5.1.2", 2665 | "load-json-file": "^6.2.0", 2666 | "pkg-dir": "^4.2.0", 2667 | "tar-fs": "^2.0.0", 2668 | "tmp": "^0.1.0", 2669 | "write-json-file": "^4.1.1" 2670 | }, 2671 | "dependencies": { 2672 | "fs-extra": { 2673 | "version": "6.0.1", 2674 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", 2675 | "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", 2676 | "dev": true, 2677 | "requires": { 2678 | "graceful-fs": "^4.1.2", 2679 | "jsonfile": "^4.0.0", 2680 | "universalify": "^0.1.0" 2681 | } 2682 | } 2683 | } 2684 | }, 2685 | "ramda": { 2686 | "version": "0.26.1", 2687 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", 2688 | "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", 2689 | "dev": true 2690 | }, 2691 | "read-pkg": { 2692 | "version": "3.0.0", 2693 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 2694 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", 2695 | "dev": true, 2696 | "requires": { 2697 | "load-json-file": "^4.0.0", 2698 | "normalize-package-data": "^2.3.2", 2699 | "path-type": "^3.0.0" 2700 | }, 2701 | "dependencies": { 2702 | "load-json-file": { 2703 | "version": "4.0.0", 2704 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 2705 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 2706 | "dev": true, 2707 | "requires": { 2708 | "graceful-fs": "^4.1.2", 2709 | "parse-json": "^4.0.0", 2710 | "pify": "^3.0.0", 2711 | "strip-bom": "^3.0.0" 2712 | } 2713 | }, 2714 | "path-type": { 2715 | "version": "3.0.0", 2716 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 2717 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 2718 | "dev": true, 2719 | "requires": { 2720 | "pify": "^3.0.0" 2721 | } 2722 | }, 2723 | "pify": { 2724 | "version": "3.0.0", 2725 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 2726 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 2727 | "dev": true 2728 | }, 2729 | "strip-bom": { 2730 | "version": "3.0.0", 2731 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2732 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2733 | "dev": true 2734 | } 2735 | } 2736 | }, 2737 | "read-pkg-up": { 2738 | "version": "4.0.0", 2739 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", 2740 | "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", 2741 | "dev": true, 2742 | "requires": { 2743 | "find-up": "^3.0.0", 2744 | "read-pkg": "^3.0.0" 2745 | }, 2746 | "dependencies": { 2747 | "find-up": { 2748 | "version": "3.0.0", 2749 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 2750 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 2751 | "dev": true, 2752 | "requires": { 2753 | "locate-path": "^3.0.0" 2754 | } 2755 | }, 2756 | "locate-path": { 2757 | "version": "3.0.0", 2758 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2759 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2760 | "dev": true, 2761 | "requires": { 2762 | "p-locate": "^3.0.0", 2763 | "path-exists": "^3.0.0" 2764 | } 2765 | }, 2766 | "p-locate": { 2767 | "version": "3.0.0", 2768 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 2769 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 2770 | "dev": true, 2771 | "requires": { 2772 | "p-limit": "^2.0.0" 2773 | } 2774 | }, 2775 | "path-exists": { 2776 | "version": "3.0.0", 2777 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2778 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2779 | "dev": true 2780 | } 2781 | } 2782 | }, 2783 | "readable-stream": { 2784 | "version": "3.6.0", 2785 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 2786 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 2787 | "dev": true, 2788 | "requires": { 2789 | "inherits": "^2.0.3", 2790 | "string_decoder": "^1.1.1", 2791 | "util-deprecate": "^1.0.1" 2792 | } 2793 | }, 2794 | "redeyed": { 2795 | "version": "2.1.1", 2796 | "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", 2797 | "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", 2798 | "dev": true, 2799 | "requires": { 2800 | "esprima": "~4.0.0" 2801 | } 2802 | }, 2803 | "regexpp": { 2804 | "version": "2.0.1", 2805 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 2806 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 2807 | "dev": true 2808 | }, 2809 | "release-zalgo": { 2810 | "version": "1.0.0", 2811 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", 2812 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", 2813 | "dev": true, 2814 | "requires": { 2815 | "es6-error": "^4.0.1" 2816 | } 2817 | }, 2818 | "require-directory": { 2819 | "version": "2.1.1", 2820 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2821 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2822 | "dev": true 2823 | }, 2824 | "require-main-filename": { 2825 | "version": "2.0.0", 2826 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 2827 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 2828 | "dev": true 2829 | }, 2830 | "resolve": { 2831 | "version": "1.15.1", 2832 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", 2833 | "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", 2834 | "dev": true, 2835 | "requires": { 2836 | "path-parse": "^1.0.6" 2837 | } 2838 | }, 2839 | "resolve-from": { 2840 | "version": "4.0.0", 2841 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2842 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2843 | "dev": true 2844 | }, 2845 | "restore-cursor": { 2846 | "version": "2.0.0", 2847 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 2848 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 2849 | "dev": true, 2850 | "requires": { 2851 | "onetime": "^2.0.0", 2852 | "signal-exit": "^3.0.2" 2853 | } 2854 | }, 2855 | "ret": { 2856 | "version": "0.1.15", 2857 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 2858 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 2859 | "dev": true 2860 | }, 2861 | "reusify": { 2862 | "version": "1.0.4", 2863 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2864 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2865 | "dev": true 2866 | }, 2867 | "rimraf": { 2868 | "version": "2.7.1", 2869 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 2870 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 2871 | "dev": true, 2872 | "requires": { 2873 | "glob": "^7.1.3" 2874 | } 2875 | }, 2876 | "run-async": { 2877 | "version": "2.4.0", 2878 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", 2879 | "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", 2880 | "dev": true, 2881 | "requires": { 2882 | "is-promise": "^2.1.0" 2883 | } 2884 | }, 2885 | "run-parallel": { 2886 | "version": "1.1.9", 2887 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", 2888 | "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", 2889 | "dev": true 2890 | }, 2891 | "rxjs": { 2892 | "version": "6.5.4", 2893 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 2894 | "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", 2895 | "dev": true, 2896 | "requires": { 2897 | "tslib": "^1.9.0" 2898 | } 2899 | }, 2900 | "safe-buffer": { 2901 | "version": "5.2.0", 2902 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 2903 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", 2904 | "dev": true 2905 | }, 2906 | "safe-regex": { 2907 | "version": "1.1.0", 2908 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 2909 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 2910 | "dev": true, 2911 | "requires": { 2912 | "ret": "~0.1.10" 2913 | } 2914 | }, 2915 | "safer-buffer": { 2916 | "version": "2.1.2", 2917 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2918 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2919 | "dev": true 2920 | }, 2921 | "semver": { 2922 | "version": "5.7.1", 2923 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2924 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 2925 | }, 2926 | "set-blocking": { 2927 | "version": "2.0.0", 2928 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2929 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2930 | "dev": true 2931 | }, 2932 | "shebang-command": { 2933 | "version": "1.2.0", 2934 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 2935 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 2936 | "dev": true, 2937 | "requires": { 2938 | "shebang-regex": "^1.0.0" 2939 | } 2940 | }, 2941 | "shebang-regex": { 2942 | "version": "1.0.0", 2943 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 2944 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 2945 | "dev": true 2946 | }, 2947 | "signal-exit": { 2948 | "version": "3.0.2", 2949 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2950 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2951 | "dev": true 2952 | }, 2953 | "slash": { 2954 | "version": "3.0.0", 2955 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2956 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2957 | "dev": true 2958 | }, 2959 | "slice-ansi": { 2960 | "version": "2.1.0", 2961 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 2962 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 2963 | "dev": true, 2964 | "requires": { 2965 | "ansi-styles": "^3.2.0", 2966 | "astral-regex": "^1.0.0", 2967 | "is-fullwidth-code-point": "^2.0.0" 2968 | } 2969 | }, 2970 | "sort-keys": { 2971 | "version": "4.0.0", 2972 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.0.0.tgz", 2973 | "integrity": "sha512-hlJLzrn/VN49uyNkZ8+9b+0q9DjmmYcYOnbMQtpkLrYpPwRApDPZfmqbUfJnAA3sb/nRib+nDot7Zi/1ER1fuA==", 2974 | "dev": true, 2975 | "requires": { 2976 | "is-plain-obj": "^2.0.0" 2977 | } 2978 | }, 2979 | "source-map": { 2980 | "version": "0.5.7", 2981 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2982 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2983 | "dev": true 2984 | }, 2985 | "source-map-support": { 2986 | "version": "0.5.16", 2987 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", 2988 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", 2989 | "dev": true, 2990 | "requires": { 2991 | "buffer-from": "^1.0.0", 2992 | "source-map": "^0.6.0" 2993 | }, 2994 | "dependencies": { 2995 | "source-map": { 2996 | "version": "0.6.1", 2997 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2998 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2999 | "dev": true 3000 | } 3001 | } 3002 | }, 3003 | "spawn-wrap": { 3004 | "version": "1.4.3", 3005 | "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", 3006 | "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", 3007 | "dev": true, 3008 | "requires": { 3009 | "foreground-child": "^1.5.6", 3010 | "mkdirp": "^0.5.0", 3011 | "os-homedir": "^1.0.1", 3012 | "rimraf": "^2.6.2", 3013 | "signal-exit": "^3.0.2", 3014 | "which": "^1.3.0" 3015 | } 3016 | }, 3017 | "spdx-correct": { 3018 | "version": "3.1.0", 3019 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 3020 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 3021 | "dev": true, 3022 | "requires": { 3023 | "spdx-expression-parse": "^3.0.0", 3024 | "spdx-license-ids": "^3.0.0" 3025 | } 3026 | }, 3027 | "spdx-exceptions": { 3028 | "version": "2.2.0", 3029 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 3030 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 3031 | "dev": true 3032 | }, 3033 | "spdx-expression-parse": { 3034 | "version": "3.0.0", 3035 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 3036 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 3037 | "dev": true, 3038 | "requires": { 3039 | "spdx-exceptions": "^2.1.0", 3040 | "spdx-license-ids": "^3.0.0" 3041 | } 3042 | }, 3043 | "spdx-license-ids": { 3044 | "version": "3.0.5", 3045 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 3046 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 3047 | "dev": true 3048 | }, 3049 | "sprintf-js": { 3050 | "version": "1.0.3", 3051 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3052 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3053 | "dev": true 3054 | }, 3055 | "stdout-stderr": { 3056 | "version": "0.1.13", 3057 | "resolved": "https://registry.npmjs.org/stdout-stderr/-/stdout-stderr-0.1.13.tgz", 3058 | "integrity": "sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==", 3059 | "dev": true, 3060 | "requires": { 3061 | "debug": "^4.1.1", 3062 | "strip-ansi": "^6.0.0" 3063 | }, 3064 | "dependencies": { 3065 | "ansi-regex": { 3066 | "version": "5.0.0", 3067 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 3068 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 3069 | "dev": true 3070 | }, 3071 | "strip-ansi": { 3072 | "version": "6.0.0", 3073 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 3074 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 3075 | "dev": true, 3076 | "requires": { 3077 | "ansi-regex": "^5.0.0" 3078 | } 3079 | } 3080 | } 3081 | }, 3082 | "string-width": { 3083 | "version": "2.1.1", 3084 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3085 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3086 | "requires": { 3087 | "is-fullwidth-code-point": "^2.0.0", 3088 | "strip-ansi": "^4.0.0" 3089 | }, 3090 | "dependencies": { 3091 | "ansi-regex": { 3092 | "version": "3.0.0", 3093 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3094 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 3095 | }, 3096 | "strip-ansi": { 3097 | "version": "4.0.0", 3098 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3099 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3100 | "requires": { 3101 | "ansi-regex": "^3.0.0" 3102 | } 3103 | } 3104 | } 3105 | }, 3106 | "string_decoder": { 3107 | "version": "1.3.0", 3108 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 3109 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 3110 | "dev": true, 3111 | "requires": { 3112 | "safe-buffer": "~5.2.0" 3113 | } 3114 | }, 3115 | "strip-ansi": { 3116 | "version": "5.2.0", 3117 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 3118 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 3119 | "requires": { 3120 | "ansi-regex": "^4.1.0" 3121 | } 3122 | }, 3123 | "strip-bom": { 3124 | "version": "4.0.0", 3125 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", 3126 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", 3127 | "dev": true 3128 | }, 3129 | "strip-eof": { 3130 | "version": "1.0.0", 3131 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3132 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3133 | "dev": true 3134 | }, 3135 | "strip-json-comments": { 3136 | "version": "2.0.1", 3137 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 3138 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 3139 | "dev": true 3140 | }, 3141 | "supports-color": { 3142 | "version": "5.5.0", 3143 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3144 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3145 | "requires": { 3146 | "has-flag": "^3.0.0" 3147 | } 3148 | }, 3149 | "supports-hyperlinks": { 3150 | "version": "1.0.1", 3151 | "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", 3152 | "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", 3153 | "dev": true, 3154 | "requires": { 3155 | "has-flag": "^2.0.0", 3156 | "supports-color": "^5.0.0" 3157 | }, 3158 | "dependencies": { 3159 | "has-flag": { 3160 | "version": "2.0.0", 3161 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 3162 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 3163 | "dev": true 3164 | } 3165 | } 3166 | }, 3167 | "table": { 3168 | "version": "5.4.6", 3169 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 3170 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 3171 | "dev": true, 3172 | "requires": { 3173 | "ajv": "^6.10.2", 3174 | "lodash": "^4.17.14", 3175 | "slice-ansi": "^2.1.0", 3176 | "string-width": "^3.0.0" 3177 | }, 3178 | "dependencies": { 3179 | "string-width": { 3180 | "version": "3.1.0", 3181 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 3182 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 3183 | "dev": true, 3184 | "requires": { 3185 | "emoji-regex": "^7.0.1", 3186 | "is-fullwidth-code-point": "^2.0.0", 3187 | "strip-ansi": "^5.1.0" 3188 | } 3189 | } 3190 | } 3191 | }, 3192 | "tar-fs": { 3193 | "version": "2.0.0", 3194 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", 3195 | "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", 3196 | "dev": true, 3197 | "requires": { 3198 | "chownr": "^1.1.1", 3199 | "mkdirp": "^0.5.1", 3200 | "pump": "^3.0.0", 3201 | "tar-stream": "^2.0.0" 3202 | } 3203 | }, 3204 | "tar-stream": { 3205 | "version": "2.1.2", 3206 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", 3207 | "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", 3208 | "dev": true, 3209 | "requires": { 3210 | "bl": "^4.0.1", 3211 | "end-of-stream": "^1.4.1", 3212 | "fs-constants": "^1.0.0", 3213 | "inherits": "^2.0.3", 3214 | "readable-stream": "^3.1.1" 3215 | } 3216 | }, 3217 | "test-exclude": { 3218 | "version": "5.2.3", 3219 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", 3220 | "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", 3221 | "dev": true, 3222 | "requires": { 3223 | "glob": "^7.1.3", 3224 | "minimatch": "^3.0.4", 3225 | "read-pkg-up": "^4.0.0", 3226 | "require-main-filename": "^2.0.0" 3227 | } 3228 | }, 3229 | "text-table": { 3230 | "version": "0.2.0", 3231 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3232 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 3233 | "dev": true 3234 | }, 3235 | "through": { 3236 | "version": "2.3.8", 3237 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3238 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 3239 | "dev": true 3240 | }, 3241 | "tmp": { 3242 | "version": "0.1.0", 3243 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", 3244 | "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", 3245 | "dev": true, 3246 | "requires": { 3247 | "rimraf": "^2.6.3" 3248 | } 3249 | }, 3250 | "to-fast-properties": { 3251 | "version": "2.0.0", 3252 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3253 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 3254 | "dev": true 3255 | }, 3256 | "to-regex-range": { 3257 | "version": "5.0.1", 3258 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3259 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3260 | "dev": true, 3261 | "requires": { 3262 | "is-number": "^7.0.0" 3263 | } 3264 | }, 3265 | "treeify": { 3266 | "version": "1.1.0", 3267 | "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", 3268 | "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", 3269 | "dev": true 3270 | }, 3271 | "ts-node": { 3272 | "version": "8.6.2", 3273 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", 3274 | "integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==", 3275 | "dev": true, 3276 | "requires": { 3277 | "arg": "^4.1.0", 3278 | "diff": "^4.0.1", 3279 | "make-error": "^1.1.1", 3280 | "source-map-support": "^0.5.6", 3281 | "yn": "3.1.1" 3282 | }, 3283 | "dependencies": { 3284 | "diff": { 3285 | "version": "4.0.2", 3286 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 3287 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 3288 | "dev": true 3289 | } 3290 | } 3291 | }, 3292 | "tslib": { 3293 | "version": "1.11.1", 3294 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", 3295 | "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" 3296 | }, 3297 | "tsutils": { 3298 | "version": "3.17.1", 3299 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", 3300 | "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", 3301 | "dev": true, 3302 | "requires": { 3303 | "tslib": "^1.8.1" 3304 | } 3305 | }, 3306 | "tunnel-agent": { 3307 | "version": "0.6.0", 3308 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3309 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3310 | "dev": true, 3311 | "requires": { 3312 | "safe-buffer": "^5.0.1" 3313 | } 3314 | }, 3315 | "type-check": { 3316 | "version": "0.3.2", 3317 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 3318 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 3319 | "dev": true, 3320 | "requires": { 3321 | "prelude-ls": "~1.1.2" 3322 | } 3323 | }, 3324 | "type-detect": { 3325 | "version": "4.0.8", 3326 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 3327 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 3328 | "dev": true 3329 | }, 3330 | "type-fest": { 3331 | "version": "0.6.0", 3332 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 3333 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", 3334 | "dev": true 3335 | }, 3336 | "typedarray-to-buffer": { 3337 | "version": "3.1.5", 3338 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 3339 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 3340 | "dev": true, 3341 | "requires": { 3342 | "is-typedarray": "^1.0.0" 3343 | } 3344 | }, 3345 | "typescript": { 3346 | "version": "3.8.3", 3347 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", 3348 | "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", 3349 | "dev": true 3350 | }, 3351 | "universalify": { 3352 | "version": "0.1.2", 3353 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 3354 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" 3355 | }, 3356 | "uri-js": { 3357 | "version": "4.2.2", 3358 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 3359 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 3360 | "dev": true, 3361 | "requires": { 3362 | "punycode": "^2.1.0" 3363 | } 3364 | }, 3365 | "util-deprecate": { 3366 | "version": "1.0.2", 3367 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3368 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3369 | "dev": true 3370 | }, 3371 | "uuid": { 3372 | "version": "3.4.0", 3373 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 3374 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", 3375 | "dev": true 3376 | }, 3377 | "validate-npm-package-license": { 3378 | "version": "3.0.4", 3379 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 3380 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 3381 | "dev": true, 3382 | "requires": { 3383 | "spdx-correct": "^3.0.0", 3384 | "spdx-expression-parse": "^3.0.0" 3385 | } 3386 | }, 3387 | "which": { 3388 | "version": "1.3.1", 3389 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 3390 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 3391 | "dev": true, 3392 | "requires": { 3393 | "isexe": "^2.0.0" 3394 | } 3395 | }, 3396 | "which-module": { 3397 | "version": "2.0.0", 3398 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 3399 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 3400 | "dev": true 3401 | }, 3402 | "widest-line": { 3403 | "version": "2.0.1", 3404 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", 3405 | "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", 3406 | "requires": { 3407 | "string-width": "^2.1.1" 3408 | } 3409 | }, 3410 | "word-wrap": { 3411 | "version": "1.2.3", 3412 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 3413 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 3414 | "dev": true 3415 | }, 3416 | "wrap-ansi": { 3417 | "version": "4.0.0", 3418 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", 3419 | "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", 3420 | "requires": { 3421 | "ansi-styles": "^3.2.0", 3422 | "string-width": "^2.1.1", 3423 | "strip-ansi": "^4.0.0" 3424 | }, 3425 | "dependencies": { 3426 | "ansi-regex": { 3427 | "version": "3.0.0", 3428 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3429 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 3430 | }, 3431 | "strip-ansi": { 3432 | "version": "4.0.0", 3433 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3434 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3435 | "requires": { 3436 | "ansi-regex": "^3.0.0" 3437 | } 3438 | } 3439 | } 3440 | }, 3441 | "wrappy": { 3442 | "version": "1.0.2", 3443 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3444 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 3445 | "dev": true 3446 | }, 3447 | "write": { 3448 | "version": "1.0.3", 3449 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 3450 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 3451 | "dev": true, 3452 | "requires": { 3453 | "mkdirp": "^0.5.1" 3454 | } 3455 | }, 3456 | "write-file-atomic": { 3457 | "version": "3.0.3", 3458 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 3459 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 3460 | "dev": true, 3461 | "requires": { 3462 | "imurmurhash": "^0.1.4", 3463 | "is-typedarray": "^1.0.0", 3464 | "signal-exit": "^3.0.2", 3465 | "typedarray-to-buffer": "^3.1.5" 3466 | } 3467 | }, 3468 | "write-json-file": { 3469 | "version": "4.3.0", 3470 | "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", 3471 | "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", 3472 | "dev": true, 3473 | "requires": { 3474 | "detect-indent": "^6.0.0", 3475 | "graceful-fs": "^4.1.15", 3476 | "is-plain-obj": "^2.0.0", 3477 | "make-dir": "^3.0.0", 3478 | "sort-keys": "^4.0.0", 3479 | "write-file-atomic": "^3.0.0" 3480 | } 3481 | }, 3482 | "y18n": { 3483 | "version": "4.0.0", 3484 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 3485 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 3486 | "dev": true 3487 | }, 3488 | "yallist": { 3489 | "version": "2.1.2", 3490 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 3491 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 3492 | "dev": true 3493 | }, 3494 | "yargs": { 3495 | "version": "13.3.2", 3496 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", 3497 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", 3498 | "dev": true, 3499 | "requires": { 3500 | "cliui": "^5.0.0", 3501 | "find-up": "^3.0.0", 3502 | "get-caller-file": "^2.0.1", 3503 | "require-directory": "^2.1.1", 3504 | "require-main-filename": "^2.0.0", 3505 | "set-blocking": "^2.0.0", 3506 | "string-width": "^3.0.0", 3507 | "which-module": "^2.0.0", 3508 | "y18n": "^4.0.0", 3509 | "yargs-parser": "^13.1.2" 3510 | }, 3511 | "dependencies": { 3512 | "find-up": { 3513 | "version": "3.0.0", 3514 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 3515 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 3516 | "dev": true, 3517 | "requires": { 3518 | "locate-path": "^3.0.0" 3519 | } 3520 | }, 3521 | "locate-path": { 3522 | "version": "3.0.0", 3523 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 3524 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 3525 | "dev": true, 3526 | "requires": { 3527 | "p-locate": "^3.0.0", 3528 | "path-exists": "^3.0.0" 3529 | } 3530 | }, 3531 | "p-locate": { 3532 | "version": "3.0.0", 3533 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 3534 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 3535 | "dev": true, 3536 | "requires": { 3537 | "p-limit": "^2.0.0" 3538 | } 3539 | }, 3540 | "path-exists": { 3541 | "version": "3.0.0", 3542 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3543 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3544 | "dev": true 3545 | }, 3546 | "string-width": { 3547 | "version": "3.1.0", 3548 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 3549 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 3550 | "dev": true, 3551 | "requires": { 3552 | "emoji-regex": "^7.0.1", 3553 | "is-fullwidth-code-point": "^2.0.0", 3554 | "strip-ansi": "^5.1.0" 3555 | } 3556 | } 3557 | } 3558 | }, 3559 | "yargs-parser": { 3560 | "version": "13.1.2", 3561 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 3562 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 3563 | "dev": true, 3564 | "requires": { 3565 | "camelcase": "^5.0.0", 3566 | "decamelize": "^1.2.0" 3567 | } 3568 | }, 3569 | "yn": { 3570 | "version": "3.1.1", 3571 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", 3572 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", 3573 | "dev": true 3574 | } 3575 | } 3576 | } 3577 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cdkp", 3 | "description": "CLI tool for cdk patterns", 4 | "version": "0.7.0", 5 | "author": "cdkpatterns", 6 | "bin": { 7 | "cdkp": "./bin/run" 8 | }, 9 | "bugs": "https://github.com/cdk-patterns/cli/issues", 10 | "dependencies": { 11 | "@oclif/command": "^1.5.19", 12 | "@oclif/config": "^1.14.0", 13 | "@oclif/plugin-help": "^2.2.3", 14 | "fs-extra": "^8.1.0", 15 | "tslib": "^1.11.1" 16 | }, 17 | "devDependencies": { 18 | "@oclif/dev-cli": "^1.22.2", 19 | "@oclif/test": "^1.2.5", 20 | "@types/chai": "^4.2.10", 21 | "@types/mocha": "^5.2.7", 22 | "@types/node": "^10.17.17", 23 | "chai": "^4.2.0", 24 | "eslint": "^5.16.0", 25 | "eslint-config-oclif": "^3.1.0", 26 | "eslint-config-oclif-typescript": "^0.1.0", 27 | "globby": "^10.0.2", 28 | "mocha": "^5.2.0", 29 | "nyc": "^14.1.1", 30 | "ts-node": "^8.6.2", 31 | "typescript": "^3.8.3" 32 | }, 33 | "engines": { 34 | "node": ">=8.0.0" 35 | }, 36 | "files": [ 37 | "/bin", 38 | "/lib", 39 | "/npm-shrinkwrap.json", 40 | "/oclif.manifest.json" 41 | ], 42 | "homepage": "cdkpatterns.com", 43 | "keywords": [ 44 | "oclif", 45 | "cdk", 46 | "patterns", 47 | "serverless", 48 | "aws", 49 | "architecture" 50 | ], 51 | "license": "MIT", 52 | "main": "lib/index.js", 53 | "oclif": { 54 | "commands": "./lib/commands", 55 | "bin": "cdkp", 56 | "plugins": [ 57 | "@oclif/plugin-help" 58 | ] 59 | }, 60 | "repository": "https://github.com/cdk-patterns/cli", 61 | "scripts": { 62 | "postpack": "rm -f oclif.manifest.json", 63 | "posttest": "eslint . --ext .ts --config .eslintrc", 64 | "prepack": "rm -rf lib && tsc -b && oclif-dev manifest && oclif-dev readme", 65 | "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", 66 | "version": "oclif-dev readme && git add README.md" 67 | }, 68 | "types": "lib/index.d.ts" 69 | } 70 | -------------------------------------------------------------------------------- /src/commands/init.ts: -------------------------------------------------------------------------------- 1 | import {Command, flags} from '@oclif/command' 2 | const { execSync } = require('child_process'); 3 | const fs = require('fs-extra'); 4 | import * as path from 'path'; 5 | const https = require('https'); 6 | 7 | export default class Init extends Command { 8 | static description = 'takes a pattern name as a parameter and clones it from cdkpatterns.com' 9 | 10 | static examples = [ 11 | `$ cdkp init the-big-fan 12 | *** Downloading Pattern *** 13 | From https://github.com/cdk-patterns/serverless 14 | * [new branch] main -> origin/main 15 | From https://github.com/cdk-patterns/serverless 16 | * branch main -> FETCH_HEAD 17 | *** Tidying up file structure *** 18 | *** Installing Dependencies and Building *** 19 | npm WARN the-big-fan@0.1.0 No repository field. 20 | npm WARN the-big-fan@0.1.0 No license field. 21 | 22 | *** Complete, pattern is inside the-big-fan folder *** 23 | 24 | Useful Commands: 25 | - "cd the-big-fan" to open the pattern in your cli 26 | - "npm run cdk synth" to see the generated cft 27 | - "npm run test" to run the unit tests 28 | - "npm run deploy" to deploy to aws 29 | `, 30 | ] 31 | 32 | static flags = { 33 | help: flags.help({char: 'h'}), 34 | 35 | // flag with no value (-f, --force) 36 | force: flags.boolean({char: 'f'}), 37 | 38 | // language flag for the patterm, typescript or python 39 | lang: flags.string({char: 'l', description:"typescript or python"}), 40 | } 41 | 42 | static args = [{name: 'pattern'}] 43 | 44 | async run() { 45 | const {args, flags} = this.parse(Init) 46 | const pattern = args.pattern || null; 47 | const force = flags.force || false; 48 | let lang = flags.lang || 'typescript'; 49 | const base_dir = path.join(process.cwd(), pattern); 50 | 51 | lang = lang.toLowerCase(); 52 | 53 | if(lang !== 'typescript' && lang !== 'python') { 54 | this.error('only typescript and python are supported'); 55 | } 56 | 57 | this.getAvailablePatterns().then(async (patterns)=> { 58 | if(!patterns.includes(pattern)){ 59 | this.log(pattern+' is not a valid pattern, try cdkp list to see available patterns') 60 | return; 61 | } 62 | 63 | try { 64 | if ((fs.existsSync('./'+pattern)) && (force === false)) { 65 | //file exists 66 | this.log(pattern+ ' folder already exists, you can only add a pattern once') 67 | }else { 68 | if(force === true) { 69 | this.log('Deleting previous '+pattern+ ' folder from '+base_dir); 70 | } 71 | 72 | fs.emptyDirSync(pattern) 73 | this.log('*** Downloading Pattern ***'); 74 | execSync('git init', {'cwd': pattern}); 75 | execSync('git remote add origin -f https://github.com/cdk-patterns/serverless', {'cwd': pattern}); 76 | execSync('git config core.sparsecheckout true', {'cwd': pattern}); 77 | execSync('echo '+pattern+'/'+lang+' >> .git/info/sparse-checkout', {'cwd': pattern}); 78 | execSync('git pull origin main', {'cwd': pattern}); 79 | 80 | this.log('*** Tidying up file structure ***'); 81 | fs.removeSync(path.join(base_dir, '.git')) 82 | await this.copyFiles(path.join(base_dir, pattern, lang), base_dir) 83 | fs.removeSync(path.join(base_dir, pattern)) 84 | 85 | if(lang === 'typescript'){ 86 | this.log('*** Installing Dependencies and Building (This can take a couple of mins depending on pattern) ***'); 87 | execSync('npm i && npm run build', {'cwd': pattern}); 88 | this.log('*** Complete, pattern is inside '+base_dir+' folder ***\n'); 89 | this.log('Useful Commands:'); 90 | this.log('- "cd '+pattern+'" to open the pattern in your cli'); 91 | this.log('- "npm run cdk synth" to see the generated cft'); 92 | this.log('- "npm run test" to run the unit tests'); 93 | this.log('- "npm run deploy" to deploy to aws'); 94 | } else { 95 | this.log('*** Complete, pattern is inside '+base_dir+' folder ***\n'); 96 | this.log('You still need to create your venv and install the dependencies as per the readme'); 97 | this.log('Useful Commands:'); 98 | this.log('- "cd '+pattern+'" to open the pattern in your cli'); 99 | } 100 | 101 | 102 | } 103 | } catch(err) { 104 | this.error(err) 105 | } 106 | }) 107 | 108 | } 109 | 110 | private getAvailablePatterns():Promise { 111 | return new Promise((resolve, reject) => { 112 | https.get('https://raw.githubusercontent.com/cdk-patterns/serverless/main/info.json', (resp:any) => { 113 | let data = ''; 114 | 115 | // A chunk of data has been recieved. 116 | resp.on('data', (chunk:any) => { 117 | data += chunk; 118 | }); 119 | 120 | // The whole response has been received. Print out the result. 121 | resp.on('end', () => { 122 | let cdkinfo:any = JSON.parse(data); 123 | resolve(Object.keys(cdkinfo.patterns)); 124 | }); 125 | 126 | }).on("error", (err:any) => { 127 | reject(err.message) 128 | }); 129 | }); 130 | } 131 | 132 | private async copyFiles(sourceDirectory: string, targetDirectory: string) { 133 | for (const file of await fs.readdir(sourceDirectory)) { 134 | const fromFile = path.join(sourceDirectory, file); 135 | const toFile = path.join(targetDirectory, file); 136 | if ((await fs.stat(fromFile)).isDirectory()) { 137 | await fs.mkdir(toFile); 138 | await this.copyFiles(fromFile, toFile); 139 | continue; 140 | } else { 141 | await fs.copy(fromFile, toFile); 142 | } 143 | } 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /src/commands/list.ts: -------------------------------------------------------------------------------- 1 | import {Command, flags} from '@oclif/command' 2 | const { execSync } = require('child_process'); 3 | const fs = require('fs-extra'); 4 | const https = require('https'); 5 | import * as path from 'path'; 6 | 7 | export default class List extends Command { 8 | static description = 'takes a pattern name as a parameter and clones it from cdkpatterns.com' 9 | 10 | static examples = [ 11 | `$ cdkp list 12 | `, 13 | ] 14 | 15 | static flags = { 16 | 17 | } 18 | 19 | static args = [{name: 'pattern'}] 20 | 21 | async run() { 22 | const {args, flags} = this.parse(List) 23 | 24 | let that = this; 25 | 26 | https.get('https://raw.githubusercontent.com/cdk-patterns/serverless/main/info.json', (resp:any) => { 27 | let data = ''; 28 | 29 | // A chunk of data has been recieved. 30 | resp.on('data', (chunk:any) => { 31 | data += chunk; 32 | }); 33 | 34 | // The whole response has been received. Print out the result. 35 | resp.on('end', () => { 36 | let cdkinfo:any = JSON.parse(data); 37 | let prodPatterns = []; 38 | let learningPatterns = []; 39 | 40 | for(var pattern in cdkinfo.patterns) { 41 | if(cdkinfo.patterns[pattern].prodReady === true) { 42 | prodPatterns.push(pattern) 43 | }else { 44 | learningPatterns.push(pattern); 45 | } 46 | } 47 | 48 | if(prodPatterns.length > 0) { 49 | that.log('Production Ready Patterns') 50 | for(var pattern in prodPatterns) { 51 | that.log('- '+prodPatterns[pattern]); 52 | } 53 | that.log('\n'); 54 | } 55 | 56 | if(learningPatterns.length > 0){ 57 | that.log('Patterns Designed For Learning (i.e. need tweaks before prod use)') 58 | for(var pattern in learningPatterns) { 59 | that.log('- '+learningPatterns[pattern]); 60 | } 61 | } 62 | }); 63 | 64 | }).on("error", (err:any) => { 65 | that.error(err.message) 66 | }); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export {run} from '@oclif/command' 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "importHelpers": true, 5 | "module": "commonjs", 6 | "outDir": "lib", 7 | "rootDir": "src", 8 | "strict": true, 9 | "target": "es2017" 10 | }, 11 | "include": [ 12 | "src/**/*" 13 | ] 14 | } 15 | --------------------------------------------------------------------------------