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