├── .babelrc
├── .gitignore
├── LICENSE
├── README.md
├── demo.png
├── dist
├── gradientify.min.js
└── index.js
├── logo.png
├── package-lock.json
├── package.json
├── src
└── index.ts
└── tsconfig.json
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "module": {
4 | "presets": [
5 | "@babel/preset-typescript",
6 | "@babel/preset-env"
7 | ],
8 | "plugins": [
9 | "transform-object-rest-spread",
10 | "transform-class-properties",
11 | "@babel/plugin-transform-modules-commonjs"
12 | ]
13 | },
14 | "commonjs": {
15 | "presets": [
16 | "@babel/preset-typescript",
17 | "@babel/preset-env",
18 | "minify"
19 | ],
20 | "plugins": [
21 | "transform-object-rest-spread",
22 | "transform-class-properties",
23 | [
24 | "remove-import-export",
25 | {
26 | "removeImport": true,
27 | "removeExport": true,
28 | "removeExportDefault": false,
29 | "preseveNamedDeclaration": true
30 | }
31 | ]
32 | ]
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Karol Świerczek
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.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | Create beautiful, animated gradients with ease.
4 |
5 | Ever wanted to animate a gradient background, but CSS transitions disappointed you with their lack of this in-extremely-high-demand functionality? Worry no more!
6 |
7 |
8 | DEMO
9 |
10 |
11 | ## Installation
12 |
13 | For wizards:
14 | ```
15 | npm i gradientify
16 | ```
17 |
18 |
19 | For less-experienced wizards:
20 | ```html
21 |
22 | ```
23 |
24 | ## Usage
25 |
26 | ```javascript
27 | let gradientify = new Gradientify(
28 | '.yourClass',
29 | [
30 | "linear-gradient(60deg, rgb(255, 0, 0), rgb(0, 0, 255))", // Array of CSS gradients
31 | "linear-gradient(10deg, rgb(25, 123, 23), #ff22af)",
32 | "radial-gradient(rgb(25, 123, 223), red)"
33 | ],
34 | 3000 // Fading interval in miliseconds
35 | )
36 | ```
37 |
38 |
39 |
--------------------------------------------------------------------------------
/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karolsw3/gradientify/2c866618809bad90687cc8b0b137fed9cf94bfe4/demo.png
--------------------------------------------------------------------------------
/dist/gradientify.min.js:
--------------------------------------------------------------------------------
1 | "use strict";function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit(a,b){if(Symbol.iterator in Object(a)||"[object Arguments]"===Object.prototype.toString.call(a)){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!(b&&c.length===b));d=!0);}catch(a){e=!0,f=a}finally{try{d||null==h["return"]||h["return"]()}finally{if(e)throw f}}return c}}function _arrayWithHoles(a){if(Array.isArray(a))return a}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d= 2.1.2 < 3"
2225 | }
2226 | },
2227 | "ignore-walk": {
2228 | "version": "3.0.3",
2229 | "bundled": true,
2230 | "dev": true,
2231 | "optional": true,
2232 | "requires": {
2233 | "minimatch": "^3.0.4"
2234 | }
2235 | },
2236 | "inflight": {
2237 | "version": "1.0.6",
2238 | "bundled": true,
2239 | "dev": true,
2240 | "optional": true,
2241 | "requires": {
2242 | "once": "^1.3.0",
2243 | "wrappy": "1"
2244 | }
2245 | },
2246 | "inherits": {
2247 | "version": "2.0.4",
2248 | "bundled": true,
2249 | "dev": true,
2250 | "optional": true
2251 | },
2252 | "ini": {
2253 | "version": "1.3.5",
2254 | "bundled": true,
2255 | "dev": true,
2256 | "optional": true
2257 | },
2258 | "is-fullwidth-code-point": {
2259 | "version": "1.0.0",
2260 | "bundled": true,
2261 | "dev": true,
2262 | "optional": true,
2263 | "requires": {
2264 | "number-is-nan": "^1.0.0"
2265 | }
2266 | },
2267 | "isarray": {
2268 | "version": "1.0.0",
2269 | "bundled": true,
2270 | "dev": true,
2271 | "optional": true
2272 | },
2273 | "minimatch": {
2274 | "version": "3.0.4",
2275 | "bundled": true,
2276 | "dev": true,
2277 | "optional": true,
2278 | "requires": {
2279 | "brace-expansion": "^1.1.7"
2280 | }
2281 | },
2282 | "minimist": {
2283 | "version": "0.0.8",
2284 | "bundled": true,
2285 | "dev": true,
2286 | "optional": true
2287 | },
2288 | "minipass": {
2289 | "version": "2.9.0",
2290 | "bundled": true,
2291 | "dev": true,
2292 | "optional": true,
2293 | "requires": {
2294 | "safe-buffer": "^5.1.2",
2295 | "yallist": "^3.0.0"
2296 | }
2297 | },
2298 | "minizlib": {
2299 | "version": "1.3.3",
2300 | "bundled": true,
2301 | "dev": true,
2302 | "optional": true,
2303 | "requires": {
2304 | "minipass": "^2.9.0"
2305 | }
2306 | },
2307 | "mkdirp": {
2308 | "version": "0.5.1",
2309 | "bundled": true,
2310 | "dev": true,
2311 | "optional": true,
2312 | "requires": {
2313 | "minimist": "0.0.8"
2314 | }
2315 | },
2316 | "ms": {
2317 | "version": "2.1.2",
2318 | "bundled": true,
2319 | "dev": true,
2320 | "optional": true
2321 | },
2322 | "needle": {
2323 | "version": "2.4.0",
2324 | "bundled": true,
2325 | "dev": true,
2326 | "optional": true,
2327 | "requires": {
2328 | "debug": "^3.2.6",
2329 | "iconv-lite": "^0.4.4",
2330 | "sax": "^1.2.4"
2331 | }
2332 | },
2333 | "node-pre-gyp": {
2334 | "version": "0.14.0",
2335 | "bundled": true,
2336 | "dev": true,
2337 | "optional": true,
2338 | "requires": {
2339 | "detect-libc": "^1.0.2",
2340 | "mkdirp": "^0.5.1",
2341 | "needle": "^2.2.1",
2342 | "nopt": "^4.0.1",
2343 | "npm-packlist": "^1.1.6",
2344 | "npmlog": "^4.0.2",
2345 | "rc": "^1.2.7",
2346 | "rimraf": "^2.6.1",
2347 | "semver": "^5.3.0",
2348 | "tar": "^4.4.2"
2349 | }
2350 | },
2351 | "nopt": {
2352 | "version": "4.0.1",
2353 | "bundled": true,
2354 | "dev": true,
2355 | "optional": true,
2356 | "requires": {
2357 | "abbrev": "1",
2358 | "osenv": "^0.1.4"
2359 | }
2360 | },
2361 | "npm-bundled": {
2362 | "version": "1.1.1",
2363 | "bundled": true,
2364 | "dev": true,
2365 | "optional": true,
2366 | "requires": {
2367 | "npm-normalize-package-bin": "^1.0.1"
2368 | }
2369 | },
2370 | "npm-normalize-package-bin": {
2371 | "version": "1.0.1",
2372 | "bundled": true,
2373 | "dev": true,
2374 | "optional": true
2375 | },
2376 | "npm-packlist": {
2377 | "version": "1.4.7",
2378 | "bundled": true,
2379 | "dev": true,
2380 | "optional": true,
2381 | "requires": {
2382 | "ignore-walk": "^3.0.1",
2383 | "npm-bundled": "^1.0.1"
2384 | }
2385 | },
2386 | "npmlog": {
2387 | "version": "4.1.2",
2388 | "bundled": true,
2389 | "dev": true,
2390 | "optional": true,
2391 | "requires": {
2392 | "are-we-there-yet": "~1.1.2",
2393 | "console-control-strings": "~1.1.0",
2394 | "gauge": "~2.7.3",
2395 | "set-blocking": "~2.0.0"
2396 | }
2397 | },
2398 | "number-is-nan": {
2399 | "version": "1.0.1",
2400 | "bundled": true,
2401 | "dev": true,
2402 | "optional": true
2403 | },
2404 | "object-assign": {
2405 | "version": "4.1.1",
2406 | "bundled": true,
2407 | "dev": true,
2408 | "optional": true
2409 | },
2410 | "once": {
2411 | "version": "1.4.0",
2412 | "bundled": true,
2413 | "dev": true,
2414 | "optional": true,
2415 | "requires": {
2416 | "wrappy": "1"
2417 | }
2418 | },
2419 | "os-homedir": {
2420 | "version": "1.0.2",
2421 | "bundled": true,
2422 | "dev": true,
2423 | "optional": true
2424 | },
2425 | "os-tmpdir": {
2426 | "version": "1.0.2",
2427 | "bundled": true,
2428 | "dev": true,
2429 | "optional": true
2430 | },
2431 | "osenv": {
2432 | "version": "0.1.5",
2433 | "bundled": true,
2434 | "dev": true,
2435 | "optional": true,
2436 | "requires": {
2437 | "os-homedir": "^1.0.0",
2438 | "os-tmpdir": "^1.0.0"
2439 | }
2440 | },
2441 | "path-is-absolute": {
2442 | "version": "1.0.1",
2443 | "bundled": true,
2444 | "dev": true,
2445 | "optional": true
2446 | },
2447 | "process-nextick-args": {
2448 | "version": "2.0.1",
2449 | "bundled": true,
2450 | "dev": true,
2451 | "optional": true
2452 | },
2453 | "rc": {
2454 | "version": "1.2.8",
2455 | "bundled": true,
2456 | "dev": true,
2457 | "optional": true,
2458 | "requires": {
2459 | "deep-extend": "^0.6.0",
2460 | "ini": "~1.3.0",
2461 | "minimist": "^1.2.0",
2462 | "strip-json-comments": "~2.0.1"
2463 | },
2464 | "dependencies": {
2465 | "minimist": {
2466 | "version": "1.2.0",
2467 | "bundled": true,
2468 | "dev": true,
2469 | "optional": true
2470 | }
2471 | }
2472 | },
2473 | "readable-stream": {
2474 | "version": "2.3.6",
2475 | "bundled": true,
2476 | "dev": true,
2477 | "optional": true,
2478 | "requires": {
2479 | "core-util-is": "~1.0.0",
2480 | "inherits": "~2.0.3",
2481 | "isarray": "~1.0.0",
2482 | "process-nextick-args": "~2.0.0",
2483 | "safe-buffer": "~5.1.1",
2484 | "string_decoder": "~1.1.1",
2485 | "util-deprecate": "~1.0.1"
2486 | }
2487 | },
2488 | "rimraf": {
2489 | "version": "2.7.1",
2490 | "bundled": true,
2491 | "dev": true,
2492 | "optional": true,
2493 | "requires": {
2494 | "glob": "^7.1.3"
2495 | }
2496 | },
2497 | "safe-buffer": {
2498 | "version": "5.1.2",
2499 | "bundled": true,
2500 | "dev": true,
2501 | "optional": true
2502 | },
2503 | "safer-buffer": {
2504 | "version": "2.1.2",
2505 | "bundled": true,
2506 | "dev": true,
2507 | "optional": true
2508 | },
2509 | "sax": {
2510 | "version": "1.2.4",
2511 | "bundled": true,
2512 | "dev": true,
2513 | "optional": true
2514 | },
2515 | "semver": {
2516 | "version": "5.7.1",
2517 | "bundled": true,
2518 | "dev": true,
2519 | "optional": true
2520 | },
2521 | "set-blocking": {
2522 | "version": "2.0.0",
2523 | "bundled": true,
2524 | "dev": true,
2525 | "optional": true
2526 | },
2527 | "signal-exit": {
2528 | "version": "3.0.2",
2529 | "bundled": true,
2530 | "dev": true,
2531 | "optional": true
2532 | },
2533 | "string-width": {
2534 | "version": "1.0.2",
2535 | "bundled": true,
2536 | "dev": true,
2537 | "optional": true,
2538 | "requires": {
2539 | "code-point-at": "^1.0.0",
2540 | "is-fullwidth-code-point": "^1.0.0",
2541 | "strip-ansi": "^3.0.0"
2542 | }
2543 | },
2544 | "string_decoder": {
2545 | "version": "1.1.1",
2546 | "bundled": true,
2547 | "dev": true,
2548 | "optional": true,
2549 | "requires": {
2550 | "safe-buffer": "~5.1.0"
2551 | }
2552 | },
2553 | "strip-ansi": {
2554 | "version": "3.0.1",
2555 | "bundled": true,
2556 | "dev": true,
2557 | "optional": true,
2558 | "requires": {
2559 | "ansi-regex": "^2.0.0"
2560 | }
2561 | },
2562 | "strip-json-comments": {
2563 | "version": "2.0.1",
2564 | "bundled": true,
2565 | "dev": true,
2566 | "optional": true
2567 | },
2568 | "tar": {
2569 | "version": "4.4.13",
2570 | "bundled": true,
2571 | "dev": true,
2572 | "optional": true,
2573 | "requires": {
2574 | "chownr": "^1.1.1",
2575 | "fs-minipass": "^1.2.5",
2576 | "minipass": "^2.8.6",
2577 | "minizlib": "^1.2.1",
2578 | "mkdirp": "^0.5.0",
2579 | "safe-buffer": "^5.1.2",
2580 | "yallist": "^3.0.3"
2581 | }
2582 | },
2583 | "util-deprecate": {
2584 | "version": "1.0.2",
2585 | "bundled": true,
2586 | "dev": true,
2587 | "optional": true
2588 | },
2589 | "wide-align": {
2590 | "version": "1.1.3",
2591 | "bundled": true,
2592 | "dev": true,
2593 | "optional": true,
2594 | "requires": {
2595 | "string-width": "^1.0.2 || 2"
2596 | }
2597 | },
2598 | "wrappy": {
2599 | "version": "1.0.2",
2600 | "bundled": true,
2601 | "dev": true,
2602 | "optional": true
2603 | },
2604 | "yallist": {
2605 | "version": "3.1.1",
2606 | "bundled": true,
2607 | "dev": true,
2608 | "optional": true
2609 | }
2610 | }
2611 | },
2612 | "function-bind": {
2613 | "version": "1.1.1",
2614 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2615 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2616 | "dev": true
2617 | },
2618 | "get-value": {
2619 | "version": "2.0.6",
2620 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2621 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
2622 | "dev": true,
2623 | "optional": true
2624 | },
2625 | "glob": {
2626 | "version": "7.1.6",
2627 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2628 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2629 | "dev": true,
2630 | "requires": {
2631 | "fs.realpath": "^1.0.0",
2632 | "inflight": "^1.0.4",
2633 | "inherits": "2",
2634 | "minimatch": "^3.0.4",
2635 | "once": "^1.3.0",
2636 | "path-is-absolute": "^1.0.0"
2637 | }
2638 | },
2639 | "glob-parent": {
2640 | "version": "3.1.0",
2641 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
2642 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
2643 | "dev": true,
2644 | "optional": true,
2645 | "requires": {
2646 | "is-glob": "^3.1.0",
2647 | "path-dirname": "^1.0.0"
2648 | },
2649 | "dependencies": {
2650 | "is-glob": {
2651 | "version": "3.1.0",
2652 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2653 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2654 | "dev": true,
2655 | "optional": true,
2656 | "requires": {
2657 | "is-extglob": "^2.1.0"
2658 | }
2659 | }
2660 | }
2661 | },
2662 | "globals": {
2663 | "version": "9.18.0",
2664 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
2665 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
2666 | "dev": true
2667 | },
2668 | "graceful-fs": {
2669 | "version": "4.2.3",
2670 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
2671 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
2672 | "dev": true,
2673 | "optional": true
2674 | },
2675 | "has-ansi": {
2676 | "version": "2.0.0",
2677 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2678 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2679 | "dev": true,
2680 | "requires": {
2681 | "ansi-regex": "^2.0.0"
2682 | }
2683 | },
2684 | "has-flag": {
2685 | "version": "3.0.0",
2686 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2687 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2688 | "dev": true
2689 | },
2690 | "has-symbols": {
2691 | "version": "1.0.1",
2692 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
2693 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
2694 | "dev": true
2695 | },
2696 | "has-value": {
2697 | "version": "1.0.0",
2698 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2699 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2700 | "dev": true,
2701 | "optional": true,
2702 | "requires": {
2703 | "get-value": "^2.0.6",
2704 | "has-values": "^1.0.0",
2705 | "isobject": "^3.0.0"
2706 | }
2707 | },
2708 | "has-values": {
2709 | "version": "1.0.0",
2710 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2711 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2712 | "dev": true,
2713 | "optional": true,
2714 | "requires": {
2715 | "is-number": "^3.0.0",
2716 | "kind-of": "^4.0.0"
2717 | },
2718 | "dependencies": {
2719 | "kind-of": {
2720 | "version": "4.0.0",
2721 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2722 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2723 | "dev": true,
2724 | "optional": true,
2725 | "requires": {
2726 | "is-buffer": "^1.1.5"
2727 | }
2728 | }
2729 | }
2730 | },
2731 | "inflight": {
2732 | "version": "1.0.6",
2733 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2734 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2735 | "dev": true,
2736 | "requires": {
2737 | "once": "^1.3.0",
2738 | "wrappy": "1"
2739 | }
2740 | },
2741 | "inherits": {
2742 | "version": "2.0.4",
2743 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2744 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2745 | "dev": true
2746 | },
2747 | "invariant": {
2748 | "version": "2.2.4",
2749 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
2750 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
2751 | "dev": true,
2752 | "requires": {
2753 | "loose-envify": "^1.0.0"
2754 | }
2755 | },
2756 | "is-accessor-descriptor": {
2757 | "version": "0.1.6",
2758 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2759 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2760 | "dev": true,
2761 | "optional": true,
2762 | "requires": {
2763 | "kind-of": "^3.0.2"
2764 | },
2765 | "dependencies": {
2766 | "kind-of": {
2767 | "version": "3.2.2",
2768 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2769 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2770 | "dev": true,
2771 | "optional": true,
2772 | "requires": {
2773 | "is-buffer": "^1.1.5"
2774 | }
2775 | }
2776 | }
2777 | },
2778 | "is-binary-path": {
2779 | "version": "1.0.1",
2780 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2781 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2782 | "dev": true,
2783 | "optional": true,
2784 | "requires": {
2785 | "binary-extensions": "^1.0.0"
2786 | }
2787 | },
2788 | "is-buffer": {
2789 | "version": "1.1.6",
2790 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2791 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2792 | "dev": true,
2793 | "optional": true
2794 | },
2795 | "is-data-descriptor": {
2796 | "version": "0.1.4",
2797 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2798 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2799 | "dev": true,
2800 | "optional": true,
2801 | "requires": {
2802 | "kind-of": "^3.0.2"
2803 | },
2804 | "dependencies": {
2805 | "kind-of": {
2806 | "version": "3.2.2",
2807 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2808 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2809 | "dev": true,
2810 | "optional": true,
2811 | "requires": {
2812 | "is-buffer": "^1.1.5"
2813 | }
2814 | }
2815 | }
2816 | },
2817 | "is-descriptor": {
2818 | "version": "0.1.6",
2819 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2820 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2821 | "dev": true,
2822 | "optional": true,
2823 | "requires": {
2824 | "is-accessor-descriptor": "^0.1.6",
2825 | "is-data-descriptor": "^0.1.4",
2826 | "kind-of": "^5.0.0"
2827 | },
2828 | "dependencies": {
2829 | "kind-of": {
2830 | "version": "5.1.0",
2831 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2832 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2833 | "dev": true,
2834 | "optional": true
2835 | }
2836 | }
2837 | },
2838 | "is-extendable": {
2839 | "version": "0.1.1",
2840 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2841 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2842 | "dev": true,
2843 | "optional": true
2844 | },
2845 | "is-extglob": {
2846 | "version": "2.1.1",
2847 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2848 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2849 | "dev": true,
2850 | "optional": true
2851 | },
2852 | "is-glob": {
2853 | "version": "4.0.1",
2854 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
2855 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
2856 | "dev": true,
2857 | "optional": true,
2858 | "requires": {
2859 | "is-extglob": "^2.1.1"
2860 | }
2861 | },
2862 | "is-number": {
2863 | "version": "3.0.0",
2864 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2865 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2866 | "dev": true,
2867 | "optional": true,
2868 | "requires": {
2869 | "kind-of": "^3.0.2"
2870 | },
2871 | "dependencies": {
2872 | "kind-of": {
2873 | "version": "3.2.2",
2874 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2875 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2876 | "dev": true,
2877 | "optional": true,
2878 | "requires": {
2879 | "is-buffer": "^1.1.5"
2880 | }
2881 | }
2882 | }
2883 | },
2884 | "is-plain-object": {
2885 | "version": "2.0.4",
2886 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2887 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2888 | "dev": true,
2889 | "optional": true,
2890 | "requires": {
2891 | "isobject": "^3.0.1"
2892 | }
2893 | },
2894 | "is-windows": {
2895 | "version": "1.0.2",
2896 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2897 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2898 | "dev": true,
2899 | "optional": true
2900 | },
2901 | "isarray": {
2902 | "version": "1.0.0",
2903 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2904 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2905 | "dev": true,
2906 | "optional": true
2907 | },
2908 | "isobject": {
2909 | "version": "3.0.1",
2910 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2911 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2912 | "dev": true,
2913 | "optional": true
2914 | },
2915 | "js-levenshtein": {
2916 | "version": "1.1.6",
2917 | "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
2918 | "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
2919 | "dev": true
2920 | },
2921 | "js-tokens": {
2922 | "version": "3.0.2",
2923 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
2924 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
2925 | "dev": true
2926 | },
2927 | "jsesc": {
2928 | "version": "2.5.2",
2929 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2930 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2931 | "dev": true
2932 | },
2933 | "kind-of": {
2934 | "version": "6.0.2",
2935 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2936 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2937 | "dev": true,
2938 | "optional": true
2939 | },
2940 | "lodash": {
2941 | "version": "4.17.15",
2942 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2943 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
2944 | "dev": true
2945 | },
2946 | "loose-envify": {
2947 | "version": "1.4.0",
2948 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2949 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2950 | "dev": true,
2951 | "requires": {
2952 | "js-tokens": "^3.0.0 || ^4.0.0"
2953 | }
2954 | },
2955 | "make-dir": {
2956 | "version": "2.1.0",
2957 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
2958 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
2959 | "dev": true,
2960 | "requires": {
2961 | "pify": "^4.0.1",
2962 | "semver": "^5.6.0"
2963 | }
2964 | },
2965 | "map-cache": {
2966 | "version": "0.2.2",
2967 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2968 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2969 | "dev": true,
2970 | "optional": true
2971 | },
2972 | "map-visit": {
2973 | "version": "1.0.0",
2974 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2975 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2976 | "dev": true,
2977 | "optional": true,
2978 | "requires": {
2979 | "object-visit": "^1.0.0"
2980 | }
2981 | },
2982 | "micromatch": {
2983 | "version": "3.1.10",
2984 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2985 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2986 | "dev": true,
2987 | "optional": true,
2988 | "requires": {
2989 | "arr-diff": "^4.0.0",
2990 | "array-unique": "^0.3.2",
2991 | "braces": "^2.3.1",
2992 | "define-property": "^2.0.2",
2993 | "extend-shallow": "^3.0.2",
2994 | "extglob": "^2.0.4",
2995 | "fragment-cache": "^0.2.1",
2996 | "kind-of": "^6.0.2",
2997 | "nanomatch": "^1.2.9",
2998 | "object.pick": "^1.3.0",
2999 | "regex-not": "^1.0.0",
3000 | "snapdragon": "^0.8.1",
3001 | "to-regex": "^3.0.2"
3002 | }
3003 | },
3004 | "minimatch": {
3005 | "version": "3.0.4",
3006 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3007 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3008 | "dev": true,
3009 | "requires": {
3010 | "brace-expansion": "^1.1.7"
3011 | }
3012 | },
3013 | "mixin-deep": {
3014 | "version": "1.3.2",
3015 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
3016 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
3017 | "dev": true,
3018 | "optional": true,
3019 | "requires": {
3020 | "for-in": "^1.0.2",
3021 | "is-extendable": "^1.0.1"
3022 | },
3023 | "dependencies": {
3024 | "is-extendable": {
3025 | "version": "1.0.1",
3026 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
3027 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
3028 | "dev": true,
3029 | "optional": true,
3030 | "requires": {
3031 | "is-plain-object": "^2.0.4"
3032 | }
3033 | }
3034 | }
3035 | },
3036 | "ms": {
3037 | "version": "2.0.0",
3038 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3039 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3040 | "dev": true
3041 | },
3042 | "nan": {
3043 | "version": "2.14.0",
3044 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
3045 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
3046 | "dev": true,
3047 | "optional": true
3048 | },
3049 | "nanomatch": {
3050 | "version": "1.2.13",
3051 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3052 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3053 | "dev": true,
3054 | "optional": true,
3055 | "requires": {
3056 | "arr-diff": "^4.0.0",
3057 | "array-unique": "^0.3.2",
3058 | "define-property": "^2.0.2",
3059 | "extend-shallow": "^3.0.2",
3060 | "fragment-cache": "^0.2.1",
3061 | "is-windows": "^1.0.2",
3062 | "kind-of": "^6.0.2",
3063 | "object.pick": "^1.3.0",
3064 | "regex-not": "^1.0.0",
3065 | "snapdragon": "^0.8.1",
3066 | "to-regex": "^3.0.1"
3067 | }
3068 | },
3069 | "node-releases": {
3070 | "version": "1.1.43",
3071 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz",
3072 | "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==",
3073 | "dev": true,
3074 | "requires": {
3075 | "semver": "^6.3.0"
3076 | },
3077 | "dependencies": {
3078 | "semver": {
3079 | "version": "6.3.0",
3080 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3081 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3082 | "dev": true
3083 | }
3084 | }
3085 | },
3086 | "normalize-path": {
3087 | "version": "3.0.0",
3088 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
3089 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
3090 | "dev": true,
3091 | "optional": true
3092 | },
3093 | "object-copy": {
3094 | "version": "0.1.0",
3095 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3096 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3097 | "dev": true,
3098 | "optional": true,
3099 | "requires": {
3100 | "copy-descriptor": "^0.1.0",
3101 | "define-property": "^0.2.5",
3102 | "kind-of": "^3.0.3"
3103 | },
3104 | "dependencies": {
3105 | "define-property": {
3106 | "version": "0.2.5",
3107 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3108 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3109 | "dev": true,
3110 | "optional": true,
3111 | "requires": {
3112 | "is-descriptor": "^0.1.0"
3113 | }
3114 | },
3115 | "kind-of": {
3116 | "version": "3.2.2",
3117 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3118 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3119 | "dev": true,
3120 | "optional": true,
3121 | "requires": {
3122 | "is-buffer": "^1.1.5"
3123 | }
3124 | }
3125 | }
3126 | },
3127 | "object-keys": {
3128 | "version": "1.1.1",
3129 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
3130 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
3131 | "dev": true
3132 | },
3133 | "object-visit": {
3134 | "version": "1.0.1",
3135 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3136 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3137 | "dev": true,
3138 | "optional": true,
3139 | "requires": {
3140 | "isobject": "^3.0.0"
3141 | }
3142 | },
3143 | "object.assign": {
3144 | "version": "4.1.0",
3145 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
3146 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
3147 | "dev": true,
3148 | "requires": {
3149 | "define-properties": "^1.1.2",
3150 | "function-bind": "^1.1.1",
3151 | "has-symbols": "^1.0.0",
3152 | "object-keys": "^1.0.11"
3153 | }
3154 | },
3155 | "object.pick": {
3156 | "version": "1.3.0",
3157 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3158 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3159 | "dev": true,
3160 | "optional": true,
3161 | "requires": {
3162 | "isobject": "^3.0.1"
3163 | }
3164 | },
3165 | "once": {
3166 | "version": "1.4.0",
3167 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3168 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3169 | "dev": true,
3170 | "requires": {
3171 | "wrappy": "1"
3172 | }
3173 | },
3174 | "pascalcase": {
3175 | "version": "0.1.1",
3176 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3177 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3178 | "dev": true,
3179 | "optional": true
3180 | },
3181 | "path-dirname": {
3182 | "version": "1.0.2",
3183 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3184 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
3185 | "dev": true,
3186 | "optional": true
3187 | },
3188 | "path-is-absolute": {
3189 | "version": "1.0.1",
3190 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3191 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3192 | "dev": true
3193 | },
3194 | "path-parse": {
3195 | "version": "1.0.6",
3196 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3197 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
3198 | "dev": true
3199 | },
3200 | "pify": {
3201 | "version": "4.0.1",
3202 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
3203 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
3204 | "dev": true
3205 | },
3206 | "posix-character-classes": {
3207 | "version": "0.1.1",
3208 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3209 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3210 | "dev": true,
3211 | "optional": true
3212 | },
3213 | "private": {
3214 | "version": "0.1.8",
3215 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
3216 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
3217 | "dev": true
3218 | },
3219 | "process-nextick-args": {
3220 | "version": "2.0.1",
3221 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
3222 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
3223 | "dev": true,
3224 | "optional": true
3225 | },
3226 | "readable-stream": {
3227 | "version": "2.3.6",
3228 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
3229 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
3230 | "dev": true,
3231 | "optional": true,
3232 | "requires": {
3233 | "core-util-is": "~1.0.0",
3234 | "inherits": "~2.0.3",
3235 | "isarray": "~1.0.0",
3236 | "process-nextick-args": "~2.0.0",
3237 | "safe-buffer": "~5.1.1",
3238 | "string_decoder": "~1.1.1",
3239 | "util-deprecate": "~1.0.1"
3240 | }
3241 | },
3242 | "readdirp": {
3243 | "version": "2.2.1",
3244 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
3245 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
3246 | "dev": true,
3247 | "optional": true,
3248 | "requires": {
3249 | "graceful-fs": "^4.1.11",
3250 | "micromatch": "^3.1.10",
3251 | "readable-stream": "^2.0.2"
3252 | }
3253 | },
3254 | "regenerate": {
3255 | "version": "1.4.0",
3256 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
3257 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
3258 | "dev": true
3259 | },
3260 | "regenerate-unicode-properties": {
3261 | "version": "8.1.0",
3262 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
3263 | "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
3264 | "dev": true,
3265 | "requires": {
3266 | "regenerate": "^1.4.0"
3267 | }
3268 | },
3269 | "regenerator-runtime": {
3270 | "version": "0.11.1",
3271 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
3272 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
3273 | "dev": true
3274 | },
3275 | "regenerator-transform": {
3276 | "version": "0.14.1",
3277 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
3278 | "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
3279 | "dev": true,
3280 | "requires": {
3281 | "private": "^0.1.6"
3282 | }
3283 | },
3284 | "regex-not": {
3285 | "version": "1.0.2",
3286 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3287 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3288 | "dev": true,
3289 | "optional": true,
3290 | "requires": {
3291 | "extend-shallow": "^3.0.2",
3292 | "safe-regex": "^1.1.0"
3293 | }
3294 | },
3295 | "regexpu-core": {
3296 | "version": "4.6.0",
3297 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
3298 | "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
3299 | "dev": true,
3300 | "requires": {
3301 | "regenerate": "^1.4.0",
3302 | "regenerate-unicode-properties": "^8.1.0",
3303 | "regjsgen": "^0.5.0",
3304 | "regjsparser": "^0.6.0",
3305 | "unicode-match-property-ecmascript": "^1.0.4",
3306 | "unicode-match-property-value-ecmascript": "^1.1.0"
3307 | }
3308 | },
3309 | "regjsgen": {
3310 | "version": "0.5.1",
3311 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
3312 | "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
3313 | "dev": true
3314 | },
3315 | "regjsparser": {
3316 | "version": "0.6.2",
3317 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
3318 | "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
3319 | "dev": true,
3320 | "requires": {
3321 | "jsesc": "~0.5.0"
3322 | },
3323 | "dependencies": {
3324 | "jsesc": {
3325 | "version": "0.5.0",
3326 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
3327 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
3328 | "dev": true
3329 | }
3330 | }
3331 | },
3332 | "remove-trailing-separator": {
3333 | "version": "1.1.0",
3334 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3335 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3336 | "dev": true,
3337 | "optional": true
3338 | },
3339 | "repeat-element": {
3340 | "version": "1.1.3",
3341 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3342 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3343 | "dev": true,
3344 | "optional": true
3345 | },
3346 | "repeat-string": {
3347 | "version": "1.6.1",
3348 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3349 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3350 | "dev": true,
3351 | "optional": true
3352 | },
3353 | "resolve": {
3354 | "version": "1.14.1",
3355 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz",
3356 | "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==",
3357 | "dev": true,
3358 | "requires": {
3359 | "path-parse": "^1.0.6"
3360 | }
3361 | },
3362 | "resolve-url": {
3363 | "version": "0.2.1",
3364 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3365 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
3366 | "dev": true,
3367 | "optional": true
3368 | },
3369 | "ret": {
3370 | "version": "0.1.15",
3371 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3372 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3373 | "dev": true,
3374 | "optional": true
3375 | },
3376 | "safe-buffer": {
3377 | "version": "5.1.2",
3378 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3379 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3380 | "dev": true
3381 | },
3382 | "safe-regex": {
3383 | "version": "1.1.0",
3384 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3385 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3386 | "dev": true,
3387 | "optional": true,
3388 | "requires": {
3389 | "ret": "~0.1.10"
3390 | }
3391 | },
3392 | "semver": {
3393 | "version": "5.7.1",
3394 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3395 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
3396 | "dev": true
3397 | },
3398 | "set-value": {
3399 | "version": "2.0.1",
3400 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
3401 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
3402 | "dev": true,
3403 | "optional": true,
3404 | "requires": {
3405 | "extend-shallow": "^2.0.1",
3406 | "is-extendable": "^0.1.1",
3407 | "is-plain-object": "^2.0.3",
3408 | "split-string": "^3.0.1"
3409 | },
3410 | "dependencies": {
3411 | "extend-shallow": {
3412 | "version": "2.0.1",
3413 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3414 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3415 | "dev": true,
3416 | "optional": true,
3417 | "requires": {
3418 | "is-extendable": "^0.1.0"
3419 | }
3420 | }
3421 | }
3422 | },
3423 | "slash": {
3424 | "version": "2.0.0",
3425 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
3426 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
3427 | "dev": true
3428 | },
3429 | "snapdragon": {
3430 | "version": "0.8.2",
3431 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
3432 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
3433 | "dev": true,
3434 | "optional": true,
3435 | "requires": {
3436 | "base": "^0.11.1",
3437 | "debug": "^2.2.0",
3438 | "define-property": "^0.2.5",
3439 | "extend-shallow": "^2.0.1",
3440 | "map-cache": "^0.2.2",
3441 | "source-map": "^0.5.6",
3442 | "source-map-resolve": "^0.5.0",
3443 | "use": "^3.1.0"
3444 | },
3445 | "dependencies": {
3446 | "define-property": {
3447 | "version": "0.2.5",
3448 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3449 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3450 | "dev": true,
3451 | "optional": true,
3452 | "requires": {
3453 | "is-descriptor": "^0.1.0"
3454 | }
3455 | },
3456 | "extend-shallow": {
3457 | "version": "2.0.1",
3458 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3459 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3460 | "dev": true,
3461 | "optional": true,
3462 | "requires": {
3463 | "is-extendable": "^0.1.0"
3464 | }
3465 | }
3466 | }
3467 | },
3468 | "snapdragon-node": {
3469 | "version": "2.1.1",
3470 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
3471 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
3472 | "dev": true,
3473 | "optional": true,
3474 | "requires": {
3475 | "define-property": "^1.0.0",
3476 | "isobject": "^3.0.0",
3477 | "snapdragon-util": "^3.0.1"
3478 | },
3479 | "dependencies": {
3480 | "define-property": {
3481 | "version": "1.0.0",
3482 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
3483 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
3484 | "dev": true,
3485 | "optional": true,
3486 | "requires": {
3487 | "is-descriptor": "^1.0.0"
3488 | }
3489 | },
3490 | "is-accessor-descriptor": {
3491 | "version": "1.0.0",
3492 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3493 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3494 | "dev": true,
3495 | "optional": true,
3496 | "requires": {
3497 | "kind-of": "^6.0.0"
3498 | }
3499 | },
3500 | "is-data-descriptor": {
3501 | "version": "1.0.0",
3502 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3503 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3504 | "dev": true,
3505 | "optional": true,
3506 | "requires": {
3507 | "kind-of": "^6.0.0"
3508 | }
3509 | },
3510 | "is-descriptor": {
3511 | "version": "1.0.2",
3512 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3513 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3514 | "dev": true,
3515 | "optional": true,
3516 | "requires": {
3517 | "is-accessor-descriptor": "^1.0.0",
3518 | "is-data-descriptor": "^1.0.0",
3519 | "kind-of": "^6.0.2"
3520 | }
3521 | }
3522 | }
3523 | },
3524 | "snapdragon-util": {
3525 | "version": "3.0.1",
3526 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
3527 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
3528 | "dev": true,
3529 | "optional": true,
3530 | "requires": {
3531 | "kind-of": "^3.2.0"
3532 | },
3533 | "dependencies": {
3534 | "kind-of": {
3535 | "version": "3.2.2",
3536 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3537 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3538 | "dev": true,
3539 | "optional": true,
3540 | "requires": {
3541 | "is-buffer": "^1.1.5"
3542 | }
3543 | }
3544 | }
3545 | },
3546 | "source-map": {
3547 | "version": "0.5.7",
3548 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3549 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3550 | "dev": true
3551 | },
3552 | "source-map-resolve": {
3553 | "version": "0.5.2",
3554 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
3555 | "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
3556 | "dev": true,
3557 | "optional": true,
3558 | "requires": {
3559 | "atob": "^2.1.1",
3560 | "decode-uri-component": "^0.2.0",
3561 | "resolve-url": "^0.2.1",
3562 | "source-map-url": "^0.4.0",
3563 | "urix": "^0.1.0"
3564 | }
3565 | },
3566 | "source-map-url": {
3567 | "version": "0.4.0",
3568 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
3569 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
3570 | "dev": true,
3571 | "optional": true
3572 | },
3573 | "split-string": {
3574 | "version": "3.1.0",
3575 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
3576 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
3577 | "dev": true,
3578 | "optional": true,
3579 | "requires": {
3580 | "extend-shallow": "^3.0.0"
3581 | }
3582 | },
3583 | "static-extend": {
3584 | "version": "0.1.2",
3585 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
3586 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
3587 | "dev": true,
3588 | "optional": true,
3589 | "requires": {
3590 | "define-property": "^0.2.5",
3591 | "object-copy": "^0.1.0"
3592 | },
3593 | "dependencies": {
3594 | "define-property": {
3595 | "version": "0.2.5",
3596 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3597 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3598 | "dev": true,
3599 | "optional": true,
3600 | "requires": {
3601 | "is-descriptor": "^0.1.0"
3602 | }
3603 | }
3604 | }
3605 | },
3606 | "string_decoder": {
3607 | "version": "1.1.1",
3608 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3609 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3610 | "dev": true,
3611 | "optional": true,
3612 | "requires": {
3613 | "safe-buffer": "~5.1.0"
3614 | }
3615 | },
3616 | "strip-ansi": {
3617 | "version": "3.0.1",
3618 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
3619 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
3620 | "dev": true,
3621 | "requires": {
3622 | "ansi-regex": "^2.0.0"
3623 | }
3624 | },
3625 | "supports-color": {
3626 | "version": "2.0.0",
3627 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3628 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3629 | "dev": true
3630 | },
3631 | "to-fast-properties": {
3632 | "version": "1.0.3",
3633 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
3634 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
3635 | "dev": true
3636 | },
3637 | "to-object-path": {
3638 | "version": "0.3.0",
3639 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
3640 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
3641 | "dev": true,
3642 | "optional": true,
3643 | "requires": {
3644 | "kind-of": "^3.0.2"
3645 | },
3646 | "dependencies": {
3647 | "kind-of": {
3648 | "version": "3.2.2",
3649 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3650 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3651 | "dev": true,
3652 | "optional": true,
3653 | "requires": {
3654 | "is-buffer": "^1.1.5"
3655 | }
3656 | }
3657 | }
3658 | },
3659 | "to-regex": {
3660 | "version": "3.0.2",
3661 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
3662 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
3663 | "dev": true,
3664 | "optional": true,
3665 | "requires": {
3666 | "define-property": "^2.0.2",
3667 | "extend-shallow": "^3.0.2",
3668 | "regex-not": "^1.0.2",
3669 | "safe-regex": "^1.1.0"
3670 | }
3671 | },
3672 | "to-regex-range": {
3673 | "version": "2.1.1",
3674 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
3675 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
3676 | "dev": true,
3677 | "optional": true,
3678 | "requires": {
3679 | "is-number": "^3.0.0",
3680 | "repeat-string": "^1.6.1"
3681 | }
3682 | },
3683 | "unicode-canonical-property-names-ecmascript": {
3684 | "version": "1.0.4",
3685 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
3686 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
3687 | "dev": true
3688 | },
3689 | "unicode-match-property-ecmascript": {
3690 | "version": "1.0.4",
3691 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
3692 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
3693 | "dev": true,
3694 | "requires": {
3695 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
3696 | "unicode-property-aliases-ecmascript": "^1.0.4"
3697 | }
3698 | },
3699 | "unicode-match-property-value-ecmascript": {
3700 | "version": "1.1.0",
3701 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
3702 | "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
3703 | "dev": true
3704 | },
3705 | "unicode-property-aliases-ecmascript": {
3706 | "version": "1.0.5",
3707 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
3708 | "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
3709 | "dev": true
3710 | },
3711 | "union-value": {
3712 | "version": "1.0.1",
3713 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
3714 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
3715 | "dev": true,
3716 | "optional": true,
3717 | "requires": {
3718 | "arr-union": "^3.1.0",
3719 | "get-value": "^2.0.6",
3720 | "is-extendable": "^0.1.1",
3721 | "set-value": "^2.0.1"
3722 | }
3723 | },
3724 | "unset-value": {
3725 | "version": "1.0.0",
3726 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
3727 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
3728 | "dev": true,
3729 | "optional": true,
3730 | "requires": {
3731 | "has-value": "^0.3.1",
3732 | "isobject": "^3.0.0"
3733 | },
3734 | "dependencies": {
3735 | "has-value": {
3736 | "version": "0.3.1",
3737 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
3738 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
3739 | "dev": true,
3740 | "optional": true,
3741 | "requires": {
3742 | "get-value": "^2.0.3",
3743 | "has-values": "^0.1.4",
3744 | "isobject": "^2.0.0"
3745 | },
3746 | "dependencies": {
3747 | "isobject": {
3748 | "version": "2.1.0",
3749 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
3750 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
3751 | "dev": true,
3752 | "optional": true,
3753 | "requires": {
3754 | "isarray": "1.0.0"
3755 | }
3756 | }
3757 | }
3758 | },
3759 | "has-values": {
3760 | "version": "0.1.4",
3761 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
3762 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
3763 | "dev": true,
3764 | "optional": true
3765 | }
3766 | }
3767 | },
3768 | "upath": {
3769 | "version": "1.2.0",
3770 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
3771 | "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
3772 | "dev": true,
3773 | "optional": true
3774 | },
3775 | "urix": {
3776 | "version": "0.1.0",
3777 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
3778 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
3779 | "dev": true,
3780 | "optional": true
3781 | },
3782 | "use": {
3783 | "version": "3.1.1",
3784 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
3785 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
3786 | "dev": true,
3787 | "optional": true
3788 | },
3789 | "util-deprecate": {
3790 | "version": "1.0.2",
3791 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3792 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3793 | "dev": true,
3794 | "optional": true
3795 | },
3796 | "wrappy": {
3797 | "version": "1.0.2",
3798 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3799 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3800 | "dev": true
3801 | }
3802 | }
3803 | }
3804 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gradientify",
3 | "version": "1.1.3",
4 | "description": "Create amazing, animated gradients with ease.",
5 | "main": "./dist/index.js",
6 | "scripts": {
7 | "commonjs": "BABEL_ENV=commonjs babel src --out-file dist/gradientify.min.js --extensions .ts,.tsx",
8 | "module": "BABEL_ENV=module babel src --out-dir dist --extensions .ts,.tsx",
9 | "build": "npm run module && npm run commonjs"
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "git+https://github.com/karolsw3/gradientify.js.git"
14 | },
15 | "keywords": [
16 | "gradientify",
17 | "gradient",
18 | "gradients",
19 | "animated",
20 | "gradients",
21 | "animated",
22 | "animation"
23 | ],
24 | "author": "Charles Spruce",
25 | "license": "MIT",
26 | "bugs": {
27 | "url": "https://github.com/karolsw3/gradientify.js/issues"
28 | },
29 | "homepage": "https://github.com/karolsw3/gradientify.js#readme",
30 | "dependencies": {},
31 | "devDependencies": {
32 | "@babel/cli": "^7.7.7",
33 | "@babel/core": "^7.7.7",
34 | "@babel/preset-env": "^7.7.7",
35 | "@babel/preset-typescript": "^7.7.7",
36 | "babel-plugin-remove-import-export": "^1.1.0",
37 | "babel-plugin-transform-class-properties": "^6.24.1",
38 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
39 | "babel-plugin-transform-object-rest-spread": "^6.26.0",
40 | "babel-preset-minify": "^0.5.1"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export default class Gradientify {
2 | public target: string
3 | public gradients: string[]
4 | public fadeInterval: number // In miliseconds
5 |
6 | private gradientElements!: HTMLElement[][]
7 | private interval!: number // setInterval type (yes, it's a number. lol)
8 |
9 | constructor (
10 | target: string,
11 | gradients: string[],
12 | fadeInterval: number
13 | ) {
14 | this.target = target
15 | this.gradients = gradients
16 | this.fadeInterval = fadeInterval
17 | this.createGradientElements()
18 | this.appendGradients()
19 | this.startAnimation()
20 | }
21 |
22 | /*
23 | This guy beneath is responsible for creating
24 | divs with gradient backgrounds, which are going
25 | to be appended to the target element(s) 👩🏻🔬
26 | */
27 | private createGradientElements () {
28 | let targetElements = Array.from(document.querySelectorAll(this.target))
29 | this.gradientElements = targetElements.map(() => {
30 | return this.gradients.map((gradient, index) => {
31 | let gradientElement = document.createElement('div')
32 | Object.assign(gradientElement.style, {
33 | position: 'absolute',
34 | height: '100%',
35 | width: '100%',
36 | opacity: index === 0 ? 1:0,
37 | top: 0,
38 | left: 0,
39 | transitionTimingFunction: 'linear',
40 | backgroundImage: gradient,
41 | transitionDuration: `${this.fadeInterval / 1000}s`,
42 | })
43 | return gradientElement
44 | })
45 | })
46 | }
47 |
48 | // Time to append our gradients! 🧚♀️
49 | private appendGradients () {
50 | let targetElements = document.querySelectorAll(this.target)
51 | targetElements.forEach((targetElement, targetIndex) => {
52 | if (targetElement instanceof HTMLElement) {
53 | if (targetElement.style.position !== 'absolute') {
54 | targetElement.style.position = 'relative'
55 | }
56 | this.gradientElements[targetIndex].forEach(element => {
57 | targetElement.appendChild(element)
58 | })
59 | } else {
60 | throw new Error(`Element ${this.target} doesn't exists!`)
61 | }
62 | })
63 | }
64 |
65 | /*
66 | Here lies the whole magic of this library:
67 | Every X seconds we set the opacity of the next
68 | gradient element to 1, and a CSS transition does the rest. Yay!
69 | *uncomfortably complex computations grinning in the background*
70 | */
71 | public startAnimation () {
72 | this.interval = setInterval(() => {
73 | for (let [targetIndex, gradientElements] of this.gradientElements.entries()) {
74 | for (let [elementIndex, element] of gradientElements.entries()) {
75 | if (element.style.opacity === '1') {
76 | element.style.opacity = '0'
77 | let nextElement = this.gradientElements[targetIndex][++elementIndex % this.gradientElements[targetIndex].length]
78 | nextElement.style.opacity = '1'
79 | break
80 | }
81 | }
82 | }
83 | }, this.fadeInterval)
84 | }
85 |
86 | // Fairly straightforward
87 | public stopAnimation () {
88 | clearInterval(this.interval)
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | // Target latest version of ECMAScript.
4 | "target": "esnext",
5 | // Search under node_modules for non-relative imports.
6 | "moduleResolution": "node",
7 | // Process & infer types from .js files.
8 | "allowJs": true,
9 | // Don't emit; allow Babel to transform files.
10 | "noEmit": true,
11 | // Enable strictest settings like strictNullChecks & noImplicitAny.
12 | "strict": true,
13 | // Import non-ES modules as default imports.
14 | "esModuleInterop": true,
15 | "jsx": "react"
16 | },
17 | "include": [
18 | "src"
19 | ]
20 | }
--------------------------------------------------------------------------------