├── .npmignore ├── .gitignore ├── tsconfig.json ├── rollup.config.js ├── example.html ├── types.d.ts ├── package.json ├── LICENSE ├── README.md ├── source ├── AnchorScroller.ts └── Scroller.ts └── yarn.lock /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | distribution 2 | node_modules 3 | .rpt2_cache -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "es2015", 4 | "target": "es2015", 5 | "strict": true, 6 | "sourceMap": true, 7 | "removeComments": true, 8 | "outDir": "distribution" 9 | }, 10 | "files": [ 11 | "source/AnchorScroller.ts" 12 | ] 13 | } -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from "rollup-plugin-typescript2"; 2 | import latestTypescript from "typescript"; 3 | import minify from "rollup-plugin-babel-minify"; 4 | 5 | export default { 6 | input: "source/AnchorScroller.ts", 7 | output: [ 8 | { format: "es", file: "distribution/AnchorScroller.es.js" }, 9 | { format: "cjs", file: "distribution/AnchorScroller.cjs.js" }, 10 | { format: "umd", file: "distribution/AnchorScroller.js", name: "AnchorScroller", }, 11 | ], 12 | name: "AnchorScroller", 13 | sourcemap: true, 14 | exports: "default", 15 | plugins: [ 16 | typescript({ 17 | typescript: latestTypescript, 18 | importHelers: false, 19 | }), 20 | minify(), 21 | ], 22 | }; 23 | -------------------------------------------------------------------------------- /example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | anchor-scroller example 5 | 6 | 7 | 8 | Take me down! 9 | 10 |
11 | 12 | 13 |

Hello world!

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /types.d.ts: -------------------------------------------------------------------------------- 1 | interface ScrollerMethods { 2 | scrollTo(position: number): void; 3 | } 4 | 5 | declare function Scroller( 6 | animation: Animation, 7 | timeOptions: TimeOptions, 8 | ): ScrollerMethods; 9 | 10 | export interface Animation { 11 | (time: number, start: number, change: number, duration: number): number; 12 | } 13 | 14 | export interface TimeOptions { 15 | increment?: number; 16 | duration?: number; 17 | } 18 | 19 | export interface Options { 20 | checkParent: boolean; 21 | class: string; 22 | animation: Animation; 23 | time: TimeOptions; 24 | } 25 | 26 | export interface AnchorScrollerMethods { 27 | /** 28 | * Scrolls to the given position 29 | */ 30 | scroll(to: number): void; 31 | destroy(): void; 32 | } 33 | 34 | declare function AnchorScroller( 35 | options: Partial, 36 | ): AnchorScrollerMethods; 37 | 38 | export default AnchorScroller; 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anchor-scroller", 3 | "version": "2.0.1", 4 | "description": "Smoothly scroll to #anchors", 5 | "main": "./distribution/AnchorScroller.cjs.js", 6 | "module": "./distribution/AnchorScroller.es.js", 7 | "types": "./types.d.ts", 8 | "repository": "https://github.com/semlette/anchor-scroller.git", 9 | "scripts": { 10 | "prepublish": "echo \"REMEMBER TO CLEAR DISTRIBUTION FOLDER\" && npm run build", 11 | "build": "rollup -c rollup.config.js", 12 | "prettify": "prettier --trailing-comma all --write \"{./*.{js,ts},source/*.ts}\"" 13 | }, 14 | "author": "Andi Semler ", 15 | "license": "MIT", 16 | "dependencies": {}, 17 | "devDependencies": { 18 | "prettier": "^1.6.1", 19 | "rollup": "^1.16.7", 20 | "rollup-plugin-babel-minify": "^9.0.0", 21 | "rollup-plugin-typescript2": "^0.22.0", 22 | "typescript": "^3.5.3" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Andi Semler 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 | # anchor-scroller 2 | ⚓️ Smoothly scroll to #anchors 3 | 4 | ## Features 5 | * ... Scrolls to anchors 6 | * Stops scrolling if the user scrolls 7 | * Doesn't try to scroll past the end 8 | * It's only 1.5kb in size (900 bytes gzipped 😆) 9 | * Uses `requestAnimationFrame` for smooth animation 10 | 11 | ## Quickstart 12 | 13 | ### Node with a module bundler 14 | ```shell 15 | npm install anchor-scroller --save 16 | ``` 17 | ```javascript 18 | const AnchorScroller = require("anchor-scroller"); 19 | AnchorScroller(); 20 | ``` 21 | 22 | ### Browser 23 | ```html 24 | 25 | 26 | ``` 27 | 28 | [Check out the wiki for more info.](https://github.com/semlette/anchor-scroller/wiki) 29 | 30 | ## Configuration 31 | 32 | You can pass the instance an options object to tweak it's behavior. The simplest options are `class` and `checkParent`. 33 | ```javascript 34 | AnchorScroller({ 35 | "class": "scroll", // will make it only react on elements with a "scroll" class. 36 | checkParent: true // will make it check the parent element, if the clicked element didn't match the criteria. 37 | }); 38 | ``` 39 | 40 | [The more in-depth usage guide](https://github.com/semlette/anchor-scroller/wiki/Using-Anchor-Scroller) also has documentation on all [options](https://github.com/semlette/anchor-scroller/wiki/Using-Anchor-Scroller#options) and [methods](https://github.com/semlette/anchor-scroller/wiki/Using-Anchor-Scroller#methods). 41 | -------------------------------------------------------------------------------- /source/AnchorScroller.ts: -------------------------------------------------------------------------------- 1 | import Scroller, { ScrollerMethods } from "./Scroller"; 2 | 3 | export interface Animation { 4 | (time: number, start: number, change: number, duration: number): number; 5 | } 6 | 7 | export interface TimeOptions { 8 | /** 9 | * Time increments 10 | */ 11 | increment: number; 12 | 13 | /** 14 | * Duration of the scrolling 15 | */ 16 | duration: number; 17 | } 18 | 19 | interface Options { 20 | checkParent: boolean; 21 | class: string | undefined; 22 | animation: Animation; 23 | time: TimeOptions; 24 | } 25 | 26 | interface AnchorScrollerMethods { 27 | scroll(to: number): void; 28 | destroy(): void; 29 | } 30 | 31 | function AnchorScroller(userOptions?: Partial): AnchorScrollerMethods { 32 | const defaultAnimation: Animation = (time, start, change, duration) => { 33 | return (time /= duration / 2) < 1 34 | ? change / 2 * time * time * time + start 35 | : change / 2 * ((time -= 2) * time * time + 2) + start; 36 | }; 37 | let options = { 38 | checkParent: false, 39 | class: undefined, 40 | animation: defaultAnimation, 41 | time: { 42 | increment: 25, 43 | duration: 1500, 44 | }, 45 | ...userOptions, 46 | }; 47 | 48 | const scroller = Scroller(options.animation, options.time); 49 | document.addEventListener("click", check); 50 | 51 | function check(event: HTMLElementEventMap["click"]) { 52 | // If clicked- or parent element is an anchor, 53 | // get the `href` and scroll to it 54 | if ((event).target.nodeName === "A") { 55 | checkElement((event).target, event); 56 | } else if ( 57 | options.checkParent && 58 | (event).target.parentNode && 59 | (event).target.parentNode.nodeName === "A" 60 | ) { 61 | checkElement((event).target.parentNode, event); 62 | } 63 | } 64 | 65 | function checkElement( 66 | element: HTMLAnchorElement, 67 | event: HTMLElementEventMap["click"], 68 | ) { 69 | // If `options.class` is set, only continue 70 | // if the element contains the class 71 | if (options.class && !element.classList.contains(options.class)) return; 72 | // Stop if hash property is empty 73 | const hash: string = element.hash; 74 | if (!hash) return; 75 | // Also stop if it cannot find an element 76 | // with `id` equal to `hash` 77 | const anchor: HTMLElement | null = document.getElementById(hash.slice(1)); 78 | if (!anchor) return; 79 | // Only run if the current scroll position 80 | // is not equal to the anchors' position 81 | event.preventDefault(); 82 | if (window.scrollY !== anchor.offsetTop) { 83 | scrollTo(anchor.offsetTop); 84 | } 85 | } 86 | 87 | function scrollTo(to: number) { 88 | scroller.scrollTo(to); 89 | } 90 | 91 | function destroy() { 92 | document.removeEventListener("click", check); 93 | } 94 | 95 | return { 96 | scroll: scrollTo, 97 | destroy, 98 | }; 99 | } 100 | 101 | export default AnchorScroller; 102 | -------------------------------------------------------------------------------- /source/Scroller.ts: -------------------------------------------------------------------------------- 1 | import { Animation, TimeOptions } from "./AnchorScroller"; 2 | 3 | interface ScrollerMethods { 4 | scrollTo(to: number): void; 5 | } 6 | 7 | function Scroller( 8 | animation: Animation, 9 | timeOptions: TimeOptions, 10 | ): ScrollerMethods { 11 | let position: number = 0; 12 | let positionRelativeToBottom: number = 0; 13 | let start: number = 0; 14 | let change: number = 0; 15 | let time: number = 0; 16 | let animationFrame: any; 17 | 18 | /** 19 | * Returns a fresh length of the document 20 | */ 21 | function getDocumentLength(): number { 22 | const body = document.body; 23 | const root = document.documentElement; 24 | return Math.max( 25 | body.scrollHeight, 26 | body.offsetHeight, 27 | root.clientHeight, 28 | root.scrollHeight, 29 | root.offsetHeight, 30 | ); 31 | } 32 | 33 | /** 34 | * Calculates the difference between the 35 | */ 36 | function calculateChange(): number { 37 | return positionRelativeToBottom < window.innerHeight 38 | ? getDocumentLength() - window.innerHeight - start 39 | : position - start; 40 | } 41 | 42 | /** 43 | * Checks if the user has scrolled during the animation 44 | */ 45 | function userHasCanceledScroll(): boolean { 46 | const animated = animation(time, start, change, timeOptions.duration); 47 | const floor = Math.floor(animated); 48 | const ceil = Math.ceil(animated); 49 | /** 50 | * window.scroll doesn't use decimals, 51 | * so we have round them both up and down 52 | */ 53 | 54 | /** 55 | * If the scroll position is not equal to 56 | * the predicted position, rounded up or down, 57 | * the user has scrolled. 58 | */ 59 | if (window.scrollY !== floor && window.scrollY !== ceil) { 60 | return true; 61 | } else if (window.scrollY !== floor && window.scrollY === ceil) { 62 | /** 63 | * Rounding down usually gives the most 64 | * accurate position, but if that doesn't 65 | * match, but the rounded-up number does, 66 | * the user hasn't scrolled. 67 | */ 68 | return false; 69 | } else { 70 | /** 71 | * The rounded down number is equal to the predicted number. 72 | */ 73 | return false; 74 | } 75 | } 76 | 77 | /** 78 | * Calculates if it should scroll to the 79 | * bottom of the page or to the anchor. 80 | */ 81 | function scroll(): void { 82 | if (userHasCanceledScroll()) { 83 | cancelAnimationFrame(animationFrame); 84 | return; 85 | } 86 | 87 | time += timeOptions.increment; 88 | 89 | window.scroll( 90 | window.scrollX, 91 | animation(time, start, change, timeOptions.duration), 92 | ); 93 | 94 | if (time < timeOptions.duration) { 95 | animationFrame = requestAnimationFrame(scroll); 96 | } 97 | } 98 | 99 | function scrollTo(position: number): void { 100 | // Reset everything 101 | time = 0; 102 | position = position; 103 | positionRelativeToBottom = getDocumentLength() - position; 104 | start = window.scrollY; 105 | change = calculateChange(); 106 | animationFrame = requestAnimationFrame(scroll); 107 | } 108 | 109 | return { scrollTo }; 110 | } 111 | 112 | export default Scroller; 113 | export { ScrollerMethods }; 114 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/core@^7.4.5": 13 | version "7.5.4" 14 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.4.tgz#4c32df7ad5a58e9ea27ad025c11276324e0b4ddd" 15 | integrity sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ== 16 | dependencies: 17 | "@babel/code-frame" "^7.0.0" 18 | "@babel/generator" "^7.5.0" 19 | "@babel/helpers" "^7.5.4" 20 | "@babel/parser" "^7.5.0" 21 | "@babel/template" "^7.4.4" 22 | "@babel/traverse" "^7.5.0" 23 | "@babel/types" "^7.5.0" 24 | convert-source-map "^1.1.0" 25 | debug "^4.1.0" 26 | json5 "^2.1.0" 27 | lodash "^4.17.11" 28 | resolve "^1.3.2" 29 | semver "^5.4.1" 30 | source-map "^0.5.0" 31 | 32 | "@babel/generator@^7.5.0": 33 | version "7.5.0" 34 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.0.tgz#f20e4b7a91750ee8b63656073d843d2a736dca4a" 35 | integrity sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA== 36 | dependencies: 37 | "@babel/types" "^7.5.0" 38 | jsesc "^2.5.1" 39 | lodash "^4.17.11" 40 | source-map "^0.5.0" 41 | trim-right "^1.0.1" 42 | 43 | "@babel/helper-function-name@^7.1.0": 44 | version "7.1.0" 45 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" 46 | integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== 47 | dependencies: 48 | "@babel/helper-get-function-arity" "^7.0.0" 49 | "@babel/template" "^7.1.0" 50 | "@babel/types" "^7.0.0" 51 | 52 | "@babel/helper-get-function-arity@^7.0.0": 53 | version "7.0.0" 54 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" 55 | integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== 56 | dependencies: 57 | "@babel/types" "^7.0.0" 58 | 59 | "@babel/helper-plugin-utils@^7.0.0": 60 | version "7.0.0" 61 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" 62 | integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== 63 | 64 | "@babel/helper-split-export-declaration@^7.4.4": 65 | version "7.4.4" 66 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" 67 | integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== 68 | dependencies: 69 | "@babel/types" "^7.4.4" 70 | 71 | "@babel/helpers@^7.5.4": 72 | version "7.5.4" 73 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.4.tgz#2f00608aa10d460bde0ccf665d6dcf8477357cf0" 74 | integrity sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow== 75 | dependencies: 76 | "@babel/template" "^7.4.4" 77 | "@babel/traverse" "^7.5.0" 78 | "@babel/types" "^7.5.0" 79 | 80 | "@babel/highlight@^7.0.0": 81 | version "7.5.0" 82 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" 83 | integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== 84 | dependencies: 85 | chalk "^2.0.0" 86 | esutils "^2.0.2" 87 | js-tokens "^4.0.0" 88 | 89 | "@babel/parser@^7.4.4", "@babel/parser@^7.5.0": 90 | version "7.5.0" 91 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.0.tgz#3e0713dff89ad6ae37faec3b29dcfc5c979770b7" 92 | integrity sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA== 93 | 94 | "@babel/plugin-syntax-dynamic-import@^7.2.0": 95 | version "7.2.0" 96 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" 97 | integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== 98 | dependencies: 99 | "@babel/helper-plugin-utils" "^7.0.0" 100 | 101 | "@babel/template@^7.1.0", "@babel/template@^7.4.4": 102 | version "7.4.4" 103 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" 104 | integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== 105 | dependencies: 106 | "@babel/code-frame" "^7.0.0" 107 | "@babel/parser" "^7.4.4" 108 | "@babel/types" "^7.4.4" 109 | 110 | "@babel/traverse@^7.5.0": 111 | version "7.5.0" 112 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.0.tgz#4216d6586854ef5c3c4592dab56ec7eb78485485" 113 | integrity sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg== 114 | dependencies: 115 | "@babel/code-frame" "^7.0.0" 116 | "@babel/generator" "^7.5.0" 117 | "@babel/helper-function-name" "^7.1.0" 118 | "@babel/helper-split-export-declaration" "^7.4.4" 119 | "@babel/parser" "^7.5.0" 120 | "@babel/types" "^7.5.0" 121 | debug "^4.1.0" 122 | globals "^11.1.0" 123 | lodash "^4.17.11" 124 | 125 | "@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0": 126 | version "7.5.0" 127 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.0.tgz#e47d43840c2e7f9105bc4d3a2c371b4d0c7832ab" 128 | integrity sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ== 129 | dependencies: 130 | esutils "^2.0.2" 131 | lodash "^4.17.11" 132 | to-fast-properties "^2.0.0" 133 | 134 | "@comandeer/babel-plugin-banner@^5.0.0": 135 | version "5.0.0" 136 | resolved "https://registry.yarnpkg.com/@comandeer/babel-plugin-banner/-/babel-plugin-banner-5.0.0.tgz#30969cb08e810b67810d41761d0cfac292231ea9" 137 | integrity sha512-sR9Go0U6puXoXyW9UgIiIQhRcJ8jVOvGl4BptUiXAtheMs72WcakZ1udh6J0ZOivr3o8jAM+MTCHLP8FZMbVpQ== 138 | 139 | "@types/estree@0.0.39": 140 | version "0.0.39" 141 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 142 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 143 | 144 | "@types/node@^12.0.10": 145 | version "12.6.2" 146 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.2.tgz#a5ccec6abb6060d5f20d256fb03ed743e9774999" 147 | integrity sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ== 148 | 149 | acorn@^6.1.1: 150 | version "6.4.1" 151 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" 152 | integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== 153 | 154 | ansi-styles@^3.2.1: 155 | version "3.2.1" 156 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 157 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 158 | dependencies: 159 | color-convert "^1.9.0" 160 | 161 | babel-helper-evaluate-path@^0.5.0: 162 | version "0.5.0" 163 | resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" 164 | integrity sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA== 165 | 166 | babel-helper-flip-expressions@^0.4.3: 167 | version "0.4.3" 168 | resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" 169 | integrity sha1-NpZzahKKwYvCUlS19AoizrPB0/0= 170 | 171 | babel-helper-is-nodes-equiv@^0.0.1: 172 | version "0.0.1" 173 | resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" 174 | integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= 175 | 176 | babel-helper-is-void-0@^0.4.3: 177 | version "0.4.3" 178 | resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" 179 | integrity sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4= 180 | 181 | babel-helper-mark-eval-scopes@^0.4.3: 182 | version "0.4.3" 183 | resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" 184 | integrity sha1-0kSjvvmESHJgP/tG4izorN9VFWI= 185 | 186 | babel-helper-remove-or-void@^0.4.3: 187 | version "0.4.3" 188 | resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" 189 | integrity sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA= 190 | 191 | babel-helper-to-multiple-sequence-expressions@^0.5.0: 192 | version "0.5.0" 193 | resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" 194 | integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== 195 | 196 | babel-plugin-minify-builtins@^0.5.0: 197 | version "0.5.0" 198 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b" 199 | integrity sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag== 200 | 201 | babel-plugin-minify-constant-folding@^0.5.0: 202 | version "0.5.0" 203 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz#f84bc8dbf6a561e5e350ff95ae216b0ad5515b6e" 204 | integrity sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ== 205 | dependencies: 206 | babel-helper-evaluate-path "^0.5.0" 207 | 208 | babel-plugin-minify-dead-code-elimination@^0.5.0: 209 | version "0.5.0" 210 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.0.tgz#d23ef5445238ad06e8addf5c1cf6aec835bcda87" 211 | integrity sha512-XQteBGXlgEoAKc/BhO6oafUdT4LBa7ARi55mxoyhLHNuA+RlzRmeMAfc31pb/UqU01wBzRc36YqHQzopnkd/6Q== 212 | dependencies: 213 | babel-helper-evaluate-path "^0.5.0" 214 | babel-helper-mark-eval-scopes "^0.4.3" 215 | babel-helper-remove-or-void "^0.4.3" 216 | lodash.some "^4.6.0" 217 | 218 | babel-plugin-minify-flip-comparisons@^0.4.3: 219 | version "0.4.3" 220 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" 221 | integrity sha1-AMqHDLjxO0XAOLPB68DyJyk8llo= 222 | dependencies: 223 | babel-helper-is-void-0 "^0.4.3" 224 | 225 | babel-plugin-minify-guarded-expressions@^0.4.3: 226 | version "0.4.3" 227 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz#cc709b4453fd21b1f302877444c89f88427ce397" 228 | integrity sha1-zHCbRFP9IbHzAod0RMifiEJ845c= 229 | dependencies: 230 | babel-helper-flip-expressions "^0.4.3" 231 | 232 | babel-plugin-minify-infinity@^0.4.3: 233 | version "0.4.3" 234 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" 235 | integrity sha1-37h2obCKBldjhO8/kuZTumB7Oco= 236 | 237 | babel-plugin-minify-mangle-names@^0.5.0: 238 | version "0.5.0" 239 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz#bcddb507c91d2c99e138bd6b17a19c3c271e3fd3" 240 | integrity sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw== 241 | dependencies: 242 | babel-helper-mark-eval-scopes "^0.4.3" 243 | 244 | babel-plugin-minify-numeric-literals@^0.4.3: 245 | version "0.4.3" 246 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" 247 | integrity sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw= 248 | 249 | babel-plugin-minify-replace@^0.5.0: 250 | version "0.5.0" 251 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz#d3e2c9946c9096c070efc96761ce288ec5c3f71c" 252 | integrity sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q== 253 | 254 | babel-plugin-minify-simplify@^0.5.0: 255 | version "0.5.0" 256 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.0.tgz#1f090018afb90d8b54d3d027fd8a4927f243da6f" 257 | integrity sha512-TM01J/YcKZ8XIQd1Z3nF2AdWHoDsarjtZ5fWPDksYZNsoOjQ2UO2EWm824Ym6sp127m44gPlLFiO5KFxU8pA5Q== 258 | dependencies: 259 | babel-helper-flip-expressions "^0.4.3" 260 | babel-helper-is-nodes-equiv "^0.0.1" 261 | babel-helper-to-multiple-sequence-expressions "^0.5.0" 262 | 263 | babel-plugin-minify-type-constructors@^0.4.3: 264 | version "0.4.3" 265 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" 266 | integrity sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA= 267 | dependencies: 268 | babel-helper-is-void-0 "^0.4.3" 269 | 270 | babel-plugin-transform-inline-consecutive-adds@^0.4.3: 271 | version "0.4.3" 272 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" 273 | integrity sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE= 274 | 275 | babel-plugin-transform-member-expression-literals@^6.9.4: 276 | version "6.9.4" 277 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" 278 | integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= 279 | 280 | babel-plugin-transform-merge-sibling-variables@^6.9.4: 281 | version "6.9.4" 282 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" 283 | integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= 284 | 285 | babel-plugin-transform-minify-booleans@^6.9.4: 286 | version "6.9.4" 287 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" 288 | integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= 289 | 290 | babel-plugin-transform-property-literals@^6.9.4: 291 | version "6.9.4" 292 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" 293 | integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= 294 | dependencies: 295 | esutils "^2.0.2" 296 | 297 | babel-plugin-transform-regexp-constructors@^0.4.3: 298 | version "0.4.3" 299 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" 300 | integrity sha1-WLd3W2OvzzMyj66aX4j71PsLSWU= 301 | 302 | babel-plugin-transform-remove-console@^6.9.4: 303 | version "6.9.4" 304 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" 305 | integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= 306 | 307 | babel-plugin-transform-remove-debugger@^6.9.4: 308 | version "6.9.4" 309 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" 310 | integrity sha1-QrcnYxyXl44estGZp67IShgznvI= 311 | 312 | babel-plugin-transform-remove-undefined@^0.5.0: 313 | version "0.5.0" 314 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz#80208b31225766c630c97fa2d288952056ea22dd" 315 | integrity sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ== 316 | dependencies: 317 | babel-helper-evaluate-path "^0.5.0" 318 | 319 | babel-plugin-transform-simplify-comparison-operators@^6.9.4: 320 | version "6.9.4" 321 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" 322 | integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= 323 | 324 | babel-plugin-transform-undefined-to-void@^6.9.4: 325 | version "6.9.4" 326 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" 327 | integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= 328 | 329 | babel-preset-minify@^0.5.0: 330 | version "0.5.0" 331 | resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.0.tgz#e25bb8d3590087af02b650967159a77c19bfb96b" 332 | integrity sha512-xj1s9Mon+RFubH569vrGCayA9Fm2GMsCgDRm1Jb8SgctOB7KFcrVc2o8K3YHUyMz+SWP8aea75BoS8YfsXXuiA== 333 | dependencies: 334 | babel-plugin-minify-builtins "^0.5.0" 335 | babel-plugin-minify-constant-folding "^0.5.0" 336 | babel-plugin-minify-dead-code-elimination "^0.5.0" 337 | babel-plugin-minify-flip-comparisons "^0.4.3" 338 | babel-plugin-minify-guarded-expressions "^0.4.3" 339 | babel-plugin-minify-infinity "^0.4.3" 340 | babel-plugin-minify-mangle-names "^0.5.0" 341 | babel-plugin-minify-numeric-literals "^0.4.3" 342 | babel-plugin-minify-replace "^0.5.0" 343 | babel-plugin-minify-simplify "^0.5.0" 344 | babel-plugin-minify-type-constructors "^0.4.3" 345 | babel-plugin-transform-inline-consecutive-adds "^0.4.3" 346 | babel-plugin-transform-member-expression-literals "^6.9.4" 347 | babel-plugin-transform-merge-sibling-variables "^6.9.4" 348 | babel-plugin-transform-minify-booleans "^6.9.4" 349 | babel-plugin-transform-property-literals "^6.9.4" 350 | babel-plugin-transform-regexp-constructors "^0.4.3" 351 | babel-plugin-transform-remove-console "^6.9.4" 352 | babel-plugin-transform-remove-debugger "^6.9.4" 353 | babel-plugin-transform-remove-undefined "^0.5.0" 354 | babel-plugin-transform-simplify-comparison-operators "^6.9.4" 355 | babel-plugin-transform-undefined-to-void "^6.9.4" 356 | lodash.isplainobject "^4.0.6" 357 | 358 | chalk@^2.0.0: 359 | version "2.4.2" 360 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 361 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 362 | dependencies: 363 | ansi-styles "^3.2.1" 364 | escape-string-regexp "^1.0.5" 365 | supports-color "^5.3.0" 366 | 367 | color-convert@^1.9.0: 368 | version "1.9.3" 369 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 370 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 371 | dependencies: 372 | color-name "1.1.3" 373 | 374 | color-name@1.1.3: 375 | version "1.1.3" 376 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 377 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 378 | 379 | convert-source-map@^1.1.0: 380 | version "1.6.0" 381 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 382 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== 383 | dependencies: 384 | safe-buffer "~5.1.1" 385 | 386 | debug@^4.1.0: 387 | version "4.1.1" 388 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 389 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 390 | dependencies: 391 | ms "^2.1.1" 392 | 393 | escape-string-regexp@^1.0.5: 394 | version "1.0.5" 395 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 396 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 397 | 398 | estree-walker@^0.6.1: 399 | version "0.6.1" 400 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 401 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 402 | 403 | esutils@^2.0.2: 404 | version "2.0.2" 405 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 406 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 407 | 408 | fs-extra@8.1.0: 409 | version "8.1.0" 410 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 411 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 412 | dependencies: 413 | graceful-fs "^4.2.0" 414 | jsonfile "^4.0.0" 415 | universalify "^0.1.0" 416 | 417 | globals@^11.1.0: 418 | version "11.12.0" 419 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 420 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 421 | 422 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 423 | version "4.2.0" 424 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" 425 | integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== 426 | 427 | has-flag@^3.0.0: 428 | version "3.0.0" 429 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 430 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 431 | 432 | js-tokens@^4.0.0: 433 | version "4.0.0" 434 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 435 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 436 | 437 | jsesc@^2.5.1: 438 | version "2.5.2" 439 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 440 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 441 | 442 | json5@^2.1.0: 443 | version "2.1.0" 444 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" 445 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== 446 | dependencies: 447 | minimist "^1.2.0" 448 | 449 | jsonfile@^4.0.0: 450 | version "4.0.0" 451 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 452 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 453 | optionalDependencies: 454 | graceful-fs "^4.1.6" 455 | 456 | lodash.isplainobject@^4.0.6: 457 | version "4.0.6" 458 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 459 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 460 | 461 | lodash.some@^4.6.0: 462 | version "4.6.0" 463 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" 464 | integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= 465 | 466 | lodash@^4.17.11: 467 | version "4.17.14" 468 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" 469 | integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== 470 | 471 | minimist@^1.2.0: 472 | version "1.2.5" 473 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 474 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 475 | 476 | ms@^2.1.1: 477 | version "2.1.2" 478 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 479 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 480 | 481 | path-parse@^1.0.6: 482 | version "1.0.6" 483 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 484 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 485 | 486 | prettier@^1.6.1: 487 | version "1.18.2" 488 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" 489 | integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== 490 | 491 | resolve@1.11.1, resolve@^1.3.2: 492 | version "1.11.1" 493 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" 494 | integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== 495 | dependencies: 496 | path-parse "^1.0.6" 497 | 498 | rollup-plugin-babel-minify@^9.0.0: 499 | version "9.0.0" 500 | resolved "https://registry.yarnpkg.com/rollup-plugin-babel-minify/-/rollup-plugin-babel-minify-9.0.0.tgz#50acb32ecf45d234043753f29df16149e678fb53" 501 | integrity sha512-5aJVWpuoZUbQrIaRF7Jvjo7bBnYqaChOhrhsGtz72wJ3lyo7ygIL85hsuPkvrk/3Fj5AUlNZV3IaSZ98fHyoTw== 502 | dependencies: 503 | "@babel/core" "^7.4.5" 504 | "@babel/plugin-syntax-dynamic-import" "^7.2.0" 505 | "@comandeer/babel-plugin-banner" "^5.0.0" 506 | babel-preset-minify "^0.5.0" 507 | sourcemap-codec "^1.4.4" 508 | 509 | rollup-plugin-typescript2@^0.22.0: 510 | version "0.22.0" 511 | resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.22.0.tgz#07bbcc3b24fe01125310ab5a6b9c993e8a6fed5e" 512 | integrity sha512-jkccBtzTFLdZK7SoVlSDmaRiDgoq+P8n41pVSFYrrGq/OMR2fVW+O4Tnx7h39Ige0sGHKs2HuqJ8K6Ap0n785Q== 513 | dependencies: 514 | fs-extra "8.1.0" 515 | resolve "1.11.1" 516 | rollup-pluginutils "2.8.1" 517 | tslib "1.10.0" 518 | 519 | rollup-pluginutils@2.8.1: 520 | version "2.8.1" 521 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" 522 | integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== 523 | dependencies: 524 | estree-walker "^0.6.1" 525 | 526 | rollup@^1.16.7: 527 | version "1.16.7" 528 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.16.7.tgz#4b539ca22465df39f6c963d2001d95f6527e97e1" 529 | integrity sha512-P3GVcbVSLLjHWFLKGerYRe3Q/yggRXmTZFx/4WZf4wzGwO6hAg5jyMAFMQKc0dts8rFID4BQngfoz6yQbI7iMQ== 530 | dependencies: 531 | "@types/estree" "0.0.39" 532 | "@types/node" "^12.0.10" 533 | acorn "^6.1.1" 534 | 535 | safe-buffer@~5.1.1: 536 | version "5.1.2" 537 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 538 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 539 | 540 | semver@^5.4.1: 541 | version "5.7.0" 542 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 543 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 544 | 545 | source-map@^0.5.0: 546 | version "0.5.7" 547 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 548 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 549 | 550 | sourcemap-codec@^1.4.4: 551 | version "1.4.6" 552 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" 553 | integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== 554 | 555 | supports-color@^5.3.0: 556 | version "5.5.0" 557 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 558 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 559 | dependencies: 560 | has-flag "^3.0.0" 561 | 562 | to-fast-properties@^2.0.0: 563 | version "2.0.0" 564 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 565 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 566 | 567 | trim-right@^1.0.1: 568 | version "1.0.1" 569 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 570 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= 571 | 572 | tslib@1.10.0: 573 | version "1.10.0" 574 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 575 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 576 | 577 | typescript@^3.5.3: 578 | version "3.5.3" 579 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" 580 | integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== 581 | 582 | universalify@^0.1.0: 583 | version "0.1.2" 584 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 585 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 586 | --------------------------------------------------------------------------------