├── .babelrc ├── .gitignore ├── .npmignore ├── .prettierrc ├── README.md ├── docs ├── InstanceDemo.gif └── TinyScrollListenerDemo.gif ├── index.js ├── package.json ├── rollup.config.js ├── src └── index.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false 5 | }], 6 | "stage-2" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | node_modules 3 | index.d.ts 4 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | docs 2 | node_modules 3 | src 4 | .gitignore 5 | .npmignore 6 | .babelrc 7 | # CONTRIBUTING.md 8 | .prettierrc 9 | rollup.config.js 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "semi": false, 5 | "singleQuote": true, 6 | "bracketSpacing": true 7 | } 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tiny-scroll-listener 2 | 3 | 一个监听滚动的小工具 4 | 5 | [Online Demo](https://codesandbox.io/s/sticky-list-demo-s5860) 6 | 7 | --- 8 | 9 | 10 | 11 | 12 | ## 安装 13 | 14 | ```bash 15 | npm install tiny-scroll-listener 16 | ``` 17 | 18 | ## 使用方法 19 | 20 | ```javascript 21 | import TinyScrollListener from 'tiny-scroll-listener' 22 | 23 | const delay = (time) => new Promise((resolve) => setTimeout(resolve, time)) 24 | 25 | const scrollListener = new TinyScrollListener({ 26 | // 滚动容器,需设置 overflow: scroll/auto; 27 | element: document.getElementById('scrollContainer'), 28 | 29 | // 触底函数相关 30 | distanceToReachEnd: 100, // 触底函数触发距离,默认为 100px 31 | async onEndReached(done) { 32 | console.log('到达了底部,锁定,两秒后释放') 33 | 34 | /** 35 | * 每次触发 onEndReached 函数后会自动阻止下一次触发,需要执行 done 函数来释放阻止 36 | * (例如滚动到底部后开始做网络请求时,再次滚动到底部不会触发二次请求) 37 | * 如果 isOver 为 true 则不会再触发后续的 onEndReached 38 | * (例如已经加载了全部页,不需要再监听触底事件) 39 | */ 40 | await delay(2000) 41 | 42 | const isOver = false 43 | done(isOver) 44 | 45 | console.log('释放阻止') 46 | }, 47 | 48 | /** 49 | * 任意滚动位置函数相关,常见场景为滚动到某距离时出现“回到顶部”按钮 50 | * onGoingIn、onGoingOut 只在值变迁瞬间执行一次,不会执行多次 51 | * 可设置多组监听 52 | */ 53 | distanceEvents: [ 54 | { 55 | distance: 300, 56 | onGoingIn() { 57 | console.log('滚动距离低于了 300px') 58 | }, 59 | onGoingOut() { 60 | console.log('滚动距离高于了 300px') 61 | }, 62 | }, 63 | ], 64 | 65 | /** 66 | * 滚动的监听方向,vertical 为纵向,horizontal 为横向 67 | */ 68 | direction: 'vertical', 69 | }) 70 | 71 | // 手动解除监听 72 | scrollListener.destroy() 73 | ``` 74 | -------------------------------------------------------------------------------- /docs/InstanceDemo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJY0208/tiny-scroll-listener/cb5fe6e4c43abdf36e51f147381fb38974ba7f3c/docs/InstanceDemo.gif -------------------------------------------------------------------------------- /docs/TinyScrollListenerDemo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJY0208/tiny-scroll-listener/cb5fe6e4c43abdf36e51f147381fb38974ba7f3c/docs/TinyScrollListenerDemo.gif -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./lib/index.min.js'); 5 | } else { 6 | module.exports = require('./lib/index.js'); 7 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tiny-scroll-listener", 3 | "version": "1.1.1", 4 | "description": "一个监听滚动的小工具", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "rollup --config" 8 | }, 9 | "keywords": [ 10 | "scroll", 11 | "scroll listener" 12 | ], 13 | "author": "CJY0208", 14 | "license": "ISC", 15 | "homepage": "https://github.com/CJY0208/tiny-scroll-listener", 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/CJY0208/tiny-scroll-listener.git" 19 | }, 20 | "devDependencies": { 21 | "babel-core": "^6.26.3", 22 | "babel-preset-env": "^1.7.0", 23 | "babel-preset-stage-2": "^6.24.1", 24 | "rollup": "^0.61.2", 25 | "rollup-plugin-babel": "^3.0.5", 26 | "rollup-plugin-node-resolve": "^3.3.0", 27 | "rollup-plugin-uglify": "^4.0.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import resolve from 'rollup-plugin-node-resolve' 2 | import babel from 'rollup-plugin-babel' 3 | import { uglify } from 'rollup-plugin-uglify' 4 | 5 | export default [ 6 | { 7 | input: 'src/index.js', 8 | output: { 9 | name: 'TinyScrollListener', 10 | file: 'lib/index.js', 11 | format: 'cjs', 12 | sourcemap: true, 13 | }, 14 | plugins: [ 15 | resolve(), 16 | babel({ 17 | exclude: 'node_modules/**', 18 | }), 19 | ], 20 | }, 21 | { 22 | input: 'src/index.js', 23 | output: { 24 | name: 'TinyScrollListener', 25 | file: 'lib/index.min.js', 26 | format: 'umd', 27 | }, 28 | plugins: [ 29 | resolve(), 30 | babel({ 31 | exclude: 'node_modules/**', 32 | }), 33 | uglify(), 34 | ], 35 | }, 36 | ] 37 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const isFunction = (value) => typeof value === 'function' 2 | const OUTSIDE = 'OUTSIDE' 3 | const INSIDE = 'INSIDE' 4 | const DIRECTION_FORWARD = 1 5 | const DIRECTION_BACKWARD = -1 6 | const SCROLL_EVENT_NAME = 'scroll' 7 | const getEventDistance = (event) => 8 | isFunction(event.distance) ? event.distance() : event.distance 9 | 10 | /** 11 | * 默认使用 requestAnimationFrame 优化 scroll 监听 12 | */ 13 | const defaultGetScrollHandler = (onScroll) => { 14 | let rAFLock = false 15 | const scrollHandler = (e) => { 16 | if (rAFLock) return 17 | 18 | requestAnimationFrame(() => { 19 | onScroll(e) 20 | rAFLock = false 21 | }) 22 | rAFLock = true 23 | } 24 | 25 | return scrollHandler 26 | } 27 | 28 | export default class ScrollListener { 29 | config = {} 30 | constructor(config) { 31 | this.config = config 32 | this.init() 33 | } 34 | 35 | destroy = () => null 36 | init() { 37 | const { 38 | element, 39 | scrollHandler: getScrollHandler = defaultGetScrollHandler, 40 | getScrollDistance: configGetScrollDistance, 41 | direction = 'vertical', 42 | } = this.config 43 | 44 | // 若无滚动载体,报错并退出 45 | if (typeof element === 'undefined') { 46 | console.error('Need Scroll Container!') 47 | return 48 | } 49 | 50 | const getScrollDistance = isFunction(configGetScrollDistance) 51 | ? configGetScrollDistance 52 | : { 53 | vertical: () => element.scrollTop, 54 | horizontal: () => element.scrollLeft, 55 | }[direction] 56 | 57 | this.getScrollDistance = getScrollDistance 58 | 59 | this.genDynamicEvents() 60 | this.genStaticEvents() 61 | 62 | let prevScrollDistance = getScrollDistance() 63 | const onScroll = (e) => { 64 | e.stopPropagation() 65 | 66 | // body 元素的 scrollDistance 取值时不同于普通元素 67 | const scrollDistance = getScrollDistance() 68 | const direction = 69 | scrollDistance > prevScrollDistance 70 | ? DIRECTION_FORWARD 71 | : DIRECTION_BACKWARD 72 | const walkParams = { 73 | scrollDistance, 74 | direction, 75 | } 76 | 77 | this.walkStaticEvent(walkParams) 78 | this.walkDynamicEvents(walkParams) 79 | 80 | prevScrollDistance = scrollDistance 81 | } 82 | 83 | const scrollHandler = getScrollHandler(onScroll) 84 | 85 | element.addEventListener(SCROLL_EVENT_NAME, scrollHandler) 86 | 87 | this.destroy = () => 88 | element.removeEventListener(SCROLL_EVENT_NAME, scrollHandler) 89 | 90 | return this 91 | } 92 | 93 | getEndReachedEvent() { 94 | const { 95 | distanceToReachEnd = 100, 96 | onEndReached, 97 | element, 98 | direction = 'vertical', 99 | } = this.config 100 | 101 | /** 102 | * 若使用触底函数,则启用相关逻辑 103 | */ 104 | if (!isFunction(onEndReached)) { 105 | return 106 | } 107 | 108 | // 触底函数是否被冻结,将此值置为 true 则停止使用触底函数 109 | let isEndReacherFreeze = false 110 | 111 | /** 112 | * 每次触发 onEndReached 函数后会自动阻止下一次触发,需要执行 done 函数来释放阻止 113 | * (例如滚动到底部后开始做网络请求时,再次滚动到底部不会触发二次请求) 114 | * 如果 isOver 为 true 则不会再触发后续的 onEndReached 115 | * (例如已经加载了全部数据,不需要再监听触底事件) 116 | */ 117 | const done = (isOver) => { 118 | if (!isOver) { 119 | isEndReacherFreeze = false 120 | return 121 | } else { 122 | if ( 123 | this.staticEvents.length === 0 && 124 | this.dynamicEvents.length === 1 && 125 | this.dynamicEvents[0] === endReachedEvent 126 | ) { 127 | this.destroy() 128 | } 129 | } 130 | } 131 | 132 | const endReachedEvent = { 133 | dynamic: true, 134 | distance: { 135 | vertical: () => 136 | element.scrollHeight - element.offsetHeight - distanceToReachEnd, 137 | horizontal: () => 138 | element.scrollWidth - element.offsetWidth - distanceToReachEnd, 139 | }[direction], 140 | onGoingOut: () => { 141 | if (isEndReacherFreeze) return 142 | isEndReacherFreeze = true 143 | onEndReached(done) 144 | }, 145 | } 146 | 147 | return endReachedEvent 148 | } 149 | 150 | dynamicEvents = [] 151 | genDynamicEvents() { 152 | const { distanceEvents: configDistanceEvents = [] } = this.config 153 | const endReachedEvent = this.getEndReachedEvent() 154 | const scrollDistance = this.getScrollDistance() 155 | 156 | const dynamicEvents = [...configDistanceEvents, endReachedEvent] 157 | .filter((event) => event && event.dynamic) 158 | .map((event) => ({ 159 | ...event, 160 | status: scrollDistance > event.distance ? OUTSIDE : INSIDE, // 初始化滚动事件节点状态 161 | })) 162 | this.dynamicEvents = dynamicEvents 163 | } 164 | 165 | currentStaticEvent 166 | staticEvents = [] 167 | genStaticEvents() { 168 | const { distanceEvents: configDistanceEvents = [] } = this.config 169 | const scrollDistance = this.getScrollDistance() 170 | 171 | const staticEvents = configDistanceEvents 172 | .map((event) => ({ 173 | ...event, 174 | distance: getEventDistance(event), 175 | })) 176 | .filter((event) => event.distance >= 0 && !event.dynamic) 177 | .map((event, idx) => { 178 | const staticEvent = { 179 | ...event, 180 | prevEvent: undefined, 181 | nextEvent: undefined, 182 | getPrevEvent: () => { 183 | const prevEvent = staticEvents[idx - 1] || null 184 | staticEvent.prevEvent = prevEvent 185 | 186 | return prevEvent 187 | }, 188 | getNextEvent: () => { 189 | const nextEvent = staticEvents[idx + 1] || null 190 | staticEvent.nextEvent = nextEvent 191 | 192 | return nextEvent 193 | }, 194 | status: scrollDistance > event.distance ? OUTSIDE : INSIDE, // 初始化滚动事件节点状态 195 | } 196 | 197 | return staticEvent 198 | }) 199 | 200 | this.staticEvents = staticEvents 201 | this.currentStaticEvent = staticEvents.find( 202 | (event) => event.distance >= scrollDistance 203 | ) 204 | } 205 | 206 | walkEvent = (event, scrollDistance) => { 207 | const { 208 | onGoingIn = () => undefined, 209 | onGoingOut = () => undefined, 210 | status, 211 | } = event 212 | const distance = getEventDistance(event) 213 | 214 | // 仅当状态值变更时触发 onGoingIn、onGoingOut 函数 215 | switch (status) { 216 | case INSIDE: { 217 | if (scrollDistance > distance) { 218 | onGoingOut() 219 | event.status = OUTSIDE 220 | } 221 | break 222 | } 223 | default: 224 | case OUTSIDE: { 225 | if (scrollDistance <= distance) { 226 | onGoingIn() 227 | event.status = INSIDE 228 | } 229 | break 230 | } 231 | } 232 | 233 | return event.status !== status 234 | } 235 | 236 | walkStaticEvent = ({ direction, scrollDistance }) => { 237 | const current = this.currentStaticEvent 238 | 239 | if (!current) { 240 | return 241 | } 242 | 243 | const prev = current.prevEvent || current.getPrevEvent() 244 | const next = current.nextEvent || current.getNextEvent() 245 | let target = current 246 | 247 | if (direction === DIRECTION_FORWARD) { 248 | if (current.status === OUTSIDE) { 249 | target = next 250 | } 251 | } else { 252 | if (current.status === INSIDE) { 253 | target = prev 254 | } 255 | } 256 | 257 | if (target) { 258 | const changed = this.walkEvent(target, scrollDistance) 259 | 260 | // 若发生状态变迁 261 | if (changed) { 262 | this.currentStaticEvent = 263 | (direction === DIRECTION_FORWARD ? next : prev) || current 264 | 265 | this.walkStaticEvent({ direction, scrollDistance }) 266 | } 267 | } 268 | } 269 | 270 | walkDynamicEvents = ({ direction, scrollDistance }) => { 271 | this.dynamicEvents 272 | .sort( 273 | (prev, next) => 274 | (getEventDistance(prev) - getEventDistance(next)) * direction 275 | ) 276 | .forEach((event) => { 277 | this.walkEvent(event, scrollDistance) 278 | }) 279 | } 280 | } 281 | -------------------------------------------------------------------------------- /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-beta.47": 6 | version "7.0.0-beta.51" 7 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" 8 | dependencies: 9 | "@babel/highlight" "7.0.0-beta.51" 10 | 11 | "@babel/highlight@7.0.0-beta.51": 12 | version "7.0.0-beta.51" 13 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" 14 | dependencies: 15 | chalk "^2.0.0" 16 | esutils "^2.0.2" 17 | js-tokens "^3.0.0" 18 | 19 | "@types/estree@0.0.39": 20 | version "0.0.39" 21 | resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 22 | 23 | "@types/node@*": 24 | version "10.3.6" 25 | resolved "https://registry.npmjs.org/@types/node/-/node-10.3.6.tgz#ea8aab9439b59f40d19ec5f13b44642344872b11" 26 | 27 | ansi-regex@^2.0.0: 28 | version "2.1.1" 29 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 30 | 31 | ansi-styles@^2.2.1: 32 | version "2.2.1" 33 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 34 | 35 | ansi-styles@^3.2.1: 36 | version "3.2.1" 37 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 38 | dependencies: 39 | color-convert "^1.9.0" 40 | 41 | babel-code-frame@^6.26.0: 42 | version "6.26.0" 43 | resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 44 | dependencies: 45 | chalk "^1.1.3" 46 | esutils "^2.0.2" 47 | js-tokens "^3.0.2" 48 | 49 | babel-core@^6.26.0, babel-core@^6.26.3: 50 | version "6.26.3" 51 | resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 52 | dependencies: 53 | babel-code-frame "^6.26.0" 54 | babel-generator "^6.26.0" 55 | babel-helpers "^6.24.1" 56 | babel-messages "^6.23.0" 57 | babel-register "^6.26.0" 58 | babel-runtime "^6.26.0" 59 | babel-template "^6.26.0" 60 | babel-traverse "^6.26.0" 61 | babel-types "^6.26.0" 62 | babylon "^6.18.0" 63 | convert-source-map "^1.5.1" 64 | debug "^2.6.9" 65 | json5 "^0.5.1" 66 | lodash "^4.17.4" 67 | minimatch "^3.0.4" 68 | path-is-absolute "^1.0.1" 69 | private "^0.1.8" 70 | slash "^1.0.0" 71 | source-map "^0.5.7" 72 | 73 | babel-generator@^6.26.0: 74 | version "6.26.1" 75 | resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 76 | dependencies: 77 | babel-messages "^6.23.0" 78 | babel-runtime "^6.26.0" 79 | babel-types "^6.26.0" 80 | detect-indent "^4.0.0" 81 | jsesc "^1.3.0" 82 | lodash "^4.17.4" 83 | source-map "^0.5.7" 84 | trim-right "^1.0.1" 85 | 86 | babel-helper-bindify-decorators@^6.24.1: 87 | version "6.24.1" 88 | resolved "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" 89 | dependencies: 90 | babel-runtime "^6.22.0" 91 | babel-traverse "^6.24.1" 92 | babel-types "^6.24.1" 93 | 94 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 95 | version "6.24.1" 96 | resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 97 | dependencies: 98 | babel-helper-explode-assignable-expression "^6.24.1" 99 | babel-runtime "^6.22.0" 100 | babel-types "^6.24.1" 101 | 102 | babel-helper-call-delegate@^6.24.1: 103 | version "6.24.1" 104 | resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 105 | dependencies: 106 | babel-helper-hoist-variables "^6.24.1" 107 | babel-runtime "^6.22.0" 108 | babel-traverse "^6.24.1" 109 | babel-types "^6.24.1" 110 | 111 | babel-helper-define-map@^6.24.1: 112 | version "6.26.0" 113 | resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" 114 | dependencies: 115 | babel-helper-function-name "^6.24.1" 116 | babel-runtime "^6.26.0" 117 | babel-types "^6.26.0" 118 | lodash "^4.17.4" 119 | 120 | babel-helper-explode-assignable-expression@^6.24.1: 121 | version "6.24.1" 122 | resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 123 | dependencies: 124 | babel-runtime "^6.22.0" 125 | babel-traverse "^6.24.1" 126 | babel-types "^6.24.1" 127 | 128 | babel-helper-explode-class@^6.24.1: 129 | version "6.24.1" 130 | resolved "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" 131 | dependencies: 132 | babel-helper-bindify-decorators "^6.24.1" 133 | babel-runtime "^6.22.0" 134 | babel-traverse "^6.24.1" 135 | babel-types "^6.24.1" 136 | 137 | babel-helper-function-name@^6.24.1: 138 | version "6.24.1" 139 | resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 140 | dependencies: 141 | babel-helper-get-function-arity "^6.24.1" 142 | babel-runtime "^6.22.0" 143 | babel-template "^6.24.1" 144 | babel-traverse "^6.24.1" 145 | babel-types "^6.24.1" 146 | 147 | babel-helper-get-function-arity@^6.24.1: 148 | version "6.24.1" 149 | resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 150 | dependencies: 151 | babel-runtime "^6.22.0" 152 | babel-types "^6.24.1" 153 | 154 | babel-helper-hoist-variables@^6.24.1: 155 | version "6.24.1" 156 | resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 157 | dependencies: 158 | babel-runtime "^6.22.0" 159 | babel-types "^6.24.1" 160 | 161 | babel-helper-optimise-call-expression@^6.24.1: 162 | version "6.24.1" 163 | resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 164 | dependencies: 165 | babel-runtime "^6.22.0" 166 | babel-types "^6.24.1" 167 | 168 | babel-helper-regex@^6.24.1: 169 | version "6.26.0" 170 | resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" 171 | dependencies: 172 | babel-runtime "^6.26.0" 173 | babel-types "^6.26.0" 174 | lodash "^4.17.4" 175 | 176 | babel-helper-remap-async-to-generator@^6.24.1: 177 | version "6.24.1" 178 | resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 179 | dependencies: 180 | babel-helper-function-name "^6.24.1" 181 | babel-runtime "^6.22.0" 182 | babel-template "^6.24.1" 183 | babel-traverse "^6.24.1" 184 | babel-types "^6.24.1" 185 | 186 | babel-helper-replace-supers@^6.24.1: 187 | version "6.24.1" 188 | resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 189 | dependencies: 190 | babel-helper-optimise-call-expression "^6.24.1" 191 | babel-messages "^6.23.0" 192 | babel-runtime "^6.22.0" 193 | babel-template "^6.24.1" 194 | babel-traverse "^6.24.1" 195 | babel-types "^6.24.1" 196 | 197 | babel-helpers@^6.24.1: 198 | version "6.24.1" 199 | resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 200 | dependencies: 201 | babel-runtime "^6.22.0" 202 | babel-template "^6.24.1" 203 | 204 | babel-messages@^6.23.0: 205 | version "6.23.0" 206 | resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 207 | dependencies: 208 | babel-runtime "^6.22.0" 209 | 210 | babel-plugin-check-es2015-constants@^6.22.0: 211 | version "6.22.0" 212 | resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 213 | dependencies: 214 | babel-runtime "^6.22.0" 215 | 216 | babel-plugin-syntax-async-functions@^6.8.0: 217 | version "6.13.0" 218 | resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 219 | 220 | babel-plugin-syntax-async-generators@^6.5.0: 221 | version "6.13.0" 222 | resolved "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" 223 | 224 | babel-plugin-syntax-class-properties@^6.8.0: 225 | version "6.13.0" 226 | resolved "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" 227 | 228 | babel-plugin-syntax-decorators@^6.13.0: 229 | version "6.13.0" 230 | resolved "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" 231 | 232 | babel-plugin-syntax-dynamic-import@^6.18.0: 233 | version "6.18.0" 234 | resolved "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" 235 | 236 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 237 | version "6.13.0" 238 | resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 239 | 240 | babel-plugin-syntax-object-rest-spread@^6.8.0: 241 | version "6.13.0" 242 | resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 243 | 244 | babel-plugin-syntax-trailing-function-commas@^6.22.0: 245 | version "6.22.0" 246 | resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 247 | 248 | babel-plugin-transform-async-generator-functions@^6.24.1: 249 | version "6.24.1" 250 | resolved "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" 251 | dependencies: 252 | babel-helper-remap-async-to-generator "^6.24.1" 253 | babel-plugin-syntax-async-generators "^6.5.0" 254 | babel-runtime "^6.22.0" 255 | 256 | babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: 257 | version "6.24.1" 258 | resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 259 | dependencies: 260 | babel-helper-remap-async-to-generator "^6.24.1" 261 | babel-plugin-syntax-async-functions "^6.8.0" 262 | babel-runtime "^6.22.0" 263 | 264 | babel-plugin-transform-class-properties@^6.24.1: 265 | version "6.24.1" 266 | resolved "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" 267 | dependencies: 268 | babel-helper-function-name "^6.24.1" 269 | babel-plugin-syntax-class-properties "^6.8.0" 270 | babel-runtime "^6.22.0" 271 | babel-template "^6.24.1" 272 | 273 | babel-plugin-transform-decorators@^6.24.1: 274 | version "6.24.1" 275 | resolved "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" 276 | dependencies: 277 | babel-helper-explode-class "^6.24.1" 278 | babel-plugin-syntax-decorators "^6.13.0" 279 | babel-runtime "^6.22.0" 280 | babel-template "^6.24.1" 281 | babel-types "^6.24.1" 282 | 283 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 284 | version "6.22.0" 285 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 286 | dependencies: 287 | babel-runtime "^6.22.0" 288 | 289 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 290 | version "6.22.0" 291 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 292 | dependencies: 293 | babel-runtime "^6.22.0" 294 | 295 | babel-plugin-transform-es2015-block-scoping@^6.23.0: 296 | version "6.26.0" 297 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" 298 | dependencies: 299 | babel-runtime "^6.26.0" 300 | babel-template "^6.26.0" 301 | babel-traverse "^6.26.0" 302 | babel-types "^6.26.0" 303 | lodash "^4.17.4" 304 | 305 | babel-plugin-transform-es2015-classes@^6.23.0: 306 | version "6.24.1" 307 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 308 | dependencies: 309 | babel-helper-define-map "^6.24.1" 310 | babel-helper-function-name "^6.24.1" 311 | babel-helper-optimise-call-expression "^6.24.1" 312 | babel-helper-replace-supers "^6.24.1" 313 | babel-messages "^6.23.0" 314 | babel-runtime "^6.22.0" 315 | babel-template "^6.24.1" 316 | babel-traverse "^6.24.1" 317 | babel-types "^6.24.1" 318 | 319 | babel-plugin-transform-es2015-computed-properties@^6.22.0: 320 | version "6.24.1" 321 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 322 | dependencies: 323 | babel-runtime "^6.22.0" 324 | babel-template "^6.24.1" 325 | 326 | babel-plugin-transform-es2015-destructuring@^6.23.0: 327 | version "6.23.0" 328 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 329 | dependencies: 330 | babel-runtime "^6.22.0" 331 | 332 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: 333 | version "6.24.1" 334 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 335 | dependencies: 336 | babel-runtime "^6.22.0" 337 | babel-types "^6.24.1" 338 | 339 | babel-plugin-transform-es2015-for-of@^6.23.0: 340 | version "6.23.0" 341 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 342 | dependencies: 343 | babel-runtime "^6.22.0" 344 | 345 | babel-plugin-transform-es2015-function-name@^6.22.0: 346 | version "6.24.1" 347 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 348 | dependencies: 349 | babel-helper-function-name "^6.24.1" 350 | babel-runtime "^6.22.0" 351 | babel-types "^6.24.1" 352 | 353 | babel-plugin-transform-es2015-literals@^6.22.0: 354 | version "6.22.0" 355 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 356 | dependencies: 357 | babel-runtime "^6.22.0" 358 | 359 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: 360 | version "6.24.1" 361 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 362 | dependencies: 363 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 364 | babel-runtime "^6.22.0" 365 | babel-template "^6.24.1" 366 | 367 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 368 | version "6.26.2" 369 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" 370 | dependencies: 371 | babel-plugin-transform-strict-mode "^6.24.1" 372 | babel-runtime "^6.26.0" 373 | babel-template "^6.26.0" 374 | babel-types "^6.26.0" 375 | 376 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: 377 | version "6.24.1" 378 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 379 | dependencies: 380 | babel-helper-hoist-variables "^6.24.1" 381 | babel-runtime "^6.22.0" 382 | babel-template "^6.24.1" 383 | 384 | babel-plugin-transform-es2015-modules-umd@^6.23.0: 385 | version "6.24.1" 386 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 387 | dependencies: 388 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 389 | babel-runtime "^6.22.0" 390 | babel-template "^6.24.1" 391 | 392 | babel-plugin-transform-es2015-object-super@^6.22.0: 393 | version "6.24.1" 394 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 395 | dependencies: 396 | babel-helper-replace-supers "^6.24.1" 397 | babel-runtime "^6.22.0" 398 | 399 | babel-plugin-transform-es2015-parameters@^6.23.0: 400 | version "6.24.1" 401 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 402 | dependencies: 403 | babel-helper-call-delegate "^6.24.1" 404 | babel-helper-get-function-arity "^6.24.1" 405 | babel-runtime "^6.22.0" 406 | babel-template "^6.24.1" 407 | babel-traverse "^6.24.1" 408 | babel-types "^6.24.1" 409 | 410 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: 411 | version "6.24.1" 412 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 413 | dependencies: 414 | babel-runtime "^6.22.0" 415 | babel-types "^6.24.1" 416 | 417 | babel-plugin-transform-es2015-spread@^6.22.0: 418 | version "6.22.0" 419 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 420 | dependencies: 421 | babel-runtime "^6.22.0" 422 | 423 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: 424 | version "6.24.1" 425 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 426 | dependencies: 427 | babel-helper-regex "^6.24.1" 428 | babel-runtime "^6.22.0" 429 | babel-types "^6.24.1" 430 | 431 | babel-plugin-transform-es2015-template-literals@^6.22.0: 432 | version "6.22.0" 433 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 434 | dependencies: 435 | babel-runtime "^6.22.0" 436 | 437 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: 438 | version "6.23.0" 439 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 440 | dependencies: 441 | babel-runtime "^6.22.0" 442 | 443 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: 444 | version "6.24.1" 445 | resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 446 | dependencies: 447 | babel-helper-regex "^6.24.1" 448 | babel-runtime "^6.22.0" 449 | regexpu-core "^2.0.0" 450 | 451 | babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: 452 | version "6.24.1" 453 | resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 454 | dependencies: 455 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 456 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 457 | babel-runtime "^6.22.0" 458 | 459 | babel-plugin-transform-object-rest-spread@^6.22.0: 460 | version "6.26.0" 461 | resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" 462 | dependencies: 463 | babel-plugin-syntax-object-rest-spread "^6.8.0" 464 | babel-runtime "^6.26.0" 465 | 466 | babel-plugin-transform-regenerator@^6.22.0: 467 | version "6.26.0" 468 | resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" 469 | dependencies: 470 | regenerator-transform "^0.10.0" 471 | 472 | babel-plugin-transform-strict-mode@^6.24.1: 473 | version "6.24.1" 474 | resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 475 | dependencies: 476 | babel-runtime "^6.22.0" 477 | babel-types "^6.24.1" 478 | 479 | babel-preset-env@^1.7.0: 480 | version "1.7.0" 481 | resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" 482 | dependencies: 483 | babel-plugin-check-es2015-constants "^6.22.0" 484 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 485 | babel-plugin-transform-async-to-generator "^6.22.0" 486 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 487 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 488 | babel-plugin-transform-es2015-block-scoping "^6.23.0" 489 | babel-plugin-transform-es2015-classes "^6.23.0" 490 | babel-plugin-transform-es2015-computed-properties "^6.22.0" 491 | babel-plugin-transform-es2015-destructuring "^6.23.0" 492 | babel-plugin-transform-es2015-duplicate-keys "^6.22.0" 493 | babel-plugin-transform-es2015-for-of "^6.23.0" 494 | babel-plugin-transform-es2015-function-name "^6.22.0" 495 | babel-plugin-transform-es2015-literals "^6.22.0" 496 | babel-plugin-transform-es2015-modules-amd "^6.22.0" 497 | babel-plugin-transform-es2015-modules-commonjs "^6.23.0" 498 | babel-plugin-transform-es2015-modules-systemjs "^6.23.0" 499 | babel-plugin-transform-es2015-modules-umd "^6.23.0" 500 | babel-plugin-transform-es2015-object-super "^6.22.0" 501 | babel-plugin-transform-es2015-parameters "^6.23.0" 502 | babel-plugin-transform-es2015-shorthand-properties "^6.22.0" 503 | babel-plugin-transform-es2015-spread "^6.22.0" 504 | babel-plugin-transform-es2015-sticky-regex "^6.22.0" 505 | babel-plugin-transform-es2015-template-literals "^6.22.0" 506 | babel-plugin-transform-es2015-typeof-symbol "^6.23.0" 507 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" 508 | babel-plugin-transform-exponentiation-operator "^6.22.0" 509 | babel-plugin-transform-regenerator "^6.22.0" 510 | browserslist "^3.2.6" 511 | invariant "^2.2.2" 512 | semver "^5.3.0" 513 | 514 | babel-preset-stage-2@^6.24.1: 515 | version "6.24.1" 516 | resolved "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" 517 | dependencies: 518 | babel-plugin-syntax-dynamic-import "^6.18.0" 519 | babel-plugin-transform-class-properties "^6.24.1" 520 | babel-plugin-transform-decorators "^6.24.1" 521 | babel-preset-stage-3 "^6.24.1" 522 | 523 | babel-preset-stage-3@^6.24.1: 524 | version "6.24.1" 525 | resolved "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" 526 | dependencies: 527 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 528 | babel-plugin-transform-async-generator-functions "^6.24.1" 529 | babel-plugin-transform-async-to-generator "^6.24.1" 530 | babel-plugin-transform-exponentiation-operator "^6.24.1" 531 | babel-plugin-transform-object-rest-spread "^6.22.0" 532 | 533 | babel-register@^6.26.0: 534 | version "6.26.0" 535 | resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 536 | dependencies: 537 | babel-core "^6.26.0" 538 | babel-runtime "^6.26.0" 539 | core-js "^2.5.0" 540 | home-or-tmp "^2.0.0" 541 | lodash "^4.17.4" 542 | mkdirp "^0.5.1" 543 | source-map-support "^0.4.15" 544 | 545 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: 546 | version "6.26.0" 547 | resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 548 | dependencies: 549 | core-js "^2.4.0" 550 | regenerator-runtime "^0.11.0" 551 | 552 | babel-template@^6.24.1, babel-template@^6.26.0: 553 | version "6.26.0" 554 | resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 555 | dependencies: 556 | babel-runtime "^6.26.0" 557 | babel-traverse "^6.26.0" 558 | babel-types "^6.26.0" 559 | babylon "^6.18.0" 560 | lodash "^4.17.4" 561 | 562 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: 563 | version "6.26.0" 564 | resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 565 | dependencies: 566 | babel-code-frame "^6.26.0" 567 | babel-messages "^6.23.0" 568 | babel-runtime "^6.26.0" 569 | babel-types "^6.26.0" 570 | babylon "^6.18.0" 571 | debug "^2.6.8" 572 | globals "^9.18.0" 573 | invariant "^2.2.2" 574 | lodash "^4.17.4" 575 | 576 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: 577 | version "6.26.0" 578 | resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 579 | dependencies: 580 | babel-runtime "^6.26.0" 581 | esutils "^2.0.2" 582 | lodash "^4.17.4" 583 | to-fast-properties "^1.0.3" 584 | 585 | babylon@^6.18.0: 586 | version "6.18.0" 587 | resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 588 | 589 | balanced-match@^1.0.0: 590 | version "1.0.0" 591 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 592 | 593 | brace-expansion@^1.1.7: 594 | version "1.1.11" 595 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 596 | dependencies: 597 | balanced-match "^1.0.0" 598 | concat-map "0.0.1" 599 | 600 | browserslist@^3.2.6: 601 | version "3.2.8" 602 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" 603 | dependencies: 604 | caniuse-lite "^1.0.30000844" 605 | electron-to-chromium "^1.3.47" 606 | 607 | builtin-modules@^2.0.0: 608 | version "2.0.0" 609 | resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" 610 | 611 | caniuse-lite@^1.0.30000844: 612 | version "1.0.30000858" 613 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000858.tgz#f6f203a9128bac507136de1cf6cfd966d2df027c" 614 | 615 | chalk@^1.1.3: 616 | version "1.1.3" 617 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 618 | dependencies: 619 | ansi-styles "^2.2.1" 620 | escape-string-regexp "^1.0.2" 621 | has-ansi "^2.0.0" 622 | strip-ansi "^3.0.0" 623 | supports-color "^2.0.0" 624 | 625 | chalk@^2.0.0: 626 | version "2.4.1" 627 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 628 | dependencies: 629 | ansi-styles "^3.2.1" 630 | escape-string-regexp "^1.0.5" 631 | supports-color "^5.3.0" 632 | 633 | color-convert@^1.9.0: 634 | version "1.9.2" 635 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 636 | dependencies: 637 | color-name "1.1.1" 638 | 639 | color-name@1.1.1: 640 | version "1.1.1" 641 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 642 | 643 | commander@~2.15.0: 644 | version "2.15.1" 645 | resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 646 | 647 | concat-map@0.0.1: 648 | version "0.0.1" 649 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 650 | 651 | convert-source-map@^1.5.1: 652 | version "1.5.1" 653 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 654 | 655 | core-js@^2.4.0, core-js@^2.5.0: 656 | version "2.5.7" 657 | resolved "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 658 | 659 | debug@^2.6.8, debug@^2.6.9: 660 | version "2.6.9" 661 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 662 | dependencies: 663 | ms "2.0.0" 664 | 665 | detect-indent@^4.0.0: 666 | version "4.0.0" 667 | resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 668 | dependencies: 669 | repeating "^2.0.0" 670 | 671 | electron-to-chromium@^1.3.47: 672 | version "1.3.50" 673 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz#7438b76f92b41b919f3fbdd350fbd0757dacddf7" 674 | 675 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 676 | version "1.0.5" 677 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 678 | 679 | estree-walker@^0.2.1: 680 | version "0.2.1" 681 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" 682 | 683 | esutils@^2.0.2: 684 | version "2.0.2" 685 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 686 | 687 | globals@^9.18.0: 688 | version "9.18.0" 689 | resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 690 | 691 | has-ansi@^2.0.0: 692 | version "2.0.0" 693 | resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 694 | dependencies: 695 | ansi-regex "^2.0.0" 696 | 697 | has-flag@^3.0.0: 698 | version "3.0.0" 699 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 700 | 701 | home-or-tmp@^2.0.0: 702 | version "2.0.0" 703 | resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 704 | dependencies: 705 | os-homedir "^1.0.0" 706 | os-tmpdir "^1.0.1" 707 | 708 | invariant@^2.2.2: 709 | version "2.2.4" 710 | resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 711 | dependencies: 712 | loose-envify "^1.0.0" 713 | 714 | is-finite@^1.0.0: 715 | version "1.0.2" 716 | resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 717 | dependencies: 718 | number-is-nan "^1.0.0" 719 | 720 | is-module@^1.0.0: 721 | version "1.0.0" 722 | resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 723 | 724 | js-tokens@^3.0.0, js-tokens@^3.0.2: 725 | version "3.0.2" 726 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 727 | 728 | jsesc@^1.3.0: 729 | version "1.3.0" 730 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 731 | 732 | jsesc@~0.5.0: 733 | version "0.5.0" 734 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 735 | 736 | json5@^0.5.1: 737 | version "0.5.1" 738 | resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 739 | 740 | lodash@^4.17.4: 741 | version "4.17.15" 742 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 743 | 744 | loose-envify@^1.0.0: 745 | version "1.3.1" 746 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 747 | dependencies: 748 | js-tokens "^3.0.0" 749 | 750 | minimatch@^3.0.2, minimatch@^3.0.4: 751 | version "3.0.4" 752 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 753 | dependencies: 754 | brace-expansion "^1.1.7" 755 | 756 | minimist@0.0.8: 757 | version "0.0.8" 758 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 759 | 760 | mkdirp@^0.5.1: 761 | version "0.5.1" 762 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 763 | dependencies: 764 | minimist "0.0.8" 765 | 766 | ms@2.0.0: 767 | version "2.0.0" 768 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 769 | 770 | number-is-nan@^1.0.0: 771 | version "1.0.1" 772 | resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 773 | 774 | os-homedir@^1.0.0: 775 | version "1.0.2" 776 | resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 777 | 778 | os-tmpdir@^1.0.1: 779 | version "1.0.2" 780 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 781 | 782 | path-is-absolute@^1.0.1: 783 | version "1.0.1" 784 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 785 | 786 | path-parse@^1.0.5: 787 | version "1.0.5" 788 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 789 | 790 | private@^0.1.6, private@^0.1.8: 791 | version "0.1.8" 792 | resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 793 | 794 | regenerate@^1.2.1: 795 | version "1.4.0" 796 | resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 797 | 798 | regenerator-runtime@^0.11.0: 799 | version "0.11.1" 800 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 801 | 802 | regenerator-transform@^0.10.0: 803 | version "0.10.1" 804 | resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" 805 | dependencies: 806 | babel-runtime "^6.18.0" 807 | babel-types "^6.19.0" 808 | private "^0.1.6" 809 | 810 | regexpu-core@^2.0.0: 811 | version "2.0.0" 812 | resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 813 | dependencies: 814 | regenerate "^1.2.1" 815 | regjsgen "^0.2.0" 816 | regjsparser "^0.1.4" 817 | 818 | regjsgen@^0.2.0: 819 | version "0.2.0" 820 | resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 821 | 822 | regjsparser@^0.1.4: 823 | version "0.1.5" 824 | resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 825 | dependencies: 826 | jsesc "~0.5.0" 827 | 828 | repeating@^2.0.0: 829 | version "2.0.1" 830 | resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 831 | dependencies: 832 | is-finite "^1.0.0" 833 | 834 | resolve@^1.1.6: 835 | version "1.8.1" 836 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 837 | dependencies: 838 | path-parse "^1.0.5" 839 | 840 | rollup-plugin-babel@^3.0.5: 841 | version "3.0.5" 842 | resolved "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-3.0.5.tgz#9769a7977098da1dce5b5888fe38dfd8666bf08d" 843 | dependencies: 844 | rollup-pluginutils "^1.5.0" 845 | 846 | rollup-plugin-node-resolve@^3.3.0: 847 | version "3.3.0" 848 | resolved "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" 849 | dependencies: 850 | builtin-modules "^2.0.0" 851 | is-module "^1.0.0" 852 | resolve "^1.1.6" 853 | 854 | rollup-plugin-uglify@^4.0.0: 855 | version "4.0.0" 856 | resolved "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-4.0.0.tgz#6eb471738f1ce9ba7d9d4bc43b71cba02417c8fb" 857 | dependencies: 858 | "@babel/code-frame" "^7.0.0-beta.47" 859 | uglify-js "^3.3.25" 860 | 861 | rollup-pluginutils@^1.5.0: 862 | version "1.5.2" 863 | resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" 864 | dependencies: 865 | estree-walker "^0.2.1" 866 | minimatch "^3.0.2" 867 | 868 | rollup@^0.61.2: 869 | version "0.61.2" 870 | resolved "https://registry.npmjs.org/rollup/-/rollup-0.61.2.tgz#30a953736964683a5b8ea952b137a393d84e6302" 871 | dependencies: 872 | "@types/estree" "0.0.39" 873 | "@types/node" "*" 874 | 875 | semver@^5.3.0: 876 | version "5.5.0" 877 | resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 878 | 879 | slash@^1.0.0: 880 | version "1.0.0" 881 | resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 882 | 883 | source-map-support@^0.4.15: 884 | version "0.4.18" 885 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 886 | dependencies: 887 | source-map "^0.5.6" 888 | 889 | source-map@^0.5.6, source-map@^0.5.7: 890 | version "0.5.7" 891 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 892 | 893 | source-map@~0.6.1: 894 | version "0.6.1" 895 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 896 | 897 | strip-ansi@^3.0.0: 898 | version "3.0.1" 899 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 900 | dependencies: 901 | ansi-regex "^2.0.0" 902 | 903 | supports-color@^2.0.0: 904 | version "2.0.0" 905 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 906 | 907 | supports-color@^5.3.0: 908 | version "5.4.0" 909 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 910 | dependencies: 911 | has-flag "^3.0.0" 912 | 913 | to-fast-properties@^1.0.3: 914 | version "1.0.3" 915 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 916 | 917 | trim-right@^1.0.1: 918 | version "1.0.1" 919 | resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 920 | 921 | uglify-js@^3.3.25: 922 | version "3.4.2" 923 | resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.2.tgz#70511a390eb62423675ba63c374ba1abf045116c" 924 | dependencies: 925 | commander "~2.15.0" 926 | source-map "~0.6.1" 927 | --------------------------------------------------------------------------------