├── .gitignore ├── LICENSE ├── README.md ├── bundle.js ├── bundle.js.map ├── index.html ├── package-lock.json ├── package.json ├── src └── index.js └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 leonardo Rico 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fabricjs-pathfinding 2 | 3 | Pathfinding based in Fabricjs 4 | 5 | ## Preview: 6 | 7 | * open `index.html` in a browser. 8 | 9 | ![](https://j.gifs.com/GZDGxy.gif) 10 | 11 | ## Usage 12 | * `npm i` install dependecies 13 | * `npm start` to start Webpack in watch mode - will recompile when you change a file. 14 | * open `index.html` in a browser. 15 | * Change or add files in `src` folder. `index.js` is the entry point. 16 | * Reload the browser when you have made a change. 17 | 18 | ## License 19 | 20 | MIT © [Leonardo Rico](https://github.com/kevoj/fabricjs-pathfinding/blob/master/LICENSE) -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | fabricjs-pathfinding 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fabricjs-pathfinding", 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 | "optional": true 12 | }, 13 | "acorn": { 14 | "version": "4.0.13", 15 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 16 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" 17 | }, 18 | "acorn-globals": { 19 | "version": "3.1.0", 20 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", 21 | "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", 22 | "optional": true, 23 | "requires": { 24 | "acorn": "4.0.13" 25 | } 26 | }, 27 | "ajv": { 28 | "version": "4.11.8", 29 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 30 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 31 | "optional": true, 32 | "requires": { 33 | "co": "4.6.0", 34 | "json-stable-stringify": "1.0.1" 35 | } 36 | }, 37 | "align-text": { 38 | "version": "0.1.4", 39 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 40 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 41 | "dev": true, 42 | "requires": { 43 | "kind-of": "3.2.2", 44 | "longest": "1.0.1", 45 | "repeat-string": "1.6.1" 46 | } 47 | }, 48 | "amdefine": { 49 | "version": "1.0.1", 50 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 51 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" 52 | }, 53 | "ansi-regex": { 54 | "version": "2.1.1", 55 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 56 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 57 | "dev": true 58 | }, 59 | "ansi-styles": { 60 | "version": "2.2.1", 61 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 62 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 63 | "dev": true 64 | }, 65 | "anymatch": { 66 | "version": "1.3.2", 67 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 68 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 69 | "dev": true, 70 | "requires": { 71 | "micromatch": "2.3.11", 72 | "normalize-path": "2.1.1" 73 | } 74 | }, 75 | "arr-diff": { 76 | "version": "2.0.0", 77 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 78 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 79 | "dev": true, 80 | "requires": { 81 | "arr-flatten": "1.1.0" 82 | } 83 | }, 84 | "arr-flatten": { 85 | "version": "1.1.0", 86 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 87 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 88 | "dev": true 89 | }, 90 | "array-equal": { 91 | "version": "1.0.0", 92 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 93 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", 94 | "optional": true 95 | }, 96 | "array-unique": { 97 | "version": "0.2.1", 98 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 99 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 100 | "dev": true 101 | }, 102 | "asn1": { 103 | "version": "0.2.3", 104 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 105 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 106 | "optional": true 107 | }, 108 | "assert": { 109 | "version": "1.4.1", 110 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 111 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 112 | "dev": true, 113 | "requires": { 114 | "util": "0.10.3" 115 | } 116 | }, 117 | "assert-plus": { 118 | "version": "0.2.0", 119 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 120 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 121 | "optional": true 122 | }, 123 | "async-each": { 124 | "version": "1.0.1", 125 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 126 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 127 | "dev": true 128 | }, 129 | "asynckit": { 130 | "version": "0.4.0", 131 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 132 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 133 | "optional": true 134 | }, 135 | "aws-sign2": { 136 | "version": "0.6.0", 137 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", 138 | "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", 139 | "optional": true 140 | }, 141 | "aws4": { 142 | "version": "1.6.0", 143 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 144 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 145 | "optional": true 146 | }, 147 | "babel-code-frame": { 148 | "version": "6.26.0", 149 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 150 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 151 | "dev": true, 152 | "requires": { 153 | "chalk": "1.1.3", 154 | "esutils": "2.0.2", 155 | "js-tokens": "3.0.2" 156 | } 157 | }, 158 | "babel-core": { 159 | "version": "6.26.0", 160 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 161 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 162 | "dev": true, 163 | "requires": { 164 | "babel-code-frame": "6.26.0", 165 | "babel-generator": "6.26.0", 166 | "babel-helpers": "6.24.1", 167 | "babel-messages": "6.23.0", 168 | "babel-register": "6.26.0", 169 | "babel-runtime": "6.26.0", 170 | "babel-template": "6.26.0", 171 | "babel-traverse": "6.26.0", 172 | "babel-types": "6.26.0", 173 | "babylon": "6.18.0", 174 | "convert-source-map": "1.5.0", 175 | "debug": "2.6.8", 176 | "json5": "0.5.1", 177 | "lodash": "4.17.4", 178 | "minimatch": "3.0.4", 179 | "path-is-absolute": "1.0.1", 180 | "private": "0.1.7", 181 | "slash": "1.0.0", 182 | "source-map": "0.5.7" 183 | } 184 | }, 185 | "babel-generator": { 186 | "version": "6.26.0", 187 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 188 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 189 | "dev": true, 190 | "requires": { 191 | "babel-messages": "6.23.0", 192 | "babel-runtime": "6.26.0", 193 | "babel-types": "6.26.0", 194 | "detect-indent": "4.0.0", 195 | "jsesc": "1.3.0", 196 | "lodash": "4.17.4", 197 | "source-map": "0.5.7", 198 | "trim-right": "1.0.1" 199 | } 200 | }, 201 | "babel-helper-call-delegate": { 202 | "version": "6.24.1", 203 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 204 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 205 | "dev": true, 206 | "requires": { 207 | "babel-helper-hoist-variables": "6.24.1", 208 | "babel-runtime": "6.26.0", 209 | "babel-traverse": "6.26.0", 210 | "babel-types": "6.26.0" 211 | } 212 | }, 213 | "babel-helper-define-map": { 214 | "version": "6.26.0", 215 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 216 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 217 | "dev": true, 218 | "requires": { 219 | "babel-helper-function-name": "6.24.1", 220 | "babel-runtime": "6.26.0", 221 | "babel-types": "6.26.0", 222 | "lodash": "4.17.4" 223 | } 224 | }, 225 | "babel-helper-function-name": { 226 | "version": "6.24.1", 227 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 228 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 229 | "dev": true, 230 | "requires": { 231 | "babel-helper-get-function-arity": "6.24.1", 232 | "babel-runtime": "6.26.0", 233 | "babel-template": "6.26.0", 234 | "babel-traverse": "6.26.0", 235 | "babel-types": "6.26.0" 236 | } 237 | }, 238 | "babel-helper-get-function-arity": { 239 | "version": "6.24.1", 240 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 241 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 242 | "dev": true, 243 | "requires": { 244 | "babel-runtime": "6.26.0", 245 | "babel-types": "6.26.0" 246 | } 247 | }, 248 | "babel-helper-hoist-variables": { 249 | "version": "6.24.1", 250 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 251 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 252 | "dev": true, 253 | "requires": { 254 | "babel-runtime": "6.26.0", 255 | "babel-types": "6.26.0" 256 | } 257 | }, 258 | "babel-helper-optimise-call-expression": { 259 | "version": "6.24.1", 260 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 261 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 262 | "dev": true, 263 | "requires": { 264 | "babel-runtime": "6.26.0", 265 | "babel-types": "6.26.0" 266 | } 267 | }, 268 | "babel-helper-regex": { 269 | "version": "6.26.0", 270 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 271 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 272 | "dev": true, 273 | "requires": { 274 | "babel-runtime": "6.26.0", 275 | "babel-types": "6.26.0", 276 | "lodash": "4.17.4" 277 | } 278 | }, 279 | "babel-helper-replace-supers": { 280 | "version": "6.24.1", 281 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 282 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 283 | "dev": true, 284 | "requires": { 285 | "babel-helper-optimise-call-expression": "6.24.1", 286 | "babel-messages": "6.23.0", 287 | "babel-runtime": "6.26.0", 288 | "babel-template": "6.26.0", 289 | "babel-traverse": "6.26.0", 290 | "babel-types": "6.26.0" 291 | } 292 | }, 293 | "babel-helpers": { 294 | "version": "6.24.1", 295 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 296 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 297 | "dev": true, 298 | "requires": { 299 | "babel-runtime": "6.26.0", 300 | "babel-template": "6.26.0" 301 | } 302 | }, 303 | "babel-loader": { 304 | "version": "6.4.1", 305 | "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", 306 | "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", 307 | "dev": true, 308 | "requires": { 309 | "find-cache-dir": "0.1.1", 310 | "loader-utils": "0.2.17", 311 | "mkdirp": "0.5.1", 312 | "object-assign": "4.1.1" 313 | }, 314 | "dependencies": { 315 | "find-cache-dir": { 316 | "version": "0.1.1", 317 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", 318 | "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", 319 | "dev": true, 320 | "requires": { 321 | "commondir": "1.0.1", 322 | "mkdirp": "0.5.1", 323 | "pkg-dir": "1.0.0" 324 | } 325 | }, 326 | "find-up": { 327 | "version": "1.1.2", 328 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 329 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 330 | "dev": true, 331 | "requires": { 332 | "path-exists": "2.1.0", 333 | "pinkie-promise": "2.0.1" 334 | } 335 | }, 336 | "loader-utils": { 337 | "version": "0.2.17", 338 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", 339 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", 340 | "dev": true, 341 | "requires": { 342 | "big.js": "3.1.3", 343 | "emojis-list": "2.1.0", 344 | "json5": "0.5.1", 345 | "object-assign": "4.1.1" 346 | } 347 | }, 348 | "path-exists": { 349 | "version": "2.1.0", 350 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 351 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 352 | "dev": true, 353 | "requires": { 354 | "pinkie-promise": "2.0.1" 355 | } 356 | }, 357 | "pkg-dir": { 358 | "version": "1.0.0", 359 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 360 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 361 | "dev": true, 362 | "requires": { 363 | "find-up": "1.1.2" 364 | } 365 | } 366 | } 367 | }, 368 | "babel-messages": { 369 | "version": "6.23.0", 370 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 371 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 372 | "dev": true, 373 | "requires": { 374 | "babel-runtime": "6.26.0" 375 | } 376 | }, 377 | "babel-plugin-check-es2015-constants": { 378 | "version": "6.22.0", 379 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 380 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 381 | "dev": true, 382 | "requires": { 383 | "babel-runtime": "6.26.0" 384 | } 385 | }, 386 | "babel-plugin-transform-es2015-arrow-functions": { 387 | "version": "6.22.0", 388 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 389 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 390 | "dev": true, 391 | "requires": { 392 | "babel-runtime": "6.26.0" 393 | } 394 | }, 395 | "babel-plugin-transform-es2015-block-scoped-functions": { 396 | "version": "6.22.0", 397 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 398 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 399 | "dev": true, 400 | "requires": { 401 | "babel-runtime": "6.26.0" 402 | } 403 | }, 404 | "babel-plugin-transform-es2015-block-scoping": { 405 | "version": "6.26.0", 406 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 407 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 408 | "dev": true, 409 | "requires": { 410 | "babel-runtime": "6.26.0", 411 | "babel-template": "6.26.0", 412 | "babel-traverse": "6.26.0", 413 | "babel-types": "6.26.0", 414 | "lodash": "4.17.4" 415 | } 416 | }, 417 | "babel-plugin-transform-es2015-classes": { 418 | "version": "6.24.1", 419 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 420 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 421 | "dev": true, 422 | "requires": { 423 | "babel-helper-define-map": "6.26.0", 424 | "babel-helper-function-name": "6.24.1", 425 | "babel-helper-optimise-call-expression": "6.24.1", 426 | "babel-helper-replace-supers": "6.24.1", 427 | "babel-messages": "6.23.0", 428 | "babel-runtime": "6.26.0", 429 | "babel-template": "6.26.0", 430 | "babel-traverse": "6.26.0", 431 | "babel-types": "6.26.0" 432 | } 433 | }, 434 | "babel-plugin-transform-es2015-computed-properties": { 435 | "version": "6.24.1", 436 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 437 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 438 | "dev": true, 439 | "requires": { 440 | "babel-runtime": "6.26.0", 441 | "babel-template": "6.26.0" 442 | } 443 | }, 444 | "babel-plugin-transform-es2015-destructuring": { 445 | "version": "6.23.0", 446 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 447 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 448 | "dev": true, 449 | "requires": { 450 | "babel-runtime": "6.26.0" 451 | } 452 | }, 453 | "babel-plugin-transform-es2015-duplicate-keys": { 454 | "version": "6.24.1", 455 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 456 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 457 | "dev": true, 458 | "requires": { 459 | "babel-runtime": "6.26.0", 460 | "babel-types": "6.26.0" 461 | } 462 | }, 463 | "babel-plugin-transform-es2015-for-of": { 464 | "version": "6.23.0", 465 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 466 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 467 | "dev": true, 468 | "requires": { 469 | "babel-runtime": "6.26.0" 470 | } 471 | }, 472 | "babel-plugin-transform-es2015-function-name": { 473 | "version": "6.24.1", 474 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 475 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 476 | "dev": true, 477 | "requires": { 478 | "babel-helper-function-name": "6.24.1", 479 | "babel-runtime": "6.26.0", 480 | "babel-types": "6.26.0" 481 | } 482 | }, 483 | "babel-plugin-transform-es2015-literals": { 484 | "version": "6.22.0", 485 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 486 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 487 | "dev": true, 488 | "requires": { 489 | "babel-runtime": "6.26.0" 490 | } 491 | }, 492 | "babel-plugin-transform-es2015-modules-amd": { 493 | "version": "6.24.1", 494 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 495 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 496 | "dev": true, 497 | "requires": { 498 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 499 | "babel-runtime": "6.26.0", 500 | "babel-template": "6.26.0" 501 | } 502 | }, 503 | "babel-plugin-transform-es2015-modules-commonjs": { 504 | "version": "6.26.0", 505 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 506 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 507 | "dev": true, 508 | "requires": { 509 | "babel-plugin-transform-strict-mode": "6.24.1", 510 | "babel-runtime": "6.26.0", 511 | "babel-template": "6.26.0", 512 | "babel-types": "6.26.0" 513 | } 514 | }, 515 | "babel-plugin-transform-es2015-modules-systemjs": { 516 | "version": "6.24.1", 517 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 518 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 519 | "dev": true, 520 | "requires": { 521 | "babel-helper-hoist-variables": "6.24.1", 522 | "babel-runtime": "6.26.0", 523 | "babel-template": "6.26.0" 524 | } 525 | }, 526 | "babel-plugin-transform-es2015-modules-umd": { 527 | "version": "6.24.1", 528 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 529 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 530 | "dev": true, 531 | "requires": { 532 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 533 | "babel-runtime": "6.26.0", 534 | "babel-template": "6.26.0" 535 | } 536 | }, 537 | "babel-plugin-transform-es2015-object-super": { 538 | "version": "6.24.1", 539 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 540 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 541 | "dev": true, 542 | "requires": { 543 | "babel-helper-replace-supers": "6.24.1", 544 | "babel-runtime": "6.26.0" 545 | } 546 | }, 547 | "babel-plugin-transform-es2015-parameters": { 548 | "version": "6.24.1", 549 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 550 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 551 | "dev": true, 552 | "requires": { 553 | "babel-helper-call-delegate": "6.24.1", 554 | "babel-helper-get-function-arity": "6.24.1", 555 | "babel-runtime": "6.26.0", 556 | "babel-template": "6.26.0", 557 | "babel-traverse": "6.26.0", 558 | "babel-types": "6.26.0" 559 | } 560 | }, 561 | "babel-plugin-transform-es2015-shorthand-properties": { 562 | "version": "6.24.1", 563 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 564 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 565 | "dev": true, 566 | "requires": { 567 | "babel-runtime": "6.26.0", 568 | "babel-types": "6.26.0" 569 | } 570 | }, 571 | "babel-plugin-transform-es2015-spread": { 572 | "version": "6.22.0", 573 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 574 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 575 | "dev": true, 576 | "requires": { 577 | "babel-runtime": "6.26.0" 578 | } 579 | }, 580 | "babel-plugin-transform-es2015-sticky-regex": { 581 | "version": "6.24.1", 582 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 583 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 584 | "dev": true, 585 | "requires": { 586 | "babel-helper-regex": "6.26.0", 587 | "babel-runtime": "6.26.0", 588 | "babel-types": "6.26.0" 589 | } 590 | }, 591 | "babel-plugin-transform-es2015-template-literals": { 592 | "version": "6.22.0", 593 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 594 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 595 | "dev": true, 596 | "requires": { 597 | "babel-runtime": "6.26.0" 598 | } 599 | }, 600 | "babel-plugin-transform-es2015-typeof-symbol": { 601 | "version": "6.23.0", 602 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 603 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 604 | "dev": true, 605 | "requires": { 606 | "babel-runtime": "6.26.0" 607 | } 608 | }, 609 | "babel-plugin-transform-es2015-unicode-regex": { 610 | "version": "6.24.1", 611 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 612 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 613 | "dev": true, 614 | "requires": { 615 | "babel-helper-regex": "6.26.0", 616 | "babel-runtime": "6.26.0", 617 | "regexpu-core": "2.0.0" 618 | } 619 | }, 620 | "babel-plugin-transform-regenerator": { 621 | "version": "6.26.0", 622 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 623 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 624 | "dev": true, 625 | "requires": { 626 | "regenerator-transform": "0.10.1" 627 | } 628 | }, 629 | "babel-plugin-transform-strict-mode": { 630 | "version": "6.24.1", 631 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 632 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 633 | "dev": true, 634 | "requires": { 635 | "babel-runtime": "6.26.0", 636 | "babel-types": "6.26.0" 637 | } 638 | }, 639 | "babel-preset-es2015": { 640 | "version": "6.24.1", 641 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 642 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 643 | "dev": true, 644 | "requires": { 645 | "babel-plugin-check-es2015-constants": "6.22.0", 646 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 647 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 648 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 649 | "babel-plugin-transform-es2015-classes": "6.24.1", 650 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 651 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 652 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 653 | "babel-plugin-transform-es2015-for-of": "6.23.0", 654 | "babel-plugin-transform-es2015-function-name": "6.24.1", 655 | "babel-plugin-transform-es2015-literals": "6.22.0", 656 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 657 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 658 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 659 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 660 | "babel-plugin-transform-es2015-object-super": "6.24.1", 661 | "babel-plugin-transform-es2015-parameters": "6.24.1", 662 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 663 | "babel-plugin-transform-es2015-spread": "6.22.0", 664 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 665 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 666 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 667 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 668 | "babel-plugin-transform-regenerator": "6.26.0" 669 | } 670 | }, 671 | "babel-register": { 672 | "version": "6.26.0", 673 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 674 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 675 | "dev": true, 676 | "requires": { 677 | "babel-core": "6.26.0", 678 | "babel-runtime": "6.26.0", 679 | "core-js": "2.5.0", 680 | "home-or-tmp": "2.0.0", 681 | "lodash": "4.17.4", 682 | "mkdirp": "0.5.1", 683 | "source-map-support": "0.4.16" 684 | } 685 | }, 686 | "babel-runtime": { 687 | "version": "6.26.0", 688 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 689 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 690 | "dev": true, 691 | "requires": { 692 | "core-js": "2.5.0", 693 | "regenerator-runtime": "0.11.0" 694 | } 695 | }, 696 | "babel-template": { 697 | "version": "6.26.0", 698 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 699 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 700 | "dev": true, 701 | "requires": { 702 | "babel-runtime": "6.26.0", 703 | "babel-traverse": "6.26.0", 704 | "babel-types": "6.26.0", 705 | "babylon": "6.18.0", 706 | "lodash": "4.17.4" 707 | } 708 | }, 709 | "babel-traverse": { 710 | "version": "6.26.0", 711 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 712 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 713 | "dev": true, 714 | "requires": { 715 | "babel-code-frame": "6.26.0", 716 | "babel-messages": "6.23.0", 717 | "babel-runtime": "6.26.0", 718 | "babel-types": "6.26.0", 719 | "babylon": "6.18.0", 720 | "debug": "2.6.8", 721 | "globals": "9.18.0", 722 | "invariant": "2.2.2", 723 | "lodash": "4.17.4" 724 | } 725 | }, 726 | "babel-types": { 727 | "version": "6.26.0", 728 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 729 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 730 | "dev": true, 731 | "requires": { 732 | "babel-runtime": "6.26.0", 733 | "esutils": "2.0.2", 734 | "lodash": "4.17.4", 735 | "to-fast-properties": "1.0.3" 736 | } 737 | }, 738 | "babylon": { 739 | "version": "6.18.0", 740 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 741 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 742 | "dev": true 743 | }, 744 | "balanced-match": { 745 | "version": "1.0.0", 746 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 747 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 748 | "dev": true 749 | }, 750 | "Base64": { 751 | "version": "0.2.1", 752 | "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", 753 | "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=", 754 | "dev": true 755 | }, 756 | "base64-js": { 757 | "version": "1.2.1", 758 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", 759 | "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", 760 | "dev": true 761 | }, 762 | "bcrypt-pbkdf": { 763 | "version": "1.0.1", 764 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 765 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 766 | "optional": true, 767 | "requires": { 768 | "tweetnacl": "0.14.5" 769 | } 770 | }, 771 | "big.js": { 772 | "version": "3.1.3", 773 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", 774 | "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", 775 | "dev": true 776 | }, 777 | "binary-extensions": { 778 | "version": "1.10.0", 779 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", 780 | "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", 781 | "dev": true 782 | }, 783 | "boom": { 784 | "version": "2.10.1", 785 | "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", 786 | "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", 787 | "requires": { 788 | "hoek": "2.16.3" 789 | } 790 | }, 791 | "brace-expansion": { 792 | "version": "1.1.8", 793 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 794 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 795 | "dev": true, 796 | "requires": { 797 | "balanced-match": "1.0.0", 798 | "concat-map": "0.0.1" 799 | } 800 | }, 801 | "braces": { 802 | "version": "1.8.5", 803 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 804 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 805 | "dev": true, 806 | "requires": { 807 | "expand-range": "1.8.2", 808 | "preserve": "0.2.0", 809 | "repeat-element": "1.1.2" 810 | } 811 | }, 812 | "browserify-zlib": { 813 | "version": "0.1.4", 814 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", 815 | "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", 816 | "dev": true, 817 | "requires": { 818 | "pako": "0.2.9" 819 | } 820 | }, 821 | "buffer": { 822 | "version": "4.9.1", 823 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 824 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 825 | "dev": true, 826 | "requires": { 827 | "base64-js": "1.2.1", 828 | "ieee754": "1.1.8", 829 | "isarray": "1.0.0" 830 | } 831 | }, 832 | "builtin-status-codes": { 833 | "version": "3.0.0", 834 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 835 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 836 | "dev": true 837 | }, 838 | "camelcase": { 839 | "version": "1.2.1", 840 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 841 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 842 | "dev": true 843 | }, 844 | "caseless": { 845 | "version": "0.12.0", 846 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 847 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 848 | "optional": true 849 | }, 850 | "center-align": { 851 | "version": "0.1.3", 852 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 853 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 854 | "dev": true, 855 | "requires": { 856 | "align-text": "0.1.4", 857 | "lazy-cache": "1.0.4" 858 | } 859 | }, 860 | "chalk": { 861 | "version": "1.1.3", 862 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 863 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 864 | "dev": true, 865 | "requires": { 866 | "ansi-styles": "2.2.1", 867 | "escape-string-regexp": "1.0.5", 868 | "has-ansi": "2.0.0", 869 | "strip-ansi": "3.0.1", 870 | "supports-color": "2.0.0" 871 | } 872 | }, 873 | "chokidar": { 874 | "version": "1.7.0", 875 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 876 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 877 | "dev": true, 878 | "requires": { 879 | "anymatch": "1.3.2", 880 | "async-each": "1.0.1", 881 | "glob-parent": "2.0.0", 882 | "inherits": "2.0.3", 883 | "is-binary-path": "1.0.1", 884 | "is-glob": "2.0.1", 885 | "path-is-absolute": "1.0.1", 886 | "readdirp": "2.1.0" 887 | } 888 | }, 889 | "cliui": { 890 | "version": "2.1.0", 891 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 892 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 893 | "dev": true, 894 | "requires": { 895 | "center-align": "0.1.3", 896 | "right-align": "0.1.3", 897 | "wordwrap": "0.0.2" 898 | } 899 | }, 900 | "clone": { 901 | "version": "1.0.2", 902 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", 903 | "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", 904 | "dev": true 905 | }, 906 | "co": { 907 | "version": "4.6.0", 908 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 909 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 910 | "optional": true 911 | }, 912 | "combined-stream": { 913 | "version": "1.0.5", 914 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 915 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 916 | "requires": { 917 | "delayed-stream": "1.0.0" 918 | } 919 | }, 920 | "commondir": { 921 | "version": "1.0.1", 922 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 923 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 924 | "dev": true 925 | }, 926 | "concat-map": { 927 | "version": "0.0.1", 928 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 929 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 930 | "dev": true 931 | }, 932 | "console-browserify": { 933 | "version": "1.1.0", 934 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 935 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 936 | "dev": true, 937 | "requires": { 938 | "date-now": "0.1.4" 939 | } 940 | }, 941 | "constants-browserify": { 942 | "version": "1.0.0", 943 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 944 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 945 | "dev": true 946 | }, 947 | "content-type-parser": { 948 | "version": "1.0.1", 949 | "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", 950 | "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", 951 | "optional": true 952 | }, 953 | "convert-source-map": { 954 | "version": "1.5.0", 955 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 956 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 957 | "dev": true 958 | }, 959 | "core-js": { 960 | "version": "2.5.0", 961 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", 962 | "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=", 963 | "dev": true 964 | }, 965 | "core-util-is": { 966 | "version": "1.0.2", 967 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 968 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 969 | }, 970 | "cryptiles": { 971 | "version": "2.0.5", 972 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", 973 | "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", 974 | "optional": true, 975 | "requires": { 976 | "boom": "2.10.1" 977 | } 978 | }, 979 | "cssom": { 980 | "version": "0.3.2", 981 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", 982 | "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" 983 | }, 984 | "cssstyle": { 985 | "version": "0.2.37", 986 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", 987 | "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", 988 | "optional": true, 989 | "requires": { 990 | "cssom": "0.3.2" 991 | } 992 | }, 993 | "dashdash": { 994 | "version": "1.14.1", 995 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 996 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 997 | "optional": true, 998 | "requires": { 999 | "assert-plus": "1.0.0" 1000 | }, 1001 | "dependencies": { 1002 | "assert-plus": { 1003 | "version": "1.0.0", 1004 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1005 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1006 | "optional": true 1007 | } 1008 | } 1009 | }, 1010 | "date-now": { 1011 | "version": "0.1.4", 1012 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 1013 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 1014 | "dev": true 1015 | }, 1016 | "debug": { 1017 | "version": "2.6.8", 1018 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 1019 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 1020 | "dev": true, 1021 | "requires": { 1022 | "ms": "2.0.0" 1023 | } 1024 | }, 1025 | "decamelize": { 1026 | "version": "1.2.0", 1027 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1028 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1029 | "dev": true 1030 | }, 1031 | "deep-is": { 1032 | "version": "0.1.3", 1033 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1034 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1035 | "optional": true 1036 | }, 1037 | "delayed-stream": { 1038 | "version": "1.0.0", 1039 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1040 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1041 | }, 1042 | "detect-indent": { 1043 | "version": "4.0.0", 1044 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1045 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1046 | "dev": true, 1047 | "requires": { 1048 | "repeating": "2.0.1" 1049 | } 1050 | }, 1051 | "domain-browser": { 1052 | "version": "1.1.7", 1053 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", 1054 | "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", 1055 | "dev": true 1056 | }, 1057 | "easystarjs": { 1058 | "version": "0.4.1", 1059 | "resolved": "https://registry.npmjs.org/easystarjs/-/easystarjs-0.4.1.tgz", 1060 | "integrity": "sha1-CNwfuEBO5b/L6jYSc5cXXlyCAR4=", 1061 | "requires": { 1062 | "heap": "0.2.6" 1063 | } 1064 | }, 1065 | "ecc-jsbn": { 1066 | "version": "0.1.1", 1067 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1068 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1069 | "optional": true, 1070 | "requires": { 1071 | "jsbn": "0.1.1" 1072 | } 1073 | }, 1074 | "emojis-list": { 1075 | "version": "2.1.0", 1076 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 1077 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 1078 | "dev": true 1079 | }, 1080 | "errno": { 1081 | "version": "0.1.4", 1082 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 1083 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 1084 | "dev": true, 1085 | "requires": { 1086 | "prr": "0.0.0" 1087 | } 1088 | }, 1089 | "escape-string-regexp": { 1090 | "version": "1.0.5", 1091 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1092 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1093 | "dev": true 1094 | }, 1095 | "escodegen": { 1096 | "version": "1.8.1", 1097 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", 1098 | "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", 1099 | "optional": true, 1100 | "requires": { 1101 | "esprima": "2.7.3", 1102 | "estraverse": "1.9.3", 1103 | "esutils": "2.0.2", 1104 | "optionator": "0.8.2", 1105 | "source-map": "0.2.0" 1106 | }, 1107 | "dependencies": { 1108 | "source-map": { 1109 | "version": "0.2.0", 1110 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", 1111 | "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", 1112 | "optional": true, 1113 | "requires": { 1114 | "amdefine": "1.0.1" 1115 | } 1116 | } 1117 | } 1118 | }, 1119 | "esprima": { 1120 | "version": "2.7.3", 1121 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 1122 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 1123 | "optional": true 1124 | }, 1125 | "estraverse": { 1126 | "version": "1.9.3", 1127 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", 1128 | "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", 1129 | "optional": true 1130 | }, 1131 | "esutils": { 1132 | "version": "2.0.2", 1133 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1134 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 1135 | }, 1136 | "events": { 1137 | "version": "1.1.1", 1138 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 1139 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 1140 | "dev": true 1141 | }, 1142 | "expand-brackets": { 1143 | "version": "0.1.5", 1144 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1145 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1146 | "dev": true, 1147 | "requires": { 1148 | "is-posix-bracket": "0.1.1" 1149 | } 1150 | }, 1151 | "expand-range": { 1152 | "version": "1.8.2", 1153 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1154 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1155 | "dev": true, 1156 | "requires": { 1157 | "fill-range": "2.2.3" 1158 | } 1159 | }, 1160 | "extend": { 1161 | "version": "3.0.1", 1162 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1163 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 1164 | "optional": true 1165 | }, 1166 | "extglob": { 1167 | "version": "0.3.2", 1168 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1169 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1170 | "dev": true, 1171 | "requires": { 1172 | "is-extglob": "1.0.0" 1173 | } 1174 | }, 1175 | "extsprintf": { 1176 | "version": "1.3.0", 1177 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1178 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 1179 | }, 1180 | "fabric": { 1181 | "version": "2.0.0-beta.6", 1182 | "resolved": "https://registry.npmjs.org/fabric/-/fabric-2.0.0-beta.6.tgz", 1183 | "integrity": "sha1-D2WHXUf3ZgUY1tssIYCHgS3uB5g=", 1184 | "requires": { 1185 | "jsdom": "9.12.0", 1186 | "xmldom": "0.1.27" 1187 | } 1188 | }, 1189 | "fast-levenshtein": { 1190 | "version": "2.0.6", 1191 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1192 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1193 | "optional": true 1194 | }, 1195 | "filename-regex": { 1196 | "version": "2.0.1", 1197 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1198 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1199 | "dev": true 1200 | }, 1201 | "fill-range": { 1202 | "version": "2.2.3", 1203 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1204 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1205 | "dev": true, 1206 | "requires": { 1207 | "is-number": "2.1.0", 1208 | "isobject": "2.1.0", 1209 | "randomatic": "1.1.7", 1210 | "repeat-element": "1.1.2", 1211 | "repeat-string": "1.6.1" 1212 | } 1213 | }, 1214 | "for-in": { 1215 | "version": "1.0.2", 1216 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1217 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1218 | "dev": true 1219 | }, 1220 | "for-own": { 1221 | "version": "0.1.5", 1222 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1223 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1224 | "dev": true, 1225 | "requires": { 1226 | "for-in": "1.0.2" 1227 | } 1228 | }, 1229 | "forever-agent": { 1230 | "version": "0.6.1", 1231 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1232 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1233 | "optional": true 1234 | }, 1235 | "form-data": { 1236 | "version": "2.1.4", 1237 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", 1238 | "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", 1239 | "optional": true, 1240 | "requires": { 1241 | "asynckit": "0.4.0", 1242 | "combined-stream": "1.0.5", 1243 | "mime-types": "2.1.16" 1244 | } 1245 | }, 1246 | "getpass": { 1247 | "version": "0.1.7", 1248 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1249 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1250 | "optional": true, 1251 | "requires": { 1252 | "assert-plus": "1.0.0" 1253 | }, 1254 | "dependencies": { 1255 | "assert-plus": { 1256 | "version": "1.0.0", 1257 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1258 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1259 | "optional": true 1260 | } 1261 | } 1262 | }, 1263 | "glob-base": { 1264 | "version": "0.3.0", 1265 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1266 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1267 | "dev": true, 1268 | "requires": { 1269 | "glob-parent": "2.0.0", 1270 | "is-glob": "2.0.1" 1271 | } 1272 | }, 1273 | "glob-parent": { 1274 | "version": "2.0.0", 1275 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1276 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1277 | "dev": true, 1278 | "requires": { 1279 | "is-glob": "2.0.1" 1280 | } 1281 | }, 1282 | "globals": { 1283 | "version": "9.18.0", 1284 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1285 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1286 | "dev": true 1287 | }, 1288 | "graceful-fs": { 1289 | "version": "4.1.11", 1290 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1291 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1292 | "dev": true 1293 | }, 1294 | "har-schema": { 1295 | "version": "1.0.5", 1296 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", 1297 | "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", 1298 | "optional": true 1299 | }, 1300 | "har-validator": { 1301 | "version": "4.2.1", 1302 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", 1303 | "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", 1304 | "optional": true, 1305 | "requires": { 1306 | "ajv": "4.11.8", 1307 | "har-schema": "1.0.5" 1308 | } 1309 | }, 1310 | "has-ansi": { 1311 | "version": "2.0.0", 1312 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1313 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1314 | "dev": true, 1315 | "requires": { 1316 | "ansi-regex": "2.1.1" 1317 | } 1318 | }, 1319 | "hawk": { 1320 | "version": "3.1.3", 1321 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", 1322 | "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", 1323 | "optional": true, 1324 | "requires": { 1325 | "boom": "2.10.1", 1326 | "cryptiles": "2.0.5", 1327 | "hoek": "2.16.3", 1328 | "sntp": "1.0.9" 1329 | } 1330 | }, 1331 | "heap": { 1332 | "version": "0.2.6", 1333 | "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", 1334 | "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" 1335 | }, 1336 | "hoek": { 1337 | "version": "2.16.3", 1338 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", 1339 | "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" 1340 | }, 1341 | "home-or-tmp": { 1342 | "version": "2.0.0", 1343 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1344 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1345 | "dev": true, 1346 | "requires": { 1347 | "os-homedir": "1.0.2", 1348 | "os-tmpdir": "1.0.2" 1349 | } 1350 | }, 1351 | "html-encoding-sniffer": { 1352 | "version": "1.0.1", 1353 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", 1354 | "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", 1355 | "optional": true, 1356 | "requires": { 1357 | "whatwg-encoding": "1.0.1" 1358 | } 1359 | }, 1360 | "http-browserify": { 1361 | "version": "1.7.0", 1362 | "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", 1363 | "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=", 1364 | "dev": true, 1365 | "requires": { 1366 | "Base64": "0.2.1", 1367 | "inherits": "2.0.3" 1368 | } 1369 | }, 1370 | "http-signature": { 1371 | "version": "1.1.1", 1372 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 1373 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 1374 | "optional": true, 1375 | "requires": { 1376 | "assert-plus": "0.2.0", 1377 | "jsprim": "1.4.1", 1378 | "sshpk": "1.13.1" 1379 | } 1380 | }, 1381 | "https-browserify": { 1382 | "version": "0.0.1", 1383 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", 1384 | "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", 1385 | "dev": true 1386 | }, 1387 | "iconv-lite": { 1388 | "version": "0.4.13", 1389 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", 1390 | "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" 1391 | }, 1392 | "ieee754": { 1393 | "version": "1.1.8", 1394 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 1395 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", 1396 | "dev": true 1397 | }, 1398 | "indexof": { 1399 | "version": "0.0.1", 1400 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 1401 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 1402 | "dev": true 1403 | }, 1404 | "inherits": { 1405 | "version": "2.0.3", 1406 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1407 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1408 | "dev": true 1409 | }, 1410 | "invariant": { 1411 | "version": "2.2.2", 1412 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 1413 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 1414 | "dev": true, 1415 | "requires": { 1416 | "loose-envify": "1.3.1" 1417 | } 1418 | }, 1419 | "is-binary-path": { 1420 | "version": "1.0.1", 1421 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1422 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1423 | "dev": true, 1424 | "requires": { 1425 | "binary-extensions": "1.10.0" 1426 | } 1427 | }, 1428 | "is-buffer": { 1429 | "version": "1.1.5", 1430 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 1431 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 1432 | "dev": true 1433 | }, 1434 | "is-dotfile": { 1435 | "version": "1.0.3", 1436 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1437 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 1438 | "dev": true 1439 | }, 1440 | "is-equal-shallow": { 1441 | "version": "0.1.3", 1442 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1443 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1444 | "dev": true, 1445 | "requires": { 1446 | "is-primitive": "2.0.0" 1447 | } 1448 | }, 1449 | "is-extendable": { 1450 | "version": "0.1.1", 1451 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1452 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1453 | "dev": true 1454 | }, 1455 | "is-extglob": { 1456 | "version": "1.0.0", 1457 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1458 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1459 | "dev": true 1460 | }, 1461 | "is-finite": { 1462 | "version": "1.0.2", 1463 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1464 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1465 | "dev": true, 1466 | "requires": { 1467 | "number-is-nan": "1.0.1" 1468 | } 1469 | }, 1470 | "is-glob": { 1471 | "version": "2.0.1", 1472 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1473 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1474 | "dev": true, 1475 | "requires": { 1476 | "is-extglob": "1.0.0" 1477 | } 1478 | }, 1479 | "is-number": { 1480 | "version": "2.1.0", 1481 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1482 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1483 | "dev": true, 1484 | "requires": { 1485 | "kind-of": "3.2.2" 1486 | } 1487 | }, 1488 | "is-posix-bracket": { 1489 | "version": "0.1.1", 1490 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 1491 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 1492 | "dev": true 1493 | }, 1494 | "is-primitive": { 1495 | "version": "2.0.0", 1496 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 1497 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 1498 | "dev": true 1499 | }, 1500 | "is-typedarray": { 1501 | "version": "1.0.0", 1502 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1503 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1504 | "optional": true 1505 | }, 1506 | "isarray": { 1507 | "version": "1.0.0", 1508 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1509 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1510 | "dev": true 1511 | }, 1512 | "isobject": { 1513 | "version": "2.1.0", 1514 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1515 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1516 | "dev": true, 1517 | "requires": { 1518 | "isarray": "1.0.0" 1519 | } 1520 | }, 1521 | "isstream": { 1522 | "version": "0.1.2", 1523 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1524 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1525 | "optional": true 1526 | }, 1527 | "js-tokens": { 1528 | "version": "3.0.2", 1529 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1530 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1531 | "dev": true 1532 | }, 1533 | "jsbn": { 1534 | "version": "0.1.1", 1535 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1536 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1537 | "optional": true 1538 | }, 1539 | "jsdom": { 1540 | "version": "9.12.0", 1541 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", 1542 | "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", 1543 | "optional": true, 1544 | "requires": { 1545 | "abab": "1.0.3", 1546 | "acorn": "4.0.13", 1547 | "acorn-globals": "3.1.0", 1548 | "array-equal": "1.0.0", 1549 | "content-type-parser": "1.0.1", 1550 | "cssom": "0.3.2", 1551 | "cssstyle": "0.2.37", 1552 | "escodegen": "1.8.1", 1553 | "html-encoding-sniffer": "1.0.1", 1554 | "nwmatcher": "1.4.1", 1555 | "parse5": "1.5.1", 1556 | "request": "2.81.0", 1557 | "sax": "1.2.4", 1558 | "symbol-tree": "3.2.2", 1559 | "tough-cookie": "2.3.2", 1560 | "webidl-conversions": "4.0.2", 1561 | "whatwg-encoding": "1.0.1", 1562 | "whatwg-url": "4.8.0", 1563 | "xml-name-validator": "2.0.1" 1564 | } 1565 | }, 1566 | "jsesc": { 1567 | "version": "1.3.0", 1568 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 1569 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 1570 | "dev": true 1571 | }, 1572 | "json-schema": { 1573 | "version": "0.2.3", 1574 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1575 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 1576 | "optional": true 1577 | }, 1578 | "json-stable-stringify": { 1579 | "version": "1.0.1", 1580 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 1581 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1582 | "optional": true, 1583 | "requires": { 1584 | "jsonify": "0.0.0" 1585 | } 1586 | }, 1587 | "json-stringify-safe": { 1588 | "version": "5.0.1", 1589 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1590 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1591 | "optional": true 1592 | }, 1593 | "json5": { 1594 | "version": "0.5.1", 1595 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1596 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 1597 | "dev": true 1598 | }, 1599 | "jsonify": { 1600 | "version": "0.0.0", 1601 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 1602 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 1603 | "optional": true 1604 | }, 1605 | "jsprim": { 1606 | "version": "1.4.1", 1607 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1608 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1609 | "optional": true, 1610 | "requires": { 1611 | "assert-plus": "1.0.0", 1612 | "extsprintf": "1.3.0", 1613 | "json-schema": "0.2.3", 1614 | "verror": "1.10.0" 1615 | }, 1616 | "dependencies": { 1617 | "assert-plus": { 1618 | "version": "1.0.0", 1619 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1620 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1621 | "optional": true 1622 | } 1623 | } 1624 | }, 1625 | "kind-of": { 1626 | "version": "3.2.2", 1627 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1628 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1629 | "dev": true, 1630 | "requires": { 1631 | "is-buffer": "1.1.5" 1632 | } 1633 | }, 1634 | "lazy-cache": { 1635 | "version": "1.0.4", 1636 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 1637 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 1638 | "dev": true 1639 | }, 1640 | "levn": { 1641 | "version": "0.3.0", 1642 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1643 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1644 | "optional": true, 1645 | "requires": { 1646 | "prelude-ls": "1.1.2", 1647 | "type-check": "0.3.2" 1648 | } 1649 | }, 1650 | "lodash": { 1651 | "version": "4.17.4", 1652 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1653 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1654 | "dev": true 1655 | }, 1656 | "longest": { 1657 | "version": "1.0.1", 1658 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 1659 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 1660 | "dev": true 1661 | }, 1662 | "loose-envify": { 1663 | "version": "1.3.1", 1664 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 1665 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 1666 | "dev": true, 1667 | "requires": { 1668 | "js-tokens": "3.0.2" 1669 | } 1670 | }, 1671 | "micromatch": { 1672 | "version": "2.3.11", 1673 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 1674 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1675 | "dev": true, 1676 | "requires": { 1677 | "arr-diff": "2.0.0", 1678 | "array-unique": "0.2.1", 1679 | "braces": "1.8.5", 1680 | "expand-brackets": "0.1.5", 1681 | "extglob": "0.3.2", 1682 | "filename-regex": "2.0.1", 1683 | "is-extglob": "1.0.0", 1684 | "is-glob": "2.0.1", 1685 | "kind-of": "3.2.2", 1686 | "normalize-path": "2.1.1", 1687 | "object.omit": "2.0.1", 1688 | "parse-glob": "3.0.4", 1689 | "regex-cache": "0.4.3" 1690 | } 1691 | }, 1692 | "mime-db": { 1693 | "version": "1.29.0", 1694 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", 1695 | "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" 1696 | }, 1697 | "mime-types": { 1698 | "version": "2.1.16", 1699 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", 1700 | "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", 1701 | "requires": { 1702 | "mime-db": "1.29.0" 1703 | } 1704 | }, 1705 | "minimatch": { 1706 | "version": "3.0.4", 1707 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1708 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1709 | "dev": true, 1710 | "requires": { 1711 | "brace-expansion": "1.1.8" 1712 | } 1713 | }, 1714 | "minimist": { 1715 | "version": "0.0.8", 1716 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1717 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1718 | "dev": true 1719 | }, 1720 | "mkdirp": { 1721 | "version": "0.5.1", 1722 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1723 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1724 | "dev": true, 1725 | "requires": { 1726 | "minimist": "0.0.8" 1727 | } 1728 | }, 1729 | "ms": { 1730 | "version": "2.0.0", 1731 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1732 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1733 | "dev": true 1734 | }, 1735 | "node-libs-browser": { 1736 | "version": "0.5.3", 1737 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", 1738 | "integrity": "sha1-Ve+oiOyQes24z/xOelFxJ4DhO2o=", 1739 | "dev": true, 1740 | "requires": { 1741 | "assert": "1.4.1", 1742 | "browserify-zlib": "0.1.4", 1743 | "buffer": "3.6.0", 1744 | "console-browserify": "1.1.0", 1745 | "constants-browserify": "0.0.1", 1746 | "crypto-browserify": "3.2.8", 1747 | "domain-browser": "1.1.7", 1748 | "events": "1.1.1", 1749 | "http-browserify": "1.7.0", 1750 | "https-browserify": "0.0.0", 1751 | "os-browserify": "0.1.2", 1752 | "path-browserify": "0.0.0", 1753 | "process": "0.11.10", 1754 | "punycode": "1.4.1", 1755 | "querystring-es3": "0.2.1", 1756 | "readable-stream": "1.1.14", 1757 | "stream-browserify": "1.0.0", 1758 | "string_decoder": "0.10.31", 1759 | "timers-browserify": "1.4.2", 1760 | "tty-browserify": "0.0.0", 1761 | "url": "0.10.3", 1762 | "util": "0.10.3", 1763 | "vm-browserify": "0.0.4" 1764 | }, 1765 | "dependencies": { 1766 | "base64-js": { 1767 | "version": "0.0.8", 1768 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", 1769 | "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", 1770 | "dev": true 1771 | }, 1772 | "buffer": { 1773 | "version": "3.6.0", 1774 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", 1775 | "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", 1776 | "dev": true, 1777 | "requires": { 1778 | "base64-js": "0.0.8", 1779 | "ieee754": "1.1.8", 1780 | "isarray": "1.0.0" 1781 | } 1782 | }, 1783 | "constants-browserify": { 1784 | "version": "0.0.1", 1785 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", 1786 | "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=", 1787 | "dev": true 1788 | }, 1789 | "crypto-browserify": { 1790 | "version": "3.2.8", 1791 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", 1792 | "integrity": "sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=", 1793 | "dev": true, 1794 | "requires": { 1795 | "pbkdf2-compat": "2.0.1", 1796 | "ripemd160": "0.2.0", 1797 | "sha.js": "2.2.6" 1798 | } 1799 | }, 1800 | "https-browserify": { 1801 | "version": "0.0.0", 1802 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", 1803 | "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=", 1804 | "dev": true 1805 | }, 1806 | "os-browserify": { 1807 | "version": "0.1.2", 1808 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", 1809 | "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", 1810 | "dev": true 1811 | }, 1812 | "readable-stream": { 1813 | "version": "1.1.14", 1814 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 1815 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 1816 | "dev": true, 1817 | "requires": { 1818 | "core-util-is": "1.0.2", 1819 | "inherits": "2.0.3", 1820 | "isarray": "0.0.1", 1821 | "string_decoder": "0.10.31" 1822 | }, 1823 | "dependencies": { 1824 | "isarray": { 1825 | "version": "0.0.1", 1826 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1827 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 1828 | "dev": true 1829 | } 1830 | } 1831 | }, 1832 | "ripemd160": { 1833 | "version": "0.2.0", 1834 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", 1835 | "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", 1836 | "dev": true 1837 | }, 1838 | "sha.js": { 1839 | "version": "2.2.6", 1840 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", 1841 | "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", 1842 | "dev": true 1843 | }, 1844 | "stream-browserify": { 1845 | "version": "1.0.0", 1846 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", 1847 | "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", 1848 | "dev": true, 1849 | "requires": { 1850 | "inherits": "2.0.3", 1851 | "readable-stream": "1.1.14" 1852 | } 1853 | }, 1854 | "string_decoder": { 1855 | "version": "0.10.31", 1856 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1857 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 1858 | "dev": true 1859 | }, 1860 | "timers-browserify": { 1861 | "version": "1.4.2", 1862 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", 1863 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", 1864 | "dev": true, 1865 | "requires": { 1866 | "process": "0.11.10" 1867 | } 1868 | }, 1869 | "url": { 1870 | "version": "0.10.3", 1871 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", 1872 | "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", 1873 | "dev": true, 1874 | "requires": { 1875 | "punycode": "1.3.2", 1876 | "querystring": "0.2.0" 1877 | }, 1878 | "dependencies": { 1879 | "punycode": { 1880 | "version": "1.3.2", 1881 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 1882 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 1883 | "dev": true 1884 | } 1885 | } 1886 | } 1887 | } 1888 | }, 1889 | "normalize-path": { 1890 | "version": "2.1.1", 1891 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 1892 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1893 | "dev": true, 1894 | "requires": { 1895 | "remove-trailing-separator": "1.1.0" 1896 | } 1897 | }, 1898 | "number-is-nan": { 1899 | "version": "1.0.1", 1900 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1901 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1902 | "dev": true 1903 | }, 1904 | "nwmatcher": { 1905 | "version": "1.4.1", 1906 | "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz", 1907 | "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=", 1908 | "optional": true 1909 | }, 1910 | "oauth-sign": { 1911 | "version": "0.8.2", 1912 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 1913 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 1914 | "optional": true 1915 | }, 1916 | "object-assign": { 1917 | "version": "4.1.1", 1918 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1919 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1920 | "dev": true 1921 | }, 1922 | "object.omit": { 1923 | "version": "2.0.1", 1924 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 1925 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1926 | "dev": true, 1927 | "requires": { 1928 | "for-own": "0.1.5", 1929 | "is-extendable": "0.1.1" 1930 | } 1931 | }, 1932 | "optimist": { 1933 | "version": "0.6.1", 1934 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1935 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1936 | "dev": true, 1937 | "requires": { 1938 | "minimist": "0.0.8", 1939 | "wordwrap": "0.0.2" 1940 | } 1941 | }, 1942 | "optionator": { 1943 | "version": "0.8.2", 1944 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1945 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1946 | "optional": true, 1947 | "requires": { 1948 | "deep-is": "0.1.3", 1949 | "fast-levenshtein": "2.0.6", 1950 | "levn": "0.3.0", 1951 | "prelude-ls": "1.1.2", 1952 | "type-check": "0.3.2", 1953 | "wordwrap": "1.0.0" 1954 | }, 1955 | "dependencies": { 1956 | "wordwrap": { 1957 | "version": "1.0.0", 1958 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 1959 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 1960 | "optional": true 1961 | } 1962 | } 1963 | }, 1964 | "os-browserify": { 1965 | "version": "0.2.1", 1966 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", 1967 | "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", 1968 | "dev": true 1969 | }, 1970 | "os-homedir": { 1971 | "version": "1.0.2", 1972 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1973 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1974 | "dev": true 1975 | }, 1976 | "os-tmpdir": { 1977 | "version": "1.0.2", 1978 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1979 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1980 | "dev": true 1981 | }, 1982 | "pako": { 1983 | "version": "0.2.9", 1984 | "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", 1985 | "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", 1986 | "dev": true 1987 | }, 1988 | "parse-glob": { 1989 | "version": "3.0.4", 1990 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1991 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1992 | "dev": true, 1993 | "requires": { 1994 | "glob-base": "0.3.0", 1995 | "is-dotfile": "1.0.3", 1996 | "is-extglob": "1.0.0", 1997 | "is-glob": "2.0.1" 1998 | } 1999 | }, 2000 | "parse5": { 2001 | "version": "1.5.1", 2002 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", 2003 | "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", 2004 | "optional": true 2005 | }, 2006 | "path-browserify": { 2007 | "version": "0.0.0", 2008 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 2009 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 2010 | "dev": true 2011 | }, 2012 | "path-is-absolute": { 2013 | "version": "1.0.1", 2014 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2015 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2016 | "dev": true 2017 | }, 2018 | "pbkdf2-compat": { 2019 | "version": "2.0.1", 2020 | "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", 2021 | "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", 2022 | "dev": true 2023 | }, 2024 | "performance-now": { 2025 | "version": "0.2.0", 2026 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", 2027 | "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", 2028 | "optional": true 2029 | }, 2030 | "pinkie": { 2031 | "version": "2.0.4", 2032 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2033 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 2034 | "dev": true 2035 | }, 2036 | "pinkie-promise": { 2037 | "version": "2.0.1", 2038 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2039 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2040 | "dev": true, 2041 | "requires": { 2042 | "pinkie": "2.0.4" 2043 | } 2044 | }, 2045 | "prelude-ls": { 2046 | "version": "1.1.2", 2047 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 2048 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" 2049 | }, 2050 | "preserve": { 2051 | "version": "0.2.0", 2052 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 2053 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 2054 | "dev": true 2055 | }, 2056 | "private": { 2057 | "version": "0.1.7", 2058 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", 2059 | "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", 2060 | "dev": true 2061 | }, 2062 | "process": { 2063 | "version": "0.11.10", 2064 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2065 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 2066 | "dev": true 2067 | }, 2068 | "process-nextick-args": { 2069 | "version": "1.0.7", 2070 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 2071 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 2072 | "dev": true 2073 | }, 2074 | "prr": { 2075 | "version": "0.0.0", 2076 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 2077 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", 2078 | "dev": true 2079 | }, 2080 | "punycode": { 2081 | "version": "1.4.1", 2082 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2083 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 2084 | }, 2085 | "qs": { 2086 | "version": "6.4.0", 2087 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 2088 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", 2089 | "optional": true 2090 | }, 2091 | "querystring": { 2092 | "version": "0.2.0", 2093 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 2094 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 2095 | "dev": true 2096 | }, 2097 | "querystring-es3": { 2098 | "version": "0.2.1", 2099 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 2100 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 2101 | "dev": true 2102 | }, 2103 | "randomatic": { 2104 | "version": "1.1.7", 2105 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 2106 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 2107 | "dev": true, 2108 | "requires": { 2109 | "is-number": "3.0.0", 2110 | "kind-of": "4.0.0" 2111 | }, 2112 | "dependencies": { 2113 | "is-number": { 2114 | "version": "3.0.0", 2115 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2116 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2117 | "dev": true, 2118 | "requires": { 2119 | "kind-of": "3.2.2" 2120 | }, 2121 | "dependencies": { 2122 | "kind-of": { 2123 | "version": "3.2.2", 2124 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2125 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2126 | "dev": true, 2127 | "requires": { 2128 | "is-buffer": "1.1.5" 2129 | } 2130 | } 2131 | } 2132 | }, 2133 | "kind-of": { 2134 | "version": "4.0.0", 2135 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2136 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2137 | "dev": true, 2138 | "requires": { 2139 | "is-buffer": "1.1.5" 2140 | } 2141 | } 2142 | } 2143 | }, 2144 | "readable-stream": { 2145 | "version": "2.3.3", 2146 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 2147 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 2148 | "dev": true, 2149 | "requires": { 2150 | "core-util-is": "1.0.2", 2151 | "inherits": "2.0.3", 2152 | "isarray": "1.0.0", 2153 | "process-nextick-args": "1.0.7", 2154 | "safe-buffer": "5.1.1", 2155 | "string_decoder": "1.0.3", 2156 | "util-deprecate": "1.0.2" 2157 | } 2158 | }, 2159 | "readdirp": { 2160 | "version": "2.1.0", 2161 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 2162 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 2163 | "dev": true, 2164 | "requires": { 2165 | "graceful-fs": "4.1.11", 2166 | "minimatch": "3.0.4", 2167 | "readable-stream": "2.3.3", 2168 | "set-immediate-shim": "1.0.1" 2169 | } 2170 | }, 2171 | "regenerate": { 2172 | "version": "1.3.2", 2173 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", 2174 | "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", 2175 | "dev": true 2176 | }, 2177 | "regenerator-runtime": { 2178 | "version": "0.11.0", 2179 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 2180 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", 2181 | "dev": true 2182 | }, 2183 | "regenerator-transform": { 2184 | "version": "0.10.1", 2185 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 2186 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 2187 | "dev": true, 2188 | "requires": { 2189 | "babel-runtime": "6.26.0", 2190 | "babel-types": "6.26.0", 2191 | "private": "0.1.7" 2192 | } 2193 | }, 2194 | "regex-cache": { 2195 | "version": "0.4.3", 2196 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", 2197 | "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", 2198 | "dev": true, 2199 | "requires": { 2200 | "is-equal-shallow": "0.1.3", 2201 | "is-primitive": "2.0.0" 2202 | } 2203 | }, 2204 | "regexpu-core": { 2205 | "version": "2.0.0", 2206 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 2207 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 2208 | "dev": true, 2209 | "requires": { 2210 | "regenerate": "1.3.2", 2211 | "regjsgen": "0.2.0", 2212 | "regjsparser": "0.1.5" 2213 | } 2214 | }, 2215 | "regjsgen": { 2216 | "version": "0.2.0", 2217 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 2218 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 2219 | "dev": true 2220 | }, 2221 | "regjsparser": { 2222 | "version": "0.1.5", 2223 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 2224 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 2225 | "dev": true, 2226 | "requires": { 2227 | "jsesc": "0.5.0" 2228 | }, 2229 | "dependencies": { 2230 | "jsesc": { 2231 | "version": "0.5.0", 2232 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2233 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2234 | "dev": true 2235 | } 2236 | } 2237 | }, 2238 | "remove-trailing-separator": { 2239 | "version": "1.1.0", 2240 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 2241 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 2242 | "dev": true 2243 | }, 2244 | "repeat-element": { 2245 | "version": "1.1.2", 2246 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 2247 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 2248 | "dev": true 2249 | }, 2250 | "repeat-string": { 2251 | "version": "1.6.1", 2252 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2253 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2254 | "dev": true 2255 | }, 2256 | "repeating": { 2257 | "version": "2.0.1", 2258 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2259 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2260 | "dev": true, 2261 | "requires": { 2262 | "is-finite": "1.0.2" 2263 | } 2264 | }, 2265 | "request": { 2266 | "version": "2.81.0", 2267 | "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", 2268 | "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", 2269 | "optional": true, 2270 | "requires": { 2271 | "aws-sign2": "0.6.0", 2272 | "aws4": "1.6.0", 2273 | "caseless": "0.12.0", 2274 | "combined-stream": "1.0.5", 2275 | "extend": "3.0.1", 2276 | "forever-agent": "0.6.1", 2277 | "form-data": "2.1.4", 2278 | "har-validator": "4.2.1", 2279 | "hawk": "3.1.3", 2280 | "http-signature": "1.1.1", 2281 | "is-typedarray": "1.0.0", 2282 | "isstream": "0.1.2", 2283 | "json-stringify-safe": "5.0.1", 2284 | "mime-types": "2.1.16", 2285 | "oauth-sign": "0.8.2", 2286 | "performance-now": "0.2.0", 2287 | "qs": "6.4.0", 2288 | "safe-buffer": "5.1.1", 2289 | "stringstream": "0.0.5", 2290 | "tough-cookie": "2.3.2", 2291 | "tunnel-agent": "0.6.0", 2292 | "uuid": "3.1.0" 2293 | } 2294 | }, 2295 | "right-align": { 2296 | "version": "0.1.3", 2297 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 2298 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 2299 | "dev": true, 2300 | "requires": { 2301 | "align-text": "0.1.4" 2302 | } 2303 | }, 2304 | "safe-buffer": { 2305 | "version": "5.1.1", 2306 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2307 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 2308 | }, 2309 | "sax": { 2310 | "version": "1.2.4", 2311 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 2312 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 2313 | "optional": true 2314 | }, 2315 | "set-immediate-shim": { 2316 | "version": "1.0.1", 2317 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 2318 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 2319 | "dev": true 2320 | }, 2321 | "setimmediate": { 2322 | "version": "1.0.5", 2323 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 2324 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 2325 | "dev": true 2326 | }, 2327 | "slash": { 2328 | "version": "1.0.0", 2329 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 2330 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 2331 | "dev": true 2332 | }, 2333 | "sntp": { 2334 | "version": "1.0.9", 2335 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", 2336 | "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", 2337 | "optional": true, 2338 | "requires": { 2339 | "hoek": "2.16.3" 2340 | } 2341 | }, 2342 | "source-map": { 2343 | "version": "0.5.7", 2344 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2345 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2346 | "dev": true 2347 | }, 2348 | "source-map-support": { 2349 | "version": "0.4.16", 2350 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz", 2351 | "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==", 2352 | "dev": true, 2353 | "requires": { 2354 | "source-map": "0.5.7" 2355 | } 2356 | }, 2357 | "sshpk": { 2358 | "version": "1.13.1", 2359 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 2360 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 2361 | "optional": true, 2362 | "requires": { 2363 | "asn1": "0.2.3", 2364 | "assert-plus": "1.0.0", 2365 | "bcrypt-pbkdf": "1.0.1", 2366 | "dashdash": "1.14.1", 2367 | "ecc-jsbn": "0.1.1", 2368 | "getpass": "0.1.7", 2369 | "jsbn": "0.1.1", 2370 | "tweetnacl": "0.14.5" 2371 | }, 2372 | "dependencies": { 2373 | "assert-plus": { 2374 | "version": "1.0.0", 2375 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2376 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2377 | "optional": true 2378 | } 2379 | } 2380 | }, 2381 | "stream-browserify": { 2382 | "version": "2.0.1", 2383 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 2384 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 2385 | "dev": true, 2386 | "requires": { 2387 | "inherits": "2.0.3", 2388 | "readable-stream": "2.3.3" 2389 | } 2390 | }, 2391 | "stream-http": { 2392 | "version": "2.7.2", 2393 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", 2394 | "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", 2395 | "dev": true, 2396 | "requires": { 2397 | "builtin-status-codes": "3.0.0", 2398 | "inherits": "2.0.3", 2399 | "readable-stream": "2.3.3", 2400 | "to-arraybuffer": "1.0.1", 2401 | "xtend": "4.0.1" 2402 | } 2403 | }, 2404 | "string_decoder": { 2405 | "version": "1.0.3", 2406 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2407 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2408 | "dev": true, 2409 | "requires": { 2410 | "safe-buffer": "5.1.1" 2411 | } 2412 | }, 2413 | "stringstream": { 2414 | "version": "0.0.5", 2415 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2416 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 2417 | "optional": true 2418 | }, 2419 | "strip-ansi": { 2420 | "version": "3.0.1", 2421 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2422 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2423 | "dev": true, 2424 | "requires": { 2425 | "ansi-regex": "2.1.1" 2426 | } 2427 | }, 2428 | "supports-color": { 2429 | "version": "2.0.0", 2430 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2431 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2432 | "dev": true 2433 | }, 2434 | "symbol-tree": { 2435 | "version": "3.2.2", 2436 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", 2437 | "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", 2438 | "optional": true 2439 | }, 2440 | "timers-browserify": { 2441 | "version": "2.0.4", 2442 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", 2443 | "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", 2444 | "dev": true, 2445 | "requires": { 2446 | "setimmediate": "1.0.5" 2447 | } 2448 | }, 2449 | "to-arraybuffer": { 2450 | "version": "1.0.1", 2451 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 2452 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 2453 | "dev": true 2454 | }, 2455 | "to-fast-properties": { 2456 | "version": "1.0.3", 2457 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 2458 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 2459 | "dev": true 2460 | }, 2461 | "tough-cookie": { 2462 | "version": "2.3.2", 2463 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", 2464 | "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", 2465 | "requires": { 2466 | "punycode": "1.4.1" 2467 | } 2468 | }, 2469 | "tr46": { 2470 | "version": "0.0.3", 2471 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2472 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", 2473 | "optional": true 2474 | }, 2475 | "trim-right": { 2476 | "version": "1.0.1", 2477 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2478 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 2479 | "dev": true 2480 | }, 2481 | "tty-browserify": { 2482 | "version": "0.0.0", 2483 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 2484 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 2485 | "dev": true 2486 | }, 2487 | "tunnel-agent": { 2488 | "version": "0.6.0", 2489 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2490 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2491 | "optional": true, 2492 | "requires": { 2493 | "safe-buffer": "5.1.1" 2494 | } 2495 | }, 2496 | "tweetnacl": { 2497 | "version": "0.14.5", 2498 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2499 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2500 | "optional": true 2501 | }, 2502 | "type-check": { 2503 | "version": "0.3.2", 2504 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2505 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2506 | "requires": { 2507 | "prelude-ls": "1.1.2" 2508 | } 2509 | }, 2510 | "uglify-to-browserify": { 2511 | "version": "1.0.2", 2512 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 2513 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 2514 | "dev": true 2515 | }, 2516 | "url": { 2517 | "version": "0.11.0", 2518 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 2519 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 2520 | "dev": true, 2521 | "requires": { 2522 | "punycode": "1.3.2", 2523 | "querystring": "0.2.0" 2524 | }, 2525 | "dependencies": { 2526 | "punycode": { 2527 | "version": "1.3.2", 2528 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 2529 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 2530 | "dev": true 2531 | } 2532 | } 2533 | }, 2534 | "util": { 2535 | "version": "0.10.3", 2536 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 2537 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 2538 | "dev": true, 2539 | "requires": { 2540 | "inherits": "2.0.1" 2541 | }, 2542 | "dependencies": { 2543 | "inherits": { 2544 | "version": "2.0.1", 2545 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 2546 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 2547 | "dev": true 2548 | } 2549 | } 2550 | }, 2551 | "util-deprecate": { 2552 | "version": "1.0.2", 2553 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2554 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2555 | "dev": true 2556 | }, 2557 | "uuid": { 2558 | "version": "3.1.0", 2559 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 2560 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 2561 | "optional": true 2562 | }, 2563 | "verror": { 2564 | "version": "1.10.0", 2565 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2566 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2567 | "optional": true, 2568 | "requires": { 2569 | "assert-plus": "1.0.0", 2570 | "core-util-is": "1.0.2", 2571 | "extsprintf": "1.3.0" 2572 | }, 2573 | "dependencies": { 2574 | "assert-plus": { 2575 | "version": "1.0.0", 2576 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2577 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2578 | "optional": true 2579 | } 2580 | } 2581 | }, 2582 | "vm-browserify": { 2583 | "version": "0.0.4", 2584 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 2585 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 2586 | "dev": true, 2587 | "requires": { 2588 | "indexof": "0.0.1" 2589 | } 2590 | }, 2591 | "webidl-conversions": { 2592 | "version": "4.0.2", 2593 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 2594 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 2595 | "optional": true 2596 | }, 2597 | "webpack": { 2598 | "version": "1.15.0", 2599 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", 2600 | "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", 2601 | "dev": true, 2602 | "requires": { 2603 | "acorn": "3.3.0", 2604 | "async": "1.5.2", 2605 | "clone": "1.0.2", 2606 | "enhanced-resolve": "0.9.1", 2607 | "interpret": "0.6.6", 2608 | "loader-utils": "0.2.17", 2609 | "memory-fs": "0.3.0", 2610 | "mkdirp": "0.5.1", 2611 | "node-libs-browser": "0.7.0", 2612 | "optimist": "0.6.1", 2613 | "supports-color": "3.2.3", 2614 | "tapable": "0.1.10", 2615 | "uglify-js": "2.7.5", 2616 | "watchpack": "0.2.9", 2617 | "webpack-core": "0.6.9" 2618 | }, 2619 | "dependencies": { 2620 | "acorn": { 2621 | "version": "3.3.0", 2622 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 2623 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 2624 | "dev": true 2625 | }, 2626 | "async": { 2627 | "version": "1.5.2", 2628 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 2629 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 2630 | "dev": true 2631 | }, 2632 | "browserify-aes": { 2633 | "version": "0.4.0", 2634 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", 2635 | "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", 2636 | "dev": true, 2637 | "requires": { 2638 | "inherits": "2.0.3" 2639 | } 2640 | }, 2641 | "crypto-browserify": { 2642 | "version": "3.3.0", 2643 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", 2644 | "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", 2645 | "dev": true, 2646 | "requires": { 2647 | "browserify-aes": "0.4.0", 2648 | "pbkdf2-compat": "2.0.1", 2649 | "ripemd160": "0.2.0", 2650 | "sha.js": "2.2.6" 2651 | } 2652 | }, 2653 | "enhanced-resolve": { 2654 | "version": "0.9.1", 2655 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", 2656 | "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", 2657 | "dev": true, 2658 | "requires": { 2659 | "graceful-fs": "4.1.11", 2660 | "memory-fs": "0.2.0", 2661 | "tapable": "0.1.10" 2662 | }, 2663 | "dependencies": { 2664 | "memory-fs": { 2665 | "version": "0.2.0", 2666 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", 2667 | "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", 2668 | "dev": true 2669 | } 2670 | } 2671 | }, 2672 | "has-flag": { 2673 | "version": "1.0.0", 2674 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 2675 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 2676 | "dev": true 2677 | }, 2678 | "interpret": { 2679 | "version": "0.6.6", 2680 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", 2681 | "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", 2682 | "dev": true 2683 | }, 2684 | "loader-utils": { 2685 | "version": "0.2.17", 2686 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", 2687 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", 2688 | "dev": true, 2689 | "requires": { 2690 | "big.js": "3.1.3", 2691 | "emojis-list": "2.1.0", 2692 | "json5": "0.5.1", 2693 | "object-assign": "4.1.1" 2694 | } 2695 | }, 2696 | "memory-fs": { 2697 | "version": "0.3.0", 2698 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", 2699 | "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", 2700 | "dev": true, 2701 | "requires": { 2702 | "errno": "0.1.4", 2703 | "readable-stream": "2.3.3" 2704 | } 2705 | }, 2706 | "node-libs-browser": { 2707 | "version": "0.7.0", 2708 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", 2709 | "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", 2710 | "dev": true, 2711 | "requires": { 2712 | "assert": "1.4.1", 2713 | "browserify-zlib": "0.1.4", 2714 | "buffer": "4.9.1", 2715 | "console-browserify": "1.1.0", 2716 | "constants-browserify": "1.0.0", 2717 | "crypto-browserify": "3.3.0", 2718 | "domain-browser": "1.1.7", 2719 | "events": "1.1.1", 2720 | "https-browserify": "0.0.1", 2721 | "os-browserify": "0.2.1", 2722 | "path-browserify": "0.0.0", 2723 | "process": "0.11.10", 2724 | "punycode": "1.4.1", 2725 | "querystring-es3": "0.2.1", 2726 | "readable-stream": "2.3.3", 2727 | "stream-browserify": "2.0.1", 2728 | "stream-http": "2.7.2", 2729 | "string_decoder": "0.10.31", 2730 | "timers-browserify": "2.0.4", 2731 | "tty-browserify": "0.0.0", 2732 | "url": "0.11.0", 2733 | "util": "0.10.3", 2734 | "vm-browserify": "0.0.4" 2735 | } 2736 | }, 2737 | "ripemd160": { 2738 | "version": "0.2.0", 2739 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", 2740 | "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", 2741 | "dev": true 2742 | }, 2743 | "sha.js": { 2744 | "version": "2.2.6", 2745 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", 2746 | "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", 2747 | "dev": true 2748 | }, 2749 | "string_decoder": { 2750 | "version": "0.10.31", 2751 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2752 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 2753 | "dev": true 2754 | }, 2755 | "supports-color": { 2756 | "version": "3.2.3", 2757 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 2758 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 2759 | "dev": true, 2760 | "requires": { 2761 | "has-flag": "1.0.0" 2762 | } 2763 | }, 2764 | "tapable": { 2765 | "version": "0.1.10", 2766 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", 2767 | "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", 2768 | "dev": true 2769 | }, 2770 | "uglify-js": { 2771 | "version": "2.7.5", 2772 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", 2773 | "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", 2774 | "dev": true, 2775 | "requires": { 2776 | "async": "0.2.10", 2777 | "source-map": "0.5.7", 2778 | "uglify-to-browserify": "1.0.2", 2779 | "yargs": "3.10.0" 2780 | }, 2781 | "dependencies": { 2782 | "async": { 2783 | "version": "0.2.10", 2784 | "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", 2785 | "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", 2786 | "dev": true 2787 | } 2788 | } 2789 | }, 2790 | "watchpack": { 2791 | "version": "0.2.9", 2792 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", 2793 | "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", 2794 | "dev": true, 2795 | "requires": { 2796 | "async": "0.9.2", 2797 | "chokidar": "1.7.0", 2798 | "graceful-fs": "4.1.11" 2799 | }, 2800 | "dependencies": { 2801 | "async": { 2802 | "version": "0.9.2", 2803 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 2804 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", 2805 | "dev": true 2806 | } 2807 | } 2808 | }, 2809 | "yargs": { 2810 | "version": "3.10.0", 2811 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 2812 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 2813 | "dev": true, 2814 | "requires": { 2815 | "camelcase": "1.2.1", 2816 | "cliui": "2.1.0", 2817 | "decamelize": "1.2.0", 2818 | "window-size": "0.1.0" 2819 | } 2820 | } 2821 | } 2822 | }, 2823 | "webpack-core": { 2824 | "version": "0.6.9", 2825 | "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", 2826 | "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", 2827 | "dev": true, 2828 | "requires": { 2829 | "source-list-map": "0.1.8", 2830 | "source-map": "0.4.4" 2831 | }, 2832 | "dependencies": { 2833 | "source-list-map": { 2834 | "version": "0.1.8", 2835 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", 2836 | "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", 2837 | "dev": true 2838 | }, 2839 | "source-map": { 2840 | "version": "0.4.4", 2841 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 2842 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 2843 | "dev": true, 2844 | "requires": { 2845 | "amdefine": "1.0.1" 2846 | } 2847 | } 2848 | } 2849 | }, 2850 | "whatwg-encoding": { 2851 | "version": "1.0.1", 2852 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", 2853 | "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", 2854 | "requires": { 2855 | "iconv-lite": "0.4.13" 2856 | } 2857 | }, 2858 | "whatwg-url": { 2859 | "version": "4.8.0", 2860 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", 2861 | "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", 2862 | "optional": true, 2863 | "requires": { 2864 | "tr46": "0.0.3", 2865 | "webidl-conversions": "3.0.1" 2866 | }, 2867 | "dependencies": { 2868 | "webidl-conversions": { 2869 | "version": "3.0.1", 2870 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2871 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", 2872 | "optional": true 2873 | } 2874 | } 2875 | }, 2876 | "window-size": { 2877 | "version": "0.1.0", 2878 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 2879 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 2880 | "dev": true 2881 | }, 2882 | "wordwrap": { 2883 | "version": "0.0.2", 2884 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 2885 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 2886 | "dev": true 2887 | }, 2888 | "xml-name-validator": { 2889 | "version": "2.0.1", 2890 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", 2891 | "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", 2892 | "optional": true 2893 | }, 2894 | "xmldom": { 2895 | "version": "0.1.27", 2896 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", 2897 | "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", 2898 | "optional": true 2899 | }, 2900 | "xtend": { 2901 | "version": "4.0.1", 2902 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2903 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 2904 | "dev": true 2905 | } 2906 | } 2907 | } 2908 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fabricjs-pathfinding", 3 | "version": "1.1.1", 4 | "description": "Pathfinding based in Fabricjs", 5 | "scripts": { 6 | "start": "webpack --watch" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/kevoj/fabricjs-pathfinding.git" 11 | }, 12 | "author": "Leonardo Rico Guevara - https://github.com/kevoj", 13 | "license": "MIT", 14 | "keywords": [ 15 | "Pathfinding", 16 | "fabricjs" 17 | ], 18 | "devDependencies": { 19 | "babel-core": "^6.0.20", 20 | "babel-loader": "^6.0.1", 21 | "babel-preset-es2015": "^6.0.15", 22 | "node-libs-browser": "^0.5.3", 23 | "webpack": "^1.12.2" 24 | }, 25 | "dependencies": { 26 | "easystarjs": "^0.4.1", 27 | "fabric": "^2.0.0-beta.6" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import easystarjs from 'easystarjs'; 2 | import { fabric } from 'fabric'; 3 | 4 | // Map 5 | 6 | const mapData = [ 7 | [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], 8 | [1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1], 9 | [1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1], 10 | [1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1], 11 | [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1], 12 | [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], 13 | [1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1], 14 | [1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1], 15 | [1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1], 16 | [1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1], 17 | [1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], 18 | [1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1], 19 | [1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1], 20 | [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1], 21 | [1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1], 22 | [1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], 23 | [0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1], 24 | [0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1] 25 | ] 26 | 27 | // Canvas 28 | let canvas; 29 | 30 | // Easystar 31 | let easystar; 32 | 33 | // selected 34 | let selected; 35 | 36 | // Size 37 | let size = 30; 38 | 39 | // Position 40 | let position = { 41 | x: 0, 42 | y: 0, 43 | cx: 0, 44 | cy: 0, 45 | } 46 | 47 | // Possible tile types 48 | const TILE_TYPES = { 49 | 0: { name: 'Sea', color: 'lightBlue' }, 50 | 1: { name: 'Land', color: '#8bc34a' } 51 | } 52 | 53 | /** 54 | Init class 55 | */ 56 | class Init { 57 | 58 | constructor(ctx) { 59 | canvas = new fabric.Canvas(ctx, { 60 | hoverCursor: 'pointer', 61 | selection: true, 62 | selectionBorderColor: 'blue' 63 | }); 64 | canvas.setWidth(mapData[0].length * size); 65 | canvas.setHeight(mapData.length * size); 66 | 67 | canvas.on({ 68 | 69 | 'mouse:up': (e) => { 70 | if (e.target) { 71 | let to = e.target; 72 | position.x = this.round(to.left); 73 | position.y = this.round(to.top); 74 | 75 | if (selected) { 76 | position.cx = this.round(selected.left); 77 | position.cy = this.round(selected.top); 78 | if (position.x != position.cx || position.y != position.cy) { 79 | new PathFinding().move(); 80 | } 81 | } 82 | } 83 | }, 84 | 'object:selected': (e) => { 85 | selected = e.target; 86 | }, 87 | 'selection:cleared': (e) => { 88 | } 89 | }) 90 | } 91 | 92 | draw() { 93 | new Map().draw(); 94 | } 95 | 96 | round(val) { 97 | return Math.round(val / size); 98 | } 99 | 100 | } 101 | 102 | /** 103 | Tile class 104 | */ 105 | class Tile { 106 | 107 | constructor(size, type) { 108 | this.size = size 109 | this.type = type 110 | } 111 | 112 | draw(x, y) { 113 | // Store positions 114 | const xPos = x * this.size 115 | const yPos = y * this.size 116 | // Draw tile 117 | let character = new fabric.Rect({ 118 | width: this.size, height: this.size, left: xPos, top: yPos, angle: 0, 119 | fill: this.type.color, 120 | strokeWidth: 0.1, 121 | stroke: '#333', 122 | selectable: false 123 | }); 124 | canvas.add(character); 125 | } 126 | } 127 | 128 | /** 129 | Map class 130 | */ 131 | class Map { 132 | 133 | draw() { 134 | const numCols = mapData[0].length 135 | const numRows = mapData.length 136 | // Iterate through map data and draw each tile 137 | for (let y = 0; y < numRows; y++) { 138 | for (let x = 0; x < numCols; x++) { 139 | // Get tile ID from map data 140 | const tileId = mapData[y][x] 141 | // Use tile ID to determine tile type from TILE_TYPES (i.e. Sea or Land) 142 | const tileType = TILE_TYPES[tileId] 143 | // Create tile instance and draw to our canvas 144 | new Tile(size, tileType).draw(x, y) 145 | } 146 | } 147 | } 148 | 149 | } 150 | 151 | /** 152 | Map PathFinding 153 | */ 154 | class PathFinding { 155 | 156 | constructor() { 157 | easystar = new easystarjs.js(); 158 | easystar.setGrid(mapData); 159 | easystar.setAcceptableTiles([1]); 160 | } 161 | 162 | point() { 163 | this.point = new fabric.Rect({ 164 | width: size, 165 | height: size, 166 | left: 0, 167 | top: 0, 168 | fill: '#ff5722', 169 | strokeWidth: 0.1, 170 | stroke: '#333', 171 | lockMovementX: true, 172 | lockMovementY: true, 173 | transparentCorners: false, 174 | cornerStyle: 'circle', 175 | hasRotatingPoint: false, 176 | selectable: false 177 | }); 178 | canvas.add(this.point); 179 | selected = this.point; 180 | } 181 | 182 | move() { 183 | // console.log(position); 184 | easystar.findPath(position.cx, position.cy, position.x, position.y, (path) => { 185 | // console.log(path); 186 | if (path) { 187 | (function loop(i) { 188 | const promise = new Promise((resolve, reject) => { 189 | selected.animate({ top: path[i].y * size, left: path[i].x * size }, { 190 | duration: 150, 191 | onChange: canvas.renderAll.bind(canvas), 192 | onComplete: () => { 193 | resolve(); 194 | }, 195 | easing: fabric.util.ease['easeOutCubic'] 196 | }); 197 | }).then(() => i >= path.length - 1 || loop(i + 1)); 198 | })(0); 199 | } else { 200 | alert('Not posible :('); 201 | } 202 | }); 203 | easystar.calculate(); 204 | } 205 | 206 | } 207 | 208 | new Init('canvas').draw(); 209 | new PathFinding().point(); -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | 2 | const path = require('path'); 3 | const webpack = require('webpack'); 4 | 5 | module.exports = { 6 | entry: './src/index.js', 7 | output: { 8 | path: __dirname, 9 | filename: 'bundle.js' 10 | }, 11 | module: { 12 | loaders: [ 13 | { 14 | loader: 'babel-loader', 15 | test: path.join(__dirname, 'src'), 16 | query: { 17 | presets: 'es2015', 18 | }, 19 | } 20 | ] 21 | }, 22 | plugins: [ 23 | // Avoid publishing files when compilation fails 24 | new webpack.NoErrorsPlugin() 25 | ], 26 | stats: { 27 | // Nice colored output 28 | colors: true 29 | }, 30 | // Create Sourcemaps for the bundle 31 | devtool: 'source-map', 32 | }; --------------------------------------------------------------------------------