├── .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 | 
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 | };
--------------------------------------------------------------------------------