├── .babelrc ├── .eslintrc.json ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── src ├── doubly-linked-list.js ├── hash-table-helpers.js ├── hash-table.js ├── linked-list.js ├── queue.js └── stack.js └── tests ├── hash-table.test.js ├── linked-list.test.js ├── queue.test.js └── stack.test.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ "es2015" ] 3 | } 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "airbnb-base", 3 | "plugins": [ 4 | "import" 5 | ], 6 | "consistent-return": 0, 7 | "rules": { 8 | "no-param-reassign": 0, 9 | "max-len": 0, 10 | "no-plusplus": 0, 11 | "linebreak-style": 0, 12 | "consistent-return": 0, 13 | "no-useless-return": 0, 14 | "no-return-assign": 0, 15 | "arrow-body-style": 0, 16 | "no-unused-vars": 0, 17 | "no-useless-constructor": 0, 18 | "import/no-unresolved": 0 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | .DS_Store 3 | node_modules 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Data Structures I 2 | 3 | Topics: 4 | 5 | * Big-O Notation (Complexity analysis) 6 | * Stacks 7 | * Queues 8 | * Linked Lists 9 | * Hash Tables 10 | 11 | 12 | 13 | #### Stacks 14 | 15 | * Should have the methods: `push`, `pop`, and a getter for the property `size` 16 | * `push` should accept a value and place it on top of the stack. 17 | * `pop` should remove and return the top value off of the stack. 18 | * `size` should return how many items are on the stack. 19 | 20 | ![Image of Stack](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Lifo_stack.png/700px-Lifo_stack.png) 21 | 22 | #### Queues 23 | 24 | * Should have the methods: `enqueue`, `dequeue`, and a getter for the property `size` 25 | * `enqueue` should add an item to the back of the queue. 26 | * `dequeue` should remove and return an item from the front of the queue. 27 | * `size` should return the number of items in the queue. 28 | 29 | ![Image of Queue](https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Data_Queue.svg/600px-Data_Queue.svg.png) 30 | 31 | #### Linked Lists 32 | 33 | * Should have the methods: `addToTail`, `removeHead`, and `contains`. 34 | * `addToTail` replaces the tail with a new value that is passed in. 35 | * `removeHead` removes and returns the head node. 36 | * `contains` should searth through the linked list and return true if a matching value is found. 37 | * The `head` property is a reference to the first node and the `tail` property is a reference to the last node. These are the only two properties that you need to keep track of an infinite number of nodes. Build your nodes with objects. 38 | 39 | ![Image of Linked List](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Singly-linked-list.svg/816px-Singly-linked-list.svg.png) 40 | 41 | #### Hash Tables 42 | 43 | * Should have the methods: `insert`, `remove`, and `retrieve`. 44 | * `insert` should take a key value pair and add the value to the hash table. 45 | * `retrieve` should return the value associated with a key. 46 | * `remove` should removed the given key's value from the hash table. 47 | * Should properly handle collisions. If two keys map to the same index in the storage table then you should store a 2d array as the value. Make each key/value pair its own array that is nested inside of the array stored at that index on the table. (This is often implemented as a linked list but you can just use arrays.) 48 | 49 | ![Image of Hash Table](https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg/630px-Hash_table_3_1_1_0_1_0_0_SP.svg.png) 50 | 51 | ### Extra Credit 52 | 53 | * Uncomment the final test in `hash-table.test.js` and make the hash-table rebalance. As a hash table increases in size the associated storage table will typically double in size once it reaches a certain capacity. Change the hash table so that it doubles the size of the storage table once it is 75% full. 54 | * Re-implement the stack `push` and `pop` methods, along with the queue `enqueue` and `dequeue` methods, without using built-in array methods. 55 | * Implement a [doubly linked list](https://en.wikipedia.org/wiki/Doubly_linked_list) data structure in its own file named `doubly-linked-listjs`. Uncomment the Extra Credit tests in `linked-list.test.js` to test your doubly-linked list implementation. Since you've made it this far into the extra credit, you'll be left to read through the tests yourself to figure out what is needed of your implementation for it to pass. Being able to read through documentation and tests in order to glean necessary implementation details is an important skill for any developer. 56 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ls-data-structures-i", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abab": { 8 | "version": "1.0.3", 9 | "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", 10 | "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", 11 | "dev": true 12 | }, 13 | "acorn": { 14 | "version": "5.1.2", 15 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", 16 | "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", 17 | "dev": true 18 | }, 19 | "acorn-globals": { 20 | "version": "3.1.0", 21 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", 22 | "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", 23 | "dev": true, 24 | "requires": { 25 | "acorn": "4.0.13" 26 | }, 27 | "dependencies": { 28 | "acorn": { 29 | "version": "4.0.13", 30 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 31 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", 32 | "dev": true 33 | } 34 | } 35 | }, 36 | "acorn-jsx": { 37 | "version": "3.0.1", 38 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 39 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 40 | "dev": true, 41 | "requires": { 42 | "acorn": "3.3.0" 43 | }, 44 | "dependencies": { 45 | "acorn": { 46 | "version": "3.3.0", 47 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 48 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 49 | "dev": true 50 | } 51 | } 52 | }, 53 | "ajv": { 54 | "version": "4.11.8", 55 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 56 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 57 | "dev": true, 58 | "requires": { 59 | "co": "4.6.0", 60 | "json-stable-stringify": "1.0.1" 61 | } 62 | }, 63 | "ajv-keywords": { 64 | "version": "1.5.1", 65 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 66 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 67 | "dev": true 68 | }, 69 | "align-text": { 70 | "version": "0.1.4", 71 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 72 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 73 | "dev": true, 74 | "requires": { 75 | "kind-of": "3.2.2", 76 | "longest": "1.0.1", 77 | "repeat-string": "1.6.1" 78 | } 79 | }, 80 | "amdefine": { 81 | "version": "1.0.1", 82 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 83 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 84 | "dev": true 85 | }, 86 | "ansi-escapes": { 87 | "version": "1.4.0", 88 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 89 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 90 | "dev": true 91 | }, 92 | "ansi-regex": { 93 | "version": "2.1.1", 94 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 95 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 96 | }, 97 | "ansi-styles": { 98 | "version": "2.2.1", 99 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 100 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" 101 | }, 102 | "anymatch": { 103 | "version": "1.3.2", 104 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 105 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 106 | "dev": true, 107 | "requires": { 108 | "micromatch": "2.3.11", 109 | "normalize-path": "2.1.1" 110 | } 111 | }, 112 | "append-transform": { 113 | "version": "0.4.0", 114 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", 115 | "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", 116 | "dev": true, 117 | "requires": { 118 | "default-require-extensions": "1.0.0" 119 | } 120 | }, 121 | "argparse": { 122 | "version": "1.0.9", 123 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 124 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 125 | "dev": true, 126 | "requires": { 127 | "sprintf-js": "1.0.3" 128 | } 129 | }, 130 | "aria-query": { 131 | "version": "0.3.0", 132 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.3.0.tgz", 133 | "integrity": "sha1-y4qZhOKGJxHIPICt5bj1yg3itGc=", 134 | "dev": true, 135 | "requires": { 136 | "ast-types-flow": "0.0.7" 137 | } 138 | }, 139 | "arr-diff": { 140 | "version": "2.0.0", 141 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 142 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 143 | "dev": true, 144 | "requires": { 145 | "arr-flatten": "1.1.0" 146 | } 147 | }, 148 | "arr-flatten": { 149 | "version": "1.1.0", 150 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 151 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 152 | "dev": true 153 | }, 154 | "array-equal": { 155 | "version": "1.0.0", 156 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 157 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", 158 | "dev": true 159 | }, 160 | "array-union": { 161 | "version": "1.0.2", 162 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 163 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 164 | "dev": true, 165 | "requires": { 166 | "array-uniq": "1.0.3" 167 | } 168 | }, 169 | "array-uniq": { 170 | "version": "1.0.3", 171 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 172 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 173 | "dev": true 174 | }, 175 | "array-unique": { 176 | "version": "0.2.1", 177 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 178 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 179 | "dev": true 180 | }, 181 | "array.prototype.find": { 182 | "version": "2.0.4", 183 | "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", 184 | "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", 185 | "dev": true, 186 | "requires": { 187 | "define-properties": "1.1.2", 188 | "es-abstract": "1.8.2" 189 | } 190 | }, 191 | "arrify": { 192 | "version": "1.0.1", 193 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 194 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 195 | "dev": true 196 | }, 197 | "asn1": { 198 | "version": "0.2.3", 199 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 200 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 201 | "dev": true 202 | }, 203 | "assert-plus": { 204 | "version": "0.2.0", 205 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 206 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 207 | "dev": true 208 | }, 209 | "ast-types-flow": { 210 | "version": "0.0.7", 211 | "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", 212 | "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", 213 | "dev": true 214 | }, 215 | "async": { 216 | "version": "2.5.0", 217 | "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", 218 | "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", 219 | "dev": true, 220 | "requires": { 221 | "lodash": "4.17.4" 222 | } 223 | }, 224 | "asynckit": { 225 | "version": "0.4.0", 226 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 227 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 228 | "dev": true 229 | }, 230 | "aws-sign2": { 231 | "version": "0.6.0", 232 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", 233 | "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", 234 | "dev": true 235 | }, 236 | "aws4": { 237 | "version": "1.6.0", 238 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 239 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 240 | "dev": true 241 | }, 242 | "babel-code-frame": { 243 | "version": "6.26.0", 244 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 245 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 246 | "requires": { 247 | "chalk": "1.1.3", 248 | "esutils": "2.0.2", 249 | "js-tokens": "3.0.2" 250 | } 251 | }, 252 | "babel-core": { 253 | "version": "6.26.0", 254 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 255 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 256 | "dev": true, 257 | "requires": { 258 | "babel-code-frame": "6.26.0", 259 | "babel-generator": "6.26.0", 260 | "babel-helpers": "6.24.1", 261 | "babel-messages": "6.23.0", 262 | "babel-register": "6.26.0", 263 | "babel-runtime": "6.26.0", 264 | "babel-template": "6.26.0", 265 | "babel-traverse": "6.26.0", 266 | "babel-types": "6.26.0", 267 | "babylon": "6.18.0", 268 | "convert-source-map": "1.5.0", 269 | "debug": "2.6.8", 270 | "json5": "0.5.1", 271 | "lodash": "4.17.4", 272 | "minimatch": "3.0.4", 273 | "path-is-absolute": "1.0.1", 274 | "private": "0.1.7", 275 | "slash": "1.0.0", 276 | "source-map": "0.5.7" 277 | } 278 | }, 279 | "babel-generator": { 280 | "version": "6.26.0", 281 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 282 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 283 | "dev": true, 284 | "requires": { 285 | "babel-messages": "6.23.0", 286 | "babel-runtime": "6.26.0", 287 | "babel-types": "6.26.0", 288 | "detect-indent": "4.0.0", 289 | "jsesc": "1.3.0", 290 | "lodash": "4.17.4", 291 | "source-map": "0.5.7", 292 | "trim-right": "1.0.1" 293 | }, 294 | "dependencies": { 295 | "jsesc": { 296 | "version": "1.3.0", 297 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 298 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 299 | "dev": true 300 | } 301 | } 302 | }, 303 | "babel-helper-call-delegate": { 304 | "version": "6.24.1", 305 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 306 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 307 | "requires": { 308 | "babel-helper-hoist-variables": "6.24.1", 309 | "babel-runtime": "6.26.0", 310 | "babel-traverse": "6.26.0", 311 | "babel-types": "6.26.0" 312 | } 313 | }, 314 | "babel-helper-define-map": { 315 | "version": "6.26.0", 316 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 317 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 318 | "requires": { 319 | "babel-helper-function-name": "6.24.1", 320 | "babel-runtime": "6.26.0", 321 | "babel-types": "6.26.0", 322 | "lodash": "4.17.4" 323 | } 324 | }, 325 | "babel-helper-function-name": { 326 | "version": "6.24.1", 327 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 328 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 329 | "requires": { 330 | "babel-helper-get-function-arity": "6.24.1", 331 | "babel-runtime": "6.26.0", 332 | "babel-template": "6.26.0", 333 | "babel-traverse": "6.26.0", 334 | "babel-types": "6.26.0" 335 | } 336 | }, 337 | "babel-helper-get-function-arity": { 338 | "version": "6.24.1", 339 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 340 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 341 | "requires": { 342 | "babel-runtime": "6.26.0", 343 | "babel-types": "6.26.0" 344 | } 345 | }, 346 | "babel-helper-hoist-variables": { 347 | "version": "6.24.1", 348 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 349 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 350 | "requires": { 351 | "babel-runtime": "6.26.0", 352 | "babel-types": "6.26.0" 353 | } 354 | }, 355 | "babel-helper-optimise-call-expression": { 356 | "version": "6.24.1", 357 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 358 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 359 | "requires": { 360 | "babel-runtime": "6.26.0", 361 | "babel-types": "6.26.0" 362 | } 363 | }, 364 | "babel-helper-regex": { 365 | "version": "6.26.0", 366 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 367 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 368 | "requires": { 369 | "babel-runtime": "6.26.0", 370 | "babel-types": "6.26.0", 371 | "lodash": "4.17.4" 372 | } 373 | }, 374 | "babel-helper-replace-supers": { 375 | "version": "6.24.1", 376 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 377 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 378 | "requires": { 379 | "babel-helper-optimise-call-expression": "6.24.1", 380 | "babel-messages": "6.23.0", 381 | "babel-runtime": "6.26.0", 382 | "babel-template": "6.26.0", 383 | "babel-traverse": "6.26.0", 384 | "babel-types": "6.26.0" 385 | } 386 | }, 387 | "babel-helpers": { 388 | "version": "6.24.1", 389 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 390 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 391 | "dev": true, 392 | "requires": { 393 | "babel-runtime": "6.26.0", 394 | "babel-template": "6.26.0" 395 | } 396 | }, 397 | "babel-jest": { 398 | "version": "19.0.0", 399 | "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-19.0.0.tgz", 400 | "integrity": "sha1-WTI87ZmjqE01naIZyogQdP/Gzj8=", 401 | "dev": true, 402 | "requires": { 403 | "babel-core": "6.26.0", 404 | "babel-plugin-istanbul": "4.1.4", 405 | "babel-preset-jest": "19.0.0" 406 | } 407 | }, 408 | "babel-messages": { 409 | "version": "6.23.0", 410 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 411 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 412 | "requires": { 413 | "babel-runtime": "6.26.0" 414 | } 415 | }, 416 | "babel-plugin-check-es2015-constants": { 417 | "version": "6.22.0", 418 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 419 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 420 | "requires": { 421 | "babel-runtime": "6.26.0" 422 | } 423 | }, 424 | "babel-plugin-istanbul": { 425 | "version": "4.1.4", 426 | "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz", 427 | "integrity": "sha1-GN3oS/POMp/d8/QQP66SFFbY5Yc=", 428 | "dev": true, 429 | "requires": { 430 | "find-up": "2.1.0", 431 | "istanbul-lib-instrument": "1.8.0", 432 | "test-exclude": "4.1.1" 433 | }, 434 | "dependencies": { 435 | "find-up": { 436 | "version": "2.1.0", 437 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 438 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 439 | "dev": true, 440 | "requires": { 441 | "locate-path": "2.0.0" 442 | } 443 | } 444 | } 445 | }, 446 | "babel-plugin-jest-hoist": { 447 | "version": "19.0.0", 448 | "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz", 449 | "integrity": "sha1-SuKgTqYSpuc2UfP95SwXiZEwS+o=", 450 | "dev": true 451 | }, 452 | "babel-plugin-transform-es2015-arrow-functions": { 453 | "version": "6.22.0", 454 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 455 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 456 | "requires": { 457 | "babel-runtime": "6.26.0" 458 | } 459 | }, 460 | "babel-plugin-transform-es2015-block-scoped-functions": { 461 | "version": "6.22.0", 462 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 463 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 464 | "requires": { 465 | "babel-runtime": "6.26.0" 466 | } 467 | }, 468 | "babel-plugin-transform-es2015-block-scoping": { 469 | "version": "6.26.0", 470 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 471 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 472 | "requires": { 473 | "babel-runtime": "6.26.0", 474 | "babel-template": "6.26.0", 475 | "babel-traverse": "6.26.0", 476 | "babel-types": "6.26.0", 477 | "lodash": "4.17.4" 478 | } 479 | }, 480 | "babel-plugin-transform-es2015-classes": { 481 | "version": "6.24.1", 482 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 483 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 484 | "requires": { 485 | "babel-helper-define-map": "6.26.0", 486 | "babel-helper-function-name": "6.24.1", 487 | "babel-helper-optimise-call-expression": "6.24.1", 488 | "babel-helper-replace-supers": "6.24.1", 489 | "babel-messages": "6.23.0", 490 | "babel-runtime": "6.26.0", 491 | "babel-template": "6.26.0", 492 | "babel-traverse": "6.26.0", 493 | "babel-types": "6.26.0" 494 | } 495 | }, 496 | "babel-plugin-transform-es2015-computed-properties": { 497 | "version": "6.24.1", 498 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 499 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 500 | "requires": { 501 | "babel-runtime": "6.26.0", 502 | "babel-template": "6.26.0" 503 | } 504 | }, 505 | "babel-plugin-transform-es2015-destructuring": { 506 | "version": "6.23.0", 507 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 508 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 509 | "requires": { 510 | "babel-runtime": "6.26.0" 511 | } 512 | }, 513 | "babel-plugin-transform-es2015-duplicate-keys": { 514 | "version": "6.24.1", 515 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 516 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 517 | "requires": { 518 | "babel-runtime": "6.26.0", 519 | "babel-types": "6.26.0" 520 | } 521 | }, 522 | "babel-plugin-transform-es2015-for-of": { 523 | "version": "6.23.0", 524 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 525 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 526 | "requires": { 527 | "babel-runtime": "6.26.0" 528 | } 529 | }, 530 | "babel-plugin-transform-es2015-function-name": { 531 | "version": "6.24.1", 532 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 533 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 534 | "requires": { 535 | "babel-helper-function-name": "6.24.1", 536 | "babel-runtime": "6.26.0", 537 | "babel-types": "6.26.0" 538 | } 539 | }, 540 | "babel-plugin-transform-es2015-literals": { 541 | "version": "6.22.0", 542 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 543 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 544 | "requires": { 545 | "babel-runtime": "6.26.0" 546 | } 547 | }, 548 | "babel-plugin-transform-es2015-modules-amd": { 549 | "version": "6.24.1", 550 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 551 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 552 | "requires": { 553 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 554 | "babel-runtime": "6.26.0", 555 | "babel-template": "6.26.0" 556 | } 557 | }, 558 | "babel-plugin-transform-es2015-modules-commonjs": { 559 | "version": "6.26.0", 560 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 561 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 562 | "requires": { 563 | "babel-plugin-transform-strict-mode": "6.24.1", 564 | "babel-runtime": "6.26.0", 565 | "babel-template": "6.26.0", 566 | "babel-types": "6.26.0" 567 | } 568 | }, 569 | "babel-plugin-transform-es2015-modules-systemjs": { 570 | "version": "6.24.1", 571 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 572 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 573 | "requires": { 574 | "babel-helper-hoist-variables": "6.24.1", 575 | "babel-runtime": "6.26.0", 576 | "babel-template": "6.26.0" 577 | } 578 | }, 579 | "babel-plugin-transform-es2015-modules-umd": { 580 | "version": "6.24.1", 581 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 582 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 583 | "requires": { 584 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 585 | "babel-runtime": "6.26.0", 586 | "babel-template": "6.26.0" 587 | } 588 | }, 589 | "babel-plugin-transform-es2015-object-super": { 590 | "version": "6.24.1", 591 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 592 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 593 | "requires": { 594 | "babel-helper-replace-supers": "6.24.1", 595 | "babel-runtime": "6.26.0" 596 | } 597 | }, 598 | "babel-plugin-transform-es2015-parameters": { 599 | "version": "6.24.1", 600 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 601 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 602 | "requires": { 603 | "babel-helper-call-delegate": "6.24.1", 604 | "babel-helper-get-function-arity": "6.24.1", 605 | "babel-runtime": "6.26.0", 606 | "babel-template": "6.26.0", 607 | "babel-traverse": "6.26.0", 608 | "babel-types": "6.26.0" 609 | } 610 | }, 611 | "babel-plugin-transform-es2015-shorthand-properties": { 612 | "version": "6.24.1", 613 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 614 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 615 | "requires": { 616 | "babel-runtime": "6.26.0", 617 | "babel-types": "6.26.0" 618 | } 619 | }, 620 | "babel-plugin-transform-es2015-spread": { 621 | "version": "6.22.0", 622 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 623 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 624 | "requires": { 625 | "babel-runtime": "6.26.0" 626 | } 627 | }, 628 | "babel-plugin-transform-es2015-sticky-regex": { 629 | "version": "6.24.1", 630 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 631 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 632 | "requires": { 633 | "babel-helper-regex": "6.26.0", 634 | "babel-runtime": "6.26.0", 635 | "babel-types": "6.26.0" 636 | } 637 | }, 638 | "babel-plugin-transform-es2015-template-literals": { 639 | "version": "6.22.0", 640 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 641 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 642 | "requires": { 643 | "babel-runtime": "6.26.0" 644 | } 645 | }, 646 | "babel-plugin-transform-es2015-typeof-symbol": { 647 | "version": "6.23.0", 648 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 649 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 650 | "requires": { 651 | "babel-runtime": "6.26.0" 652 | } 653 | }, 654 | "babel-plugin-transform-es2015-unicode-regex": { 655 | "version": "6.24.1", 656 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 657 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 658 | "requires": { 659 | "babel-helper-regex": "6.26.0", 660 | "babel-runtime": "6.26.0", 661 | "regexpu-core": "2.0.0" 662 | } 663 | }, 664 | "babel-plugin-transform-regenerator": { 665 | "version": "6.26.0", 666 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 667 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 668 | "requires": { 669 | "regenerator-transform": "0.10.1" 670 | } 671 | }, 672 | "babel-plugin-transform-strict-mode": { 673 | "version": "6.24.1", 674 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 675 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 676 | "requires": { 677 | "babel-runtime": "6.26.0", 678 | "babel-types": "6.26.0" 679 | } 680 | }, 681 | "babel-preset-es2015": { 682 | "version": "6.24.1", 683 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 684 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 685 | "requires": { 686 | "babel-plugin-check-es2015-constants": "6.22.0", 687 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 688 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 689 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 690 | "babel-plugin-transform-es2015-classes": "6.24.1", 691 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 692 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 693 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 694 | "babel-plugin-transform-es2015-for-of": "6.23.0", 695 | "babel-plugin-transform-es2015-function-name": "6.24.1", 696 | "babel-plugin-transform-es2015-literals": "6.22.0", 697 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 698 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 699 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 700 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 701 | "babel-plugin-transform-es2015-object-super": "6.24.1", 702 | "babel-plugin-transform-es2015-parameters": "6.24.1", 703 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 704 | "babel-plugin-transform-es2015-spread": "6.22.0", 705 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 706 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 707 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 708 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 709 | "babel-plugin-transform-regenerator": "6.26.0" 710 | } 711 | }, 712 | "babel-preset-jest": { 713 | "version": "19.0.0", 714 | "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz", 715 | "integrity": "sha1-ItZyAdAjJKGVgRKI6zgpS7PKw5Y=", 716 | "dev": true, 717 | "requires": { 718 | "babel-plugin-jest-hoist": "19.0.0" 719 | } 720 | }, 721 | "babel-register": { 722 | "version": "6.26.0", 723 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 724 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 725 | "dev": true, 726 | "requires": { 727 | "babel-core": "6.26.0", 728 | "babel-runtime": "6.26.0", 729 | "core-js": "2.5.1", 730 | "home-or-tmp": "2.0.0", 731 | "lodash": "4.17.4", 732 | "mkdirp": "0.5.1", 733 | "source-map-support": "0.4.18" 734 | } 735 | }, 736 | "babel-runtime": { 737 | "version": "6.26.0", 738 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 739 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 740 | "requires": { 741 | "core-js": "2.5.1", 742 | "regenerator-runtime": "0.11.0" 743 | }, 744 | "dependencies": { 745 | "regenerator-runtime": { 746 | "version": "0.11.0", 747 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 748 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" 749 | } 750 | } 751 | }, 752 | "babel-template": { 753 | "version": "6.26.0", 754 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 755 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 756 | "requires": { 757 | "babel-runtime": "6.26.0", 758 | "babel-traverse": "6.26.0", 759 | "babel-types": "6.26.0", 760 | "babylon": "6.18.0", 761 | "lodash": "4.17.4" 762 | } 763 | }, 764 | "babel-traverse": { 765 | "version": "6.26.0", 766 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 767 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 768 | "requires": { 769 | "babel-code-frame": "6.26.0", 770 | "babel-messages": "6.23.0", 771 | "babel-runtime": "6.26.0", 772 | "babel-types": "6.26.0", 773 | "babylon": "6.18.0", 774 | "debug": "2.6.8", 775 | "globals": "9.18.0", 776 | "invariant": "2.2.2", 777 | "lodash": "4.17.4" 778 | } 779 | }, 780 | "babel-types": { 781 | "version": "6.26.0", 782 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 783 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 784 | "requires": { 785 | "babel-runtime": "6.26.0", 786 | "esutils": "2.0.2", 787 | "lodash": "4.17.4", 788 | "to-fast-properties": "1.0.3" 789 | } 790 | }, 791 | "babylon": { 792 | "version": "6.18.0", 793 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 794 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" 795 | }, 796 | "balanced-match": { 797 | "version": "1.0.0", 798 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 799 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 800 | }, 801 | "bcrypt-pbkdf": { 802 | "version": "1.0.1", 803 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 804 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 805 | "dev": true, 806 | "optional": true, 807 | "requires": { 808 | "tweetnacl": "0.14.5" 809 | } 810 | }, 811 | "boom": { 812 | "version": "2.10.1", 813 | "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", 814 | "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", 815 | "dev": true, 816 | "requires": { 817 | "hoek": "2.16.3" 818 | } 819 | }, 820 | "brace-expansion": { 821 | "version": "1.1.8", 822 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 823 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 824 | "requires": { 825 | "balanced-match": "1.0.0", 826 | "concat-map": "0.0.1" 827 | } 828 | }, 829 | "braces": { 830 | "version": "1.8.5", 831 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 832 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 833 | "dev": true, 834 | "requires": { 835 | "expand-range": "1.8.2", 836 | "preserve": "0.2.0", 837 | "repeat-element": "1.1.2" 838 | } 839 | }, 840 | "browser-resolve": { 841 | "version": "1.11.2", 842 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", 843 | "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", 844 | "dev": true, 845 | "requires": { 846 | "resolve": "1.1.7" 847 | }, 848 | "dependencies": { 849 | "resolve": { 850 | "version": "1.1.7", 851 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 852 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 853 | "dev": true 854 | } 855 | } 856 | }, 857 | "bser": { 858 | "version": "2.0.0", 859 | "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", 860 | "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", 861 | "dev": true, 862 | "requires": { 863 | "node-int64": "0.4.0" 864 | } 865 | }, 866 | "builtin-modules": { 867 | "version": "1.1.1", 868 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 869 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" 870 | }, 871 | "caller-path": { 872 | "version": "0.1.0", 873 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 874 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 875 | "dev": true, 876 | "requires": { 877 | "callsites": "0.2.0" 878 | } 879 | }, 880 | "callsites": { 881 | "version": "0.2.0", 882 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 883 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 884 | "dev": true 885 | }, 886 | "camelcase": { 887 | "version": "1.2.1", 888 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 889 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 890 | "dev": true, 891 | "optional": true 892 | }, 893 | "caseless": { 894 | "version": "0.12.0", 895 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 896 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 897 | "dev": true 898 | }, 899 | "center-align": { 900 | "version": "0.1.3", 901 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 902 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 903 | "dev": true, 904 | "optional": true, 905 | "requires": { 906 | "align-text": "0.1.4", 907 | "lazy-cache": "1.0.4" 908 | } 909 | }, 910 | "chalk": { 911 | "version": "1.1.3", 912 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 913 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 914 | "requires": { 915 | "ansi-styles": "2.2.1", 916 | "escape-string-regexp": "1.0.5", 917 | "has-ansi": "2.0.0", 918 | "strip-ansi": "3.0.1", 919 | "supports-color": "2.0.0" 920 | } 921 | }, 922 | "ci-info": { 923 | "version": "1.1.1", 924 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", 925 | "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", 926 | "dev": true 927 | }, 928 | "circular-json": { 929 | "version": "0.3.3", 930 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 931 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 932 | "dev": true 933 | }, 934 | "cli-cursor": { 935 | "version": "1.0.2", 936 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 937 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 938 | "dev": true, 939 | "requires": { 940 | "restore-cursor": "1.0.1" 941 | } 942 | }, 943 | "cli-width": { 944 | "version": "2.2.0", 945 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 946 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 947 | "dev": true 948 | }, 949 | "cliui": { 950 | "version": "2.1.0", 951 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 952 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 953 | "dev": true, 954 | "optional": true, 955 | "requires": { 956 | "center-align": "0.1.3", 957 | "right-align": "0.1.3", 958 | "wordwrap": "0.0.2" 959 | }, 960 | "dependencies": { 961 | "wordwrap": { 962 | "version": "0.0.2", 963 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 964 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 965 | "dev": true, 966 | "optional": true 967 | } 968 | } 969 | }, 970 | "co": { 971 | "version": "4.6.0", 972 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 973 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 974 | "dev": true 975 | }, 976 | "code-point-at": { 977 | "version": "1.1.0", 978 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 979 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 980 | "dev": true 981 | }, 982 | "color-convert": { 983 | "version": "1.9.0", 984 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", 985 | "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", 986 | "dev": true, 987 | "requires": { 988 | "color-name": "1.1.3" 989 | } 990 | }, 991 | "color-name": { 992 | "version": "1.1.3", 993 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 994 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 995 | "dev": true 996 | }, 997 | "combined-stream": { 998 | "version": "1.0.5", 999 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 1000 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 1001 | "dev": true, 1002 | "requires": { 1003 | "delayed-stream": "1.0.0" 1004 | } 1005 | }, 1006 | "concat-map": { 1007 | "version": "0.0.1", 1008 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1009 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 1010 | }, 1011 | "concat-stream": { 1012 | "version": "1.6.0", 1013 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 1014 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 1015 | "dev": true, 1016 | "requires": { 1017 | "inherits": "2.0.3", 1018 | "readable-stream": "2.3.3", 1019 | "typedarray": "0.0.6" 1020 | } 1021 | }, 1022 | "contains-path": { 1023 | "version": "0.1.0", 1024 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 1025 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" 1026 | }, 1027 | "content-type-parser": { 1028 | "version": "1.0.1", 1029 | "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", 1030 | "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", 1031 | "dev": true 1032 | }, 1033 | "convert-source-map": { 1034 | "version": "1.5.0", 1035 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 1036 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 1037 | "dev": true 1038 | }, 1039 | "core-js": { 1040 | "version": "2.5.1", 1041 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 1042 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" 1043 | }, 1044 | "core-util-is": { 1045 | "version": "1.0.2", 1046 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1047 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1048 | "dev": true 1049 | }, 1050 | "cryptiles": { 1051 | "version": "2.0.5", 1052 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", 1053 | "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", 1054 | "dev": true, 1055 | "requires": { 1056 | "boom": "2.10.1" 1057 | } 1058 | }, 1059 | "cssom": { 1060 | "version": "0.3.2", 1061 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", 1062 | "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", 1063 | "dev": true 1064 | }, 1065 | "cssstyle": { 1066 | "version": "0.2.37", 1067 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", 1068 | "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", 1069 | "dev": true, 1070 | "requires": { 1071 | "cssom": "0.3.2" 1072 | } 1073 | }, 1074 | "d": { 1075 | "version": "1.0.0", 1076 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 1077 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 1078 | "dev": true, 1079 | "requires": { 1080 | "es5-ext": "0.10.30" 1081 | } 1082 | }, 1083 | "damerau-levenshtein": { 1084 | "version": "1.0.4", 1085 | "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", 1086 | "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", 1087 | "dev": true 1088 | }, 1089 | "dashdash": { 1090 | "version": "1.14.1", 1091 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1092 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1093 | "dev": true, 1094 | "requires": { 1095 | "assert-plus": "1.0.0" 1096 | }, 1097 | "dependencies": { 1098 | "assert-plus": { 1099 | "version": "1.0.0", 1100 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1101 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1102 | "dev": true 1103 | } 1104 | } 1105 | }, 1106 | "debug": { 1107 | "version": "2.6.8", 1108 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 1109 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 1110 | "requires": { 1111 | "ms": "2.0.0" 1112 | } 1113 | }, 1114 | "decamelize": { 1115 | "version": "1.2.0", 1116 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1117 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1118 | "dev": true 1119 | }, 1120 | "deep-is": { 1121 | "version": "0.1.3", 1122 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1123 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1124 | "dev": true 1125 | }, 1126 | "default-require-extensions": { 1127 | "version": "1.0.0", 1128 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", 1129 | "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", 1130 | "dev": true, 1131 | "requires": { 1132 | "strip-bom": "2.0.0" 1133 | }, 1134 | "dependencies": { 1135 | "strip-bom": { 1136 | "version": "2.0.0", 1137 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1138 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1139 | "dev": true, 1140 | "requires": { 1141 | "is-utf8": "0.2.1" 1142 | } 1143 | } 1144 | } 1145 | }, 1146 | "define-properties": { 1147 | "version": "1.1.2", 1148 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 1149 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 1150 | "dev": true, 1151 | "requires": { 1152 | "foreach": "2.0.5", 1153 | "object-keys": "1.0.11" 1154 | } 1155 | }, 1156 | "del": { 1157 | "version": "2.2.2", 1158 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 1159 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 1160 | "dev": true, 1161 | "requires": { 1162 | "globby": "5.0.0", 1163 | "is-path-cwd": "1.0.0", 1164 | "is-path-in-cwd": "1.0.0", 1165 | "object-assign": "4.1.1", 1166 | "pify": "2.3.0", 1167 | "pinkie-promise": "2.0.1", 1168 | "rimraf": "2.6.2" 1169 | } 1170 | }, 1171 | "delayed-stream": { 1172 | "version": "1.0.0", 1173 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1174 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1175 | "dev": true 1176 | }, 1177 | "detect-indent": { 1178 | "version": "4.0.0", 1179 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1180 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1181 | "dev": true, 1182 | "requires": { 1183 | "repeating": "2.0.1" 1184 | } 1185 | }, 1186 | "diff": { 1187 | "version": "3.3.1", 1188 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", 1189 | "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", 1190 | "dev": true 1191 | }, 1192 | "doctrine": { 1193 | "version": "1.5.0", 1194 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 1195 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 1196 | "requires": { 1197 | "esutils": "2.0.2", 1198 | "isarray": "1.0.0" 1199 | } 1200 | }, 1201 | "ecc-jsbn": { 1202 | "version": "0.1.1", 1203 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1204 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1205 | "dev": true, 1206 | "optional": true, 1207 | "requires": { 1208 | "jsbn": "0.1.1" 1209 | } 1210 | }, 1211 | "emoji-regex": { 1212 | "version": "6.5.1", 1213 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", 1214 | "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", 1215 | "dev": true 1216 | }, 1217 | "errno": { 1218 | "version": "0.1.4", 1219 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 1220 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 1221 | "dev": true, 1222 | "requires": { 1223 | "prr": "0.0.0" 1224 | } 1225 | }, 1226 | "error-ex": { 1227 | "version": "1.3.1", 1228 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1229 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1230 | "requires": { 1231 | "is-arrayish": "0.2.1" 1232 | } 1233 | }, 1234 | "es-abstract": { 1235 | "version": "1.8.2", 1236 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", 1237 | "integrity": "sha512-dvhwFL3yjQxNNsOWx6exMlaDrRHCRGMQlnx5lsXDCZ/J7G/frgIIl94zhZSp/galVAYp7VzPi1OrAHta89/yGQ==", 1238 | "dev": true, 1239 | "requires": { 1240 | "es-to-primitive": "1.1.1", 1241 | "function-bind": "1.1.1", 1242 | "has": "1.0.1", 1243 | "is-callable": "1.1.3", 1244 | "is-regex": "1.0.4" 1245 | } 1246 | }, 1247 | "es-to-primitive": { 1248 | "version": "1.1.1", 1249 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 1250 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 1251 | "dev": true, 1252 | "requires": { 1253 | "is-callable": "1.1.3", 1254 | "is-date-object": "1.0.1", 1255 | "is-symbol": "1.0.1" 1256 | } 1257 | }, 1258 | "es5-ext": { 1259 | "version": "0.10.30", 1260 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", 1261 | "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=", 1262 | "dev": true, 1263 | "requires": { 1264 | "es6-iterator": "2.0.1", 1265 | "es6-symbol": "3.1.1" 1266 | } 1267 | }, 1268 | "es6-iterator": { 1269 | "version": "2.0.1", 1270 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", 1271 | "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", 1272 | "dev": true, 1273 | "requires": { 1274 | "d": "1.0.0", 1275 | "es5-ext": "0.10.30", 1276 | "es6-symbol": "3.1.1" 1277 | } 1278 | }, 1279 | "es6-map": { 1280 | "version": "0.1.5", 1281 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 1282 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 1283 | "dev": true, 1284 | "requires": { 1285 | "d": "1.0.0", 1286 | "es5-ext": "0.10.30", 1287 | "es6-iterator": "2.0.1", 1288 | "es6-set": "0.1.5", 1289 | "es6-symbol": "3.1.1", 1290 | "event-emitter": "0.3.5" 1291 | } 1292 | }, 1293 | "es6-set": { 1294 | "version": "0.1.5", 1295 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 1296 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 1297 | "dev": true, 1298 | "requires": { 1299 | "d": "1.0.0", 1300 | "es5-ext": "0.10.30", 1301 | "es6-iterator": "2.0.1", 1302 | "es6-symbol": "3.1.1", 1303 | "event-emitter": "0.3.5" 1304 | } 1305 | }, 1306 | "es6-symbol": { 1307 | "version": "3.1.1", 1308 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 1309 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 1310 | "dev": true, 1311 | "requires": { 1312 | "d": "1.0.0", 1313 | "es5-ext": "0.10.30" 1314 | } 1315 | }, 1316 | "es6-weak-map": { 1317 | "version": "2.0.2", 1318 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 1319 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 1320 | "dev": true, 1321 | "requires": { 1322 | "d": "1.0.0", 1323 | "es5-ext": "0.10.30", 1324 | "es6-iterator": "2.0.1", 1325 | "es6-symbol": "3.1.1" 1326 | } 1327 | }, 1328 | "escape-string-regexp": { 1329 | "version": "1.0.5", 1330 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1331 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1332 | }, 1333 | "escodegen": { 1334 | "version": "1.9.0", 1335 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", 1336 | "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", 1337 | "dev": true, 1338 | "requires": { 1339 | "esprima": "3.1.3", 1340 | "estraverse": "4.2.0", 1341 | "esutils": "2.0.2", 1342 | "optionator": "0.8.2", 1343 | "source-map": "0.5.7" 1344 | }, 1345 | "dependencies": { 1346 | "esprima": { 1347 | "version": "3.1.3", 1348 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 1349 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", 1350 | "dev": true 1351 | } 1352 | } 1353 | }, 1354 | "escope": { 1355 | "version": "3.6.0", 1356 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 1357 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 1358 | "dev": true, 1359 | "requires": { 1360 | "es6-map": "0.1.5", 1361 | "es6-weak-map": "2.0.2", 1362 | "esrecurse": "4.2.0", 1363 | "estraverse": "4.2.0" 1364 | } 1365 | }, 1366 | "eslint": { 1367 | "version": "3.19.0", 1368 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", 1369 | "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", 1370 | "dev": true, 1371 | "requires": { 1372 | "babel-code-frame": "6.26.0", 1373 | "chalk": "1.1.3", 1374 | "concat-stream": "1.6.0", 1375 | "debug": "2.6.8", 1376 | "doctrine": "2.0.0", 1377 | "escope": "3.6.0", 1378 | "espree": "3.5.0", 1379 | "esquery": "1.0.0", 1380 | "estraverse": "4.2.0", 1381 | "esutils": "2.0.2", 1382 | "file-entry-cache": "2.0.0", 1383 | "glob": "7.1.2", 1384 | "globals": "9.18.0", 1385 | "ignore": "3.3.5", 1386 | "imurmurhash": "0.1.4", 1387 | "inquirer": "0.12.0", 1388 | "is-my-json-valid": "2.16.1", 1389 | "is-resolvable": "1.0.0", 1390 | "js-yaml": "3.10.0", 1391 | "json-stable-stringify": "1.0.1", 1392 | "levn": "0.3.0", 1393 | "lodash": "4.17.4", 1394 | "mkdirp": "0.5.1", 1395 | "natural-compare": "1.4.0", 1396 | "optionator": "0.8.2", 1397 | "path-is-inside": "1.0.2", 1398 | "pluralize": "1.2.1", 1399 | "progress": "1.1.8", 1400 | "require-uncached": "1.0.3", 1401 | "shelljs": "0.7.8", 1402 | "strip-bom": "3.0.0", 1403 | "strip-json-comments": "2.0.1", 1404 | "table": "3.8.3", 1405 | "text-table": "0.2.0", 1406 | "user-home": "2.0.0" 1407 | }, 1408 | "dependencies": { 1409 | "doctrine": { 1410 | "version": "2.0.0", 1411 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", 1412 | "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", 1413 | "dev": true, 1414 | "requires": { 1415 | "esutils": "2.0.2", 1416 | "isarray": "1.0.0" 1417 | } 1418 | } 1419 | } 1420 | }, 1421 | "eslint-config-airbnb": { 1422 | "version": "14.1.0", 1423 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz", 1424 | "integrity": "sha1-NV0pAEC7+OAL+LSxn0twy+fCMX8=", 1425 | "dev": true, 1426 | "requires": { 1427 | "eslint-config-airbnb-base": "11.3.2" 1428 | } 1429 | }, 1430 | "eslint-config-airbnb-base": { 1431 | "version": "11.3.2", 1432 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz", 1433 | "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==", 1434 | "requires": { 1435 | "eslint-restricted-globals": "0.1.1" 1436 | } 1437 | }, 1438 | "eslint-import-resolver-node": { 1439 | "version": "0.3.1", 1440 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", 1441 | "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", 1442 | "requires": { 1443 | "debug": "2.6.8", 1444 | "resolve": "1.4.0" 1445 | } 1446 | }, 1447 | "eslint-module-utils": { 1448 | "version": "2.1.1", 1449 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", 1450 | "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", 1451 | "requires": { 1452 | "debug": "2.6.8", 1453 | "pkg-dir": "1.0.0" 1454 | } 1455 | }, 1456 | "eslint-plugin-import": { 1457 | "version": "2.7.0", 1458 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz", 1459 | "integrity": "sha512-HGYmpU9f/zJaQiKNQOVfHUh2oLWW3STBrCgH0sHTX1xtsxYlH1zjLh8FlQGEIdZSdTbUMaV36WaZ6ImXkenGxQ==", 1460 | "requires": { 1461 | "builtin-modules": "1.1.1", 1462 | "contains-path": "0.1.0", 1463 | "debug": "2.6.8", 1464 | "doctrine": "1.5.0", 1465 | "eslint-import-resolver-node": "0.3.1", 1466 | "eslint-module-utils": "2.1.1", 1467 | "has": "1.0.1", 1468 | "lodash.cond": "4.5.2", 1469 | "minimatch": "3.0.4", 1470 | "read-pkg-up": "2.0.0" 1471 | } 1472 | }, 1473 | "eslint-plugin-jsx-a11y": { 1474 | "version": "4.0.0", 1475 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz", 1476 | "integrity": "sha1-d5uw/nsI2lZKQiYkkR3hAGHgSO4=", 1477 | "dev": true, 1478 | "requires": { 1479 | "aria-query": "0.3.0", 1480 | "ast-types-flow": "0.0.7", 1481 | "damerau-levenshtein": "1.0.4", 1482 | "emoji-regex": "6.5.1", 1483 | "jsx-ast-utils": "1.4.1", 1484 | "object-assign": "4.1.1" 1485 | } 1486 | }, 1487 | "eslint-plugin-react": { 1488 | "version": "6.10.3", 1489 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", 1490 | "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=", 1491 | "dev": true, 1492 | "requires": { 1493 | "array.prototype.find": "2.0.4", 1494 | "doctrine": "1.5.0", 1495 | "has": "1.0.1", 1496 | "jsx-ast-utils": "1.4.1", 1497 | "object.assign": "4.0.4" 1498 | } 1499 | }, 1500 | "eslint-restricted-globals": { 1501 | "version": "0.1.1", 1502 | "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", 1503 | "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=" 1504 | }, 1505 | "espree": { 1506 | "version": "3.5.0", 1507 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz", 1508 | "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=", 1509 | "dev": true, 1510 | "requires": { 1511 | "acorn": "5.1.2", 1512 | "acorn-jsx": "3.0.1" 1513 | } 1514 | }, 1515 | "esprima": { 1516 | "version": "4.0.0", 1517 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1518 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1519 | "dev": true 1520 | }, 1521 | "esquery": { 1522 | "version": "1.0.0", 1523 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 1524 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 1525 | "dev": true, 1526 | "requires": { 1527 | "estraverse": "4.2.0" 1528 | } 1529 | }, 1530 | "esrecurse": { 1531 | "version": "4.2.0", 1532 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1533 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1534 | "dev": true, 1535 | "requires": { 1536 | "estraverse": "4.2.0", 1537 | "object-assign": "4.1.1" 1538 | } 1539 | }, 1540 | "estraverse": { 1541 | "version": "4.2.0", 1542 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1543 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1544 | "dev": true 1545 | }, 1546 | "esutils": { 1547 | "version": "2.0.2", 1548 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1549 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 1550 | }, 1551 | "event-emitter": { 1552 | "version": "0.3.5", 1553 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 1554 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 1555 | "dev": true, 1556 | "requires": { 1557 | "d": "1.0.0", 1558 | "es5-ext": "0.10.30" 1559 | } 1560 | }, 1561 | "exec-sh": { 1562 | "version": "0.2.1", 1563 | "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", 1564 | "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", 1565 | "dev": true, 1566 | "requires": { 1567 | "merge": "1.2.0" 1568 | } 1569 | }, 1570 | "exit-hook": { 1571 | "version": "1.1.1", 1572 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 1573 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 1574 | "dev": true 1575 | }, 1576 | "expand-brackets": { 1577 | "version": "0.1.5", 1578 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1579 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1580 | "dev": true, 1581 | "requires": { 1582 | "is-posix-bracket": "0.1.1" 1583 | } 1584 | }, 1585 | "expand-range": { 1586 | "version": "1.8.2", 1587 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1588 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1589 | "dev": true, 1590 | "requires": { 1591 | "fill-range": "2.2.3" 1592 | } 1593 | }, 1594 | "extend": { 1595 | "version": "3.0.1", 1596 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1597 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 1598 | "dev": true 1599 | }, 1600 | "extglob": { 1601 | "version": "0.3.2", 1602 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1603 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1604 | "dev": true, 1605 | "requires": { 1606 | "is-extglob": "1.0.0" 1607 | } 1608 | }, 1609 | "extsprintf": { 1610 | "version": "1.3.0", 1611 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1612 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1613 | "dev": true 1614 | }, 1615 | "fast-levenshtein": { 1616 | "version": "2.0.6", 1617 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1618 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1619 | "dev": true 1620 | }, 1621 | "fb-watchman": { 1622 | "version": "2.0.0", 1623 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", 1624 | "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", 1625 | "dev": true, 1626 | "requires": { 1627 | "bser": "2.0.0" 1628 | } 1629 | }, 1630 | "figures": { 1631 | "version": "1.7.0", 1632 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1633 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1634 | "dev": true, 1635 | "requires": { 1636 | "escape-string-regexp": "1.0.5", 1637 | "object-assign": "4.1.1" 1638 | } 1639 | }, 1640 | "file-entry-cache": { 1641 | "version": "2.0.0", 1642 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1643 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1644 | "dev": true, 1645 | "requires": { 1646 | "flat-cache": "1.2.2", 1647 | "object-assign": "4.1.1" 1648 | } 1649 | }, 1650 | "filename-regex": { 1651 | "version": "2.0.1", 1652 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1653 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1654 | "dev": true 1655 | }, 1656 | "fileset": { 1657 | "version": "2.0.3", 1658 | "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", 1659 | "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", 1660 | "dev": true, 1661 | "requires": { 1662 | "glob": "7.1.2", 1663 | "minimatch": "3.0.4" 1664 | } 1665 | }, 1666 | "fill-range": { 1667 | "version": "2.2.3", 1668 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1669 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1670 | "dev": true, 1671 | "requires": { 1672 | "is-number": "2.1.0", 1673 | "isobject": "2.1.0", 1674 | "randomatic": "1.1.7", 1675 | "repeat-element": "1.1.2", 1676 | "repeat-string": "1.6.1" 1677 | } 1678 | }, 1679 | "find-up": { 1680 | "version": "1.1.2", 1681 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1682 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1683 | "requires": { 1684 | "path-exists": "2.1.0", 1685 | "pinkie-promise": "2.0.1" 1686 | } 1687 | }, 1688 | "flat-cache": { 1689 | "version": "1.2.2", 1690 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 1691 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 1692 | "dev": true, 1693 | "requires": { 1694 | "circular-json": "0.3.3", 1695 | "del": "2.2.2", 1696 | "graceful-fs": "4.1.11", 1697 | "write": "0.2.1" 1698 | } 1699 | }, 1700 | "for-in": { 1701 | "version": "1.0.2", 1702 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1703 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1704 | "dev": true 1705 | }, 1706 | "for-own": { 1707 | "version": "0.1.5", 1708 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1709 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1710 | "dev": true, 1711 | "requires": { 1712 | "for-in": "1.0.2" 1713 | } 1714 | }, 1715 | "foreach": { 1716 | "version": "2.0.5", 1717 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 1718 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 1719 | "dev": true 1720 | }, 1721 | "forever-agent": { 1722 | "version": "0.6.1", 1723 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1724 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1725 | "dev": true 1726 | }, 1727 | "form-data": { 1728 | "version": "2.1.4", 1729 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", 1730 | "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", 1731 | "dev": true, 1732 | "requires": { 1733 | "asynckit": "0.4.0", 1734 | "combined-stream": "1.0.5", 1735 | "mime-types": "2.1.17" 1736 | } 1737 | }, 1738 | "fs.realpath": { 1739 | "version": "1.0.0", 1740 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1741 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1742 | "dev": true 1743 | }, 1744 | "function-bind": { 1745 | "version": "1.1.1", 1746 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1747 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1748 | }, 1749 | "generate-function": { 1750 | "version": "2.0.0", 1751 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 1752 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", 1753 | "dev": true 1754 | }, 1755 | "generate-object-property": { 1756 | "version": "1.2.0", 1757 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 1758 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 1759 | "dev": true, 1760 | "requires": { 1761 | "is-property": "1.0.2" 1762 | } 1763 | }, 1764 | "get-caller-file": { 1765 | "version": "1.0.2", 1766 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 1767 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", 1768 | "dev": true 1769 | }, 1770 | "getpass": { 1771 | "version": "0.1.7", 1772 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1773 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1774 | "dev": true, 1775 | "requires": { 1776 | "assert-plus": "1.0.0" 1777 | }, 1778 | "dependencies": { 1779 | "assert-plus": { 1780 | "version": "1.0.0", 1781 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1782 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1783 | "dev": true 1784 | } 1785 | } 1786 | }, 1787 | "glob": { 1788 | "version": "7.1.2", 1789 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1790 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1791 | "dev": true, 1792 | "requires": { 1793 | "fs.realpath": "1.0.0", 1794 | "inflight": "1.0.6", 1795 | "inherits": "2.0.3", 1796 | "minimatch": "3.0.4", 1797 | "once": "1.4.0", 1798 | "path-is-absolute": "1.0.1" 1799 | } 1800 | }, 1801 | "glob-base": { 1802 | "version": "0.3.0", 1803 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1804 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1805 | "dev": true, 1806 | "requires": { 1807 | "glob-parent": "2.0.0", 1808 | "is-glob": "2.0.1" 1809 | } 1810 | }, 1811 | "glob-parent": { 1812 | "version": "2.0.0", 1813 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1814 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1815 | "dev": true, 1816 | "requires": { 1817 | "is-glob": "2.0.1" 1818 | } 1819 | }, 1820 | "globals": { 1821 | "version": "9.18.0", 1822 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1823 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" 1824 | }, 1825 | "globby": { 1826 | "version": "5.0.0", 1827 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 1828 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 1829 | "dev": true, 1830 | "requires": { 1831 | "array-union": "1.0.2", 1832 | "arrify": "1.0.1", 1833 | "glob": "7.1.2", 1834 | "object-assign": "4.1.1", 1835 | "pify": "2.3.0", 1836 | "pinkie-promise": "2.0.1" 1837 | } 1838 | }, 1839 | "graceful-fs": { 1840 | "version": "4.1.11", 1841 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1842 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 1843 | }, 1844 | "growly": { 1845 | "version": "1.3.0", 1846 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", 1847 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", 1848 | "dev": true 1849 | }, 1850 | "handlebars": { 1851 | "version": "4.0.10", 1852 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", 1853 | "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", 1854 | "dev": true, 1855 | "requires": { 1856 | "async": "1.5.2", 1857 | "optimist": "0.6.1", 1858 | "source-map": "0.4.4", 1859 | "uglify-js": "2.8.29" 1860 | }, 1861 | "dependencies": { 1862 | "async": { 1863 | "version": "1.5.2", 1864 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 1865 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 1866 | "dev": true 1867 | }, 1868 | "source-map": { 1869 | "version": "0.4.4", 1870 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1871 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1872 | "dev": true, 1873 | "requires": { 1874 | "amdefine": "1.0.1" 1875 | } 1876 | } 1877 | } 1878 | }, 1879 | "har-schema": { 1880 | "version": "1.0.5", 1881 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", 1882 | "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", 1883 | "dev": true 1884 | }, 1885 | "har-validator": { 1886 | "version": "4.2.1", 1887 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", 1888 | "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", 1889 | "dev": true, 1890 | "requires": { 1891 | "ajv": "4.11.8", 1892 | "har-schema": "1.0.5" 1893 | } 1894 | }, 1895 | "has": { 1896 | "version": "1.0.1", 1897 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 1898 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 1899 | "requires": { 1900 | "function-bind": "1.1.1" 1901 | } 1902 | }, 1903 | "has-ansi": { 1904 | "version": "2.0.0", 1905 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1906 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1907 | "requires": { 1908 | "ansi-regex": "2.1.1" 1909 | } 1910 | }, 1911 | "has-flag": { 1912 | "version": "1.0.0", 1913 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 1914 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 1915 | "dev": true 1916 | }, 1917 | "hawk": { 1918 | "version": "3.1.3", 1919 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", 1920 | "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", 1921 | "dev": true, 1922 | "requires": { 1923 | "boom": "2.10.1", 1924 | "cryptiles": "2.0.5", 1925 | "hoek": "2.16.3", 1926 | "sntp": "1.0.9" 1927 | } 1928 | }, 1929 | "hoek": { 1930 | "version": "2.16.3", 1931 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", 1932 | "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", 1933 | "dev": true 1934 | }, 1935 | "home-or-tmp": { 1936 | "version": "2.0.0", 1937 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1938 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1939 | "dev": true, 1940 | "requires": { 1941 | "os-homedir": "1.0.2", 1942 | "os-tmpdir": "1.0.2" 1943 | } 1944 | }, 1945 | "hosted-git-info": { 1946 | "version": "2.5.0", 1947 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 1948 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" 1949 | }, 1950 | "html-encoding-sniffer": { 1951 | "version": "1.0.1", 1952 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", 1953 | "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", 1954 | "dev": true, 1955 | "requires": { 1956 | "whatwg-encoding": "1.0.1" 1957 | } 1958 | }, 1959 | "http-signature": { 1960 | "version": "1.1.1", 1961 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 1962 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 1963 | "dev": true, 1964 | "requires": { 1965 | "assert-plus": "0.2.0", 1966 | "jsprim": "1.4.1", 1967 | "sshpk": "1.13.1" 1968 | } 1969 | }, 1970 | "iconv-lite": { 1971 | "version": "0.4.13", 1972 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", 1973 | "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", 1974 | "dev": true 1975 | }, 1976 | "ignore": { 1977 | "version": "3.3.5", 1978 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz", 1979 | "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==", 1980 | "dev": true 1981 | }, 1982 | "imurmurhash": { 1983 | "version": "0.1.4", 1984 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1985 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1986 | "dev": true 1987 | }, 1988 | "inflight": { 1989 | "version": "1.0.6", 1990 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1991 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1992 | "dev": true, 1993 | "requires": { 1994 | "once": "1.4.0", 1995 | "wrappy": "1.0.2" 1996 | } 1997 | }, 1998 | "inherits": { 1999 | "version": "2.0.3", 2000 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2001 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2002 | "dev": true 2003 | }, 2004 | "inquirer": { 2005 | "version": "0.12.0", 2006 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", 2007 | "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", 2008 | "dev": true, 2009 | "requires": { 2010 | "ansi-escapes": "1.4.0", 2011 | "ansi-regex": "2.1.1", 2012 | "chalk": "1.1.3", 2013 | "cli-cursor": "1.0.2", 2014 | "cli-width": "2.2.0", 2015 | "figures": "1.7.0", 2016 | "lodash": "4.17.4", 2017 | "readline2": "1.0.1", 2018 | "run-async": "0.1.0", 2019 | "rx-lite": "3.1.2", 2020 | "string-width": "1.0.2", 2021 | "strip-ansi": "3.0.1", 2022 | "through": "2.3.8" 2023 | } 2024 | }, 2025 | "interpret": { 2026 | "version": "1.0.4", 2027 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", 2028 | "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", 2029 | "dev": true 2030 | }, 2031 | "invariant": { 2032 | "version": "2.2.2", 2033 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 2034 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 2035 | "requires": { 2036 | "loose-envify": "1.3.1" 2037 | } 2038 | }, 2039 | "invert-kv": { 2040 | "version": "1.0.0", 2041 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 2042 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 2043 | "dev": true 2044 | }, 2045 | "is-arrayish": { 2046 | "version": "0.2.1", 2047 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2048 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 2049 | }, 2050 | "is-buffer": { 2051 | "version": "1.1.5", 2052 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 2053 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 2054 | "dev": true 2055 | }, 2056 | "is-builtin-module": { 2057 | "version": "1.0.0", 2058 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2059 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2060 | "requires": { 2061 | "builtin-modules": "1.1.1" 2062 | } 2063 | }, 2064 | "is-callable": { 2065 | "version": "1.1.3", 2066 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 2067 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", 2068 | "dev": true 2069 | }, 2070 | "is-ci": { 2071 | "version": "1.0.10", 2072 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", 2073 | "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", 2074 | "dev": true, 2075 | "requires": { 2076 | "ci-info": "1.1.1" 2077 | } 2078 | }, 2079 | "is-date-object": { 2080 | "version": "1.0.1", 2081 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 2082 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 2083 | "dev": true 2084 | }, 2085 | "is-dotfile": { 2086 | "version": "1.0.3", 2087 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2088 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2089 | "dev": true 2090 | }, 2091 | "is-equal-shallow": { 2092 | "version": "0.1.3", 2093 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2094 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2095 | "dev": true, 2096 | "requires": { 2097 | "is-primitive": "2.0.0" 2098 | } 2099 | }, 2100 | "is-extendable": { 2101 | "version": "0.1.1", 2102 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2103 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2104 | "dev": true 2105 | }, 2106 | "is-extglob": { 2107 | "version": "1.0.0", 2108 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2109 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2110 | "dev": true 2111 | }, 2112 | "is-finite": { 2113 | "version": "1.0.2", 2114 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2115 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2116 | "dev": true, 2117 | "requires": { 2118 | "number-is-nan": "1.0.1" 2119 | } 2120 | }, 2121 | "is-fullwidth-code-point": { 2122 | "version": "1.0.0", 2123 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2124 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2125 | "dev": true, 2126 | "requires": { 2127 | "number-is-nan": "1.0.1" 2128 | } 2129 | }, 2130 | "is-glob": { 2131 | "version": "2.0.1", 2132 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2133 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2134 | "dev": true, 2135 | "requires": { 2136 | "is-extglob": "1.0.0" 2137 | } 2138 | }, 2139 | "is-my-json-valid": { 2140 | "version": "2.16.1", 2141 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", 2142 | "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", 2143 | "dev": true, 2144 | "requires": { 2145 | "generate-function": "2.0.0", 2146 | "generate-object-property": "1.2.0", 2147 | "jsonpointer": "4.0.1", 2148 | "xtend": "4.0.1" 2149 | } 2150 | }, 2151 | "is-number": { 2152 | "version": "2.1.0", 2153 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2154 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2155 | "dev": true, 2156 | "requires": { 2157 | "kind-of": "3.2.2" 2158 | } 2159 | }, 2160 | "is-path-cwd": { 2161 | "version": "1.0.0", 2162 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2163 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2164 | "dev": true 2165 | }, 2166 | "is-path-in-cwd": { 2167 | "version": "1.0.0", 2168 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 2169 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 2170 | "dev": true, 2171 | "requires": { 2172 | "is-path-inside": "1.0.0" 2173 | } 2174 | }, 2175 | "is-path-inside": { 2176 | "version": "1.0.0", 2177 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 2178 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 2179 | "dev": true, 2180 | "requires": { 2181 | "path-is-inside": "1.0.2" 2182 | } 2183 | }, 2184 | "is-posix-bracket": { 2185 | "version": "0.1.1", 2186 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2187 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2188 | "dev": true 2189 | }, 2190 | "is-primitive": { 2191 | "version": "2.0.0", 2192 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2193 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2194 | "dev": true 2195 | }, 2196 | "is-property": { 2197 | "version": "1.0.2", 2198 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 2199 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", 2200 | "dev": true 2201 | }, 2202 | "is-regex": { 2203 | "version": "1.0.4", 2204 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 2205 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 2206 | "dev": true, 2207 | "requires": { 2208 | "has": "1.0.1" 2209 | } 2210 | }, 2211 | "is-resolvable": { 2212 | "version": "1.0.0", 2213 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 2214 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 2215 | "dev": true, 2216 | "requires": { 2217 | "tryit": "1.0.3" 2218 | } 2219 | }, 2220 | "is-symbol": { 2221 | "version": "1.0.1", 2222 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 2223 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", 2224 | "dev": true 2225 | }, 2226 | "is-typedarray": { 2227 | "version": "1.0.0", 2228 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2229 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2230 | "dev": true 2231 | }, 2232 | "is-utf8": { 2233 | "version": "0.2.1", 2234 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2235 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2236 | "dev": true 2237 | }, 2238 | "isarray": { 2239 | "version": "1.0.0", 2240 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2241 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2242 | }, 2243 | "isexe": { 2244 | "version": "2.0.0", 2245 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2246 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2247 | "dev": true 2248 | }, 2249 | "isobject": { 2250 | "version": "2.1.0", 2251 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2252 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2253 | "dev": true, 2254 | "requires": { 2255 | "isarray": "1.0.0" 2256 | } 2257 | }, 2258 | "isstream": { 2259 | "version": "0.1.2", 2260 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2261 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2262 | "dev": true 2263 | }, 2264 | "istanbul-api": { 2265 | "version": "1.1.14", 2266 | "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz", 2267 | "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=", 2268 | "dev": true, 2269 | "requires": { 2270 | "async": "2.5.0", 2271 | "fileset": "2.0.3", 2272 | "istanbul-lib-coverage": "1.1.1", 2273 | "istanbul-lib-hook": "1.0.7", 2274 | "istanbul-lib-instrument": "1.8.0", 2275 | "istanbul-lib-report": "1.1.1", 2276 | "istanbul-lib-source-maps": "1.2.1", 2277 | "istanbul-reports": "1.1.2", 2278 | "js-yaml": "3.10.0", 2279 | "mkdirp": "0.5.1", 2280 | "once": "1.4.0" 2281 | } 2282 | }, 2283 | "istanbul-lib-coverage": { 2284 | "version": "1.1.1", 2285 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", 2286 | "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", 2287 | "dev": true 2288 | }, 2289 | "istanbul-lib-hook": { 2290 | "version": "1.0.7", 2291 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", 2292 | "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", 2293 | "dev": true, 2294 | "requires": { 2295 | "append-transform": "0.4.0" 2296 | } 2297 | }, 2298 | "istanbul-lib-instrument": { 2299 | "version": "1.8.0", 2300 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz", 2301 | "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=", 2302 | "dev": true, 2303 | "requires": { 2304 | "babel-generator": "6.26.0", 2305 | "babel-template": "6.26.0", 2306 | "babel-traverse": "6.26.0", 2307 | "babel-types": "6.26.0", 2308 | "babylon": "6.18.0", 2309 | "istanbul-lib-coverage": "1.1.1", 2310 | "semver": "5.4.1" 2311 | } 2312 | }, 2313 | "istanbul-lib-report": { 2314 | "version": "1.1.1", 2315 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", 2316 | "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", 2317 | "dev": true, 2318 | "requires": { 2319 | "istanbul-lib-coverage": "1.1.1", 2320 | "mkdirp": "0.5.1", 2321 | "path-parse": "1.0.5", 2322 | "supports-color": "3.2.3" 2323 | }, 2324 | "dependencies": { 2325 | "supports-color": { 2326 | "version": "3.2.3", 2327 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 2328 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 2329 | "dev": true, 2330 | "requires": { 2331 | "has-flag": "1.0.0" 2332 | } 2333 | } 2334 | } 2335 | }, 2336 | "istanbul-lib-source-maps": { 2337 | "version": "1.2.1", 2338 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", 2339 | "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", 2340 | "dev": true, 2341 | "requires": { 2342 | "debug": "2.6.8", 2343 | "istanbul-lib-coverage": "1.1.1", 2344 | "mkdirp": "0.5.1", 2345 | "rimraf": "2.6.2", 2346 | "source-map": "0.5.7" 2347 | } 2348 | }, 2349 | "istanbul-reports": { 2350 | "version": "1.1.2", 2351 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz", 2352 | "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=", 2353 | "dev": true, 2354 | "requires": { 2355 | "handlebars": "4.0.10" 2356 | } 2357 | }, 2358 | "jest": { 2359 | "version": "19.0.2", 2360 | "resolved": "https://registry.npmjs.org/jest/-/jest-19.0.2.tgz", 2361 | "integrity": "sha1-t5T6r4/0Yec4jyi+71WaVPILLBA=", 2362 | "dev": true, 2363 | "requires": { 2364 | "jest-cli": "19.0.2" 2365 | }, 2366 | "dependencies": { 2367 | "callsites": { 2368 | "version": "2.0.0", 2369 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", 2370 | "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", 2371 | "dev": true 2372 | }, 2373 | "jest-cli": { 2374 | "version": "19.0.2", 2375 | "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-19.0.2.tgz", 2376 | "integrity": "sha1-zDYgtirKxfLZOlSMtu9pfU7IVEM=", 2377 | "dev": true, 2378 | "requires": { 2379 | "ansi-escapes": "1.4.0", 2380 | "callsites": "2.0.0", 2381 | "chalk": "1.1.3", 2382 | "graceful-fs": "4.1.11", 2383 | "is-ci": "1.0.10", 2384 | "istanbul-api": "1.1.14", 2385 | "istanbul-lib-coverage": "1.1.1", 2386 | "istanbul-lib-instrument": "1.8.0", 2387 | "jest-changed-files": "19.0.2", 2388 | "jest-config": "19.0.4", 2389 | "jest-environment-jsdom": "19.0.2", 2390 | "jest-haste-map": "19.0.2", 2391 | "jest-jasmine2": "19.0.2", 2392 | "jest-message-util": "19.0.0", 2393 | "jest-regex-util": "19.0.0", 2394 | "jest-resolve-dependencies": "19.0.0", 2395 | "jest-runtime": "19.0.4", 2396 | "jest-snapshot": "19.0.2", 2397 | "jest-util": "19.0.2", 2398 | "micromatch": "2.3.11", 2399 | "node-notifier": "5.1.2", 2400 | "slash": "1.0.0", 2401 | "string-length": "1.0.1", 2402 | "throat": "3.2.0", 2403 | "which": "1.3.0", 2404 | "worker-farm": "1.5.0", 2405 | "yargs": "6.6.0" 2406 | } 2407 | } 2408 | } 2409 | }, 2410 | "jest-changed-files": { 2411 | "version": "19.0.2", 2412 | "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-19.0.2.tgz", 2413 | "integrity": "sha1-FsVMhMMnC+QI4G0uivPz43qIWCQ=", 2414 | "dev": true 2415 | }, 2416 | "jest-config": { 2417 | "version": "19.0.4", 2418 | "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-19.0.4.tgz", 2419 | "integrity": "sha1-QpgCEdRkF+kcp6v/0IbCcCNPc/0=", 2420 | "dev": true, 2421 | "requires": { 2422 | "chalk": "1.1.3", 2423 | "jest-environment-jsdom": "19.0.2", 2424 | "jest-environment-node": "19.0.2", 2425 | "jest-jasmine2": "19.0.2", 2426 | "jest-regex-util": "19.0.0", 2427 | "jest-resolve": "19.0.2", 2428 | "jest-validate": "19.0.2", 2429 | "pretty-format": "19.0.0" 2430 | } 2431 | }, 2432 | "jest-diff": { 2433 | "version": "19.0.0", 2434 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-19.0.0.tgz", 2435 | "integrity": "sha1-0VY8/FbItgIymI+8BdTRbtkPBjw=", 2436 | "dev": true, 2437 | "requires": { 2438 | "chalk": "1.1.3", 2439 | "diff": "3.3.1", 2440 | "jest-matcher-utils": "19.0.0", 2441 | "pretty-format": "19.0.0" 2442 | } 2443 | }, 2444 | "jest-environment-jsdom": { 2445 | "version": "19.0.2", 2446 | "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-19.0.2.tgz", 2447 | "integrity": "sha1-ztqFnEpLlKs15N59q1S5JvKT5KM=", 2448 | "dev": true, 2449 | "requires": { 2450 | "jest-mock": "19.0.0", 2451 | "jest-util": "19.0.2", 2452 | "jsdom": "9.12.0" 2453 | } 2454 | }, 2455 | "jest-environment-node": { 2456 | "version": "19.0.2", 2457 | "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-19.0.2.tgz", 2458 | "integrity": "sha1-boQHnbh+0h0MBeH5Zp8gexFv6Zs=", 2459 | "dev": true, 2460 | "requires": { 2461 | "jest-mock": "19.0.0", 2462 | "jest-util": "19.0.2" 2463 | } 2464 | }, 2465 | "jest-file-exists": { 2466 | "version": "19.0.0", 2467 | "resolved": "https://registry.npmjs.org/jest-file-exists/-/jest-file-exists-19.0.0.tgz", 2468 | "integrity": "sha1-zKLlh6EeyS4kz+qz+KlNZX8/zrg=", 2469 | "dev": true 2470 | }, 2471 | "jest-haste-map": { 2472 | "version": "19.0.2", 2473 | "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-19.0.2.tgz", 2474 | "integrity": "sha1-KGSEw6Fuhtp4crCHfDXc4ww9bwc=", 2475 | "dev": true, 2476 | "requires": { 2477 | "fb-watchman": "2.0.0", 2478 | "graceful-fs": "4.1.11", 2479 | "micromatch": "2.3.11", 2480 | "sane": "1.5.0", 2481 | "worker-farm": "1.5.0" 2482 | } 2483 | }, 2484 | "jest-jasmine2": { 2485 | "version": "19.0.2", 2486 | "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-19.0.2.tgz", 2487 | "integrity": "sha1-FnmRrIJZgfsagArxJug6/MqDLHM=", 2488 | "dev": true, 2489 | "requires": { 2490 | "graceful-fs": "4.1.11", 2491 | "jest-matcher-utils": "19.0.0", 2492 | "jest-matchers": "19.0.0", 2493 | "jest-message-util": "19.0.0", 2494 | "jest-snapshot": "19.0.2" 2495 | } 2496 | }, 2497 | "jest-matcher-utils": { 2498 | "version": "19.0.0", 2499 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz", 2500 | "integrity": "sha1-Xs2bY1ZdKwAfYfv37Ex/U3lkVk0=", 2501 | "dev": true, 2502 | "requires": { 2503 | "chalk": "1.1.3", 2504 | "pretty-format": "19.0.0" 2505 | } 2506 | }, 2507 | "jest-matchers": { 2508 | "version": "19.0.0", 2509 | "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-19.0.0.tgz", 2510 | "integrity": "sha1-x07Mbr/sBvOEdnuk1vpKQtZ1V1Q=", 2511 | "dev": true, 2512 | "requires": { 2513 | "jest-diff": "19.0.0", 2514 | "jest-matcher-utils": "19.0.0", 2515 | "jest-message-util": "19.0.0", 2516 | "jest-regex-util": "19.0.0" 2517 | } 2518 | }, 2519 | "jest-message-util": { 2520 | "version": "19.0.0", 2521 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-19.0.0.tgz", 2522 | "integrity": "sha1-cheWuJwOTXYWBvm6jLgoo7YkZBY=", 2523 | "dev": true, 2524 | "requires": { 2525 | "chalk": "1.1.3", 2526 | "micromatch": "2.3.11" 2527 | } 2528 | }, 2529 | "jest-mock": { 2530 | "version": "19.0.0", 2531 | "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-19.0.0.tgz", 2532 | "integrity": "sha1-ZwOGQelgerLOCOxKjLg6q7yJnQE=", 2533 | "dev": true 2534 | }, 2535 | "jest-regex-util": { 2536 | "version": "19.0.0", 2537 | "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-19.0.0.tgz", 2538 | "integrity": "sha1-t3VFhxEq7eFFZRC7H2r+dO9ZhpE=", 2539 | "dev": true 2540 | }, 2541 | "jest-resolve": { 2542 | "version": "19.0.2", 2543 | "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-19.0.2.tgz", 2544 | "integrity": "sha1-V5NXXeTweuwy99f/DGwYGWPu+zw=", 2545 | "dev": true, 2546 | "requires": { 2547 | "browser-resolve": "1.11.2", 2548 | "jest-haste-map": "19.0.2", 2549 | "resolve": "1.4.0" 2550 | } 2551 | }, 2552 | "jest-resolve-dependencies": { 2553 | "version": "19.0.0", 2554 | "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-19.0.0.tgz", 2555 | "integrity": "sha1-p0GtH6CUFA5k7PJkKlBPg07OIu4=", 2556 | "dev": true, 2557 | "requires": { 2558 | "jest-file-exists": "19.0.0" 2559 | } 2560 | }, 2561 | "jest-runtime": { 2562 | "version": "19.0.4", 2563 | "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-19.0.4.tgz", 2564 | "integrity": "sha1-8WfZ8TR3UvICc2EGeSZIU0n8wkU=", 2565 | "dev": true, 2566 | "requires": { 2567 | "babel-core": "6.26.0", 2568 | "babel-jest": "19.0.0", 2569 | "babel-plugin-istanbul": "4.1.4", 2570 | "chalk": "1.1.3", 2571 | "graceful-fs": "4.1.11", 2572 | "jest-config": "19.0.4", 2573 | "jest-file-exists": "19.0.0", 2574 | "jest-haste-map": "19.0.2", 2575 | "jest-regex-util": "19.0.0", 2576 | "jest-resolve": "19.0.2", 2577 | "jest-util": "19.0.2", 2578 | "json-stable-stringify": "1.0.1", 2579 | "micromatch": "2.3.11", 2580 | "strip-bom": "3.0.0", 2581 | "yargs": "6.6.0" 2582 | } 2583 | }, 2584 | "jest-snapshot": { 2585 | "version": "19.0.2", 2586 | "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-19.0.2.tgz", 2587 | "integrity": "sha1-nBshYhT3GHw4v9XHCx76sWsP9Qs=", 2588 | "dev": true, 2589 | "requires": { 2590 | "chalk": "1.1.3", 2591 | "jest-diff": "19.0.0", 2592 | "jest-file-exists": "19.0.0", 2593 | "jest-matcher-utils": "19.0.0", 2594 | "jest-util": "19.0.2", 2595 | "natural-compare": "1.4.0", 2596 | "pretty-format": "19.0.0" 2597 | } 2598 | }, 2599 | "jest-util": { 2600 | "version": "19.0.2", 2601 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-19.0.2.tgz", 2602 | "integrity": "sha1-4KAjKiq55rK1Nmi9s1NMK1l37UE=", 2603 | "dev": true, 2604 | "requires": { 2605 | "chalk": "1.1.3", 2606 | "graceful-fs": "4.1.11", 2607 | "jest-file-exists": "19.0.0", 2608 | "jest-message-util": "19.0.0", 2609 | "jest-mock": "19.0.0", 2610 | "jest-validate": "19.0.2", 2611 | "leven": "2.1.0", 2612 | "mkdirp": "0.5.1" 2613 | } 2614 | }, 2615 | "jest-validate": { 2616 | "version": "19.0.2", 2617 | "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-19.0.2.tgz", 2618 | "integrity": "sha1-3FNN9fEnjVtj3zKxQkHU2/ckTAw=", 2619 | "dev": true, 2620 | "requires": { 2621 | "chalk": "1.1.3", 2622 | "jest-matcher-utils": "19.0.0", 2623 | "leven": "2.1.0", 2624 | "pretty-format": "19.0.0" 2625 | } 2626 | }, 2627 | "js-tokens": { 2628 | "version": "3.0.2", 2629 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2630 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" 2631 | }, 2632 | "js-yaml": { 2633 | "version": "3.10.0", 2634 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 2635 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 2636 | "dev": true, 2637 | "requires": { 2638 | "argparse": "1.0.9", 2639 | "esprima": "4.0.0" 2640 | } 2641 | }, 2642 | "jsbn": { 2643 | "version": "0.1.1", 2644 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2645 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 2646 | "dev": true, 2647 | "optional": true 2648 | }, 2649 | "jsdom": { 2650 | "version": "9.12.0", 2651 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", 2652 | "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", 2653 | "dev": true, 2654 | "requires": { 2655 | "abab": "1.0.3", 2656 | "acorn": "4.0.13", 2657 | "acorn-globals": "3.1.0", 2658 | "array-equal": "1.0.0", 2659 | "content-type-parser": "1.0.1", 2660 | "cssom": "0.3.2", 2661 | "cssstyle": "0.2.37", 2662 | "escodegen": "1.9.0", 2663 | "html-encoding-sniffer": "1.0.1", 2664 | "nwmatcher": "1.4.1", 2665 | "parse5": "1.5.1", 2666 | "request": "2.81.0", 2667 | "sax": "1.2.4", 2668 | "symbol-tree": "3.2.2", 2669 | "tough-cookie": "2.3.2", 2670 | "webidl-conversions": "4.0.2", 2671 | "whatwg-encoding": "1.0.1", 2672 | "whatwg-url": "4.8.0", 2673 | "xml-name-validator": "2.0.1" 2674 | }, 2675 | "dependencies": { 2676 | "acorn": { 2677 | "version": "4.0.13", 2678 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 2679 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", 2680 | "dev": true 2681 | } 2682 | } 2683 | }, 2684 | "jsesc": { 2685 | "version": "0.5.0", 2686 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2687 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" 2688 | }, 2689 | "json-schema": { 2690 | "version": "0.2.3", 2691 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2692 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 2693 | "dev": true 2694 | }, 2695 | "json-stable-stringify": { 2696 | "version": "1.0.1", 2697 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 2698 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 2699 | "dev": true, 2700 | "requires": { 2701 | "jsonify": "0.0.0" 2702 | } 2703 | }, 2704 | "json-stringify-safe": { 2705 | "version": "5.0.1", 2706 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2707 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 2708 | "dev": true 2709 | }, 2710 | "json5": { 2711 | "version": "0.5.1", 2712 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2713 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2714 | "dev": true 2715 | }, 2716 | "jsonify": { 2717 | "version": "0.0.0", 2718 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2719 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2720 | "dev": true 2721 | }, 2722 | "jsonpointer": { 2723 | "version": "4.0.1", 2724 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 2725 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 2726 | "dev": true 2727 | }, 2728 | "jsprim": { 2729 | "version": "1.4.1", 2730 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2731 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2732 | "dev": true, 2733 | "requires": { 2734 | "assert-plus": "1.0.0", 2735 | "extsprintf": "1.3.0", 2736 | "json-schema": "0.2.3", 2737 | "verror": "1.10.0" 2738 | }, 2739 | "dependencies": { 2740 | "assert-plus": { 2741 | "version": "1.0.0", 2742 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2743 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2744 | "dev": true 2745 | } 2746 | } 2747 | }, 2748 | "jsx-ast-utils": { 2749 | "version": "1.4.1", 2750 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", 2751 | "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", 2752 | "dev": true 2753 | }, 2754 | "kind-of": { 2755 | "version": "3.2.2", 2756 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2757 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2758 | "dev": true, 2759 | "requires": { 2760 | "is-buffer": "1.1.5" 2761 | } 2762 | }, 2763 | "lazy-cache": { 2764 | "version": "1.0.4", 2765 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 2766 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 2767 | "dev": true, 2768 | "optional": true 2769 | }, 2770 | "lcid": { 2771 | "version": "1.0.0", 2772 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 2773 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 2774 | "dev": true, 2775 | "requires": { 2776 | "invert-kv": "1.0.0" 2777 | } 2778 | }, 2779 | "leven": { 2780 | "version": "2.1.0", 2781 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", 2782 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", 2783 | "dev": true 2784 | }, 2785 | "levn": { 2786 | "version": "0.3.0", 2787 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2788 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2789 | "dev": true, 2790 | "requires": { 2791 | "prelude-ls": "1.1.2", 2792 | "type-check": "0.3.2" 2793 | } 2794 | }, 2795 | "load-json-file": { 2796 | "version": "2.0.0", 2797 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 2798 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 2799 | "requires": { 2800 | "graceful-fs": "4.1.11", 2801 | "parse-json": "2.2.0", 2802 | "pify": "2.3.0", 2803 | "strip-bom": "3.0.0" 2804 | } 2805 | }, 2806 | "locate-path": { 2807 | "version": "2.0.0", 2808 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2809 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2810 | "requires": { 2811 | "p-locate": "2.0.0", 2812 | "path-exists": "3.0.0" 2813 | }, 2814 | "dependencies": { 2815 | "path-exists": { 2816 | "version": "3.0.0", 2817 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2818 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 2819 | } 2820 | } 2821 | }, 2822 | "lodash": { 2823 | "version": "4.17.4", 2824 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2825 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" 2826 | }, 2827 | "lodash.cond": { 2828 | "version": "4.5.2", 2829 | "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", 2830 | "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" 2831 | }, 2832 | "longest": { 2833 | "version": "1.0.1", 2834 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2835 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2836 | "dev": true 2837 | }, 2838 | "loose-envify": { 2839 | "version": "1.3.1", 2840 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 2841 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 2842 | "requires": { 2843 | "js-tokens": "3.0.2" 2844 | } 2845 | }, 2846 | "makeerror": { 2847 | "version": "1.0.11", 2848 | "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", 2849 | "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", 2850 | "dev": true, 2851 | "requires": { 2852 | "tmpl": "1.0.4" 2853 | } 2854 | }, 2855 | "merge": { 2856 | "version": "1.2.0", 2857 | "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", 2858 | "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", 2859 | "dev": true 2860 | }, 2861 | "micromatch": { 2862 | "version": "2.3.11", 2863 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2864 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2865 | "dev": true, 2866 | "requires": { 2867 | "arr-diff": "2.0.0", 2868 | "array-unique": "0.2.1", 2869 | "braces": "1.8.5", 2870 | "expand-brackets": "0.1.5", 2871 | "extglob": "0.3.2", 2872 | "filename-regex": "2.0.1", 2873 | "is-extglob": "1.0.0", 2874 | "is-glob": "2.0.1", 2875 | "kind-of": "3.2.2", 2876 | "normalize-path": "2.1.1", 2877 | "object.omit": "2.0.1", 2878 | "parse-glob": "3.0.4", 2879 | "regex-cache": "0.4.4" 2880 | } 2881 | }, 2882 | "mime-db": { 2883 | "version": "1.30.0", 2884 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 2885 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", 2886 | "dev": true 2887 | }, 2888 | "mime-types": { 2889 | "version": "2.1.17", 2890 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 2891 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 2892 | "dev": true, 2893 | "requires": { 2894 | "mime-db": "1.30.0" 2895 | } 2896 | }, 2897 | "minimatch": { 2898 | "version": "3.0.4", 2899 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2900 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2901 | "requires": { 2902 | "brace-expansion": "1.1.8" 2903 | } 2904 | }, 2905 | "minimist": { 2906 | "version": "0.0.8", 2907 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2908 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2909 | "dev": true 2910 | }, 2911 | "mkdirp": { 2912 | "version": "0.5.1", 2913 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2914 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2915 | "dev": true, 2916 | "requires": { 2917 | "minimist": "0.0.8" 2918 | } 2919 | }, 2920 | "ms": { 2921 | "version": "2.0.0", 2922 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2923 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2924 | }, 2925 | "mute-stream": { 2926 | "version": "0.0.5", 2927 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", 2928 | "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", 2929 | "dev": true 2930 | }, 2931 | "natural-compare": { 2932 | "version": "1.4.0", 2933 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2934 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2935 | "dev": true 2936 | }, 2937 | "node-int64": { 2938 | "version": "0.4.0", 2939 | "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", 2940 | "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", 2941 | "dev": true 2942 | }, 2943 | "node-notifier": { 2944 | "version": "5.1.2", 2945 | "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", 2946 | "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", 2947 | "dev": true, 2948 | "requires": { 2949 | "growly": "1.3.0", 2950 | "semver": "5.4.1", 2951 | "shellwords": "0.1.1", 2952 | "which": "1.3.0" 2953 | } 2954 | }, 2955 | "normalize-package-data": { 2956 | "version": "2.4.0", 2957 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2958 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2959 | "requires": { 2960 | "hosted-git-info": "2.5.0", 2961 | "is-builtin-module": "1.0.0", 2962 | "semver": "5.4.1", 2963 | "validate-npm-package-license": "3.0.1" 2964 | } 2965 | }, 2966 | "normalize-path": { 2967 | "version": "2.1.1", 2968 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2969 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2970 | "dev": true, 2971 | "requires": { 2972 | "remove-trailing-separator": "1.1.0" 2973 | } 2974 | }, 2975 | "number-is-nan": { 2976 | "version": "1.0.1", 2977 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2978 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2979 | "dev": true 2980 | }, 2981 | "nwmatcher": { 2982 | "version": "1.4.1", 2983 | "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz", 2984 | "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=", 2985 | "dev": true 2986 | }, 2987 | "oauth-sign": { 2988 | "version": "0.8.2", 2989 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 2990 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 2991 | "dev": true 2992 | }, 2993 | "object-assign": { 2994 | "version": "4.1.1", 2995 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2996 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2997 | "dev": true 2998 | }, 2999 | "object-keys": { 3000 | "version": "1.0.11", 3001 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 3002 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 3003 | "dev": true 3004 | }, 3005 | "object.assign": { 3006 | "version": "4.0.4", 3007 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", 3008 | "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", 3009 | "dev": true, 3010 | "requires": { 3011 | "define-properties": "1.1.2", 3012 | "function-bind": "1.1.1", 3013 | "object-keys": "1.0.11" 3014 | } 3015 | }, 3016 | "object.omit": { 3017 | "version": "2.0.1", 3018 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 3019 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 3020 | "dev": true, 3021 | "requires": { 3022 | "for-own": "0.1.5", 3023 | "is-extendable": "0.1.1" 3024 | } 3025 | }, 3026 | "once": { 3027 | "version": "1.4.0", 3028 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3029 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3030 | "dev": true, 3031 | "requires": { 3032 | "wrappy": "1.0.2" 3033 | } 3034 | }, 3035 | "onetime": { 3036 | "version": "1.1.0", 3037 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 3038 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 3039 | "dev": true 3040 | }, 3041 | "optimist": { 3042 | "version": "0.6.1", 3043 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 3044 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 3045 | "dev": true, 3046 | "requires": { 3047 | "minimist": "0.0.8", 3048 | "wordwrap": "0.0.3" 3049 | }, 3050 | "dependencies": { 3051 | "wordwrap": { 3052 | "version": "0.0.3", 3053 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 3054 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 3055 | "dev": true 3056 | } 3057 | } 3058 | }, 3059 | "optionator": { 3060 | "version": "0.8.2", 3061 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 3062 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 3063 | "dev": true, 3064 | "requires": { 3065 | "deep-is": "0.1.3", 3066 | "fast-levenshtein": "2.0.6", 3067 | "levn": "0.3.0", 3068 | "prelude-ls": "1.1.2", 3069 | "type-check": "0.3.2", 3070 | "wordwrap": "1.0.0" 3071 | } 3072 | }, 3073 | "os-homedir": { 3074 | "version": "1.0.2", 3075 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3076 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 3077 | "dev": true 3078 | }, 3079 | "os-locale": { 3080 | "version": "1.4.0", 3081 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 3082 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 3083 | "dev": true, 3084 | "requires": { 3085 | "lcid": "1.0.0" 3086 | } 3087 | }, 3088 | "os-tmpdir": { 3089 | "version": "1.0.2", 3090 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3091 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3092 | "dev": true 3093 | }, 3094 | "p-limit": { 3095 | "version": "1.1.0", 3096 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 3097 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" 3098 | }, 3099 | "p-locate": { 3100 | "version": "2.0.0", 3101 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3102 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3103 | "requires": { 3104 | "p-limit": "1.1.0" 3105 | } 3106 | }, 3107 | "parse-glob": { 3108 | "version": "3.0.4", 3109 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 3110 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 3111 | "dev": true, 3112 | "requires": { 3113 | "glob-base": "0.3.0", 3114 | "is-dotfile": "1.0.3", 3115 | "is-extglob": "1.0.0", 3116 | "is-glob": "2.0.1" 3117 | } 3118 | }, 3119 | "parse-json": { 3120 | "version": "2.2.0", 3121 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3122 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3123 | "requires": { 3124 | "error-ex": "1.3.1" 3125 | } 3126 | }, 3127 | "parse5": { 3128 | "version": "1.5.1", 3129 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", 3130 | "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", 3131 | "dev": true 3132 | }, 3133 | "path-exists": { 3134 | "version": "2.1.0", 3135 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3136 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3137 | "requires": { 3138 | "pinkie-promise": "2.0.1" 3139 | } 3140 | }, 3141 | "path-is-absolute": { 3142 | "version": "1.0.1", 3143 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3144 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3145 | "dev": true 3146 | }, 3147 | "path-is-inside": { 3148 | "version": "1.0.2", 3149 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3150 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 3151 | "dev": true 3152 | }, 3153 | "path-parse": { 3154 | "version": "1.0.5", 3155 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 3156 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" 3157 | }, 3158 | "path-type": { 3159 | "version": "2.0.0", 3160 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 3161 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 3162 | "requires": { 3163 | "pify": "2.3.0" 3164 | } 3165 | }, 3166 | "performance-now": { 3167 | "version": "0.2.0", 3168 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", 3169 | "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", 3170 | "dev": true 3171 | }, 3172 | "pify": { 3173 | "version": "2.3.0", 3174 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3175 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 3176 | }, 3177 | "pinkie": { 3178 | "version": "2.0.4", 3179 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3180 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 3181 | }, 3182 | "pinkie-promise": { 3183 | "version": "2.0.1", 3184 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3185 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3186 | "requires": { 3187 | "pinkie": "2.0.4" 3188 | } 3189 | }, 3190 | "pkg-dir": { 3191 | "version": "1.0.0", 3192 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 3193 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 3194 | "requires": { 3195 | "find-up": "1.1.2" 3196 | } 3197 | }, 3198 | "pluralize": { 3199 | "version": "1.2.1", 3200 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", 3201 | "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", 3202 | "dev": true 3203 | }, 3204 | "prelude-ls": { 3205 | "version": "1.1.2", 3206 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3207 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3208 | "dev": true 3209 | }, 3210 | "preserve": { 3211 | "version": "0.2.0", 3212 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3213 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3214 | "dev": true 3215 | }, 3216 | "pretty-format": { 3217 | "version": "19.0.0", 3218 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-19.0.0.tgz", 3219 | "integrity": "sha1-VlMNMqy5ij+khRxOK503tCBoTIQ=", 3220 | "dev": true, 3221 | "requires": { 3222 | "ansi-styles": "3.2.0" 3223 | }, 3224 | "dependencies": { 3225 | "ansi-styles": { 3226 | "version": "3.2.0", 3227 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 3228 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 3229 | "dev": true, 3230 | "requires": { 3231 | "color-convert": "1.9.0" 3232 | } 3233 | } 3234 | } 3235 | }, 3236 | "private": { 3237 | "version": "0.1.7", 3238 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", 3239 | "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" 3240 | }, 3241 | "process-nextick-args": { 3242 | "version": "1.0.7", 3243 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 3244 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 3245 | "dev": true 3246 | }, 3247 | "progress": { 3248 | "version": "1.1.8", 3249 | "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", 3250 | "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", 3251 | "dev": true 3252 | }, 3253 | "prr": { 3254 | "version": "0.0.0", 3255 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 3256 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", 3257 | "dev": true 3258 | }, 3259 | "punycode": { 3260 | "version": "1.4.1", 3261 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3262 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3263 | "dev": true 3264 | }, 3265 | "qs": { 3266 | "version": "6.4.0", 3267 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 3268 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", 3269 | "dev": true 3270 | }, 3271 | "randomatic": { 3272 | "version": "1.1.7", 3273 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3274 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3275 | "dev": true, 3276 | "requires": { 3277 | "is-number": "3.0.0", 3278 | "kind-of": "4.0.0" 3279 | }, 3280 | "dependencies": { 3281 | "is-number": { 3282 | "version": "3.0.0", 3283 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3284 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3285 | "dev": true, 3286 | "requires": { 3287 | "kind-of": "3.2.2" 3288 | }, 3289 | "dependencies": { 3290 | "kind-of": { 3291 | "version": "3.2.2", 3292 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3293 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3294 | "dev": true, 3295 | "requires": { 3296 | "is-buffer": "1.1.5" 3297 | } 3298 | } 3299 | } 3300 | }, 3301 | "kind-of": { 3302 | "version": "4.0.0", 3303 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3304 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3305 | "dev": true, 3306 | "requires": { 3307 | "is-buffer": "1.1.5" 3308 | } 3309 | } 3310 | } 3311 | }, 3312 | "read-pkg": { 3313 | "version": "2.0.0", 3314 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 3315 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 3316 | "requires": { 3317 | "load-json-file": "2.0.0", 3318 | "normalize-package-data": "2.4.0", 3319 | "path-type": "2.0.0" 3320 | } 3321 | }, 3322 | "read-pkg-up": { 3323 | "version": "2.0.0", 3324 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 3325 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 3326 | "requires": { 3327 | "find-up": "2.1.0", 3328 | "read-pkg": "2.0.0" 3329 | }, 3330 | "dependencies": { 3331 | "find-up": { 3332 | "version": "2.1.0", 3333 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 3334 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 3335 | "requires": { 3336 | "locate-path": "2.0.0" 3337 | } 3338 | } 3339 | } 3340 | }, 3341 | "readable-stream": { 3342 | "version": "2.3.3", 3343 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 3344 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 3345 | "dev": true, 3346 | "requires": { 3347 | "core-util-is": "1.0.2", 3348 | "inherits": "2.0.3", 3349 | "isarray": "1.0.0", 3350 | "process-nextick-args": "1.0.7", 3351 | "safe-buffer": "5.1.1", 3352 | "string_decoder": "1.0.3", 3353 | "util-deprecate": "1.0.2" 3354 | } 3355 | }, 3356 | "readline2": { 3357 | "version": "1.0.1", 3358 | "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", 3359 | "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", 3360 | "dev": true, 3361 | "requires": { 3362 | "code-point-at": "1.1.0", 3363 | "is-fullwidth-code-point": "1.0.0", 3364 | "mute-stream": "0.0.5" 3365 | } 3366 | }, 3367 | "rechoir": { 3368 | "version": "0.6.2", 3369 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 3370 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 3371 | "dev": true, 3372 | "requires": { 3373 | "resolve": "1.4.0" 3374 | } 3375 | }, 3376 | "regenerate": { 3377 | "version": "1.3.2", 3378 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", 3379 | "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=" 3380 | }, 3381 | "regenerator-runtime": { 3382 | "version": "0.10.5", 3383 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 3384 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 3385 | "dev": true 3386 | }, 3387 | "regenerator-transform": { 3388 | "version": "0.10.1", 3389 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 3390 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 3391 | "requires": { 3392 | "babel-runtime": "6.26.0", 3393 | "babel-types": "6.26.0", 3394 | "private": "0.1.7" 3395 | } 3396 | }, 3397 | "regex-cache": { 3398 | "version": "0.4.4", 3399 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3400 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3401 | "dev": true, 3402 | "requires": { 3403 | "is-equal-shallow": "0.1.3" 3404 | } 3405 | }, 3406 | "regexpu-core": { 3407 | "version": "2.0.0", 3408 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 3409 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 3410 | "requires": { 3411 | "regenerate": "1.3.2", 3412 | "regjsgen": "0.2.0", 3413 | "regjsparser": "0.1.5" 3414 | } 3415 | }, 3416 | "regjsgen": { 3417 | "version": "0.2.0", 3418 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 3419 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" 3420 | }, 3421 | "regjsparser": { 3422 | "version": "0.1.5", 3423 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 3424 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 3425 | "requires": { 3426 | "jsesc": "0.5.0" 3427 | } 3428 | }, 3429 | "remove-trailing-separator": { 3430 | "version": "1.1.0", 3431 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3432 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3433 | "dev": true 3434 | }, 3435 | "repeat-element": { 3436 | "version": "1.1.2", 3437 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3438 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3439 | "dev": true 3440 | }, 3441 | "repeat-string": { 3442 | "version": "1.6.1", 3443 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3444 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3445 | "dev": true 3446 | }, 3447 | "repeating": { 3448 | "version": "2.0.1", 3449 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3450 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3451 | "dev": true, 3452 | "requires": { 3453 | "is-finite": "1.0.2" 3454 | } 3455 | }, 3456 | "request": { 3457 | "version": "2.81.0", 3458 | "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", 3459 | "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", 3460 | "dev": true, 3461 | "requires": { 3462 | "aws-sign2": "0.6.0", 3463 | "aws4": "1.6.0", 3464 | "caseless": "0.12.0", 3465 | "combined-stream": "1.0.5", 3466 | "extend": "3.0.1", 3467 | "forever-agent": "0.6.1", 3468 | "form-data": "2.1.4", 3469 | "har-validator": "4.2.1", 3470 | "hawk": "3.1.3", 3471 | "http-signature": "1.1.1", 3472 | "is-typedarray": "1.0.0", 3473 | "isstream": "0.1.2", 3474 | "json-stringify-safe": "5.0.1", 3475 | "mime-types": "2.1.17", 3476 | "oauth-sign": "0.8.2", 3477 | "performance-now": "0.2.0", 3478 | "qs": "6.4.0", 3479 | "safe-buffer": "5.1.1", 3480 | "stringstream": "0.0.5", 3481 | "tough-cookie": "2.3.2", 3482 | "tunnel-agent": "0.6.0", 3483 | "uuid": "3.1.0" 3484 | } 3485 | }, 3486 | "require-directory": { 3487 | "version": "2.1.1", 3488 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3489 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3490 | "dev": true 3491 | }, 3492 | "require-main-filename": { 3493 | "version": "1.0.1", 3494 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 3495 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 3496 | "dev": true 3497 | }, 3498 | "require-uncached": { 3499 | "version": "1.0.3", 3500 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 3501 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 3502 | "dev": true, 3503 | "requires": { 3504 | "caller-path": "0.1.0", 3505 | "resolve-from": "1.0.1" 3506 | } 3507 | }, 3508 | "resolve": { 3509 | "version": "1.4.0", 3510 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", 3511 | "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", 3512 | "requires": { 3513 | "path-parse": "1.0.5" 3514 | } 3515 | }, 3516 | "resolve-from": { 3517 | "version": "1.0.1", 3518 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 3519 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 3520 | "dev": true 3521 | }, 3522 | "restore-cursor": { 3523 | "version": "1.0.1", 3524 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 3525 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 3526 | "dev": true, 3527 | "requires": { 3528 | "exit-hook": "1.1.1", 3529 | "onetime": "1.1.0" 3530 | } 3531 | }, 3532 | "right-align": { 3533 | "version": "0.1.3", 3534 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 3535 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 3536 | "dev": true, 3537 | "optional": true, 3538 | "requires": { 3539 | "align-text": "0.1.4" 3540 | } 3541 | }, 3542 | "rimraf": { 3543 | "version": "2.6.2", 3544 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 3545 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 3546 | "dev": true, 3547 | "requires": { 3548 | "glob": "7.1.2" 3549 | } 3550 | }, 3551 | "run-async": { 3552 | "version": "0.1.0", 3553 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", 3554 | "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", 3555 | "dev": true, 3556 | "requires": { 3557 | "once": "1.4.0" 3558 | } 3559 | }, 3560 | "rx-lite": { 3561 | "version": "3.1.2", 3562 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", 3563 | "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", 3564 | "dev": true 3565 | }, 3566 | "safe-buffer": { 3567 | "version": "5.1.1", 3568 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3569 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 3570 | "dev": true 3571 | }, 3572 | "sane": { 3573 | "version": "1.5.0", 3574 | "resolved": "https://registry.npmjs.org/sane/-/sane-1.5.0.tgz", 3575 | "integrity": "sha1-pK3q52TQSGIeyyfV+ez1ExAZOfM=", 3576 | "dev": true, 3577 | "requires": { 3578 | "anymatch": "1.3.2", 3579 | "exec-sh": "0.2.1", 3580 | "fb-watchman": "1.9.2", 3581 | "minimatch": "3.0.4", 3582 | "minimist": "1.2.0", 3583 | "walker": "1.0.7", 3584 | "watch": "0.10.0" 3585 | }, 3586 | "dependencies": { 3587 | "bser": { 3588 | "version": "1.0.2", 3589 | "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", 3590 | "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", 3591 | "dev": true, 3592 | "requires": { 3593 | "node-int64": "0.4.0" 3594 | } 3595 | }, 3596 | "fb-watchman": { 3597 | "version": "1.9.2", 3598 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", 3599 | "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", 3600 | "dev": true, 3601 | "requires": { 3602 | "bser": "1.0.2" 3603 | } 3604 | }, 3605 | "minimist": { 3606 | "version": "1.2.0", 3607 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3608 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3609 | "dev": true 3610 | } 3611 | } 3612 | }, 3613 | "sax": { 3614 | "version": "1.2.4", 3615 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 3616 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 3617 | "dev": true 3618 | }, 3619 | "semver": { 3620 | "version": "5.4.1", 3621 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 3622 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" 3623 | }, 3624 | "set-blocking": { 3625 | "version": "2.0.0", 3626 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3627 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3628 | "dev": true 3629 | }, 3630 | "shelljs": { 3631 | "version": "0.7.8", 3632 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", 3633 | "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", 3634 | "dev": true, 3635 | "requires": { 3636 | "glob": "7.1.2", 3637 | "interpret": "1.0.4", 3638 | "rechoir": "0.6.2" 3639 | } 3640 | }, 3641 | "shellwords": { 3642 | "version": "0.1.1", 3643 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", 3644 | "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", 3645 | "dev": true 3646 | }, 3647 | "slash": { 3648 | "version": "1.0.0", 3649 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 3650 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 3651 | "dev": true 3652 | }, 3653 | "slice-ansi": { 3654 | "version": "0.0.4", 3655 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 3656 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 3657 | "dev": true 3658 | }, 3659 | "sntp": { 3660 | "version": "1.0.9", 3661 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", 3662 | "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", 3663 | "dev": true, 3664 | "requires": { 3665 | "hoek": "2.16.3" 3666 | } 3667 | }, 3668 | "source-map": { 3669 | "version": "0.5.7", 3670 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3671 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3672 | "dev": true 3673 | }, 3674 | "source-map-support": { 3675 | "version": "0.4.18", 3676 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 3677 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 3678 | "dev": true, 3679 | "requires": { 3680 | "source-map": "0.5.7" 3681 | } 3682 | }, 3683 | "spdx-correct": { 3684 | "version": "1.0.2", 3685 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 3686 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 3687 | "requires": { 3688 | "spdx-license-ids": "1.2.2" 3689 | } 3690 | }, 3691 | "spdx-expression-parse": { 3692 | "version": "1.0.4", 3693 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 3694 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" 3695 | }, 3696 | "spdx-license-ids": { 3697 | "version": "1.2.2", 3698 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 3699 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" 3700 | }, 3701 | "sprintf-js": { 3702 | "version": "1.0.3", 3703 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3704 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3705 | "dev": true 3706 | }, 3707 | "sshpk": { 3708 | "version": "1.13.1", 3709 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 3710 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 3711 | "dev": true, 3712 | "requires": { 3713 | "asn1": "0.2.3", 3714 | "assert-plus": "1.0.0", 3715 | "bcrypt-pbkdf": "1.0.1", 3716 | "dashdash": "1.14.1", 3717 | "ecc-jsbn": "0.1.1", 3718 | "getpass": "0.1.7", 3719 | "jsbn": "0.1.1", 3720 | "tweetnacl": "0.14.5" 3721 | }, 3722 | "dependencies": { 3723 | "assert-plus": { 3724 | "version": "1.0.0", 3725 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 3726 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 3727 | "dev": true 3728 | } 3729 | } 3730 | }, 3731 | "string-length": { 3732 | "version": "1.0.1", 3733 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", 3734 | "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", 3735 | "dev": true, 3736 | "requires": { 3737 | "strip-ansi": "3.0.1" 3738 | } 3739 | }, 3740 | "string-width": { 3741 | "version": "1.0.2", 3742 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3743 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3744 | "dev": true, 3745 | "requires": { 3746 | "code-point-at": "1.1.0", 3747 | "is-fullwidth-code-point": "1.0.0", 3748 | "strip-ansi": "3.0.1" 3749 | } 3750 | }, 3751 | "string_decoder": { 3752 | "version": "1.0.3", 3753 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 3754 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 3755 | "dev": true, 3756 | "requires": { 3757 | "safe-buffer": "5.1.1" 3758 | } 3759 | }, 3760 | "stringstream": { 3761 | "version": "0.0.5", 3762 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 3763 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 3764 | "dev": true 3765 | }, 3766 | "strip-ansi": { 3767 | "version": "3.0.1", 3768 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3769 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3770 | "requires": { 3771 | "ansi-regex": "2.1.1" 3772 | } 3773 | }, 3774 | "strip-bom": { 3775 | "version": "3.0.0", 3776 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3777 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" 3778 | }, 3779 | "strip-json-comments": { 3780 | "version": "2.0.1", 3781 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 3782 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 3783 | "dev": true 3784 | }, 3785 | "supports-color": { 3786 | "version": "2.0.0", 3787 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 3788 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" 3789 | }, 3790 | "symbol-tree": { 3791 | "version": "3.2.2", 3792 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", 3793 | "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", 3794 | "dev": true 3795 | }, 3796 | "table": { 3797 | "version": "3.8.3", 3798 | "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", 3799 | "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", 3800 | "dev": true, 3801 | "requires": { 3802 | "ajv": "4.11.8", 3803 | "ajv-keywords": "1.5.1", 3804 | "chalk": "1.1.3", 3805 | "lodash": "4.17.4", 3806 | "slice-ansi": "0.0.4", 3807 | "string-width": "2.1.1" 3808 | }, 3809 | "dependencies": { 3810 | "ansi-regex": { 3811 | "version": "3.0.0", 3812 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3813 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3814 | "dev": true 3815 | }, 3816 | "is-fullwidth-code-point": { 3817 | "version": "2.0.0", 3818 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3819 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3820 | "dev": true 3821 | }, 3822 | "string-width": { 3823 | "version": "2.1.1", 3824 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3825 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3826 | "dev": true, 3827 | "requires": { 3828 | "is-fullwidth-code-point": "2.0.0", 3829 | "strip-ansi": "4.0.0" 3830 | } 3831 | }, 3832 | "strip-ansi": { 3833 | "version": "4.0.0", 3834 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3835 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3836 | "dev": true, 3837 | "requires": { 3838 | "ansi-regex": "3.0.0" 3839 | } 3840 | } 3841 | } 3842 | }, 3843 | "test-exclude": { 3844 | "version": "4.1.1", 3845 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", 3846 | "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", 3847 | "dev": true, 3848 | "requires": { 3849 | "arrify": "1.0.1", 3850 | "micromatch": "2.3.11", 3851 | "object-assign": "4.1.1", 3852 | "read-pkg-up": "1.0.1", 3853 | "require-main-filename": "1.0.1" 3854 | }, 3855 | "dependencies": { 3856 | "load-json-file": { 3857 | "version": "1.1.0", 3858 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 3859 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 3860 | "dev": true, 3861 | "requires": { 3862 | "graceful-fs": "4.1.11", 3863 | "parse-json": "2.2.0", 3864 | "pify": "2.3.0", 3865 | "pinkie-promise": "2.0.1", 3866 | "strip-bom": "2.0.0" 3867 | } 3868 | }, 3869 | "path-type": { 3870 | "version": "1.1.0", 3871 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3872 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3873 | "dev": true, 3874 | "requires": { 3875 | "graceful-fs": "4.1.11", 3876 | "pify": "2.3.0", 3877 | "pinkie-promise": "2.0.1" 3878 | } 3879 | }, 3880 | "read-pkg": { 3881 | "version": "1.1.0", 3882 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3883 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3884 | "dev": true, 3885 | "requires": { 3886 | "load-json-file": "1.1.0", 3887 | "normalize-package-data": "2.4.0", 3888 | "path-type": "1.1.0" 3889 | } 3890 | }, 3891 | "read-pkg-up": { 3892 | "version": "1.0.1", 3893 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3894 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3895 | "dev": true, 3896 | "requires": { 3897 | "find-up": "1.1.2", 3898 | "read-pkg": "1.1.0" 3899 | } 3900 | }, 3901 | "strip-bom": { 3902 | "version": "2.0.0", 3903 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3904 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3905 | "dev": true, 3906 | "requires": { 3907 | "is-utf8": "0.2.1" 3908 | } 3909 | } 3910 | } 3911 | }, 3912 | "text-table": { 3913 | "version": "0.2.0", 3914 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3915 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 3916 | "dev": true 3917 | }, 3918 | "throat": { 3919 | "version": "3.2.0", 3920 | "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", 3921 | "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==", 3922 | "dev": true 3923 | }, 3924 | "through": { 3925 | "version": "2.3.8", 3926 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3927 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 3928 | "dev": true 3929 | }, 3930 | "tmpl": { 3931 | "version": "1.0.4", 3932 | "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", 3933 | "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", 3934 | "dev": true 3935 | }, 3936 | "to-fast-properties": { 3937 | "version": "1.0.3", 3938 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 3939 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" 3940 | }, 3941 | "tough-cookie": { 3942 | "version": "2.3.2", 3943 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", 3944 | "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", 3945 | "dev": true, 3946 | "requires": { 3947 | "punycode": "1.4.1" 3948 | } 3949 | }, 3950 | "tr46": { 3951 | "version": "0.0.3", 3952 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 3953 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", 3954 | "dev": true 3955 | }, 3956 | "trim-right": { 3957 | "version": "1.0.1", 3958 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 3959 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 3960 | "dev": true 3961 | }, 3962 | "tryit": { 3963 | "version": "1.0.3", 3964 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 3965 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 3966 | "dev": true 3967 | }, 3968 | "tunnel-agent": { 3969 | "version": "0.6.0", 3970 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3971 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3972 | "dev": true, 3973 | "requires": { 3974 | "safe-buffer": "5.1.1" 3975 | } 3976 | }, 3977 | "tweetnacl": { 3978 | "version": "0.14.5", 3979 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 3980 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 3981 | "dev": true, 3982 | "optional": true 3983 | }, 3984 | "type-check": { 3985 | "version": "0.3.2", 3986 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 3987 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 3988 | "dev": true, 3989 | "requires": { 3990 | "prelude-ls": "1.1.2" 3991 | } 3992 | }, 3993 | "typedarray": { 3994 | "version": "0.0.6", 3995 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3996 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3997 | "dev": true 3998 | }, 3999 | "uglify-js": { 4000 | "version": "2.8.29", 4001 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 4002 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 4003 | "dev": true, 4004 | "optional": true, 4005 | "requires": { 4006 | "source-map": "0.5.7", 4007 | "uglify-to-browserify": "1.0.2", 4008 | "yargs": "3.10.0" 4009 | }, 4010 | "dependencies": { 4011 | "yargs": { 4012 | "version": "3.10.0", 4013 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 4014 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 4015 | "dev": true, 4016 | "optional": true, 4017 | "requires": { 4018 | "camelcase": "1.2.1", 4019 | "cliui": "2.1.0", 4020 | "decamelize": "1.2.0", 4021 | "window-size": "0.1.0" 4022 | } 4023 | } 4024 | } 4025 | }, 4026 | "uglify-to-browserify": { 4027 | "version": "1.0.2", 4028 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 4029 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 4030 | "dev": true, 4031 | "optional": true 4032 | }, 4033 | "user-home": { 4034 | "version": "2.0.0", 4035 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", 4036 | "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", 4037 | "dev": true, 4038 | "requires": { 4039 | "os-homedir": "1.0.2" 4040 | } 4041 | }, 4042 | "util-deprecate": { 4043 | "version": "1.0.2", 4044 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4045 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 4046 | "dev": true 4047 | }, 4048 | "uuid": { 4049 | "version": "3.1.0", 4050 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 4051 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 4052 | "dev": true 4053 | }, 4054 | "validate-npm-package-license": { 4055 | "version": "3.0.1", 4056 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 4057 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 4058 | "requires": { 4059 | "spdx-correct": "1.0.2", 4060 | "spdx-expression-parse": "1.0.4" 4061 | } 4062 | }, 4063 | "verror": { 4064 | "version": "1.10.0", 4065 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 4066 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 4067 | "dev": true, 4068 | "requires": { 4069 | "assert-plus": "1.0.0", 4070 | "core-util-is": "1.0.2", 4071 | "extsprintf": "1.3.0" 4072 | }, 4073 | "dependencies": { 4074 | "assert-plus": { 4075 | "version": "1.0.0", 4076 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 4077 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 4078 | "dev": true 4079 | } 4080 | } 4081 | }, 4082 | "walker": { 4083 | "version": "1.0.7", 4084 | "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", 4085 | "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", 4086 | "dev": true, 4087 | "requires": { 4088 | "makeerror": "1.0.11" 4089 | } 4090 | }, 4091 | "watch": { 4092 | "version": "0.10.0", 4093 | "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", 4094 | "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=", 4095 | "dev": true 4096 | }, 4097 | "webidl-conversions": { 4098 | "version": "4.0.2", 4099 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 4100 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 4101 | "dev": true 4102 | }, 4103 | "whatwg-encoding": { 4104 | "version": "1.0.1", 4105 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", 4106 | "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", 4107 | "dev": true, 4108 | "requires": { 4109 | "iconv-lite": "0.4.13" 4110 | } 4111 | }, 4112 | "whatwg-url": { 4113 | "version": "4.8.0", 4114 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", 4115 | "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", 4116 | "dev": true, 4117 | "requires": { 4118 | "tr46": "0.0.3", 4119 | "webidl-conversions": "3.0.1" 4120 | }, 4121 | "dependencies": { 4122 | "webidl-conversions": { 4123 | "version": "3.0.1", 4124 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 4125 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", 4126 | "dev": true 4127 | } 4128 | } 4129 | }, 4130 | "which": { 4131 | "version": "1.3.0", 4132 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 4133 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 4134 | "dev": true, 4135 | "requires": { 4136 | "isexe": "2.0.0" 4137 | } 4138 | }, 4139 | "which-module": { 4140 | "version": "1.0.0", 4141 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 4142 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", 4143 | "dev": true 4144 | }, 4145 | "window-size": { 4146 | "version": "0.1.0", 4147 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 4148 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 4149 | "dev": true, 4150 | "optional": true 4151 | }, 4152 | "wordwrap": { 4153 | "version": "1.0.0", 4154 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 4155 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 4156 | "dev": true 4157 | }, 4158 | "worker-farm": { 4159 | "version": "1.5.0", 4160 | "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", 4161 | "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", 4162 | "dev": true, 4163 | "requires": { 4164 | "errno": "0.1.4", 4165 | "xtend": "4.0.1" 4166 | } 4167 | }, 4168 | "wrap-ansi": { 4169 | "version": "2.1.0", 4170 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 4171 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 4172 | "dev": true, 4173 | "requires": { 4174 | "string-width": "1.0.2", 4175 | "strip-ansi": "3.0.1" 4176 | } 4177 | }, 4178 | "wrappy": { 4179 | "version": "1.0.2", 4180 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4181 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4182 | "dev": true 4183 | }, 4184 | "write": { 4185 | "version": "0.2.1", 4186 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 4187 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 4188 | "dev": true, 4189 | "requires": { 4190 | "mkdirp": "0.5.1" 4191 | } 4192 | }, 4193 | "xml-name-validator": { 4194 | "version": "2.0.1", 4195 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", 4196 | "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", 4197 | "dev": true 4198 | }, 4199 | "xtend": { 4200 | "version": "4.0.1", 4201 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4202 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4203 | "dev": true 4204 | }, 4205 | "y18n": { 4206 | "version": "3.2.1", 4207 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 4208 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 4209 | "dev": true 4210 | }, 4211 | "yargs": { 4212 | "version": "6.6.0", 4213 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", 4214 | "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", 4215 | "dev": true, 4216 | "requires": { 4217 | "camelcase": "3.0.0", 4218 | "cliui": "3.2.0", 4219 | "decamelize": "1.2.0", 4220 | "get-caller-file": "1.0.2", 4221 | "os-locale": "1.4.0", 4222 | "read-pkg-up": "1.0.1", 4223 | "require-directory": "2.1.1", 4224 | "require-main-filename": "1.0.1", 4225 | "set-blocking": "2.0.0", 4226 | "string-width": "1.0.2", 4227 | "which-module": "1.0.0", 4228 | "y18n": "3.2.1", 4229 | "yargs-parser": "4.2.1" 4230 | }, 4231 | "dependencies": { 4232 | "camelcase": { 4233 | "version": "3.0.0", 4234 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 4235 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 4236 | "dev": true 4237 | }, 4238 | "cliui": { 4239 | "version": "3.2.0", 4240 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 4241 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 4242 | "dev": true, 4243 | "requires": { 4244 | "string-width": "1.0.2", 4245 | "strip-ansi": "3.0.1", 4246 | "wrap-ansi": "2.1.0" 4247 | } 4248 | }, 4249 | "load-json-file": { 4250 | "version": "1.1.0", 4251 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 4252 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 4253 | "dev": true, 4254 | "requires": { 4255 | "graceful-fs": "4.1.11", 4256 | "parse-json": "2.2.0", 4257 | "pify": "2.3.0", 4258 | "pinkie-promise": "2.0.1", 4259 | "strip-bom": "2.0.0" 4260 | } 4261 | }, 4262 | "path-type": { 4263 | "version": "1.1.0", 4264 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 4265 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 4266 | "dev": true, 4267 | "requires": { 4268 | "graceful-fs": "4.1.11", 4269 | "pify": "2.3.0", 4270 | "pinkie-promise": "2.0.1" 4271 | } 4272 | }, 4273 | "read-pkg": { 4274 | "version": "1.1.0", 4275 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 4276 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 4277 | "dev": true, 4278 | "requires": { 4279 | "load-json-file": "1.1.0", 4280 | "normalize-package-data": "2.4.0", 4281 | "path-type": "1.1.0" 4282 | } 4283 | }, 4284 | "read-pkg-up": { 4285 | "version": "1.0.1", 4286 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 4287 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 4288 | "dev": true, 4289 | "requires": { 4290 | "find-up": "1.1.2", 4291 | "read-pkg": "1.1.0" 4292 | } 4293 | }, 4294 | "strip-bom": { 4295 | "version": "2.0.0", 4296 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 4297 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 4298 | "dev": true, 4299 | "requires": { 4300 | "is-utf8": "0.2.1" 4301 | } 4302 | } 4303 | } 4304 | }, 4305 | "yargs-parser": { 4306 | "version": "4.2.1", 4307 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", 4308 | "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", 4309 | "dev": true, 4310 | "requires": { 4311 | "camelcase": "3.0.0" 4312 | }, 4313 | "dependencies": { 4314 | "camelcase": { 4315 | "version": "3.0.0", 4316 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 4317 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 4318 | "dev": true 4319 | } 4320 | } 4321 | } 4322 | } 4323 | } 4324 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ls-data-structures-i", 3 | "version": "1.0.0", 4 | "description": "LambdaSchool's Data Structures I", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "eslint tests/*.js && eslint src/*.js && jest --verbose", 8 | "lint": "eslint", 9 | "test:watch": "npm test -- --watch" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/SunJieMing/LS-Data-Structures-I.git" 14 | }, 15 | "author": "Ben Nelson", 16 | "license": "ISC", 17 | "bugs": { 18 | "url": "https://github.com/SunJieMing/LS-Data-Structures-I/issues" 19 | }, 20 | "homepage": "https://github.com/SunJieMing/LS-Data-Structures-I/#readme", 21 | "devDependencies": { 22 | "babel-jest": "^19.0.0", 23 | "eslint": "^3.17.1", 24 | "eslint-config-airbnb": "^14.1.0", 25 | "eslint-plugin-import": "^2.2.0", 26 | "eslint-plugin-jsx-a11y": "^4.0.0", 27 | "eslint-plugin-react": "^6.10.3", 28 | "jest": "^19.0.2", 29 | "regenerator-runtime": "^0.10.3" 30 | }, 31 | "dependencies": { 32 | "babel-preset-es2015": "^6.24.0", 33 | "eslint-config-airbnb-base": "^11.1.3", 34 | "eslint-plugin-import": "^2.2.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/doubly-linked-list.js: -------------------------------------------------------------------------------- 1 | class DoublyLinkedList { 2 | constructor() { 3 | this.head = null; 4 | this.tail = null; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/hash-table-helpers.js: -------------------------------------------------------------------------------- 1 | // A special array class that can only store the number of items specified by the `limit` argument 2 | class LimitedArray { 3 | constructor(limit) { 4 | // You should not be directly accessing this array from your hash table methods 5 | // Use the getter and setter methods included in this class to manipulate data in this class 6 | this.storage = []; 7 | this.limit = limit; 8 | } 9 | 10 | checkLimit(index) { 11 | if (typeof index !== 'number') throw new Error('The supplied index needs to be a number'); 12 | if (this.limit <= index) { 13 | throw new Error('The supplied index lies out of the array\'s bounds'); 14 | } 15 | } 16 | 17 | each(cb) { 18 | for (let i = 0; i < this.storage.length; i++) { 19 | cb(this.storage[i], i); 20 | } 21 | } 22 | // Use this method to fetch elements from this class 23 | get(index) { 24 | this.checkLimit(index); 25 | return this.storage[index]; 26 | } 27 | 28 | get length() { 29 | return this.storage.length; 30 | } 31 | // Use this setter function to add elements to this class 32 | set(index, value) { 33 | this.checkLimit(index); 34 | this.storage[index] = value; 35 | } 36 | } 37 | /* eslint-disable no-bitwise, operator-assignment */ 38 | // This is hash function you'll be using to hash keys 39 | // There's some bit-shifting magic going on here, but essentially, all it is doing is performing the modulo operator 40 | // on the given `str` arg (the key) modded by the limit of the limited array 41 | // This simply ensures that the hash function always returns an index that is within the boundaries of the limited array 42 | const getIndexBelowMax = (str, max) => { 43 | let hash = 0; 44 | for (let i = 0; i < str.length; i++) { 45 | hash = (hash << 5) + hash + str.charCodeAt(i); 46 | hash = hash & hash; 47 | hash = Math.abs(hash); 48 | } 49 | return hash % max; 50 | }; 51 | 52 | module.exports = { 53 | LimitedArray, 54 | getIndexBelowMax, 55 | }; 56 | -------------------------------------------------------------------------------- /src/hash-table.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-vars */ 2 | /* eslint-disable */ 3 | const { LimitedArray, getIndexBelowMax } = require('./hash-table-helpers'); 4 | 5 | class HashTable { 6 | constructor(limit = 8) { 7 | this.limit = limit; 8 | this.storage = new LimitedArray(this.limit); 9 | // Do not modify anything inside of the constructor 10 | } 11 | 12 | // Adds the given key, value pair to the hash table 13 | // Fetch the bucket associated with the given key using the getIndexBelowMax function 14 | // If no bucket has been created for that index, instantiate a new bucket and add the key, value pair to that new bucket 15 | // If the key already exists in the bucket, the newer value should overwrite the older value associated with that key 16 | insert(key, value) { 17 | 18 | } 19 | // Removes the key, value pair from the hash table 20 | // Fetch the bucket associated with the given key using the getIndexBelowMax function 21 | // Remove the key, value pair from the bucket 22 | remove(key) { 23 | 24 | } 25 | 26 | // Fetches the value associated with the given key from the hash table 27 | // Fetch the bucket associated with the given key using the getIndexBelowMax function 28 | // Find the key, value pair inside the bucket and return the value 29 | retrieve(key) { 30 | 31 | } 32 | } 33 | 34 | module.exports = HashTable; 35 | -------------------------------------------------------------------------------- /src/linked-list.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable class-methods-use-this */ 2 | class LinkedList { 3 | constructor() { 4 | this.head = null; 5 | this.tail = null; 6 | // Do not modify anything inside of the constructor 7 | } 8 | // Wraps the given value in a node object and adds the node to the tail of the list 9 | // If the list is empty, the new element is considered the tail as well as the head 10 | // If there is one element in the list before the new element is added, the new element becomes the tail of the list 11 | addToTail(value) { 12 | 13 | } 14 | // Removes the current head node from the list, replacing it with the next element in the list 15 | // Returns the value of the removed node 16 | removeHead() { 17 | 18 | } 19 | // Checks the linked list for the given value 20 | // Returns true if the the value is found in the list, false otherwise 21 | contains(value) { 22 | 23 | } 24 | } 25 | 26 | module.exports = LinkedList; 27 | -------------------------------------------------------------------------------- /src/queue.js: -------------------------------------------------------------------------------- 1 | /* 2 | 1. Add a constructor with a storage structure; there are multiple options you could use for this 3 | 2. Add a size getter that returns the number of items the queue is storing 4 | 3. Add an `enqueue` method that accepts an item as input and adds it to the storage structure 5 | 4. Add a `dequeue` method that removes the item in the queue that was added earliest 6 | */ 7 | class Queue { 8 | 9 | } 10 | 11 | module.exports = Queue; 12 | -------------------------------------------------------------------------------- /src/stack.js: -------------------------------------------------------------------------------- 1 | /* 2 | 1. Add a constructor with a storage structure; there are multiple options you could use for this 3 | 2. Add a size getter that returns the number of items the stack is storing 4 | 3. Add a `push` method that accepts an item as input and adds it to the storage structure 5 | 4. Add a `pop` method that removes the most recently-added item to the stack 6 | */ 7 | class Stack { 8 | 9 | } 10 | 11 | module.exports = Stack; 12 | -------------------------------------------------------------------------------- /tests/hash-table.test.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef, no-prototype-builtins, no-trailing-spaces */ 2 | const HashTable = require('../src/hash-table'); 3 | 4 | let hashTable; 5 | 6 | describe('HashTable', () => { 7 | beforeEach(() => { 8 | hashTable = new HashTable(); 9 | }); 10 | 11 | it('should have "insert", "remove" and "retrieve" methods', () => { 12 | const hasInsert = Object.getPrototypeOf(hashTable).hasOwnProperty('insert'); 13 | const hasRemove = Object.getPrototypeOf(hashTable).hasOwnProperty('remove'); 14 | const hasRetrieve = Object.getPrototypeOf(hashTable).hasOwnProperty('retrieve'); 15 | expect(hasInsert).toBe(true); 16 | expect(hasRemove).toBe(true); 17 | expect(hasRetrieve).toBe(true); 18 | }); 19 | 20 | it('should save and return values by key', () => { 21 | hashTable.insert('hello', 'there'); 22 | expect(hashTable.retrieve('hello')).toBe('there'); 23 | }); 24 | 25 | it('should properly remove items', () => { 26 | hashTable.insert('Ben', 'Nelson'); 27 | hashTable.insert('Sean', 'Chen'); 28 | expect(hashTable.retrieve('Ben')).toBe('Nelson'); 29 | hashTable.remove('Ben'); 30 | expect(hashTable.retrieve('Ben')).toBe(undefined); 31 | }); 32 | 33 | it('should not throw an error when attempting to retrieve a non-existent value', () => { 34 | expect(hashTable.retrieve('Sean')).toBe(undefined); 35 | }); 36 | 37 | it('should not throw an error when removing a non-existent key', () => { 38 | expect(hashTable.remove('Sean')).toThrow(undefined); 39 | }); 40 | 41 | it('should handle numbers as keys', () => { 42 | hashTable.insert(0, 'First Value'); 43 | hashTable.insert(1, 'Second Value'); 44 | expect(hashTable.retrieve(0)).toBe('First Value'); 45 | expect(hashTable.retrieve(1)).toBe('Second Value'); 46 | }); 47 | 48 | it('should overwrite the value when using the same key', () => { 49 | hashTable.insert(0, 'First Value'); 50 | hashTable.insert(0, 'Second Value'); 51 | expect(hashTable.retrieve(0)).toBe('Second Value'); 52 | }); 53 | 54 | it('should properly handle collisions', () => { 55 | hashTable.insert('B', 'First Value'); 56 | hashTable.insert('HI!', 'Second Value'); 57 | expect(hashTable.retrieve('B')).toBe('First Value'); 58 | expect(hashTable.retrieve('HI!')).toBe('Second Value'); 59 | }); 60 | 61 | /* Extra Credit */ 62 | 63 | // it('should resize the hash table when > 75% full', () => { 64 | // hashTable.insert('a', true); 65 | // hashTable.insert('b', true); 66 | // hashTable.insert('c', true); 67 | // hashTable.insert('d', true); 68 | // hashTable.insert('e', true); 69 | // hashTable.insert('f', true); 70 | // hashTable.insert('g', true); 71 | // expect(hashTable.limit).toBe(16); 72 | // expect(hashTable.storage.length).toBe(8); 73 | // hashTable.insert('h', true); 74 | // hashTable.insert('i', true); 75 | // hashTable.insert('j', true); 76 | // hashTable.insert('k', true); 77 | // hashTable.insert('l', true); 78 | // hashTable.insert('m', true); 79 | // hashTable.insert('n', true); 80 | // hashTable.insert('o', true); 81 | // expect(hashTable.limit).toBe(32); 82 | // expect(hashTable.storage.length).toBe(16); 83 | // }); 84 | }); 85 | -------------------------------------------------------------------------------- /tests/linked-list.test.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef, no-prototype-builtins */ 2 | const LinkedList = require('../src/linked-list'); 3 | const DoublyLinkedList = require('../src/doubly-linked-list'); 4 | 5 | let list; 6 | 7 | describe('LinkedList', () => { 8 | beforeEach(() => { 9 | list = new LinkedList(); 10 | }); 11 | 12 | it('should have the methods "addToTail", "removeHead", and "contains"', () => { 13 | const hasAddToTail = Object.getPrototypeOf(list).hasOwnProperty('addToTail'); 14 | const hasRemoveHead = Object.getPrototypeOf(list).hasOwnProperty('removeHead'); 15 | const hasContains = Object.getPrototypeOf(list).hasOwnProperty('contains'); 16 | expect(hasAddToTail).toBe(true); 17 | expect(hasRemoveHead).toBe(true); 18 | expect(hasContains).toBe(true); 19 | }); 20 | 21 | it('should update the tail value when a new node is added', () => { 22 | list.addToTail(1); 23 | expect(list.tail.value).toBe(1); 24 | list.addToTail(2); 25 | expect(list.tail.value).toBe(2); 26 | }); 27 | 28 | it('should keep the same head after adding nodes', () => { 29 | list.addToTail(1); 30 | expect(list.head.value).toBe(1); 31 | list.addToTail(2); 32 | expect(list.head.value).toBe(1); 33 | }); 34 | 35 | it('should return true from contains if a matching value is found and false otherwise', () => { 36 | list.addToTail(1); 37 | list.addToTail(2); 38 | list.addToTail('hello'); 39 | list.addToTail(true); 40 | expect(list.contains('hello')).toBe(true); 41 | expect(list.contains('asdf')).toBe(false); 42 | }); 43 | 44 | it('should remove head when removeHead is invoked', () => { 45 | list.addToTail(1); 46 | list.addToTail(2); 47 | expect(list.head.value).toBe(1); 48 | list.removeHead(); 49 | expect(list.head.value).toBe(2); 50 | list.removeHead(); 51 | expect(list.head).toBe(null); 52 | }); 53 | 54 | it('should return the head that is removed when removeHead is invoked', () => { 55 | list.addToTail(1); 56 | expect(list.removeHead()).toBe(1); 57 | }); 58 | 59 | it('should not contain removed values', () => { 60 | list.addToTail(1); 61 | list.addToTail(2); 62 | list.addToTail(3); 63 | list.addToTail(4); 64 | list.removeHead(); 65 | expect(list.contains(1)).toBe(false); 66 | }); 67 | }); 68 | 69 | /* Extra Credit */ 70 | 71 | // describe('DoublyLinkedList', () => { 72 | // beforeEach(() => { 73 | // list = new DoublyLinkedList(); 74 | // }); 75 | 76 | // it('should have the methods "addToHead", "addToTail", "removeFromHead", "removeFromTail", "delete", "moveToFront", and "moveToBack"', () => { 77 | // const hasAddToTail = Object.getPrototypeOf(list).hasOwnProperty('addToTail'); 78 | // const hasAddToHead = Object.getPrototypeOf(list).hasOwnProperty('addToHead'); 79 | // const hasRemoveFromHead = Object.getPrototypeOf(list).hasOwnProperty('removeFromHead'); 80 | // const hasRemoveFromTail = Object.getPrototypeOf(list).hasOwnProperty('removeFromTail'); 81 | // const hasMoveToFront = Object.getPrototypeOf(list).hasOwnProperty('moveToFront'); 82 | // const hasMoveToBack = Object.getPrototypeOf(list).hasOwnProperty('moveToBack'); 83 | // const hasDelete = Object.getPrototypeOf(list).hasOwnProperty('delete'); 84 | // expect(hasAddToHead).toBe(true); 85 | // expect(hasAddToTail).toBe(true); 86 | // expect(hasRemoveFromHead).toBe(true); 87 | // expect(hasRemoveFromTail).toBe(true); 88 | // expect(hasMoveToBack).toBe(true); 89 | // expect(hasMoveToFront).toBe(true); 90 | // expect(hasDelete).toBe(true); 91 | // }); 92 | 93 | // it('should be able to add list nodes to the head of the list', () => { 94 | // list.addToHead(1); 95 | // list.addToHead(2); 96 | // list.addToHead(3); 97 | // expect(list.head.value).toEqual(3); 98 | // expect(list.head.next.value).toEqual(2); 99 | // expect(list.head.next.next.value).toEqual(1); 100 | // expect(list.tail.value).toEqual(1); 101 | // }); 102 | 103 | // it('should be able to add list nodes to the tail of the list', () => { 104 | // list.addToTail(100); 105 | // list.addToTail(99); 106 | // list.addToTail(98); 107 | // expect(list.head.value).toEqual(100); 108 | // expect(list.tail.value).toEqual(98); 109 | // expect(list.tail.prev.value).toEqual(99); 110 | // expect(list.tail.prev.prev.value).toEqual(100); 111 | // }); 112 | 113 | // it('should be able to remove the head node of the list', () => { 114 | // list.addToHead(3); 115 | // list.addToHead(39); 116 | // expect(list.removeFromHead().value).toEqual(39); 117 | // expect(list.removeFromHead().value).toEqual(3); 118 | // expect(list.removeFromHead()).toBeNull(); 119 | // list.addToTail(18); 120 | // expect(list.removeFromHead().value).toEqual(18); 121 | // expect(list.removeFromHead()).toBeNull(); 122 | // }); 123 | 124 | // it('should be able to remove the tail node of the list', () => { 125 | // list.addToTail(18); 126 | // list.addToTail(109); 127 | // expect(list.removeFromTail().value).toEqual(109); 128 | // expect(list.removeFromTail().value).toEqual(18); 129 | // expect(list.removeFromTail()).toBeNull(); 130 | // list.addToHead(16); 131 | // expect(list.removeFromTail().value).toEqual(16); 132 | // expect(list.removeFromTail()).toBeNull(); 133 | // }); 134 | 135 | // it('should be able to move an arbitrary node in the list to the front of the list', () => { 136 | // list.addToTail(1); 137 | // list.addToTail(10); 138 | // list.addToTail(7); 139 | // list.addToTail(3); 140 | // expect(list.head.value).toEqual(1); 141 | // expect(list.tail.value).toEqual(3); 142 | // list.moveToFront(list.tail); 143 | // expect(list.head.value).toEqual(3); 144 | // expect(list.head.next.value).toEqual(1); 145 | // expect(list.tail.value).toEqual(7); 146 | // list.moveToFront(list.tail.prev); 147 | // expect(list.head.value).toEqual(10); 148 | // }); 149 | 150 | // it('should be able to move an arbitrary node in the list to the back of the list', () => { 151 | // list.addToHead(1); 152 | // list.addToHead(40); 153 | // list.addToHead(29); 154 | // list.addToHead(90); 155 | // expect(list.tail.value).toEqual(1); 156 | // expect(list.head.value).toEqual(90); 157 | // list.moveToBack(list.head); 158 | // expect(list.tail.value).toEqual(90); 159 | // expect(list.tail.prev.value).toEqual(1); 160 | // list.moveToBack(list.head.next); 161 | // expect(list.head.value).toEqual(29); 162 | // }); 163 | 164 | // it('should be able to delete an arbitrary node in the list', () => { 165 | // list.addToHead(8); 166 | // list.addToHead(11); 167 | // list.addToHead(90); 168 | // expect(list.head.next.value).toEqual(11); 169 | // expect(list.tail.prev.value).toEqual(11); 170 | // list.delete(list.head.next); 171 | // expect(list.head.next.value).toEqual(8); 172 | // expect(list.tail.prev.value).toEqual(90); 173 | // }); 174 | // }); 175 | -------------------------------------------------------------------------------- /tests/queue.test.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef, no-prototype-builtins */ 2 | const Queue = require('../src/queue'); 3 | 4 | let queue; 5 | 6 | describe('Queue', () => { 7 | beforeEach(() => { 8 | queue = new Queue(); 9 | }); 10 | 11 | it('should have the methods "enqueue", "dequeue", and the property "size"', () => { 12 | const hasEnqueue = Object.getPrototypeOf(queue).hasOwnProperty('enqueue'); 13 | const hasDequeue = Object.getPrototypeOf(queue).hasOwnProperty('dequeue'); 14 | const hasSize = Object.getPrototypeOf(queue).hasOwnProperty('size'); 15 | expect(hasEnqueue).toBe(true); 16 | expect(hasDequeue).toBe(true); 17 | expect(hasSize).toBe(true); 18 | }); 19 | 20 | it('should return a size of 0 for an empty queue', () => { 21 | expect(queue.size).toBe(0); 22 | }); 23 | 24 | it('should return the correct size after queuing items', () => { 25 | queue.enqueue(null); 26 | queue.enqueue(null); 27 | queue.enqueue(null); 28 | queue.enqueue(null); 29 | queue.enqueue(null); 30 | queue.enqueue(null); 31 | queue.enqueue(null); 32 | queue.enqueue(null); 33 | queue.enqueue(null); 34 | queue.enqueue(null); 35 | expect(queue.size).toBe(10); 36 | }); 37 | 38 | it('should not error when attempting to dequeue an item from an empty queue', () => { 39 | expect(queue.dequeue()).toThrow(undefined); 40 | }); 41 | 42 | it('should return a size of 0 after attempting to dequeue more items than were queued', () => { 43 | queue.dequeue(); 44 | queue.dequeue(); 45 | queue.dequeue(); 46 | expect(queue.size).toBe(0); 47 | }); 48 | 49 | it('should dequeue and return the top item', () => { 50 | queue.enqueue(1); 51 | expect(queue.dequeue()).toBe(1); 52 | }); 53 | 54 | it('should dequeue the first item queued if multiple items were queued', () => { 55 | queue.enqueue(true); 56 | queue.enqueue('hi'); 57 | queue.enqueue(null); 58 | queue.enqueue(77); 59 | expect(queue.dequeue()).toBe(true); 60 | }); 61 | 62 | it('should respect the order with which elements are queued', () => { 63 | queue.enqueue(true); 64 | queue.enqueue('hi'); 65 | queue.enqueue(null); 66 | queue.enqueue(77); 67 | expect(queue.dequeue()).toBe(true); 68 | expect(queue.dequeue()).toBe('hi'); 69 | expect(queue.dequeue()).toBe(null); 70 | expect(queue.dequeue()).toBe(77); 71 | }); 72 | }); 73 | -------------------------------------------------------------------------------- /tests/stack.test.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef, no-prototype-builtins */ 2 | const Stack = require('../src/stack'); 3 | 4 | let stack; 5 | 6 | describe('Stack', () => { 7 | beforeEach(() => { 8 | stack = new Stack(); 9 | }); 10 | 11 | it('should have the methods "push", "pop", and the property "size"', () => { 12 | const hasPush = Object.getPrototypeOf(stack).hasOwnProperty('push'); 13 | const hasPop = Object.getPrototypeOf(stack).hasOwnProperty('pop'); 14 | const hasSize = Object.getPrototypeOf(stack).hasOwnProperty('size'); 15 | expect(hasPush).toBe(true); 16 | expect(hasPop).toBe(true); 17 | expect(hasSize).toBe(true); 18 | }); 19 | 20 | it('should return a size of 0 for a new stack', () => { 21 | expect(stack.size).toBe(0); 22 | }); 23 | 24 | it('should return a size of 10 after pushing 10 items to the stack', () => { 25 | stack.push(null); 26 | stack.push(null); 27 | stack.push(null); 28 | stack.push(null); 29 | stack.push(null); 30 | stack.push(null); 31 | stack.push(null); 32 | stack.push(null); 33 | stack.push(null); 34 | stack.push(null); 35 | expect(stack.size).toBe(10); 36 | }); 37 | 38 | it('should not error when attempting to pop an item from an empty stack', () => { 39 | expect(stack.pop).toThrow(undefined); 40 | }); 41 | 42 | it('should return a size of 0 after attempting to pop more items than were added', () => { 43 | stack.pop(); 44 | stack.pop(); 45 | stack.pop(); 46 | expect(stack.size).toBe(0); 47 | }); 48 | 49 | it('should pop and return the top item', () => { 50 | stack.push(1); 51 | expect(stack.pop()).toBe(1); 52 | }); 53 | 54 | it('should pop the most recent item added if multiple items added', () => { 55 | stack.push(true); 56 | stack.push('hi'); 57 | stack.push(null); 58 | stack.push(77); 59 | expect(stack.pop()).toBe(77); 60 | }); 61 | 62 | it('should respect the order with which elements are pushed', () => { 63 | stack.push(true); 64 | stack.push('hi'); 65 | stack.push(null); 66 | stack.push(77); 67 | expect(stack.pop()).toBe(77); 68 | expect(stack.pop()).toBe(null); 69 | expect(stack.pop()).toBe('hi'); 70 | expect(stack.pop()).toBe(true); 71 | }); 72 | }); 73 | --------------------------------------------------------------------------------