Codebase list node-rollup-plugin-commonjs / 4e78dde
Update upstream source from tag 'upstream/9.2.0' Update to upstream version '9.2.0' with Debian dir 15a27b3e99ca6f7f785e998c3f9147cbe78320bc Julien Puydt 5 years ago
43 changed file(s) with 4248 addition(s) and 1629 deletion(s). Raw diff Collapse all Expand all
+0
-26
.eslintrc less more
0 {
1 "rules": {
2 "indent": [ 2, "tab", { "SwitchCase": 1 } ],
3 "quotes": [ 2, "single", { "allowTemplateLiterals": true } ],
4 "semi": [ 2, "always" ],
5 "keyword-spacing": [ 2, { "before": true, "after": true } ],
6 "space-before-blocks": [ 2, "always" ],
7 "space-before-function-paren": [ 2, "always" ],
8 "no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ],
9 "no-cond-assign": [ 0 ],
10 "no-unused-vars": [ 2 ],
11 "no-var": [ 2 ],
12 "prefer-const": [ 2 ],
13 "no-console": [ 0 ]
14 },
15 "env": {
16 "es6": true,
17 "mocha": true,
18 "node": true
19 },
20 "extends": "eslint:recommended",
21 "parserOptions": {
22 "ecmaVersion": 8,
23 "sourceType": "module"
24 }
25 }
0 {
1 "root": true,
2 "rules": {
3 "indent": [ 2, "tab", { "SwitchCase": 1 } ],
4 "semi": [ 2, "always" ],
5 "keyword-spacing": [ 2, { "before": true, "after": true } ],
6 "space-before-blocks": [ 2, "always" ],
7 "no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ],
8 "no-cond-assign": 0,
9 "no-unused-vars": 2,
10 "object-shorthand": [ 2, "always" ],
11 "no-const-assign": 2,
12 "no-class-assign": 2,
13 "no-this-before-super": 2,
14 "no-var": 2,
15 "no-unreachable": 2,
16 "valid-typeof": 2,
17 "quote-props": [ 2, "as-needed" ],
18 "one-var": [ 2, "never" ],
19 "prefer-arrow-callback": 2,
20 "prefer-const": [ 2, { "destructuring": "all" } ],
21 "arrow-spacing": 2
22 },
23 "env": {
24 "es6": true,
25 "browser": true,
26 "node": true
27 },
28 "extends": [
29 "eslint:recommended",
30 "plugin:import/errors",
31 "plugin:import/warnings"
32 ],
33 "parserOptions": {
34 "ecmaVersion": 8,
35 "sourceType": "module"
36 },
37 "settings": {
38 "import/ignore": [ 0, [
39 "\\.path.js$"
40 ] ]
41 }
42 }
11 node_modules
22 .gobble*
33 dist
4 !test/node_modules
4 !test/**/node_modules
0 {
1 "hooks": {
2 "post-commit": "git reset",
3 "pre-commit": "lint-staged"
4 }
5 }
0 {
1 "{src/**/*,test/test,test/**/_config}.js": [
2 "prettier --write",
3 "eslint --fix",
4 "git add"
5 ]
6 }
0 {
1 "singleQuote": true,
2 "useTabs": true,
3 "printWidth": 100
4 }
00 sudo: false
11 language: node_js
22 node_js:
3 - "node"
3 - "8"
4 - "10"
45 env:
56 global:
67 - BUILD_TIMEOUT=10000
78 install: npm install
8 before_install:
9 - if [[ $TRAVIS_NODE_VERSION -lt 7 ]]; then npm install --global npm@4; fi
00 # rollup-plugin-commonjs changelog
1
2 ## 9.2.0
3 *2018-10-10*
4 * Fix missing default warning, produce better code when importing known ESM default exports ([#349](https://github.com/rollup/rollup-plugin-commonjs/issues/349))
5 * Refactor code and add prettier ([#346](https://github.com/rollup/rollup-plugin-commonjs/issues/346))
16
27 ## 9.1.8
38 *2018-09-18*
00 {
11 "name": "rollup-plugin-commonjs",
2 "version": "9.1.8",
2 "version": "9.2.0",
33 "lockfileVersion": 1,
44 "requires": true,
55 "dependencies": {
6 "@babel/code-frame": {
7 "version": "7.0.0",
8 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
9 "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
10 "dev": true,
11 "requires": {
12 "@babel/highlight": "^7.0.0"
13 }
14 },
15 "@babel/highlight": {
16 "version": "7.0.0",
17 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
18 "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
19 "dev": true,
20 "requires": {
21 "chalk": "^2.0.0",
22 "esutils": "^2.0.2",
23 "js-tokens": "^4.0.0"
24 }
25 },
26 "@samverschueren/stream-to-observable": {
27 "version": "0.3.0",
28 "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
29 "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
30 "dev": true,
31 "requires": {
32 "any-observable": "^0.3.0"
33 }
34 },
635 "@types/estree": {
736 "version": "0.0.39",
837 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
1039 "dev": true
1140 },
1241 "@types/node": {
13 "version": "10.5.2",
14 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz",
15 "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==",
42 "version": "10.11.3",
43 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.3.tgz",
44 "integrity": "sha512-3AvcEJAh9EMatxs+OxAlvAEs7OTy6AG94mcH1iqyVDwVVndekLxzwkWQ/Z4SDbY6GO2oyUXyWW8tQ4rENSSQVQ==",
1645 "dev": true
1746 },
1847 "acorn": {
19 "version": "5.5.0",
20 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz",
21 "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==",
48 "version": "6.0.2",
49 "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz",
50 "integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==",
2251 "dev": true
2352 },
2453 "acorn-dynamic-import": {
2857 "dev": true,
2958 "requires": {
3059 "acorn": "^5.0.0"
60 },
61 "dependencies": {
62 "acorn": {
63 "version": "5.7.3",
64 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
65 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
66 "dev": true
67 }
3168 }
3269 },
3370 "acorn-jsx": {
34 "version": "3.0.1",
35 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
36 "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
37 "dev": true,
38 "requires": {
39 "acorn": "^3.0.4"
71 "version": "4.1.1",
72 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz",
73 "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==",
74 "dev": true,
75 "requires": {
76 "acorn": "^5.0.3"
4077 },
4178 "dependencies": {
4279 "acorn": {
43 "version": "3.3.0",
44 "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
45 "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
80 "version": "5.7.3",
81 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
82 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
4683 "dev": true
4784 }
4885 }
4986 },
5087 "ajv": {
51 "version": "5.5.2",
52 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
53 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
54 "dev": true,
55 "requires": {
56 "co": "^4.6.0",
57 "fast-deep-equal": "^1.0.0",
88 "version": "6.5.4",
89 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz",
90 "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==",
91 "dev": true,
92 "requires": {
93 "fast-deep-equal": "^2.0.1",
5894 "fast-json-stable-stringify": "^2.0.0",
59 "json-schema-traverse": "^0.3.0"
95 "json-schema-traverse": "^0.4.1",
96 "uri-js": "^4.2.2"
6097 }
6198 },
6299 "ajv-keywords": {
63 "version": "2.1.1",
64 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
65 "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
100 "version": "3.2.0",
101 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
102 "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
66103 "dev": true
67104 },
68105 "ansi-escapes": {
106 "version": "3.1.0",
107 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
108 "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
109 "dev": true
110 },
111 "ansi-regex": {
69112 "version": "3.0.0",
70 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
71 "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
72 "dev": true
73 },
74 "ansi-regex": {
75 "version": "2.1.1",
76 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
77 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
113 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
114 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
78115 "dev": true
79116 },
80117 "ansi-styles": {
81 "version": "2.2.1",
82 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
83 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
118 "version": "3.2.1",
119 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
120 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
121 "dev": true,
122 "requires": {
123 "color-convert": "^1.9.0"
124 }
125 },
126 "any-observable": {
127 "version": "0.3.0",
128 "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
129 "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
84130 "dev": true
85131 },
86132 "argparse": {
105151 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
106152 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
107153 },
154 "arr-union": {
155 "version": "3.1.0",
156 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
157 "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
158 "dev": true
159 },
108160 "array-union": {
109161 "version": "1.0.2",
110162 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
131183 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
132184 "dev": true
133185 },
134 "babel-code-frame": {
135 "version": "6.26.0",
136 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
137 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
138 "dev": true,
139 "requires": {
140 "chalk": "^1.1.3",
141 "esutils": "^2.0.2",
142 "js-tokens": "^3.0.2"
143 },
144 "dependencies": {
145 "chalk": {
146 "version": "1.1.3",
147 "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
148 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
149 "dev": true,
150 "requires": {
151 "ansi-styles": "^2.2.1",
152 "escape-string-regexp": "^1.0.2",
153 "has-ansi": "^2.0.0",
154 "strip-ansi": "^3.0.0",
155 "supports-color": "^2.0.0"
156 }
157 },
158 "strip-ansi": {
159 "version": "3.0.1",
160 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
161 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
162 "dev": true,
163 "requires": {
164 "ansi-regex": "^2.0.0"
165 }
166 }
167 }
186 "assign-symbols": {
187 "version": "1.0.0",
188 "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
189 "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
190 "dev": true
191 },
192 "atob": {
193 "version": "2.1.2",
194 "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
195 "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
196 "dev": true
168197 },
169198 "balanced-match": {
170199 "version": "1.0.0",
172201 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
173202 "dev": true
174203 },
204 "base": {
205 "version": "0.11.2",
206 "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
207 "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
208 "dev": true,
209 "requires": {
210 "cache-base": "^1.0.1",
211 "class-utils": "^0.3.5",
212 "component-emitter": "^1.2.1",
213 "define-property": "^1.0.0",
214 "isobject": "^3.0.1",
215 "mixin-deep": "^1.2.0",
216 "pascalcase": "^0.1.1"
217 },
218 "dependencies": {
219 "define-property": {
220 "version": "1.0.0",
221 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
222 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
223 "dev": true,
224 "requires": {
225 "is-descriptor": "^1.0.0"
226 }
227 },
228 "is-accessor-descriptor": {
229 "version": "1.0.0",
230 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
231 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
232 "dev": true,
233 "requires": {
234 "kind-of": "^6.0.0"
235 }
236 },
237 "is-data-descriptor": {
238 "version": "1.0.0",
239 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
240 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
241 "dev": true,
242 "requires": {
243 "kind-of": "^6.0.0"
244 }
245 },
246 "is-descriptor": {
247 "version": "1.0.2",
248 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
249 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
250 "dev": true,
251 "requires": {
252 "is-accessor-descriptor": "^1.0.0",
253 "is-data-descriptor": "^1.0.0",
254 "kind-of": "^6.0.2"
255 }
256 },
257 "isobject": {
258 "version": "3.0.1",
259 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
260 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
261 "dev": true
262 },
263 "kind-of": {
264 "version": "6.0.2",
265 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
266 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
267 "dev": true
268 }
269 }
270 },
175271 "brace-expansion": {
176 "version": "1.1.8",
177 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
178 "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
272 "version": "1.1.11",
273 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
274 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
179275 "dev": true,
180276 "requires": {
181277 "balanced-match": "^1.0.0",
193289 }
194290 },
195291 "browser-stdout": {
196 "version": "1.3.0",
197 "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
198 "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
292 "version": "1.3.1",
293 "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
294 "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
199295 "dev": true
200296 },
201297 "buble": {
214310 "vlq": "^1.0.0"
215311 },
216312 "dependencies": {
217 "acorn-jsx": {
218 "version": "4.1.1",
219 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz",
220 "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==",
221 "dev": true,
222 "requires": {
223 "acorn": "^5.0.3"
313 "acorn": {
314 "version": "5.7.3",
315 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
316 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
317 "dev": true
318 },
319 "magic-string": {
320 "version": "0.22.5",
321 "resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
322 "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
323 "dev": true,
324 "requires": {
325 "vlq": "^0.2.2"
326 },
327 "dependencies": {
328 "vlq": {
329 "version": "0.2.3",
330 "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
331 "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
332 "dev": true
333 }
224334 }
225335 },
226336 "minimist": {
227337 "version": "1.2.0",
228 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
338 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
229339 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
230340 "dev": true
231 },
232 "vlq": {
233 "version": "1.0.0",
234 "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.0.tgz",
235 "integrity": "sha512-o3WmXySo+oI5thgqr7Qy8uBkT/v9Zr+sRyrh1lr8aWPUkgDWdWt4Nae2WKBrLsocgE8BuWWD0jLc+VW8LeU+2g==",
236 "dev": true
237 }
238 }
341 }
342 }
343 },
344 "buffer-from": {
345 "version": "1.1.1",
346 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
347 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
348 "dev": true
239349 },
240350 "builtin-modules": {
241351 "version": "1.1.1",
243353 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
244354 "dev": true
245355 },
356 "cache-base": {
357 "version": "1.0.1",
358 "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
359 "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
360 "dev": true,
361 "requires": {
362 "collection-visit": "^1.0.0",
363 "component-emitter": "^1.2.1",
364 "get-value": "^2.0.6",
365 "has-value": "^1.0.0",
366 "isobject": "^3.0.1",
367 "set-value": "^2.0.0",
368 "to-object-path": "^0.3.0",
369 "union-value": "^1.0.0",
370 "unset-value": "^1.0.0"
371 },
372 "dependencies": {
373 "isobject": {
374 "version": "3.0.1",
375 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
376 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
377 "dev": true
378 }
379 }
380 },
246381 "caller-path": {
247382 "version": "0.1.0",
248383 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
259394 "dev": true
260395 },
261396 "chalk": {
262 "version": "2.3.2",
263 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
264 "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
397 "version": "2.4.1",
398 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
399 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
265400 "dev": true,
266401 "requires": {
267402 "ansi-styles": "^3.2.1",
268403 "escape-string-regexp": "^1.0.5",
269404 "supports-color": "^5.3.0"
270 },
271 "dependencies": {
272 "ansi-styles": {
273 "version": "3.2.1",
274 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
275 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
276 "dev": true,
277 "requires": {
278 "color-convert": "^1.9.0"
279 }
280 },
281 "supports-color": {
282 "version": "5.3.0",
283 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
284 "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
285 "dev": true,
286 "requires": {
287 "has-flag": "^3.0.0"
288 }
289 }
290405 }
291406 },
292407 "chardet": {
293 "version": "0.4.2",
294 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
295 "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
408 "version": "0.7.0",
409 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
410 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
411 "dev": true
412 },
413 "ci-info": {
414 "version": "1.6.0",
415 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
416 "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
296417 "dev": true
297418 },
298419 "circular-json": {
301422 "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
302423 "dev": true
303424 },
425 "class-utils": {
426 "version": "0.3.6",
427 "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
428 "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
429 "dev": true,
430 "requires": {
431 "arr-union": "^3.1.0",
432 "define-property": "^0.2.5",
433 "isobject": "^3.0.0",
434 "static-extend": "^0.1.1"
435 },
436 "dependencies": {
437 "define-property": {
438 "version": "0.2.5",
439 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
440 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
441 "dev": true,
442 "requires": {
443 "is-descriptor": "^0.1.0"
444 }
445 },
446 "isobject": {
447 "version": "3.0.1",
448 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
449 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
450 "dev": true
451 }
452 }
453 },
304454 "cli-cursor": {
305455 "version": "2.1.0",
306456 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
310460 "restore-cursor": "^2.0.0"
311461 }
312462 },
463 "cli-truncate": {
464 "version": "0.2.1",
465 "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
466 "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
467 "dev": true,
468 "requires": {
469 "slice-ansi": "0.0.4",
470 "string-width": "^1.0.1"
471 },
472 "dependencies": {
473 "ansi-regex": {
474 "version": "2.1.1",
475 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
476 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
477 "dev": true
478 },
479 "is-fullwidth-code-point": {
480 "version": "1.0.0",
481 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
482 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
483 "dev": true,
484 "requires": {
485 "number-is-nan": "^1.0.0"
486 }
487 },
488 "slice-ansi": {
489 "version": "0.0.4",
490 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
491 "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
492 "dev": true
493 },
494 "string-width": {
495 "version": "1.0.2",
496 "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
497 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
498 "dev": true,
499 "requires": {
500 "code-point-at": "^1.0.0",
501 "is-fullwidth-code-point": "^1.0.0",
502 "strip-ansi": "^3.0.0"
503 }
504 },
505 "strip-ansi": {
506 "version": "3.0.1",
507 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
508 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
509 "dev": true,
510 "requires": {
511 "ansi-regex": "^2.0.0"
512 }
513 }
514 }
515 },
313516 "cli-width": {
314517 "version": "2.2.0",
315518 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
316519 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
317520 "dev": true
318521 },
319 "co": {
320 "version": "4.6.0",
321 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
322 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
323 "dev": true
522 "code-point-at": {
523 "version": "1.1.0",
524 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
525 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
526 "dev": true
527 },
528 "collection-visit": {
529 "version": "1.0.0",
530 "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
531 "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
532 "dev": true,
533 "requires": {
534 "map-visit": "^1.0.0",
535 "object-visit": "^1.0.0"
536 }
324537 },
325538 "color-convert": {
326 "version": "1.9.1",
327 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
328 "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
329 "dev": true,
330 "requires": {
331 "color-name": "^1.1.1"
539 "version": "1.9.3",
540 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
541 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
542 "dev": true,
543 "requires": {
544 "color-name": "1.1.3"
332545 }
333546 },
334547 "color-name": {
338551 "dev": true
339552 },
340553 "commander": {
341 "version": "2.11.0",
342 "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
343 "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
554 "version": "2.18.0",
555 "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
556 "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
557 "dev": true
558 },
559 "component-emitter": {
560 "version": "1.2.1",
561 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
562 "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
344563 "dev": true
345564 },
346565 "concat-map": {
349568 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
350569 "dev": true
351570 },
352 "concat-stream": {
353 "version": "1.6.1",
354 "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz",
355 "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==",
356 "dev": true,
357 "requires": {
358 "inherits": "^2.0.3",
359 "readable-stream": "^2.2.2",
360 "typedarray": "^0.0.6"
361 }
362 },
363 "core-util-is": {
364 "version": "1.0.2",
365 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
366 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
367 "dev": true
571 "contains-path": {
572 "version": "0.1.0",
573 "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
574 "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
575 "dev": true
576 },
577 "copy-descriptor": {
578 "version": "0.1.1",
579 "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
580 "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
581 "dev": true
582 },
583 "cosmiconfig": {
584 "version": "5.0.6",
585 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz",
586 "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==",
587 "dev": true,
588 "requires": {
589 "is-directory": "^0.3.1",
590 "js-yaml": "^3.9.0",
591 "parse-json": "^4.0.0"
592 },
593 "dependencies": {
594 "parse-json": {
595 "version": "4.0.0",
596 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
597 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
598 "dev": true,
599 "requires": {
600 "error-ex": "^1.3.1",
601 "json-parse-better-errors": "^1.0.1"
602 }
603 }
604 }
368605 },
369606 "cross-spawn": {
370 "version": "5.1.0",
371 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
372 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
373 "dev": true,
374 "requires": {
375 "lru-cache": "^4.0.1",
607 "version": "6.0.5",
608 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
609 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
610 "dev": true,
611 "requires": {
612 "nice-try": "^1.0.4",
613 "path-key": "^2.0.1",
614 "semver": "^5.5.0",
376615 "shebang-command": "^1.2.0",
377616 "which": "^1.2.9"
378617 }
379618 },
619 "date-fns": {
620 "version": "1.29.0",
621 "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
622 "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
623 "dev": true
624 },
380625 "debug": {
381 "version": "3.1.0",
382 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
383 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
384 "dev": true,
385 "requires": {
386 "ms": "2.0.0"
387 }
626 "version": "4.0.1",
627 "resolved": "https://registry.npmjs.org/debug/-/debug-4.0.1.tgz",
628 "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==",
629 "dev": true,
630 "requires": {
631 "ms": "^2.1.1"
632 }
633 },
634 "decode-uri-component": {
635 "version": "0.2.0",
636 "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
637 "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
638 "dev": true
639 },
640 "dedent": {
641 "version": "0.7.0",
642 "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
643 "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
644 "dev": true
388645 },
389646 "deep-is": {
390647 "version": "0.1.3",
391648 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
392649 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
393650 "dev": true
651 },
652 "define-property": {
653 "version": "2.0.2",
654 "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
655 "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
656 "dev": true,
657 "requires": {
658 "is-descriptor": "^1.0.2",
659 "isobject": "^3.0.1"
660 },
661 "dependencies": {
662 "is-accessor-descriptor": {
663 "version": "1.0.0",
664 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
665 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
666 "dev": true,
667 "requires": {
668 "kind-of": "^6.0.0"
669 }
670 },
671 "is-data-descriptor": {
672 "version": "1.0.0",
673 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
674 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
675 "dev": true,
676 "requires": {
677 "kind-of": "^6.0.0"
678 }
679 },
680 "is-descriptor": {
681 "version": "1.0.2",
682 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
683 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
684 "dev": true,
685 "requires": {
686 "is-accessor-descriptor": "^1.0.0",
687 "is-data-descriptor": "^1.0.0",
688 "kind-of": "^6.0.2"
689 }
690 },
691 "isobject": {
692 "version": "3.0.1",
693 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
694 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
695 "dev": true
696 },
697 "kind-of": {
698 "version": "6.0.2",
699 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
700 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
701 "dev": true
702 }
703 }
394704 },
395705 "del": {
396706 "version": "2.2.2",
408718 }
409719 },
410720 "diff": {
411 "version": "3.3.1",
412 "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
413 "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
721 "version": "3.5.0",
722 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
723 "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
414724 "dev": true
415725 },
416726 "doctrine": {
422732 "esutils": "^2.0.2"
423733 }
424734 },
735 "elegant-spinner": {
736 "version": "1.0.1",
737 "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
738 "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
739 "dev": true
740 },
741 "error-ex": {
742 "version": "1.3.2",
743 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
744 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
745 "dev": true,
746 "requires": {
747 "is-arrayish": "^0.2.1"
748 }
749 },
425750 "es6-object-assign": {
426751 "version": "1.1.0",
427752 "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
435760 "dev": true
436761 },
437762 "eslint": {
438 "version": "4.18.2",
439 "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz",
440 "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==",
441 "dev": true,
442 "requires": {
443 "ajv": "^5.3.0",
444 "babel-code-frame": "^6.22.0",
763 "version": "5.6.1",
764 "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.1.tgz",
765 "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==",
766 "dev": true,
767 "requires": {
768 "@babel/code-frame": "^7.0.0",
769 "ajv": "^6.5.3",
445770 "chalk": "^2.1.0",
446 "concat-stream": "^1.6.0",
447 "cross-spawn": "^5.1.0",
448 "debug": "^3.1.0",
771 "cross-spawn": "^6.0.5",
772 "debug": "^4.0.1",
449773 "doctrine": "^2.1.0",
450 "eslint-scope": "^3.7.1",
774 "eslint-scope": "^4.0.0",
775 "eslint-utils": "^1.3.1",
451776 "eslint-visitor-keys": "^1.0.0",
452 "espree": "^3.5.2",
453 "esquery": "^1.0.0",
777 "espree": "^4.0.0",
778 "esquery": "^1.0.1",
454779 "esutils": "^2.0.2",
455780 "file-entry-cache": "^2.0.0",
456781 "functional-red-black-tree": "^1.0.1",
457782 "glob": "^7.1.2",
458 "globals": "^11.0.1",
459 "ignore": "^3.3.3",
783 "globals": "^11.7.0",
784 "ignore": "^4.0.6",
460785 "imurmurhash": "^0.1.4",
461 "inquirer": "^3.0.6",
462 "is-resolvable": "^1.0.0",
463 "js-yaml": "^3.9.1",
786 "inquirer": "^6.1.0",
787 "is-resolvable": "^1.1.0",
788 "js-yaml": "^3.12.0",
464789 "json-stable-stringify-without-jsonify": "^1.0.1",
465790 "levn": "^0.3.0",
466 "lodash": "^4.17.4",
467 "minimatch": "^3.0.2",
791 "lodash": "^4.17.5",
792 "minimatch": "^3.0.4",
468793 "mkdirp": "^0.5.1",
469794 "natural-compare": "^1.4.0",
470795 "optionator": "^0.8.2",
471796 "path-is-inside": "^1.0.2",
472797 "pluralize": "^7.0.0",
473798 "progress": "^2.0.0",
799 "regexpp": "^2.0.0",
474800 "require-uncached": "^1.0.3",
475 "semver": "^5.3.0",
801 "semver": "^5.5.1",
476802 "strip-ansi": "^4.0.0",
477 "strip-json-comments": "~2.0.1",
478 "table": "4.0.2",
479 "text-table": "~0.2.0"
803 "strip-json-comments": "^2.0.1",
804 "table": "^4.0.3",
805 "text-table": "^0.2.0"
806 }
807 },
808 "eslint-import-resolver-node": {
809 "version": "0.3.2",
810 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
811 "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
812 "dev": true,
813 "requires": {
814 "debug": "^2.6.9",
815 "resolve": "^1.5.0"
816 },
817 "dependencies": {
818 "debug": {
819 "version": "2.6.9",
820 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
821 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
822 "dev": true,
823 "requires": {
824 "ms": "2.0.0"
825 }
826 },
827 "ms": {
828 "version": "2.0.0",
829 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
830 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
831 "dev": true
832 }
833 }
834 },
835 "eslint-module-utils": {
836 "version": "2.2.0",
837 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
838 "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
839 "dev": true,
840 "requires": {
841 "debug": "^2.6.8",
842 "pkg-dir": "^1.0.0"
843 },
844 "dependencies": {
845 "debug": {
846 "version": "2.6.9",
847 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
848 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
849 "dev": true,
850 "requires": {
851 "ms": "2.0.0"
852 }
853 },
854 "ms": {
855 "version": "2.0.0",
856 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
857 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
858 "dev": true
859 }
860 }
861 },
862 "eslint-plugin-import": {
863 "version": "2.14.0",
864 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
865 "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
866 "dev": true,
867 "requires": {
868 "contains-path": "^0.1.0",
869 "debug": "^2.6.8",
870 "doctrine": "1.5.0",
871 "eslint-import-resolver-node": "^0.3.1",
872 "eslint-module-utils": "^2.2.0",
873 "has": "^1.0.1",
874 "lodash": "^4.17.4",
875 "minimatch": "^3.0.3",
876 "read-pkg-up": "^2.0.0",
877 "resolve": "^1.6.0"
878 },
879 "dependencies": {
880 "debug": {
881 "version": "2.6.9",
882 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
883 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
884 "dev": true,
885 "requires": {
886 "ms": "2.0.0"
887 }
888 },
889 "doctrine": {
890 "version": "1.5.0",
891 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
892 "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
893 "dev": true,
894 "requires": {
895 "esutils": "^2.0.2",
896 "isarray": "^1.0.0"
897 }
898 },
899 "ms": {
900 "version": "2.0.0",
901 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
902 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
903 "dev": true
904 }
480905 }
481906 },
482907 "eslint-scope": {
483 "version": "3.7.1",
484 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
485 "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
908 "version": "4.0.0",
909 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
910 "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
486911 "dev": true,
487912 "requires": {
488913 "esrecurse": "^4.1.0",
489914 "estraverse": "^4.1.1"
490915 }
916 },
917 "eslint-utils": {
918 "version": "1.3.1",
919 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
920 "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
921 "dev": true
491922 },
492923 "eslint-visitor-keys": {
493924 "version": "1.0.0",
496927 "dev": true
497928 },
498929 "espree": {
499 "version": "3.5.4",
500 "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
501 "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
502 "dev": true,
503 "requires": {
504 "acorn": "^5.5.0",
505 "acorn-jsx": "^3.0.0"
930 "version": "4.0.0",
931 "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz",
932 "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==",
933 "dev": true,
934 "requires": {
935 "acorn": "^5.6.0",
936 "acorn-jsx": "^4.1.1"
937 },
938 "dependencies": {
939 "acorn": {
940 "version": "5.7.3",
941 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
942 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
943 "dev": true
944 }
506945 }
507946 },
508947 "esprima": {
509 "version": "4.0.0",
510 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
511 "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
948 "version": "4.0.1",
949 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
950 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
512951 "dev": true
513952 },
514953 "esquery": {
515 "version": "1.0.0",
516 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
517 "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
954 "version": "1.0.1",
955 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
956 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
518957 "dev": true,
519958 "requires": {
520959 "estraverse": "^4.0.0"
536975 "dev": true
537976 },
538977 "estree-walker": {
539 "version": "0.5.1",
540 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz",
541 "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg=="
978 "version": "0.5.2",
979 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
980 "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig=="
542981 },
543982 "esutils": {
544983 "version": "2.0.2",
546985 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
547986 "dev": true
548987 },
988 "execa": {
989 "version": "0.9.0",
990 "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz",
991 "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==",
992 "dev": true,
993 "requires": {
994 "cross-spawn": "^5.0.1",
995 "get-stream": "^3.0.0",
996 "is-stream": "^1.1.0",
997 "npm-run-path": "^2.0.0",
998 "p-finally": "^1.0.0",
999 "signal-exit": "^3.0.0",
1000 "strip-eof": "^1.0.0"
1001 },
1002 "dependencies": {
1003 "cross-spawn": {
1004 "version": "5.1.0",
1005 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
1006 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
1007 "dev": true,
1008 "requires": {
1009 "lru-cache": "^4.0.1",
1010 "shebang-command": "^1.2.0",
1011 "which": "^1.2.9"
1012 }
1013 }
1014 }
1015 },
1016 "exit-hook": {
1017 "version": "1.1.1",
1018 "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
1019 "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
1020 "dev": true
1021 },
5491022 "expand-brackets": {
5501023 "version": "0.1.5",
5511024 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
5621035 "fill-range": "^2.1.0"
5631036 }
5641037 },
1038 "extend-shallow": {
1039 "version": "3.0.2",
1040 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1041 "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1042 "dev": true,
1043 "requires": {
1044 "assign-symbols": "^1.0.0",
1045 "is-extendable": "^1.0.1"
1046 },
1047 "dependencies": {
1048 "is-extendable": {
1049 "version": "1.0.1",
1050 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1051 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1052 "dev": true,
1053 "requires": {
1054 "is-plain-object": "^2.0.4"
1055 }
1056 }
1057 }
1058 },
5651059 "external-editor": {
566 "version": "2.1.0",
567 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
568 "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
569 "dev": true,
570 "requires": {
571 "chardet": "^0.4.0",
572 "iconv-lite": "^0.4.17",
1060 "version": "3.0.3",
1061 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
1062 "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
1063 "dev": true,
1064 "requires": {
1065 "chardet": "^0.7.0",
1066 "iconv-lite": "^0.4.24",
5731067 "tmp": "^0.0.33"
5741068 }
5751069 },
5821076 }
5831077 },
5841078 "fast-deep-equal": {
585 "version": "1.1.0",
586 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
587 "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
1079 "version": "2.0.1",
1080 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
1081 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
5881082 "dev": true
5891083 },
5901084 "fast-json-stable-stringify": {
6241118 "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
6251119 },
6261120 "fill-range": {
627 "version": "2.2.3",
628 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
629 "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
1121 "version": "2.2.4",
1122 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
1123 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
6301124 "requires": {
6311125 "is-number": "^2.1.0",
6321126 "isobject": "^2.0.0",
633 "randomatic": "^1.1.3",
1127 "randomatic": "^3.0.0",
6341128 "repeat-element": "^1.1.2",
6351129 "repeat-string": "^1.5.2"
1130 }
1131 },
1132 "find-parent-dir": {
1133 "version": "0.3.0",
1134 "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz",
1135 "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=",
1136 "dev": true
1137 },
1138 "find-up": {
1139 "version": "1.1.2",
1140 "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1141 "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1142 "dev": true,
1143 "requires": {
1144 "path-exists": "^2.0.0",
1145 "pinkie-promise": "^2.0.0"
6361146 }
6371147 },
6381148 "flat-cache": {
6601170 "for-in": "^1.0.1"
6611171 }
6621172 },
1173 "fragment-cache": {
1174 "version": "0.2.1",
1175 "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1176 "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1177 "dev": true,
1178 "requires": {
1179 "map-cache": "^0.2.2"
1180 }
1181 },
6631182 "fs.realpath": {
6641183 "version": "1.0.0",
6651184 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
6661185 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
6671186 "dev": true
6681187 },
1188 "function-bind": {
1189 "version": "1.1.1",
1190 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1191 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1192 "dev": true
1193 },
6691194 "functional-red-black-tree": {
6701195 "version": "1.0.1",
6711196 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
6721197 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
6731198 "dev": true
6741199 },
1200 "get-own-enumerable-property-symbols": {
1201 "version": "2.0.1",
1202 "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz",
1203 "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==",
1204 "dev": true
1205 },
1206 "get-stdin": {
1207 "version": "6.0.0",
1208 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
1209 "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
1210 "dev": true
1211 },
1212 "get-stream": {
1213 "version": "3.0.0",
1214 "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
1215 "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
1216 "dev": true
1217 },
1218 "get-value": {
1219 "version": "2.0.6",
1220 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1221 "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1222 "dev": true
1223 },
6751224 "glob": {
676 "version": "7.1.2",
677 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
678 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1225 "version": "7.1.3",
1226 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
1227 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
6791228 "dev": true,
6801229 "requires": {
6811230 "fs.realpath": "^1.0.0",
7041253 }
7051254 },
7061255 "globals": {
707 "version": "11.3.0",
708 "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz",
709 "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==",
1256 "version": "11.8.0",
1257 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
1258 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
7101259 "dev": true
7111260 },
7121261 "globby": {
7301279 "dev": true
7311280 },
7321281 "growl": {
733 "version": "1.10.3",
734 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
735 "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
736 "dev": true
1282 "version": "1.10.5",
1283 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
1284 "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
1285 "dev": true
1286 },
1287 "has": {
1288 "version": "1.0.3",
1289 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1290 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1291 "dev": true,
1292 "requires": {
1293 "function-bind": "^1.1.1"
1294 }
7371295 },
7381296 "has-ansi": {
7391297 "version": "2.0.0",
7421300 "dev": true,
7431301 "requires": {
7441302 "ansi-regex": "^2.0.0"
1303 },
1304 "dependencies": {
1305 "ansi-regex": {
1306 "version": "2.1.1",
1307 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1308 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1309 "dev": true
1310 }
7451311 }
7461312 },
7471313 "has-flag": {
7501316 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
7511317 "dev": true
7521318 },
1319 "has-value": {
1320 "version": "1.0.0",
1321 "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
1322 "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
1323 "dev": true,
1324 "requires": {
1325 "get-value": "^2.0.6",
1326 "has-values": "^1.0.0",
1327 "isobject": "^3.0.0"
1328 },
1329 "dependencies": {
1330 "isobject": {
1331 "version": "3.0.1",
1332 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1333 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1334 "dev": true
1335 }
1336 }
1337 },
1338 "has-values": {
1339 "version": "1.0.0",
1340 "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
1341 "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
1342 "dev": true,
1343 "requires": {
1344 "is-number": "^3.0.0",
1345 "kind-of": "^4.0.0"
1346 },
1347 "dependencies": {
1348 "is-number": {
1349 "version": "3.0.0",
1350 "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
1351 "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
1352 "dev": true,
1353 "requires": {
1354 "kind-of": "^3.0.2"
1355 },
1356 "dependencies": {
1357 "kind-of": {
1358 "version": "3.2.2",
1359 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1360 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1361 "dev": true,
1362 "requires": {
1363 "is-buffer": "^1.1.5"
1364 }
1365 }
1366 }
1367 },
1368 "kind-of": {
1369 "version": "4.0.0",
1370 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
1371 "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
1372 "dev": true,
1373 "requires": {
1374 "is-buffer": "^1.1.5"
1375 }
1376 }
1377 }
1378 },
7531379 "he": {
7541380 "version": "1.1.1",
7551381 "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
7561382 "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
7571383 "dev": true
7581384 },
1385 "hosted-git-info": {
1386 "version": "2.7.1",
1387 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
1388 "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
1389 "dev": true
1390 },
1391 "husky": {
1392 "version": "1.1.0",
1393 "resolved": "https://registry.npmjs.org/husky/-/husky-1.1.0.tgz",
1394 "integrity": "sha512-jnUD0PK3xGLB5Jc3f3UEwl8qOZeLd0WiWABhVyHPS5R298HOccGZJMOMBSk3gFksAa1BeK9FQYYEfPNlqkfBxg==",
1395 "dev": true,
1396 "requires": {
1397 "cosmiconfig": "^5.0.6",
1398 "execa": "^0.9.0",
1399 "find-up": "^3.0.0",
1400 "get-stdin": "^6.0.0",
1401 "is-ci": "^1.2.1",
1402 "pkg-dir": "^3.0.0",
1403 "please-upgrade-node": "^3.1.1",
1404 "read-pkg": "^4.0.1",
1405 "run-node": "^1.0.0",
1406 "slash": "^2.0.0"
1407 },
1408 "dependencies": {
1409 "find-up": {
1410 "version": "3.0.0",
1411 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
1412 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
1413 "dev": true,
1414 "requires": {
1415 "locate-path": "^3.0.0"
1416 }
1417 },
1418 "locate-path": {
1419 "version": "3.0.0",
1420 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
1421 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
1422 "dev": true,
1423 "requires": {
1424 "p-locate": "^3.0.0",
1425 "path-exists": "^3.0.0"
1426 }
1427 },
1428 "p-limit": {
1429 "version": "2.0.0",
1430 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
1431 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
1432 "dev": true,
1433 "requires": {
1434 "p-try": "^2.0.0"
1435 }
1436 },
1437 "p-locate": {
1438 "version": "3.0.0",
1439 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
1440 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
1441 "dev": true,
1442 "requires": {
1443 "p-limit": "^2.0.0"
1444 }
1445 },
1446 "p-try": {
1447 "version": "2.0.0",
1448 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
1449 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
1450 "dev": true
1451 },
1452 "parse-json": {
1453 "version": "4.0.0",
1454 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1455 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1456 "dev": true,
1457 "requires": {
1458 "error-ex": "^1.3.1",
1459 "json-parse-better-errors": "^1.0.1"
1460 }
1461 },
1462 "path-exists": {
1463 "version": "3.0.0",
1464 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1465 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1466 "dev": true
1467 },
1468 "pify": {
1469 "version": "3.0.0",
1470 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1471 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1472 "dev": true
1473 },
1474 "pkg-dir": {
1475 "version": "3.0.0",
1476 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
1477 "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
1478 "dev": true,
1479 "requires": {
1480 "find-up": "^3.0.0"
1481 }
1482 },
1483 "read-pkg": {
1484 "version": "4.0.1",
1485 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
1486 "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
1487 "dev": true,
1488 "requires": {
1489 "normalize-package-data": "^2.3.2",
1490 "parse-json": "^4.0.0",
1491 "pify": "^3.0.0"
1492 }
1493 }
1494 }
1495 },
7591496 "iconv-lite": {
760 "version": "0.4.19",
761 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
762 "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
763 "dev": true
1497 "version": "0.4.24",
1498 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1499 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1500 "dev": true,
1501 "requires": {
1502 "safer-buffer": ">= 2.1.2 < 3"
1503 }
7641504 },
7651505 "ignore": {
766 "version": "3.3.7",
767 "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
768 "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
1506 "version": "4.0.6",
1507 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
1508 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
7691509 "dev": true
7701510 },
7711511 "imurmurhash": {
7741514 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
7751515 "dev": true
7761516 },
1517 "indent-string": {
1518 "version": "3.2.0",
1519 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
1520 "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
1521 "dev": true
1522 },
7771523 "inflight": {
7781524 "version": "1.0.6",
7791525 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
7911537 "dev": true
7921538 },
7931539 "inquirer": {
794 "version": "3.3.0",
795 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
796 "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
1540 "version": "6.2.0",
1541 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
1542 "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
7971543 "dev": true,
7981544 "requires": {
7991545 "ansi-escapes": "^3.0.0",
8001546 "chalk": "^2.0.0",
8011547 "cli-cursor": "^2.1.0",
8021548 "cli-width": "^2.0.0",
803 "external-editor": "^2.0.4",
1549 "external-editor": "^3.0.0",
8041550 "figures": "^2.0.0",
805 "lodash": "^4.3.0",
1551 "lodash": "^4.17.10",
8061552 "mute-stream": "0.0.7",
8071553 "run-async": "^2.2.0",
808 "rx-lite": "^4.0.8",
809 "rx-lite-aggregates": "^4.0.8",
1554 "rxjs": "^6.1.0",
8101555 "string-width": "^2.1.0",
8111556 "strip-ansi": "^4.0.0",
8121557 "through": "^2.3.6"
8131558 }
8141559 },
8151560 "interpret": {
816 "version": "1.0.3",
817 "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
818 "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=",
1561 "version": "1.1.0",
1562 "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
1563 "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
1564 "dev": true
1565 },
1566 "is-accessor-descriptor": {
1567 "version": "0.1.6",
1568 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
1569 "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
1570 "dev": true,
1571 "requires": {
1572 "kind-of": "^3.0.2"
1573 }
1574 },
1575 "is-arrayish": {
1576 "version": "0.2.1",
1577 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1578 "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
8191579 "dev": true
8201580 },
8211581 "is-buffer": {
822 "version": "1.1.5",
823 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
824 "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
1582 "version": "1.1.6",
1583 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1584 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
1585 },
1586 "is-builtin-module": {
1587 "version": "1.0.0",
1588 "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
1589 "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
1590 "dev": true,
1591 "requires": {
1592 "builtin-modules": "^1.0.0"
1593 }
1594 },
1595 "is-ci": {
1596 "version": "1.2.1",
1597 "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
1598 "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
1599 "dev": true,
1600 "requires": {
1601 "ci-info": "^1.5.0"
1602 }
1603 },
1604 "is-data-descriptor": {
1605 "version": "0.1.4",
1606 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
1607 "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
1608 "dev": true,
1609 "requires": {
1610 "kind-of": "^3.0.2"
1611 }
1612 },
1613 "is-descriptor": {
1614 "version": "0.1.6",
1615 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
1616 "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
1617 "dev": true,
1618 "requires": {
1619 "is-accessor-descriptor": "^0.1.6",
1620 "is-data-descriptor": "^0.1.4",
1621 "kind-of": "^5.0.0"
1622 },
1623 "dependencies": {
1624 "kind-of": {
1625 "version": "5.1.0",
1626 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
1627 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
1628 "dev": true
1629 }
1630 }
1631 },
1632 "is-directory": {
1633 "version": "0.3.1",
1634 "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
1635 "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
1636 "dev": true
8251637 },
8261638 "is-dotfile": {
8271639 "version": "1.0.3",
8741686 "kind-of": "^3.0.2"
8751687 }
8761688 },
1689 "is-obj": {
1690 "version": "1.0.1",
1691 "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1692 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1693 "dev": true
1694 },
1695 "is-observable": {
1696 "version": "1.1.0",
1697 "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
1698 "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
1699 "dev": true,
1700 "requires": {
1701 "symbol-observable": "^1.1.0"
1702 }
1703 },
8771704 "is-path-cwd": {
8781705 "version": "1.0.0",
8791706 "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
8811708 "dev": true
8821709 },
8831710 "is-path-in-cwd": {
884 "version": "1.0.0",
885 "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
886 "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
1711 "version": "1.0.1",
1712 "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
1713 "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
8871714 "dev": true,
8881715 "requires": {
8891716 "is-path-inside": "^1.0.0"
8981725 "path-is-inside": "^1.0.1"
8991726 }
9001727 },
1728 "is-plain-object": {
1729 "version": "2.0.4",
1730 "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
1731 "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
1732 "dev": true,
1733 "requires": {
1734 "isobject": "^3.0.1"
1735 },
1736 "dependencies": {
1737 "isobject": {
1738 "version": "3.0.1",
1739 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1740 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1741 "dev": true
1742 }
1743 }
1744 },
9011745 "is-posix-bracket": {
9021746 "version": "0.1.1",
9031747 "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
9141758 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
9151759 "dev": true
9161760 },
1761 "is-regexp": {
1762 "version": "1.0.0",
1763 "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
1764 "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
1765 "dev": true
1766 },
9171767 "is-resolvable": {
9181768 "version": "1.1.0",
9191769 "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
9201770 "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
9211771 "dev": true
9221772 },
1773 "is-stream": {
1774 "version": "1.1.0",
1775 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1776 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1777 "dev": true
1778 },
1779 "is-windows": {
1780 "version": "1.0.2",
1781 "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1782 "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1783 "dev": true
1784 },
9231785 "isarray": {
9241786 "version": "1.0.0",
9251787 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
9391801 "isarray": "1.0.0"
9401802 }
9411803 },
1804 "jest-get-type": {
1805 "version": "22.4.3",
1806 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz",
1807 "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==",
1808 "dev": true
1809 },
1810 "jest-validate": {
1811 "version": "23.6.0",
1812 "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz",
1813 "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==",
1814 "dev": true,
1815 "requires": {
1816 "chalk": "^2.0.1",
1817 "jest-get-type": "^22.1.0",
1818 "leven": "^2.1.0",
1819 "pretty-format": "^23.6.0"
1820 }
1821 },
9421822 "js-tokens": {
943 "version": "3.0.2",
944 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
945 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1823 "version": "4.0.0",
1824 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1825 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
9461826 "dev": true
9471827 },
9481828 "js-yaml": {
949 "version": "3.11.0",
950 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
951 "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
1829 "version": "3.12.0",
1830 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
1831 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
9521832 "dev": true,
9531833 "requires": {
9541834 "argparse": "^1.0.7",
9551835 "esprima": "^4.0.0"
9561836 }
9571837 },
1838 "json-parse-better-errors": {
1839 "version": "1.0.2",
1840 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1841 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1842 "dev": true
1843 },
9581844 "json-schema-traverse": {
959 "version": "0.3.1",
960 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
961 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
1845 "version": "0.4.1",
1846 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1847 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
9621848 "dev": true
9631849 },
9641850 "json-stable-stringify-without-jsonify": {
9751861 "is-buffer": "^1.1.5"
9761862 }
9771863 },
1864 "leven": {
1865 "version": "2.1.0",
1866 "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
1867 "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
1868 "dev": true
1869 },
9781870 "levn": {
9791871 "version": "0.3.0",
9801872 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
9851877 "type-check": "~0.3.2"
9861878 }
9871879 },
1880 "lint-staged": {
1881 "version": "7.3.0",
1882 "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.3.0.tgz",
1883 "integrity": "sha512-AXk40M9DAiPi7f4tdJggwuKIViUplYtVj1os1MVEteW7qOkU50EOehayCfO9TsoGK24o/EsWb41yrEgfJDDjCw==",
1884 "dev": true,
1885 "requires": {
1886 "chalk": "^2.3.1",
1887 "commander": "^2.14.1",
1888 "cosmiconfig": "^5.0.2",
1889 "debug": "^3.1.0",
1890 "dedent": "^0.7.0",
1891 "execa": "^0.9.0",
1892 "find-parent-dir": "^0.3.0",
1893 "is-glob": "^4.0.0",
1894 "is-windows": "^1.0.2",
1895 "jest-validate": "^23.5.0",
1896 "listr": "^0.14.1",
1897 "lodash": "^4.17.5",
1898 "log-symbols": "^2.2.0",
1899 "micromatch": "^3.1.8",
1900 "npm-which": "^3.0.1",
1901 "p-map": "^1.1.1",
1902 "path-is-inside": "^1.0.2",
1903 "pify": "^3.0.0",
1904 "please-upgrade-node": "^3.0.2",
1905 "staged-git-files": "1.1.1",
1906 "string-argv": "^0.0.2",
1907 "stringify-object": "^3.2.2"
1908 },
1909 "dependencies": {
1910 "arr-diff": {
1911 "version": "4.0.0",
1912 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
1913 "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
1914 "dev": true
1915 },
1916 "array-unique": {
1917 "version": "0.3.2",
1918 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
1919 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
1920 "dev": true
1921 },
1922 "braces": {
1923 "version": "2.3.2",
1924 "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
1925 "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
1926 "dev": true,
1927 "requires": {
1928 "arr-flatten": "^1.1.0",
1929 "array-unique": "^0.3.2",
1930 "extend-shallow": "^2.0.1",
1931 "fill-range": "^4.0.0",
1932 "isobject": "^3.0.1",
1933 "repeat-element": "^1.1.2",
1934 "snapdragon": "^0.8.1",
1935 "snapdragon-node": "^2.0.1",
1936 "split-string": "^3.0.2",
1937 "to-regex": "^3.0.1"
1938 },
1939 "dependencies": {
1940 "extend-shallow": {
1941 "version": "2.0.1",
1942 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1943 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1944 "dev": true,
1945 "requires": {
1946 "is-extendable": "^0.1.0"
1947 }
1948 }
1949 }
1950 },
1951 "debug": {
1952 "version": "3.2.5",
1953 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
1954 "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
1955 "dev": true,
1956 "requires": {
1957 "ms": "^2.1.1"
1958 }
1959 },
1960 "expand-brackets": {
1961 "version": "2.1.4",
1962 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1963 "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1964 "dev": true,
1965 "requires": {
1966 "debug": "^2.3.3",
1967 "define-property": "^0.2.5",
1968 "extend-shallow": "^2.0.1",
1969 "posix-character-classes": "^0.1.0",
1970 "regex-not": "^1.0.0",
1971 "snapdragon": "^0.8.1",
1972 "to-regex": "^3.0.1"
1973 },
1974 "dependencies": {
1975 "debug": {
1976 "version": "2.6.9",
1977 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1978 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1979 "dev": true,
1980 "requires": {
1981 "ms": "2.0.0"
1982 }
1983 },
1984 "define-property": {
1985 "version": "0.2.5",
1986 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1987 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1988 "dev": true,
1989 "requires": {
1990 "is-descriptor": "^0.1.0"
1991 }
1992 },
1993 "extend-shallow": {
1994 "version": "2.0.1",
1995 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1996 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1997 "dev": true,
1998 "requires": {
1999 "is-extendable": "^0.1.0"
2000 }
2001 },
2002 "is-accessor-descriptor": {
2003 "version": "0.1.6",
2004 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2005 "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2006 "dev": true,
2007 "requires": {
2008 "kind-of": "^3.0.2"
2009 },
2010 "dependencies": {
2011 "kind-of": {
2012 "version": "3.2.2",
2013 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2014 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2015 "dev": true,
2016 "requires": {
2017 "is-buffer": "^1.1.5"
2018 }
2019 }
2020 }
2021 },
2022 "is-data-descriptor": {
2023 "version": "0.1.4",
2024 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2025 "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2026 "dev": true,
2027 "requires": {
2028 "kind-of": "^3.0.2"
2029 },
2030 "dependencies": {
2031 "kind-of": {
2032 "version": "3.2.2",
2033 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2034 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2035 "dev": true,
2036 "requires": {
2037 "is-buffer": "^1.1.5"
2038 }
2039 }
2040 }
2041 },
2042 "is-descriptor": {
2043 "version": "0.1.6",
2044 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2045 "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2046 "dev": true,
2047 "requires": {
2048 "is-accessor-descriptor": "^0.1.6",
2049 "is-data-descriptor": "^0.1.4",
2050 "kind-of": "^5.0.0"
2051 }
2052 },
2053 "kind-of": {
2054 "version": "5.1.0",
2055 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2056 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2057 "dev": true
2058 },
2059 "ms": {
2060 "version": "2.0.0",
2061 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2062 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2063 "dev": true
2064 }
2065 }
2066 },
2067 "extglob": {
2068 "version": "2.0.4",
2069 "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
2070 "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
2071 "dev": true,
2072 "requires": {
2073 "array-unique": "^0.3.2",
2074 "define-property": "^1.0.0",
2075 "expand-brackets": "^2.1.4",
2076 "extend-shallow": "^2.0.1",
2077 "fragment-cache": "^0.2.1",
2078 "regex-not": "^1.0.0",
2079 "snapdragon": "^0.8.1",
2080 "to-regex": "^3.0.1"
2081 },
2082 "dependencies": {
2083 "define-property": {
2084 "version": "1.0.0",
2085 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
2086 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
2087 "dev": true,
2088 "requires": {
2089 "is-descriptor": "^1.0.0"
2090 }
2091 },
2092 "extend-shallow": {
2093 "version": "2.0.1",
2094 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2095 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2096 "dev": true,
2097 "requires": {
2098 "is-extendable": "^0.1.0"
2099 }
2100 }
2101 }
2102 },
2103 "fill-range": {
2104 "version": "4.0.0",
2105 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
2106 "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
2107 "dev": true,
2108 "requires": {
2109 "extend-shallow": "^2.0.1",
2110 "is-number": "^3.0.0",
2111 "repeat-string": "^1.6.1",
2112 "to-regex-range": "^2.1.0"
2113 },
2114 "dependencies": {
2115 "extend-shallow": {
2116 "version": "2.0.1",
2117 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2118 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2119 "dev": true,
2120 "requires": {
2121 "is-extendable": "^0.1.0"
2122 }
2123 }
2124 }
2125 },
2126 "is-accessor-descriptor": {
2127 "version": "1.0.0",
2128 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2129 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2130 "dev": true,
2131 "requires": {
2132 "kind-of": "^6.0.0"
2133 }
2134 },
2135 "is-data-descriptor": {
2136 "version": "1.0.0",
2137 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2138 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2139 "dev": true,
2140 "requires": {
2141 "kind-of": "^6.0.0"
2142 }
2143 },
2144 "is-descriptor": {
2145 "version": "1.0.2",
2146 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2147 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2148 "dev": true,
2149 "requires": {
2150 "is-accessor-descriptor": "^1.0.0",
2151 "is-data-descriptor": "^1.0.0",
2152 "kind-of": "^6.0.2"
2153 }
2154 },
2155 "is-extglob": {
2156 "version": "2.1.1",
2157 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2158 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2159 "dev": true
2160 },
2161 "is-glob": {
2162 "version": "4.0.0",
2163 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
2164 "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
2165 "dev": true,
2166 "requires": {
2167 "is-extglob": "^2.1.1"
2168 }
2169 },
2170 "is-number": {
2171 "version": "3.0.0",
2172 "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2173 "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2174 "dev": true,
2175 "requires": {
2176 "kind-of": "^3.0.2"
2177 },
2178 "dependencies": {
2179 "kind-of": {
2180 "version": "3.2.2",
2181 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2182 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2183 "dev": true,
2184 "requires": {
2185 "is-buffer": "^1.1.5"
2186 }
2187 }
2188 }
2189 },
2190 "isobject": {
2191 "version": "3.0.1",
2192 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2193 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2194 "dev": true
2195 },
2196 "kind-of": {
2197 "version": "6.0.2",
2198 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2199 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2200 "dev": true
2201 },
2202 "micromatch": {
2203 "version": "3.1.10",
2204 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2205 "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2206 "dev": true,
2207 "requires": {
2208 "arr-diff": "^4.0.0",
2209 "array-unique": "^0.3.2",
2210 "braces": "^2.3.1",
2211 "define-property": "^2.0.2",
2212 "extend-shallow": "^3.0.2",
2213 "extglob": "^2.0.4",
2214 "fragment-cache": "^0.2.1",
2215 "kind-of": "^6.0.2",
2216 "nanomatch": "^1.2.9",
2217 "object.pick": "^1.3.0",
2218 "regex-not": "^1.0.0",
2219 "snapdragon": "^0.8.1",
2220 "to-regex": "^3.0.2"
2221 }
2222 },
2223 "pify": {
2224 "version": "3.0.0",
2225 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
2226 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
2227 "dev": true
2228 }
2229 }
2230 },
2231 "listr": {
2232 "version": "0.14.2",
2233 "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.2.tgz",
2234 "integrity": "sha512-vmaNJ1KlGuGWShHI35X/F8r9xxS0VTHh9GejVXwSN20fG5xpq3Jh4bJbnumoT6q5EDM/8/YP1z3YMtQbFmhuXw==",
2235 "dev": true,
2236 "requires": {
2237 "@samverschueren/stream-to-observable": "^0.3.0",
2238 "is-observable": "^1.1.0",
2239 "is-promise": "^2.1.0",
2240 "is-stream": "^1.1.0",
2241 "listr-silent-renderer": "^1.1.1",
2242 "listr-update-renderer": "^0.4.0",
2243 "listr-verbose-renderer": "^0.4.0",
2244 "p-map": "^1.1.1",
2245 "rxjs": "^6.1.0"
2246 }
2247 },
2248 "listr-silent-renderer": {
2249 "version": "1.1.1",
2250 "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
2251 "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
2252 "dev": true
2253 },
2254 "listr-update-renderer": {
2255 "version": "0.4.0",
2256 "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz",
2257 "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=",
2258 "dev": true,
2259 "requires": {
2260 "chalk": "^1.1.3",
2261 "cli-truncate": "^0.2.1",
2262 "elegant-spinner": "^1.0.1",
2263 "figures": "^1.7.0",
2264 "indent-string": "^3.0.0",
2265 "log-symbols": "^1.0.2",
2266 "log-update": "^1.0.2",
2267 "strip-ansi": "^3.0.1"
2268 },
2269 "dependencies": {
2270 "ansi-regex": {
2271 "version": "2.1.1",
2272 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2273 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2274 "dev": true
2275 },
2276 "ansi-styles": {
2277 "version": "2.2.1",
2278 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2279 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2280 "dev": true
2281 },
2282 "chalk": {
2283 "version": "1.1.3",
2284 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2285 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2286 "dev": true,
2287 "requires": {
2288 "ansi-styles": "^2.2.1",
2289 "escape-string-regexp": "^1.0.2",
2290 "has-ansi": "^2.0.0",
2291 "strip-ansi": "^3.0.0",
2292 "supports-color": "^2.0.0"
2293 }
2294 },
2295 "figures": {
2296 "version": "1.7.0",
2297 "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
2298 "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
2299 "dev": true,
2300 "requires": {
2301 "escape-string-regexp": "^1.0.5",
2302 "object-assign": "^4.1.0"
2303 }
2304 },
2305 "log-symbols": {
2306 "version": "1.0.2",
2307 "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
2308 "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
2309 "dev": true,
2310 "requires": {
2311 "chalk": "^1.0.0"
2312 }
2313 },
2314 "strip-ansi": {
2315 "version": "3.0.1",
2316 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2317 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2318 "dev": true,
2319 "requires": {
2320 "ansi-regex": "^2.0.0"
2321 }
2322 },
2323 "supports-color": {
2324 "version": "2.0.0",
2325 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2326 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2327 "dev": true
2328 }
2329 }
2330 },
2331 "listr-verbose-renderer": {
2332 "version": "0.4.1",
2333 "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
2334 "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
2335 "dev": true,
2336 "requires": {
2337 "chalk": "^1.1.3",
2338 "cli-cursor": "^1.0.2",
2339 "date-fns": "^1.27.2",
2340 "figures": "^1.7.0"
2341 },
2342 "dependencies": {
2343 "ansi-regex": {
2344 "version": "2.1.1",
2345 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2346 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2347 "dev": true
2348 },
2349 "ansi-styles": {
2350 "version": "2.2.1",
2351 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2352 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2353 "dev": true
2354 },
2355 "chalk": {
2356 "version": "1.1.3",
2357 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2358 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2359 "dev": true,
2360 "requires": {
2361 "ansi-styles": "^2.2.1",
2362 "escape-string-regexp": "^1.0.2",
2363 "has-ansi": "^2.0.0",
2364 "strip-ansi": "^3.0.0",
2365 "supports-color": "^2.0.0"
2366 }
2367 },
2368 "cli-cursor": {
2369 "version": "1.0.2",
2370 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
2371 "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
2372 "dev": true,
2373 "requires": {
2374 "restore-cursor": "^1.0.1"
2375 }
2376 },
2377 "figures": {
2378 "version": "1.7.0",
2379 "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
2380 "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
2381 "dev": true,
2382 "requires": {
2383 "escape-string-regexp": "^1.0.5",
2384 "object-assign": "^4.1.0"
2385 }
2386 },
2387 "onetime": {
2388 "version": "1.1.0",
2389 "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
2390 "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
2391 "dev": true
2392 },
2393 "restore-cursor": {
2394 "version": "1.0.1",
2395 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
2396 "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
2397 "dev": true,
2398 "requires": {
2399 "exit-hook": "^1.0.0",
2400 "onetime": "^1.0.0"
2401 }
2402 },
2403 "strip-ansi": {
2404 "version": "3.0.1",
2405 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2406 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2407 "dev": true,
2408 "requires": {
2409 "ansi-regex": "^2.0.0"
2410 }
2411 },
2412 "supports-color": {
2413 "version": "2.0.0",
2414 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2415 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2416 "dev": true
2417 }
2418 }
2419 },
2420 "load-json-file": {
2421 "version": "2.0.0",
2422 "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
2423 "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
2424 "dev": true,
2425 "requires": {
2426 "graceful-fs": "^4.1.2",
2427 "parse-json": "^2.2.0",
2428 "pify": "^2.0.0",
2429 "strip-bom": "^3.0.0"
2430 }
2431 },
9882432 "locate-character": {
9892433 "version": "2.0.5",
9902434 "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-2.0.5.tgz",
9912435 "integrity": "sha512-n2GmejDXtOPBAZdIiEFy5dJ5N38xBCXLNOtw2WpB9kGh6pnrEuKlwYI+Tkpofc4wDtVXHtoAOJaMRlYG/oYaxg==",
9922436 "dev": true
9932437 },
2438 "locate-path": {
2439 "version": "2.0.0",
2440 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2441 "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2442 "dev": true,
2443 "requires": {
2444 "p-locate": "^2.0.0",
2445 "path-exists": "^3.0.0"
2446 },
2447 "dependencies": {
2448 "path-exists": {
2449 "version": "3.0.0",
2450 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2451 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2452 "dev": true
2453 }
2454 }
2455 },
9942456 "lodash": {
995 "version": "4.17.5",
996 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
997 "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
998 "dev": true
2457 "version": "4.17.11",
2458 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2459 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
2460 "dev": true
2461 },
2462 "log-symbols": {
2463 "version": "2.2.0",
2464 "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
2465 "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
2466 "dev": true,
2467 "requires": {
2468 "chalk": "^2.0.1"
2469 }
2470 },
2471 "log-update": {
2472 "version": "1.0.2",
2473 "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
2474 "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
2475 "dev": true,
2476 "requires": {
2477 "ansi-escapes": "^1.0.0",
2478 "cli-cursor": "^1.0.2"
2479 },
2480 "dependencies": {
2481 "ansi-escapes": {
2482 "version": "1.4.0",
2483 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
2484 "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
2485 "dev": true
2486 },
2487 "cli-cursor": {
2488 "version": "1.0.2",
2489 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
2490 "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
2491 "dev": true,
2492 "requires": {
2493 "restore-cursor": "^1.0.1"
2494 }
2495 },
2496 "onetime": {
2497 "version": "1.1.0",
2498 "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
2499 "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
2500 "dev": true
2501 },
2502 "restore-cursor": {
2503 "version": "1.0.1",
2504 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
2505 "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
2506 "dev": true,
2507 "requires": {
2508 "exit-hook": "^1.0.0",
2509 "onetime": "^1.0.0"
2510 }
2511 }
2512 }
9992513 },
10002514 "lru-cache": {
1001 "version": "4.1.1",
1002 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
1003 "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
2515 "version": "4.1.3",
2516 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
2517 "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
10042518 "dev": true,
10052519 "requires": {
10062520 "pseudomap": "^1.0.2",
10082522 }
10092523 },
10102524 "magic-string": {
1011 "version": "0.22.4",
1012 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz",
1013 "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==",
1014 "requires": {
1015 "vlq": "^0.2.1"
1016 }
2525 "version": "0.25.1",
2526 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz",
2527 "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==",
2528 "requires": {
2529 "sourcemap-codec": "^1.4.1"
2530 }
2531 },
2532 "map-cache": {
2533 "version": "0.2.2",
2534 "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2535 "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2536 "dev": true
2537 },
2538 "map-visit": {
2539 "version": "1.0.0",
2540 "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2541 "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2542 "dev": true,
2543 "requires": {
2544 "object-visit": "^1.0.0"
2545 }
2546 },
2547 "math-random": {
2548 "version": "1.0.1",
2549 "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
2550 "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
10172551 },
10182552 "micromatch": {
10192553 "version": "2.3.11",
10522586 },
10532587 "minimist": {
10542588 "version": "0.0.8",
1055 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2589 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
10562590 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
10572591 "dev": true
2592 },
2593 "mixin-deep": {
2594 "version": "1.3.1",
2595 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
2596 "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
2597 "dev": true,
2598 "requires": {
2599 "for-in": "^1.0.2",
2600 "is-extendable": "^1.0.1"
2601 },
2602 "dependencies": {
2603 "is-extendable": {
2604 "version": "1.0.1",
2605 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2606 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2607 "dev": true,
2608 "requires": {
2609 "is-plain-object": "^2.0.4"
2610 }
2611 }
2612 }
10582613 },
10592614 "mkdirp": {
10602615 "version": "0.5.1",
1061 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2616 "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
10622617 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
10632618 "dev": true,
10642619 "requires": {
10662621 }
10672622 },
10682623 "mocha": {
1069 "version": "5.0.1",
1070 "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.1.tgz",
1071 "integrity": "sha512-SpwyojlnE/WRBNGtvJSNfllfm5PqEDFxcWluSIgLeSBJtXG4DmoX2NNAeEA7rP5kK+79VgtVq8nG6HskaL1ykg==",
1072 "dev": true,
1073 "requires": {
1074 "browser-stdout": "1.3.0",
1075 "commander": "2.11.0",
2624 "version": "5.2.0",
2625 "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
2626 "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
2627 "dev": true,
2628 "requires": {
2629 "browser-stdout": "1.3.1",
2630 "commander": "2.15.1",
10762631 "debug": "3.1.0",
1077 "diff": "3.3.1",
2632 "diff": "3.5.0",
10782633 "escape-string-regexp": "1.0.5",
10792634 "glob": "7.1.2",
1080 "growl": "1.10.3",
2635 "growl": "1.10.5",
10812636 "he": "1.1.1",
2637 "minimatch": "3.0.4",
10822638 "mkdirp": "0.5.1",
1083 "supports-color": "4.4.0"
1084 },
1085 "dependencies": {
1086 "has-flag": {
2639 "supports-color": "5.4.0"
2640 },
2641 "dependencies": {
2642 "commander": {
2643 "version": "2.15.1",
2644 "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
2645 "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
2646 "dev": true
2647 },
2648 "debug": {
2649 "version": "3.1.0",
2650 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
2651 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
2652 "dev": true,
2653 "requires": {
2654 "ms": "2.0.0"
2655 }
2656 },
2657 "glob": {
2658 "version": "7.1.2",
2659 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
2660 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
2661 "dev": true,
2662 "requires": {
2663 "fs.realpath": "^1.0.0",
2664 "inflight": "^1.0.4",
2665 "inherits": "2",
2666 "minimatch": "^3.0.4",
2667 "once": "^1.3.0",
2668 "path-is-absolute": "^1.0.0"
2669 }
2670 },
2671 "ms": {
10872672 "version": "2.0.0",
1088 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
1089 "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
2673 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2674 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
10902675 "dev": true
10912676 },
10922677 "supports-color": {
1093 "version": "4.4.0",
1094 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
1095 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
1096 "dev": true,
1097 "requires": {
1098 "has-flag": "^2.0.0"
2678 "version": "5.4.0",
2679 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
2680 "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
2681 "dev": true,
2682 "requires": {
2683 "has-flag": "^3.0.0"
10992684 }
11002685 }
11012686 }
11022687 },
11032688 "ms": {
1104 "version": "2.0.0",
1105 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1106 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2689 "version": "2.1.1",
2690 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2691 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
11072692 "dev": true
11082693 },
11092694 "mute-stream": {
11122697 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
11132698 "dev": true
11142699 },
2700 "nanomatch": {
2701 "version": "1.2.13",
2702 "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
2703 "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
2704 "dev": true,
2705 "requires": {
2706 "arr-diff": "^4.0.0",
2707 "array-unique": "^0.3.2",
2708 "define-property": "^2.0.2",
2709 "extend-shallow": "^3.0.2",
2710 "fragment-cache": "^0.2.1",
2711 "is-windows": "^1.0.2",
2712 "kind-of": "^6.0.2",
2713 "object.pick": "^1.3.0",
2714 "regex-not": "^1.0.0",
2715 "snapdragon": "^0.8.1",
2716 "to-regex": "^3.0.1"
2717 },
2718 "dependencies": {
2719 "arr-diff": {
2720 "version": "4.0.0",
2721 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
2722 "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
2723 "dev": true
2724 },
2725 "array-unique": {
2726 "version": "0.3.2",
2727 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
2728 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
2729 "dev": true
2730 },
2731 "kind-of": {
2732 "version": "6.0.2",
2733 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2734 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2735 "dev": true
2736 }
2737 }
2738 },
11152739 "natural-compare": {
11162740 "version": "1.4.0",
11172741 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
11182742 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
11192743 "dev": true
11202744 },
2745 "nice-try": {
2746 "version": "1.0.5",
2747 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
2748 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
2749 "dev": true
2750 },
2751 "normalize-package-data": {
2752 "version": "2.4.0",
2753 "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
2754 "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
2755 "dev": true,
2756 "requires": {
2757 "hosted-git-info": "^2.1.4",
2758 "is-builtin-module": "^1.0.0",
2759 "semver": "2 || 3 || 4 || 5",
2760 "validate-npm-package-license": "^3.0.1"
2761 }
2762 },
11212763 "normalize-path": {
11222764 "version": "2.1.1",
11232765 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
11262768 "remove-trailing-separator": "^1.0.1"
11272769 }
11282770 },
2771 "npm-path": {
2772 "version": "2.0.4",
2773 "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz",
2774 "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==",
2775 "dev": true,
2776 "requires": {
2777 "which": "^1.2.10"
2778 }
2779 },
2780 "npm-run-path": {
2781 "version": "2.0.2",
2782 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
2783 "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
2784 "dev": true,
2785 "requires": {
2786 "path-key": "^2.0.0"
2787 }
2788 },
2789 "npm-which": {
2790 "version": "3.0.1",
2791 "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
2792 "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=",
2793 "dev": true,
2794 "requires": {
2795 "commander": "^2.9.0",
2796 "npm-path": "^2.0.2",
2797 "which": "^1.2.10"
2798 }
2799 },
2800 "number-is-nan": {
2801 "version": "1.0.1",
2802 "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2803 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2804 "dev": true
2805 },
11292806 "object-assign": {
11302807 "version": "4.1.1",
11312808 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
11322809 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
11332810 "dev": true
11342811 },
2812 "object-copy": {
2813 "version": "0.1.0",
2814 "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
2815 "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
2816 "dev": true,
2817 "requires": {
2818 "copy-descriptor": "^0.1.0",
2819 "define-property": "^0.2.5",
2820 "kind-of": "^3.0.3"
2821 },
2822 "dependencies": {
2823 "define-property": {
2824 "version": "0.2.5",
2825 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2826 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2827 "dev": true,
2828 "requires": {
2829 "is-descriptor": "^0.1.0"
2830 }
2831 }
2832 }
2833 },
2834 "object-visit": {
2835 "version": "1.0.1",
2836 "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
2837 "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
2838 "dev": true,
2839 "requires": {
2840 "isobject": "^3.0.0"
2841 },
2842 "dependencies": {
2843 "isobject": {
2844 "version": "3.0.1",
2845 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2846 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2847 "dev": true
2848 }
2849 }
2850 },
11352851 "object.omit": {
11362852 "version": "2.0.1",
11372853 "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
11392855 "requires": {
11402856 "for-own": "^0.1.4",
11412857 "is-extendable": "^0.1.1"
2858 }
2859 },
2860 "object.pick": {
2861 "version": "1.3.0",
2862 "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
2863 "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
2864 "dev": true,
2865 "requires": {
2866 "isobject": "^3.0.1"
2867 },
2868 "dependencies": {
2869 "isobject": {
2870 "version": "3.0.1",
2871 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2872 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2873 "dev": true
2874 }
11422875 }
11432876 },
11442877 "once": {
11852918 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
11862919 "dev": true
11872920 },
2921 "p-finally": {
2922 "version": "1.0.0",
2923 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
2924 "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
2925 "dev": true
2926 },
2927 "p-limit": {
2928 "version": "1.3.0",
2929 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
2930 "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
2931 "dev": true,
2932 "requires": {
2933 "p-try": "^1.0.0"
2934 }
2935 },
2936 "p-locate": {
2937 "version": "2.0.0",
2938 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
2939 "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
2940 "dev": true,
2941 "requires": {
2942 "p-limit": "^1.1.0"
2943 }
2944 },
2945 "p-map": {
2946 "version": "1.2.0",
2947 "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
2948 "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
2949 "dev": true
2950 },
2951 "p-try": {
2952 "version": "1.0.0",
2953 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
2954 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
2955 "dev": true
2956 },
11882957 "parse-glob": {
11892958 "version": "3.0.4",
11902959 "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
11962965 "is-glob": "^2.0.0"
11972966 }
11982967 },
2968 "parse-json": {
2969 "version": "2.2.0",
2970 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2971 "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2972 "dev": true,
2973 "requires": {
2974 "error-ex": "^1.2.0"
2975 }
2976 },
2977 "pascalcase": {
2978 "version": "0.1.1",
2979 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
2980 "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
2981 "dev": true
2982 },
2983 "path-exists": {
2984 "version": "2.1.0",
2985 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
2986 "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
2987 "dev": true,
2988 "requires": {
2989 "pinkie-promise": "^2.0.0"
2990 }
2991 },
11992992 "path-is-absolute": {
12002993 "version": "1.0.1",
12012994 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
12083001 "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
12093002 "dev": true
12103003 },
3004 "path-key": {
3005 "version": "2.0.1",
3006 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
3007 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
3008 "dev": true
3009 },
12113010 "path-parse": {
1212 "version": "1.0.5",
1213 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
1214 "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
3011 "version": "1.0.6",
3012 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3013 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
3014 },
3015 "path-type": {
3016 "version": "2.0.0",
3017 "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
3018 "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
3019 "dev": true,
3020 "requires": {
3021 "pify": "^2.0.0"
3022 }
12153023 },
12163024 "pify": {
12173025 "version": "2.3.0",
12343042 "pinkie": "^2.0.0"
12353043 }
12363044 },
3045 "pkg-dir": {
3046 "version": "1.0.0",
3047 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
3048 "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
3049 "dev": true,
3050 "requires": {
3051 "find-up": "^1.0.0"
3052 }
3053 },
3054 "please-upgrade-node": {
3055 "version": "3.1.1",
3056 "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
3057 "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
3058 "dev": true,
3059 "requires": {
3060 "semver-compare": "^1.0.0"
3061 }
3062 },
12373063 "pluralize": {
12383064 "version": "7.0.0",
12393065 "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
12403066 "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
12413067 "dev": true
12423068 },
3069 "posix-character-classes": {
3070 "version": "0.1.1",
3071 "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3072 "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3073 "dev": true
3074 },
12433075 "prelude-ls": {
12443076 "version": "1.1.2",
12453077 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
12513083 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
12523084 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
12533085 },
1254 "process-nextick-args": {
1255 "version": "2.0.0",
1256 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1257 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1258 "dev": true
3086 "prettier": {
3087 "version": "1.14.3",
3088 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.3.tgz",
3089 "integrity": "sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==",
3090 "dev": true
3091 },
3092 "pretty-format": {
3093 "version": "23.6.0",
3094 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz",
3095 "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==",
3096 "dev": true,
3097 "requires": {
3098 "ansi-regex": "^3.0.0",
3099 "ansi-styles": "^3.2.0"
3100 }
12593101 },
12603102 "progress": {
12613103 "version": "2.0.0",
12693111 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
12703112 "dev": true
12713113 },
3114 "punycode": {
3115 "version": "2.1.1",
3116 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3117 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
3118 "dev": true
3119 },
12723120 "randomatic": {
1273 "version": "1.1.7",
1274 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
1275 "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
3121 "version": "3.1.0",
3122 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
3123 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
3124 "requires": {
3125 "is-number": "^4.0.0",
3126 "kind-of": "^6.0.0",
3127 "math-random": "^1.0.1"
3128 },
3129 "dependencies": {
3130 "is-number": {
3131 "version": "4.0.0",
3132 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
3133 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
3134 },
3135 "kind-of": {
3136 "version": "6.0.2",
3137 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3138 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
3139 }
3140 }
3141 },
3142 "read-pkg": {
3143 "version": "2.0.0",
3144 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
3145 "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
3146 "dev": true,
3147 "requires": {
3148 "load-json-file": "^2.0.0",
3149 "normalize-package-data": "^2.3.2",
3150 "path-type": "^2.0.0"
3151 }
3152 },
3153 "read-pkg-up": {
3154 "version": "2.0.0",
3155 "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
3156 "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
3157 "dev": true,
3158 "requires": {
3159 "find-up": "^2.0.0",
3160 "read-pkg": "^2.0.0"
3161 },
3162 "dependencies": {
3163 "find-up": {
3164 "version": "2.1.0",
3165 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
3166 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
3167 "dev": true,
3168 "requires": {
3169 "locate-path": "^2.0.0"
3170 }
3171 }
3172 }
3173 },
3174 "rechoir": {
3175 "version": "0.6.2",
3176 "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
3177 "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
3178 "dev": true,
3179 "requires": {
3180 "resolve": "^1.1.6"
3181 }
3182 },
3183 "regex-cache": {
3184 "version": "0.4.4",
3185 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
3186 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
3187 "requires": {
3188 "is-equal-shallow": "^0.1.3"
3189 }
3190 },
3191 "regex-not": {
3192 "version": "1.0.2",
3193 "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3194 "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3195 "dev": true,
3196 "requires": {
3197 "extend-shallow": "^3.0.2",
3198 "safe-regex": "^1.1.0"
3199 }
3200 },
3201 "regexpp": {
3202 "version": "2.0.0",
3203 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz",
3204 "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==",
3205 "dev": true
3206 },
3207 "remove-trailing-separator": {
3208 "version": "1.1.0",
3209 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3210 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
3211 },
3212 "repeat-element": {
3213 "version": "1.1.3",
3214 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3215 "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
3216 },
3217 "repeat-string": {
3218 "version": "1.6.1",
3219 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3220 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
3221 },
3222 "require-relative": {
3223 "version": "0.8.7",
3224 "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
3225 "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
3226 "dev": true
3227 },
3228 "require-uncached": {
3229 "version": "1.0.3",
3230 "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
3231 "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
3232 "dev": true,
3233 "requires": {
3234 "caller-path": "^0.1.0",
3235 "resolve-from": "^1.0.0"
3236 }
3237 },
3238 "resolve": {
3239 "version": "1.8.1",
3240 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
3241 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
3242 "requires": {
3243 "path-parse": "^1.0.5"
3244 }
3245 },
3246 "resolve-from": {
3247 "version": "1.0.1",
3248 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
3249 "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
3250 "dev": true
3251 },
3252 "resolve-url": {
3253 "version": "0.2.1",
3254 "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3255 "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
3256 "dev": true
3257 },
3258 "restore-cursor": {
3259 "version": "2.0.0",
3260 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
3261 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
3262 "dev": true,
3263 "requires": {
3264 "onetime": "^2.0.0",
3265 "signal-exit": "^3.0.2"
3266 }
3267 },
3268 "ret": {
3269 "version": "0.1.15",
3270 "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3271 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3272 "dev": true
3273 },
3274 "rimraf": {
3275 "version": "2.6.2",
3276 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
3277 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
3278 "dev": true,
3279 "requires": {
3280 "glob": "^7.0.5"
3281 }
3282 },
3283 "rollup": {
3284 "version": "0.66.3",
3285 "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.3.tgz",
3286 "integrity": "sha512-xgJJ5XDFlELucYoCkPUm/MdVq6P6wsJrq9SorxghkBA5MkSkQCuwaVfKHLeCRPI+GmogUYFPz1/oGjRYwgHw1w==",
3287 "dev": true,
3288 "requires": {
3289 "@types/estree": "0.0.39",
3290 "@types/node": "*"
3291 }
3292 },
3293 "rollup-plugin-buble": {
3294 "version": "0.19.2",
3295 "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.19.2.tgz",
3296 "integrity": "sha512-dxK0prR8j/7qhI2EZDz/evKCRuhuZMpRlUGPrRWmpg5/2V8tP1XFW+Uk0WfxyNgFfJHvy0GmxnJSTb5dIaNljQ==",
3297 "dev": true,
3298 "requires": {
3299 "buble": "^0.19.2",
3300 "rollup-pluginutils": "^2.0.1"
3301 }
3302 },
3303 "rollup-plugin-node-resolve": {
3304 "version": "3.4.0",
3305 "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz",
3306 "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==",
3307 "dev": true,
3308 "requires": {
3309 "builtin-modules": "^2.0.0",
3310 "is-module": "^1.0.0",
3311 "resolve": "^1.1.6"
3312 },
3313 "dependencies": {
3314 "builtin-modules": {
3315 "version": "2.0.0",
3316 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz",
3317 "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==",
3318 "dev": true
3319 }
3320 }
3321 },
3322 "rollup-pluginutils": {
3323 "version": "2.3.3",
3324 "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz",
3325 "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==",
3326 "requires": {
3327 "estree-walker": "^0.5.2",
3328 "micromatch": "^2.3.11"
3329 }
3330 },
3331 "run-async": {
3332 "version": "2.3.0",
3333 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
3334 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
3335 "dev": true,
3336 "requires": {
3337 "is-promise": "^2.1.0"
3338 }
3339 },
3340 "run-node": {
3341 "version": "1.0.0",
3342 "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
3343 "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
3344 "dev": true
3345 },
3346 "rxjs": {
3347 "version": "6.3.3",
3348 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
3349 "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
3350 "dev": true,
3351 "requires": {
3352 "tslib": "^1.9.0"
3353 }
3354 },
3355 "safe-regex": {
3356 "version": "1.1.0",
3357 "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3358 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3359 "dev": true,
3360 "requires": {
3361 "ret": "~0.1.10"
3362 }
3363 },
3364 "safer-buffer": {
3365 "version": "2.1.2",
3366 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3367 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3368 "dev": true
3369 },
3370 "semver": {
3371 "version": "5.5.1",
3372 "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
3373 "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
3374 "dev": true
3375 },
3376 "semver-compare": {
3377 "version": "1.0.0",
3378 "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
3379 "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
3380 "dev": true
3381 },
3382 "set-value": {
3383 "version": "2.0.0",
3384 "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
3385 "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
3386 "dev": true,
3387 "requires": {
3388 "extend-shallow": "^2.0.1",
3389 "is-extendable": "^0.1.1",
3390 "is-plain-object": "^2.0.3",
3391 "split-string": "^3.0.1"
3392 },
3393 "dependencies": {
3394 "extend-shallow": {
3395 "version": "2.0.1",
3396 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3397 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3398 "dev": true,
3399 "requires": {
3400 "is-extendable": "^0.1.0"
3401 }
3402 }
3403 }
3404 },
3405 "shebang-command": {
3406 "version": "1.2.0",
3407 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
3408 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
3409 "dev": true,
3410 "requires": {
3411 "shebang-regex": "^1.0.0"
3412 }
3413 },
3414 "shebang-regex": {
3415 "version": "1.0.0",
3416 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
3417 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
3418 "dev": true
3419 },
3420 "shelljs": {
3421 "version": "0.8.2",
3422 "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz",
3423 "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==",
3424 "dev": true,
3425 "requires": {
3426 "glob": "^7.0.0",
3427 "interpret": "^1.0.0",
3428 "rechoir": "^0.6.2"
3429 }
3430 },
3431 "shx": {
3432 "version": "0.3.2",
3433 "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz",
3434 "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==",
3435 "dev": true,
3436 "requires": {
3437 "es6-object-assign": "^1.0.3",
3438 "minimist": "^1.2.0",
3439 "shelljs": "^0.8.1"
3440 },
3441 "dependencies": {
3442 "minimist": {
3443 "version": "1.2.0",
3444 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
3445 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
3446 "dev": true
3447 }
3448 }
3449 },
3450 "signal-exit": {
3451 "version": "3.0.2",
3452 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
3453 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
3454 "dev": true
3455 },
3456 "slash": {
3457 "version": "2.0.0",
3458 "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
3459 "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
3460 "dev": true
3461 },
3462 "slice-ansi": {
3463 "version": "1.0.0",
3464 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
3465 "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
3466 "dev": true,
3467 "requires": {
3468 "is-fullwidth-code-point": "^2.0.0"
3469 }
3470 },
3471 "snapdragon": {
3472 "version": "0.8.2",
3473 "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
3474 "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
3475 "dev": true,
3476 "requires": {
3477 "base": "^0.11.1",
3478 "debug": "^2.2.0",
3479 "define-property": "^0.2.5",
3480 "extend-shallow": "^2.0.1",
3481 "map-cache": "^0.2.2",
3482 "source-map": "^0.5.6",
3483 "source-map-resolve": "^0.5.0",
3484 "use": "^3.1.0"
3485 },
3486 "dependencies": {
3487 "debug": {
3488 "version": "2.6.9",
3489 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3490 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3491 "dev": true,
3492 "requires": {
3493 "ms": "2.0.0"
3494 }
3495 },
3496 "define-property": {
3497 "version": "0.2.5",
3498 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3499 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3500 "dev": true,
3501 "requires": {
3502 "is-descriptor": "^0.1.0"
3503 }
3504 },
3505 "extend-shallow": {
3506 "version": "2.0.1",
3507 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3508 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3509 "dev": true,
3510 "requires": {
3511 "is-extendable": "^0.1.0"
3512 }
3513 },
3514 "ms": {
3515 "version": "2.0.0",
3516 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3517 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3518 "dev": true
3519 },
3520 "source-map": {
3521 "version": "0.5.7",
3522 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3523 "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3524 "dev": true
3525 }
3526 }
3527 },
3528 "snapdragon-node": {
3529 "version": "2.1.1",
3530 "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
3531 "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
3532 "dev": true,
3533 "requires": {
3534 "define-property": "^1.0.0",
3535 "isobject": "^3.0.0",
3536 "snapdragon-util": "^3.0.1"
3537 },
3538 "dependencies": {
3539 "define-property": {
3540 "version": "1.0.0",
3541 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
3542 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
3543 "dev": true,
3544 "requires": {
3545 "is-descriptor": "^1.0.0"
3546 }
3547 },
3548 "is-accessor-descriptor": {
3549 "version": "1.0.0",
3550 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3551 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3552 "dev": true,
3553 "requires": {
3554 "kind-of": "^6.0.0"
3555 }
3556 },
3557 "is-data-descriptor": {
3558 "version": "1.0.0",
3559 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3560 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3561 "dev": true,
3562 "requires": {
3563 "kind-of": "^6.0.0"
3564 }
3565 },
3566 "is-descriptor": {
3567 "version": "1.0.2",
3568 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3569 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3570 "dev": true,
3571 "requires": {
3572 "is-accessor-descriptor": "^1.0.0",
3573 "is-data-descriptor": "^1.0.0",
3574 "kind-of": "^6.0.2"
3575 }
3576 },
3577 "isobject": {
3578 "version": "3.0.1",
3579 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
3580 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
3581 "dev": true
3582 },
3583 "kind-of": {
3584 "version": "6.0.2",
3585 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3586 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
3587 "dev": true
3588 }
3589 }
3590 },
3591 "snapdragon-util": {
3592 "version": "3.0.1",
3593 "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
3594 "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
3595 "dev": true,
3596 "requires": {
3597 "kind-of": "^3.2.0"
3598 }
3599 },
3600 "source-map": {
3601 "version": "0.7.3",
3602 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
3603 "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
3604 "dev": true
3605 },
3606 "source-map-resolve": {
3607 "version": "0.5.2",
3608 "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
3609 "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
3610 "dev": true,
3611 "requires": {
3612 "atob": "^2.1.1",
3613 "decode-uri-component": "^0.2.0",
3614 "resolve-url": "^0.2.1",
3615 "source-map-url": "^0.4.0",
3616 "urix": "^0.1.0"
3617 }
3618 },
3619 "source-map-support": {
3620 "version": "0.5.9",
3621 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
3622 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
3623 "dev": true,
3624 "requires": {
3625 "buffer-from": "^1.0.0",
3626 "source-map": "^0.6.0"
3627 },
3628 "dependencies": {
3629 "source-map": {
3630 "version": "0.6.1",
3631 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3632 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3633 "dev": true
3634 }
3635 }
3636 },
3637 "source-map-url": {
3638 "version": "0.4.0",
3639 "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
3640 "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
3641 "dev": true
3642 },
3643 "sourcemap-codec": {
3644 "version": "1.4.3",
3645 "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz",
3646 "integrity": "sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA=="
3647 },
3648 "spdx-correct": {
3649 "version": "3.0.1",
3650 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.1.tgz",
3651 "integrity": "sha512-hxSPZbRZvSDuOvADntOElzJpenIR7wXJkuoUcUtS0erbgt2fgeaoPIYretfKpslMhfFDY4k0MZ2F5CUzhBsSvQ==",
3652 "dev": true,
3653 "requires": {
3654 "spdx-expression-parse": "^3.0.0",
3655 "spdx-license-ids": "^3.0.0"
3656 }
3657 },
3658 "spdx-exceptions": {
3659 "version": "2.2.0",
3660 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
3661 "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
3662 "dev": true
3663 },
3664 "spdx-expression-parse": {
3665 "version": "3.0.0",
3666 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
3667 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
3668 "dev": true,
3669 "requires": {
3670 "spdx-exceptions": "^2.1.0",
3671 "spdx-license-ids": "^3.0.0"
3672 }
3673 },
3674 "spdx-license-ids": {
3675 "version": "3.0.1",
3676 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
3677 "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
3678 "dev": true
3679 },
3680 "split-string": {
3681 "version": "3.1.0",
3682 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
3683 "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
3684 "dev": true,
3685 "requires": {
3686 "extend-shallow": "^3.0.0"
3687 }
3688 },
3689 "sprintf-js": {
3690 "version": "1.0.3",
3691 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3692 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
3693 "dev": true
3694 },
3695 "staged-git-files": {
3696 "version": "1.1.1",
3697 "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz",
3698 "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==",
3699 "dev": true
3700 },
3701 "static-extend": {
3702 "version": "0.1.2",
3703 "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
3704 "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
3705 "dev": true,
3706 "requires": {
3707 "define-property": "^0.2.5",
3708 "object-copy": "^0.1.0"
3709 },
3710 "dependencies": {
3711 "define-property": {
3712 "version": "0.2.5",
3713 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3714 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3715 "dev": true,
3716 "requires": {
3717 "is-descriptor": "^0.1.0"
3718 }
3719 }
3720 }
3721 },
3722 "string-argv": {
3723 "version": "0.0.2",
3724 "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz",
3725 "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=",
3726 "dev": true
3727 },
3728 "string-width": {
3729 "version": "2.1.1",
3730 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
3731 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
3732 "dev": true,
3733 "requires": {
3734 "is-fullwidth-code-point": "^2.0.0",
3735 "strip-ansi": "^4.0.0"
3736 }
3737 },
3738 "stringify-object": {
3739 "version": "3.2.2",
3740 "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.2.tgz",
3741 "integrity": "sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==",
3742 "dev": true,
3743 "requires": {
3744 "get-own-enumerable-property-symbols": "^2.0.1",
3745 "is-obj": "^1.0.1",
3746 "is-regexp": "^1.0.0"
3747 }
3748 },
3749 "strip-ansi": {
3750 "version": "4.0.0",
3751 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3752 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3753 "dev": true,
3754 "requires": {
3755 "ansi-regex": "^3.0.0"
3756 }
3757 },
3758 "strip-bom": {
3759 "version": "3.0.0",
3760 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3761 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
3762 "dev": true
3763 },
3764 "strip-eof": {
3765 "version": "1.0.0",
3766 "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
3767 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
3768 "dev": true
3769 },
3770 "strip-json-comments": {
3771 "version": "2.0.1",
3772 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3773 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
3774 "dev": true
3775 },
3776 "supports-color": {
3777 "version": "5.5.0",
3778 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3779 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3780 "dev": true,
3781 "requires": {
3782 "has-flag": "^3.0.0"
3783 }
3784 },
3785 "symbol-observable": {
3786 "version": "1.2.0",
3787 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
3788 "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
3789 "dev": true
3790 },
3791 "table": {
3792 "version": "4.0.3",
3793 "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz",
3794 "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==",
3795 "dev": true,
3796 "requires": {
3797 "ajv": "^6.0.1",
3798 "ajv-keywords": "^3.0.0",
3799 "chalk": "^2.1.0",
3800 "lodash": "^4.17.4",
3801 "slice-ansi": "1.0.0",
3802 "string-width": "^2.1.1"
3803 }
3804 },
3805 "text-table": {
3806 "version": "0.2.0",
3807 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3808 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
3809 "dev": true
3810 },
3811 "through": {
3812 "version": "2.3.8",
3813 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
3814 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
3815 "dev": true
3816 },
3817 "tmp": {
3818 "version": "0.0.33",
3819 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
3820 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
3821 "dev": true,
3822 "requires": {
3823 "os-tmpdir": "~1.0.2"
3824 }
3825 },
3826 "to-object-path": {
3827 "version": "0.3.0",
3828 "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
3829 "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
3830 "dev": true,
3831 "requires": {
3832 "kind-of": "^3.0.2"
3833 }
3834 },
3835 "to-regex": {
3836 "version": "3.0.2",
3837 "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
3838 "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
3839 "dev": true,
3840 "requires": {
3841 "define-property": "^2.0.2",
3842 "extend-shallow": "^3.0.2",
3843 "regex-not": "^1.0.2",
3844 "safe-regex": "^1.1.0"
3845 }
3846 },
3847 "to-regex-range": {
3848 "version": "2.1.1",
3849 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
3850 "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
3851 "dev": true,
12763852 "requires": {
12773853 "is-number": "^3.0.0",
1278 "kind-of": "^4.0.0"
3854 "repeat-string": "^1.6.1"
12793855 },
12803856 "dependencies": {
12813857 "is-number": {
12823858 "version": "3.0.0",
12833859 "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
12843860 "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
3861 "dev": true,
12853862 "requires": {
12863863 "kind-of": "^3.0.2"
1287 },
1288 "dependencies": {
1289 "kind-of": {
1290 "version": "3.2.2",
1291 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1292 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1293 "requires": {
1294 "is-buffer": "^1.1.5"
1295 }
1296 }
1297 }
1298 },
1299 "kind-of": {
1300 "version": "4.0.0",
1301 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
1302 "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
1303 "requires": {
1304 "is-buffer": "^1.1.5"
1305 }
1306 }
1307 }
1308 },
1309 "readable-stream": {
1310 "version": "2.3.5",
1311 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
1312 "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
1313 "dev": true,
1314 "requires": {
1315 "core-util-is": "~1.0.0",
1316 "inherits": "~2.0.3",
1317 "isarray": "~1.0.0",
1318 "process-nextick-args": "~2.0.0",
1319 "safe-buffer": "~5.1.1",
1320 "string_decoder": "~1.0.3",
1321 "util-deprecate": "~1.0.1"
1322 }
1323 },
1324 "rechoir": {
1325 "version": "0.6.2",
1326 "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
1327 "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
1328 "dev": true,
1329 "requires": {
1330 "resolve": "^1.1.6"
1331 }
1332 },
1333 "regex-cache": {
1334 "version": "0.4.3",
1335 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
1336 "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
1337 "requires": {
1338 "is-equal-shallow": "^0.1.3",
1339 "is-primitive": "^2.0.0"
1340 }
1341 },
1342 "remove-trailing-separator": {
1343 "version": "1.1.0",
1344 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1345 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
1346 },
1347 "repeat-element": {
1348 "version": "1.1.2",
1349 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
1350 "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
1351 },
1352 "repeat-string": {
1353 "version": "1.6.1",
1354 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1355 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
1356 },
1357 "require-relative": {
1358 "version": "0.8.7",
1359 "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
1360 "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
1361 "dev": true
1362 },
1363 "require-uncached": {
1364 "version": "1.0.3",
1365 "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
1366 "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
1367 "dev": true,
1368 "requires": {
1369 "caller-path": "^0.1.0",
1370 "resolve-from": "^1.0.0"
1371 }
1372 },
1373 "resolve": {
1374 "version": "1.5.0",
1375 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
1376 "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
1377 "requires": {
1378 "path-parse": "^1.0.5"
1379 }
1380 },
1381 "resolve-from": {
1382 "version": "1.0.1",
1383 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
1384 "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
1385 "dev": true
1386 },
1387 "restore-cursor": {
1388 "version": "2.0.0",
1389 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
1390 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
1391 "dev": true,
1392 "requires": {
1393 "onetime": "^2.0.0",
1394 "signal-exit": "^3.0.2"
1395 }
1396 },
1397 "rimraf": {
1398 "version": "2.6.2",
1399 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1400 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1401 "dev": true,
1402 "requires": {
1403 "glob": "^7.0.5"
1404 }
1405 },
1406 "rollup": {
1407 "version": "0.63.2",
1408 "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.63.2.tgz",
1409 "integrity": "sha512-Tdo4DggL3QT+Im5r0QXWBGsBdlaBNWQ+fH8pIsOBvy3U7TXFLqMzUBmJBLBc7r8UM0GO5I/Nl9jK7AC2QQAjEQ==",
1410 "dev": true,
1411 "requires": {
1412 "@types/estree": "0.0.39",
1413 "@types/node": "*"
1414 }
1415 },
1416 "rollup-plugin-buble": {
1417 "version": "0.19.2",
1418 "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.19.2.tgz",
1419 "integrity": "sha512-dxK0prR8j/7qhI2EZDz/evKCRuhuZMpRlUGPrRWmpg5/2V8tP1XFW+Uk0WfxyNgFfJHvy0GmxnJSTb5dIaNljQ==",
1420 "dev": true,
1421 "requires": {
1422 "buble": "^0.19.2",
1423 "rollup-pluginutils": "^2.0.1"
1424 }
1425 },
1426 "rollup-plugin-node-resolve": {
1427 "version": "3.0.3",
1428 "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.3.tgz",
1429 "integrity": "sha512-qJLXJ1aASV6p8SrEfRdQdHmb5OQmqXyIWIdVGcju8QFzftSsHcuL554Vy+n8mr0fZCC+ksO6aWJ7TAVl2F+Qwg==",
1430 "dev": true,
1431 "requires": {
1432 "builtin-modules": "^1.1.0",
1433 "is-module": "^1.0.0",
1434 "resolve": "^1.1.6"
1435 }
1436 },
1437 "rollup-pluginutils": {
1438 "version": "2.0.1",
1439 "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz",
1440 "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=",
1441 "requires": {
1442 "estree-walker": "^0.3.0",
1443 "micromatch": "^2.3.11"
1444 },
1445 "dependencies": {
1446 "estree-walker": {
1447 "version": "0.3.1",
1448 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz",
1449 "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao="
1450 }
1451 }
1452 },
1453 "run-async": {
1454 "version": "2.3.0",
1455 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
1456 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
1457 "dev": true,
1458 "requires": {
1459 "is-promise": "^2.1.0"
1460 }
1461 },
1462 "rx-lite": {
1463 "version": "4.0.8",
1464 "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
1465 "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
1466 "dev": true
1467 },
1468 "rx-lite-aggregates": {
1469 "version": "4.0.8",
1470 "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
1471 "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
1472 "dev": true,
1473 "requires": {
1474 "rx-lite": "*"
1475 }
1476 },
1477 "safe-buffer": {
1478 "version": "5.1.1",
1479 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1480 "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
1481 "dev": true
1482 },
1483 "semver": {
1484 "version": "5.5.0",
1485 "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
1486 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
1487 "dev": true
1488 },
1489 "shebang-command": {
1490 "version": "1.2.0",
1491 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1492 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1493 "dev": true,
1494 "requires": {
1495 "shebang-regex": "^1.0.0"
1496 }
1497 },
1498 "shebang-regex": {
1499 "version": "1.0.0",
1500 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1501 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1502 "dev": true
1503 },
1504 "shelljs": {
1505 "version": "0.7.8",
1506 "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
1507 "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
1508 "dev": true,
1509 "requires": {
1510 "glob": "^7.0.0",
1511 "interpret": "^1.0.0",
1512 "rechoir": "^0.6.2"
1513 }
1514 },
1515 "shx": {
1516 "version": "0.2.2",
1517 "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz",
1518 "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=",
1519 "dev": true,
1520 "requires": {
1521 "es6-object-assign": "^1.0.3",
1522 "minimist": "^1.2.0",
1523 "shelljs": "^0.7.3"
1524 },
1525 "dependencies": {
1526 "minimist": {
1527 "version": "1.2.0",
1528 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1529 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1530 "dev": true
1531 }
1532 }
1533 },
1534 "signal-exit": {
1535 "version": "3.0.2",
1536 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1537 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1538 "dev": true
1539 },
1540 "slice-ansi": {
1541 "version": "1.0.0",
1542 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
1543 "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
1544 "dev": true,
1545 "requires": {
1546 "is-fullwidth-code-point": "^2.0.0"
1547 }
1548 },
1549 "source-map": {
1550 "version": "0.6.1",
1551 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1552 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1553 "dev": true
1554 },
1555 "source-map-support": {
1556 "version": "0.5.3",
1557 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz",
1558 "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==",
1559 "dev": true,
1560 "requires": {
1561 "source-map": "^0.6.0"
1562 }
1563 },
1564 "sprintf-js": {
1565 "version": "1.0.3",
1566 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1567 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1568 "dev": true
1569 },
1570 "string-width": {
1571 "version": "2.1.1",
1572 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1573 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1574 "dev": true,
1575 "requires": {
1576 "is-fullwidth-code-point": "^2.0.0",
1577 "strip-ansi": "^4.0.0"
1578 }
1579 },
1580 "string_decoder": {
1581 "version": "1.0.3",
1582 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1583 "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
1584 "dev": true,
1585 "requires": {
1586 "safe-buffer": "~5.1.0"
1587 }
1588 },
1589 "strip-ansi": {
1590 "version": "4.0.0",
1591 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1592 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1593 "dev": true,
1594 "requires": {
1595 "ansi-regex": "^3.0.0"
1596 },
1597 "dependencies": {
1598 "ansi-regex": {
1599 "version": "3.0.0",
1600 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1601 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1602 "dev": true
1603 }
1604 }
1605 },
1606 "strip-json-comments": {
1607 "version": "2.0.1",
1608 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1609 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1610 "dev": true
1611 },
1612 "supports-color": {
1613 "version": "2.0.0",
1614 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1615 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1616 "dev": true
1617 },
1618 "table": {
1619 "version": "4.0.2",
1620 "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
1621 "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
1622 "dev": true,
1623 "requires": {
1624 "ajv": "^5.2.3",
1625 "ajv-keywords": "^2.1.0",
1626 "chalk": "^2.1.0",
1627 "lodash": "^4.17.4",
1628 "slice-ansi": "1.0.0",
1629 "string-width": "^2.1.1"
1630 }
1631 },
1632 "text-table": {
1633 "version": "0.2.0",
1634 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1635 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1636 "dev": true
1637 },
1638 "through": {
1639 "version": "2.3.8",
1640 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1641 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1642 "dev": true
1643 },
1644 "tmp": {
1645 "version": "0.0.33",
1646 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1647 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1648 "dev": true,
1649 "requires": {
1650 "os-tmpdir": "~1.0.2"
1651 }
3864 }
3865 }
3866 }
3867 },
3868 "tslib": {
3869 "version": "1.9.3",
3870 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
3871 "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
3872 "dev": true
16523873 },
16533874 "type-check": {
16543875 "version": "0.3.2",
16593880 "prelude-ls": "~1.1.2"
16603881 }
16613882 },
1662 "typedarray": {
1663 "version": "0.0.6",
1664 "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1665 "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
1666 "dev": true
1667 },
1668 "util-deprecate": {
1669 "version": "1.0.2",
1670 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1671 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1672 "dev": true
3883 "union-value": {
3884 "version": "1.0.0",
3885 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
3886 "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
3887 "dev": true,
3888 "requires": {
3889 "arr-union": "^3.1.0",
3890 "get-value": "^2.0.6",
3891 "is-extendable": "^0.1.1",
3892 "set-value": "^0.4.3"
3893 },
3894 "dependencies": {
3895 "extend-shallow": {
3896 "version": "2.0.1",
3897 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3898 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3899 "dev": true,
3900 "requires": {
3901 "is-extendable": "^0.1.0"
3902 }
3903 },
3904 "set-value": {
3905 "version": "0.4.3",
3906 "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
3907 "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
3908 "dev": true,
3909 "requires": {
3910 "extend-shallow": "^2.0.1",
3911 "is-extendable": "^0.1.1",
3912 "is-plain-object": "^2.0.1",
3913 "to-object-path": "^0.3.0"
3914 }
3915 }
3916 }
3917 },
3918 "unset-value": {
3919 "version": "1.0.0",
3920 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
3921 "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
3922 "dev": true,
3923 "requires": {
3924 "has-value": "^0.3.1",
3925 "isobject": "^3.0.0"
3926 },
3927 "dependencies": {
3928 "has-value": {
3929 "version": "0.3.1",
3930 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
3931 "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
3932 "dev": true,
3933 "requires": {
3934 "get-value": "^2.0.3",
3935 "has-values": "^0.1.4",
3936 "isobject": "^2.0.0"
3937 },
3938 "dependencies": {
3939 "isobject": {
3940 "version": "2.1.0",
3941 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
3942 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
3943 "dev": true,
3944 "requires": {
3945 "isarray": "1.0.0"
3946 }
3947 }
3948 }
3949 },
3950 "has-values": {
3951 "version": "0.1.4",
3952 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
3953 "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
3954 "dev": true
3955 },
3956 "isobject": {
3957 "version": "3.0.1",
3958 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
3959 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
3960 "dev": true
3961 }
3962 }
3963 },
3964 "uri-js": {
3965 "version": "4.2.2",
3966 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
3967 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
3968 "dev": true,
3969 "requires": {
3970 "punycode": "^2.1.0"
3971 }
3972 },
3973 "urix": {
3974 "version": "0.1.0",
3975 "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
3976 "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
3977 "dev": true
3978 },
3979 "use": {
3980 "version": "3.1.1",
3981 "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
3982 "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
3983 "dev": true
3984 },
3985 "validate-npm-package-license": {
3986 "version": "3.0.4",
3987 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
3988 "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
3989 "dev": true,
3990 "requires": {
3991 "spdx-correct": "^3.0.0",
3992 "spdx-expression-parse": "^3.0.0"
3993 }
16733994 },
16743995 "vlq": {
1675 "version": "0.2.2",
1676 "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz",
1677 "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE="
3996 "version": "1.0.0",
3997 "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.0.tgz",
3998 "integrity": "sha512-o3WmXySo+oI5thgqr7Qy8uBkT/v9Zr+sRyrh1lr8aWPUkgDWdWt4Nae2WKBrLsocgE8BuWWD0jLc+VW8LeU+2g==",
3999 "dev": true
16784000 },
16794001 "which": {
1680 "version": "1.3.0",
1681 "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
1682 "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
4002 "version": "1.3.1",
4003 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
4004 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
16834005 "dev": true,
16844006 "requires": {
16854007 "isexe": "^2.0.0"
00 {
11 "name": "rollup-plugin-commonjs",
2 "version": "9.1.8",
2 "version": "9.2.0",
33 "description": "Convert CommonJS modules to ES2015",
44 "main": "dist/rollup-plugin-commonjs.cjs.js",
55 "module": "dist/rollup-plugin-commonjs.es.js",
1010 "pretest": "npm run build",
1111 "build": "shx rm -rf dist/* && rollup -c",
1212 "dev": "rollup -c -w",
13 "lint": "eslint src/*.js test/*.js",
13 "lint": "prettier --write src/**/*.js test/test.js test/**/_config.js && eslint --fix src/**/*.js test/test.js test/**/_config.js",
1414 "prepublishOnly": "npm run lint && npm run test:only",
1515 "prepare": "npm run build"
1616 },
2323 "rollup": ">=0.56.0"
2424 },
2525 "dependencies": {
26 "estree-walker": "^0.5.1",
27 "magic-string": "^0.22.4",
28 "resolve": "^1.5.0",
29 "rollup-pluginutils": "^2.0.1"
26 "estree-walker": "^0.5.2",
27 "magic-string": "^0.25.1",
28 "resolve": "^1.8.1",
29 "rollup-pluginutils": "^2.3.3"
3030 },
3131 "devDependencies": {
32 "acorn": "^5.5.0",
33 "eslint": "^4.18.2",
32 "acorn": "^6.0.2",
33 "eslint": "^5.6.1",
34 "eslint-plugin-import": "^2.14.0",
35 "husky": "^1.1.0",
36 "lint-staged": "^7.3.0",
3437 "locate-character": "^2.0.5",
35 "mocha": "^5.0.1",
38 "mocha": "^5.2.0",
39 "prettier": "^1.14.3",
3640 "require-relative": "^0.8.7",
37 "rollup": "^0.63.2",
41 "rollup": "^0.66.3",
3842 "rollup-plugin-buble": "^0.19.2",
39 "rollup-plugin-node-resolve": "^3.0.3",
40 "shx": "^0.2.2",
41 "source-map": "^0.6.1",
42 "source-map-support": "^0.5.3"
43 "rollup-plugin-node-resolve": "^3.4.0",
44 "shx": "^0.3.2",
45 "source-map": "^0.7.3",
46 "source-map-support": "^0.5.9"
4347 },
4448 "repository": "rollup/rollup-plugin-commonjs",
4549 "author": "Rich Harris",
0 export function isReference ( node, parent ) {
1 if ( parent.type === 'MemberExpression' ) return parent.computed || node === parent.object;
0 export function isReference(node, parent) {
1 if (parent.type === 'MemberExpression') return parent.computed || node === parent.object;
22
33 // disregard the `bar` in { bar: foo }
4 if ( parent.type === 'Property' && node !== parent.value ) return false;
4 if (parent.type === 'Property' && node !== parent.value) return false;
55
66 // disregard the `bar` in `class Foo { bar () {...} }`
7 if ( parent.type === 'MethodDefinition' ) return false;
7 if (parent.type === 'MethodDefinition') return false;
88
99 // disregard the `bar` in `export { foo as bar }`
10 if ( parent.type === 'ExportSpecifier' && node !== parent.local ) return false;
10 if (parent.type === 'ExportSpecifier' && node !== parent.local) return false;
1111
1212 return true;
1313 }
1414
15 export function flatten ( node ) {
15 export function flatten(node) {
1616 const parts = [];
1717
18 while ( node.type === 'MemberExpression' ) {
19 if ( node.computed ) return null;
18 while (node.type === 'MemberExpression') {
19 if (node.computed) return null;
2020
21 parts.unshift( node.property.name );
21 parts.unshift(node.property.name);
2222 node = node.object;
2323 }
2424
25 if ( node.type !== 'Identifier' ) return null;
25 if (node.type !== 'Identifier') return null;
2626
2727 const name = node.name;
28 parts.unshift( name );
28 parts.unshift(name);
2929
30 return { name, keypath: parts.join( '.' ) };
30 return { name, keypath: parts.join('.') };
3131 }
3232
33 export function extractNames ( node ) {
33 export function extractNames(node) {
3434 const names = [];
35 extractors[ node.type ]( names, node );
35 extractors[node.type](names, node);
3636 return names;
3737 }
3838
3939 const extractors = {
40 Identifier ( names, node ) {
41 names.push( node.name );
40 Identifier(names, node) {
41 names.push(node.name);
4242 },
4343
44 ObjectPattern ( names, node ) {
45 node.properties.forEach( prop => {
46 extractors[ prop.value.type ]( names, prop.value );
44 ObjectPattern(names, node) {
45 node.properties.forEach(prop => {
46 extractors[prop.value.type](names, prop.value);
4747 });
4848 },
4949
50 ArrayPattern ( names, node ) {
51 node.elements.forEach( element => {
52 if ( element ) extractors[ element.type ]( names, element );
50 ArrayPattern(names, node) {
51 node.elements.forEach(element => {
52 if (element) extractors[element.type](names, element);
5353 });
5454 },
5555
56 RestElement ( names, node ) {
57 extractors[ node.argument.type ]( names, node.argument );
56 RestElement(names, node) {
57 extractors[node.argument.type](names, node.argument);
5858 },
5959
60 AssignmentPattern ( names, node ) {
61 extractors[ node.left.type ]( names, node.left );
60 AssignmentPattern(names, node) {
61 extractors[node.left.type](names, node.left);
6262 }
6363 };
6464
65
66 export function isTruthy ( node ) {
67 if ( node.type === 'Literal' ) return !!node.value;
68 if ( node.type === 'ParenthesizedExpression' ) return isTruthy( node.expression );
69 if ( node.operator in operators ) return operators[ node.operator ]( node );
65 export function isTruthy(node) {
66 if (node.type === 'Literal') return !!node.value;
67 if (node.type === 'ParenthesizedExpression') return isTruthy(node.expression);
68 if (node.operator in operators) return operators[node.operator](node);
7069 }
7170
72 export function isFalsy ( node ) {
73 return not( isTruthy( node ) );
71 export function isFalsy(node) {
72 return not(isTruthy(node));
7473 }
7574
76 function not ( value ) {
75 function not(value) {
7776 return value === undefined ? value : !value;
7877 }
7978
80 function equals ( a, b, strict ) {
81 if ( a.type !== b.type ) return undefined;
82 if ( a.type === 'Literal' ) return strict ? a.value === b.value : a.value == b.value;
79 function equals(a, b, strict) {
80 if (a.type !== b.type) return undefined;
81 if (a.type === 'Literal') return strict ? a.value === b.value : a.value == b.value;
8382 }
8483
8584 const operators = {
8685 '==': x => {
87 return equals( x.left, x.right, false );
86 return equals(x.left, x.right, false);
8887 },
8988
90 '!=': x => not( operators['==']( x ) ),
89 '!=': x => not(operators['=='](x)),
9190
9291 '===': x => {
93 return equals( x.left, x.right, true );
92 return equals(x.left, x.right, true);
9493 },
9594
96 '!==': x => not( operators['===']( x ) ),
95 '!==': x => not(operators['==='](x)),
9796
98 '!': x => isFalsy( x.argument ),
97 '!': x => isFalsy(x.argument),
9998
100 '&&': x => isTruthy( x.left ) && isTruthy( x.right ),
99 '&&': x => isTruthy(x.left) && isTruthy(x.right),
101100
102 '||': x => isTruthy( x.left ) || isTruthy( x.right )
101 '||': x => isTruthy(x.left) || isTruthy(x.right)
103102 };
0 import * as fs from 'fs';
1 import {dirname, resolve} from 'path';
2
3 function isFile(file) {
4 try {
5 const stats = fs.statSync(file);
6 return stats.isFile();
7 } catch (err) {
8 return false;
9 }
10 }
11
12 function addJsExtensionIfNecessary(file) {
13 if (isFile(file)) return file;
14
15 file += '.js';
16 if (isFile(file)) return file;
17
18 return null;
19 }
20
21 const absolutePath = /^(?:\/|(?:[A-Za-z]:)?[\\|/])/;
22
23 function isAbsolute(path) {
24 return absolutePath.test(path);
25 }
26
27 export default function defaultResolver(importee, importer) {
28 // absolute paths are left untouched
29 if (isAbsolute(importee)) return addJsExtensionIfNecessary(resolve(importee));
30
31 // if this is the entry point, resolve against cwd
32 if (importer === undefined) return addJsExtensionIfNecessary(resolve(process.cwd(), importee));
33
34 // external modules are skipped at this stage
35 if (importee[0] !== '.') return null;
36
37 return addJsExtensionIfNecessary(resolve(dirname(importer), importee));
38 }
+0
-39
src/defaultResolver.js less more
0 import * as fs from 'fs';
1 import { dirname, resolve } from 'path';
2
3 function isFile ( file ) {
4 try {
5 const stats = fs.statSync( file );
6 return stats.isFile();
7 } catch ( err ) {
8 return false;
9 }
10 }
11
12 function addJsExtensionIfNecessary ( file ) {
13 if ( isFile( file ) ) return file;
14
15 file += '.js';
16 if ( isFile( file ) ) return file;
17
18 return null;
19 }
20
21 const absolutePath = /^(?:\/|(?:[A-Za-z]:)?[\\|/])/;
22
23 function isAbsolute ( path ) {
24 return absolutePath.test( path );
25 }
26
27 export default function defaultResolver ( importee, importer ) {
28 // absolute paths are left untouched
29 if ( isAbsolute( importee ) ) return addJsExtensionIfNecessary( resolve( importee ) );
30
31 // if this is the entry point, resolve against cwd
32 if ( importer === undefined ) return addJsExtensionIfNecessary( resolve( process.cwd(), importee ) );
33
34 // external modules are skipped at this stage
35 if ( importee[0] !== '.' ) return null;
36
37 return addJsExtensionIfNecessary( resolve( dirname( importer ), importee ) );
38 }
0 export const PROXY_PREFIX = '\0commonjs-proxy:';
1 export const EXTERNAL_PREFIX = '\0commonjs-external:';
02 export const HELPERS_ID = '\0commonjsHelpers';
13
24 export const HELPERS = `
79 }
810
911 export function unwrapExports (x) {
10 return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
12 return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;
1113 }
1214
1315 export function createCommonjsModule(fn, module) {
1416 return module = { exports: {} }, fn(module, module.exports), module.exports;
17 }
18
19 export function getCjsExportFromNamespace (n) {
20 return n && n.default || n;
1521 }`;
16
17 export const PREFIX = '\0commonjs-proxy:';
18 export const EXTERNAL = '\0commonjs-external:';
0 import { statSync } from 'fs';
1 import { dirname, extname, resolve, sep } from 'path';
0 import { extname, resolve } from 'path';
21 import { sync as nodeResolveSync } from 'resolve';
32 import { createFilter } from 'rollup-pluginutils';
4 import { EXTERNAL, PREFIX, HELPERS_ID, HELPERS } from './helpers.js';
5 import defaultResolver from './defaultResolver.js';
6 import { checkFirstpass, checkEsModule, transformCommonjs } from './transform.js';
3 import { EXTERNAL_PREFIX, HELPERS, HELPERS_ID, PROXY_PREFIX } from './helpers.js';
4 import { getIsCjsPromise, setIsCjsPromise } from './is-cjs';
5 import { getResolveId } from './resolve-id';
6 import { checkEsModule, hasCjsKeywords, transformCommonjs } from './transform.js';
77 import { getName } from './utils.js';
88
9 function getCandidatesForExtension ( resolved, extension ) {
10 return [
11 resolved + extension,
12 resolved + `${sep}index${extension}`
13 ];
14 }
15
16 function getCandidates ( resolved, extensions ) {
17 return extensions.reduce(
18 ( paths, extension ) => paths.concat( getCandidatesForExtension ( resolved, extension ) ),
19 [resolved]
20 );
21 }
22
23 // Return the first non-falsy result from an array of
24 // maybe-sync, maybe-promise-returning functions
25 function first ( candidates ) {
26 return function ( ...args ) {
27 return candidates.reduce( ( promise, candidate ) => {
28 return promise.then( result => result != null ?
29 result :
30 Promise.resolve( candidate( ...args ) ) );
31 }, Promise.resolve() );
32 };
33 }
34
35 function startsWith ( str, prefix ) {
36 return str.slice( 0, prefix.length ) === prefix;
37 }
38
39 const isCjsPromises = Object.create(null);
40
41 export default function commonjs ( options = {} ) {
9 export default function commonjs(options = {}) {
4210 const extensions = options.extensions || ['.js'];
43 const filter = createFilter( options.include, options.exclude );
11 const filter = createFilter(options.include, options.exclude);
4412 const ignoreGlobal = options.ignoreGlobal;
4513
4614 const customNamedExports = {};
47 if ( options.namedExports ) {
48 Object.keys( options.namedExports ).forEach( id => {
15 if (options.namedExports) {
16 Object.keys(options.namedExports).forEach(id => {
4917 let resolvedId;
5018
5119 try {
52 resolvedId = nodeResolveSync( id, { basedir: process.cwd() });
53 } catch ( err ) {
54 resolvedId = resolve( id );
20 resolvedId = nodeResolveSync(id, { basedir: process.cwd() });
21 } catch (err) {
22 resolvedId = resolve(id);
5523 }
5624
57 customNamedExports[ resolvedId ] = options.namedExports[ id ];
25 customNamedExports[resolvedId] = options.namedExports[id];
5826 });
5927 }
6028
61 const esModulesWithoutDefaultExport = [];
62
29 const esModulesWithoutDefaultExport = Object.create(null);
30 const esModulesWithDefaultExport = Object.create(null);
6331 const allowDynamicRequire = !!options.ignore; // TODO maybe this should be configurable?
6432
65 const ignoreRequire = typeof options.ignore === 'function' ?
66 options.ignore :
67 Array.isArray( options.ignore ) ? id => ~options.ignore.indexOf( id ) :
68 () => false;
33 const ignoreRequire =
34 typeof options.ignore === 'function'
35 ? options.ignore
36 : Array.isArray(options.ignore)
37 ? id => options.ignore.includes(id)
38 : () => false;
6939
7040 let entryModuleIdsPromise = null;
7141
72 function resolveId ( importee, importer ) {
73 const isProxyModule = startsWith( importee, PREFIX );
74 if ( isProxyModule ) {
75 importee = importee.slice( PREFIX.length );
76 }
77 else if ( startsWith( importee, '\0' ) ) {
78 return importee;
79 }
80
81 if ( importer && startsWith( importer, PREFIX ) ) {
82 importer = importer.slice( PREFIX.length );
83 }
84
85 return resolveUsingOtherResolvers( importee, importer ).then( resolved => {
86 if ( resolved ) return isProxyModule ? PREFIX + resolved : resolved;
87
88 resolved = defaultResolver( importee, importer );
89
90 if ( isProxyModule ) {
91 if ( resolved ) return PREFIX + resolved;
92 return EXTERNAL + importee; // external
93 }
94
95 return resolved;
96 });
97 }
42 const resolveId = getResolveId(extensions);
9843
9944 const sourceMap = options.sourceMap !== false;
100
101 let resolveUsingOtherResolvers;
102
103 function getIsCjsPromise ( id ) {
104 let isCjsPromise = isCjsPromises[id];
105 if (isCjsPromise)
106 return isCjsPromise.promise;
107
108 const promise = new Promise( resolve => {
109 isCjsPromises[id] = isCjsPromise = {
110 resolve: resolve,
111 promise: undefined
112 };
113 });
114 isCjsPromise.promise = promise;
115
116 return promise;
117 }
118 function setIsCjsPromise ( id, promise ) {
119 const isCjsPromise = isCjsPromises[id];
120 if (isCjsPromise) {
121 if (isCjsPromise.resolve) {
122 isCjsPromise.resolve(promise);
123 isCjsPromise.resolve = undefined;
124 }
125 }
126 else {
127 isCjsPromises[id] = { promise: promise, resolve: undefined };
128 }
129 }
13045
13146 return {
13247 name: 'commonjs',
13348
134 options ( options ) {
135 const resolvers = ( options.plugins || [] )
136 .map( plugin => {
137 if ( plugin.resolveId === resolveId ) {
138 // substitute CommonJS resolution logic
139 return ( importee, importer ) => {
140 if ( importee[0] !== '.' || !importer ) return; // not our problem
141
142 const resolved = resolve( dirname( importer ), importee );
143 const candidates = getCandidates( resolved, extensions );
144
145 for ( let i = 0; i < candidates.length; i += 1 ) {
146 try {
147 const stats = statSync( candidates[i] );
148 if ( stats.isFile() ) return candidates[i];
149 } catch ( err ) { /* noop */ }
150 }
151 };
152 }
153
154 return plugin.resolveId;
155 })
156 .filter( Boolean );
157
158 const isExternal = id => options.external ?
159 Array.isArray( options.external ) ? ~options.external.indexOf( id ) :
160 options.external(id) :
161 false;
162
163 resolvers.unshift( id => isExternal( id ) ? false : null );
164
165 resolveUsingOtherResolvers = first( resolvers );
49 options(options) {
50 resolveId.setRollupOptions(options);
16651 const input = options.input || options.entry;
167 const entryModules = Array.isArray(input) ?
168 input :
169 typeof input === 'object' && input !== null ?
170 Object.values(input) :
171 [input];
172 entryModuleIdsPromise = Promise.all(
173 entryModules.map( entry => resolveId( entry ))
174 );
52 const entryModules = Array.isArray(input)
53 ? input
54 : typeof input === 'object' && input !== null
55 ? Object.values(input)
56 : [input];
57 entryModuleIdsPromise = Promise.all(entryModules.map(entry => resolveId(entry)));
17558 },
17659
17760 resolveId,
17861
179 load ( id ) {
180 if ( id === HELPERS_ID ) return HELPERS;
62 load(id) {
63 if (id === HELPERS_ID) return HELPERS;
18164
18265 // generate proxy modules
183 if ( startsWith( id, EXTERNAL ) ) {
184 const actualId = id.slice( EXTERNAL.length );
185 const name = getName( actualId );
66 if (id.startsWith(EXTERNAL_PREFIX)) {
67 const actualId = id.slice(EXTERNAL_PREFIX.length);
68 const name = getName(actualId);
18669
187 return `import ${name} from ${JSON.stringify( actualId )}; export default ${name};`;
70 return `import ${name} from ${JSON.stringify(actualId)}; export default ${name};`;
18871 }
18972
190 if ( startsWith( id, PREFIX ) ) {
191 const actualId = id.slice( PREFIX.length );
192 const name = getName( actualId );
73 if (id.startsWith(PROXY_PREFIX)) {
74 const actualId = id.slice(PROXY_PREFIX.length);
75 const name = getName(actualId);
19376
194 return ( ( extensions.indexOf( extname( id ) ) === -1 ) ? Promise.resolve(false) : getIsCjsPromise( actualId ) )
195 .then( isCjs => {
196 if ( isCjs )
197 return `import { __moduleExports } from ${JSON.stringify( actualId )}; export default __moduleExports;`;
198 else if (esModulesWithoutDefaultExport.indexOf(actualId) !== -1)
199 return `import * as ${name} from ${JSON.stringify( actualId )}; export default ${name};`;
200 else
201 return `import * as ${name} from ${JSON.stringify( actualId )}; export default ( ${name} && ${name}['default'] ) || ${name};`;
202 });
77 return getIsCjsPromise(actualId).then(isCjs => {
78 if (isCjs)
79 return `import { __moduleExports } from ${JSON.stringify(
80 actualId
81 )}; export default __moduleExports;`;
82 else if (esModulesWithoutDefaultExport[actualId])
83 return `import * as ${name} from ${JSON.stringify(actualId)}; export default ${name};`;
84 else if (esModulesWithDefaultExport[actualId]) {
85 return `export {default} from ${JSON.stringify(actualId)};`;
86 }
87 else
88 return `import * as ${name} from ${JSON.stringify(
89 actualId
90 )}; import {getCjsExportFromNamespace} from "${HELPERS_ID}"; export default getCjsExportFromNamespace(${name})`;
91 });
20392 }
20493 },
20594
206 transform ( code, id ) {
207 if ( !filter( id ) ) return null;
208 if ( extensions.indexOf( extname( id ) ) === -1 ) return null;
95 transform(code, id) {
96 if (!filter(id) || extensions.indexOf(extname(id)) === -1) {
97 setIsCjsPromise(id, Promise.resolve(null));
98 return null;
99 }
209100
210 const transformPromise = entryModuleIdsPromise.then( (entryModuleIds) => {
211 const {isEsModule, hasDefaultExport, ast} = checkEsModule( this.parse, code, id );
212 if ( isEsModule ) {
213 if ( !hasDefaultExport )
214 esModulesWithoutDefaultExport.push( id );
215 return;
216 }
101 const transformPromise = entryModuleIdsPromise
102 .then(entryModuleIds => {
103 const { isEsModule, hasDefaultExport, ast } = checkEsModule(this.parse, code, id);
104 if (isEsModule) {
105 (hasDefaultExport ? esModulesWithDefaultExport : esModulesWithoutDefaultExport)[id] = true;
106 return null;
107 }
217108
218 // it is not an ES module but not a commonjs module, too.
219 if ( !checkFirstpass( code, ignoreGlobal ) ) {
220 esModulesWithoutDefaultExport.push( id );
221 return;
222 }
109 // it is not an ES module but it does not have CJS-specific elements.
110 if (!hasCjsKeywords(code, ignoreGlobal)) {
111 esModulesWithoutDefaultExport[id] = true;
112 return null;
113 }
223114
224 const transformed = transformCommonjs( this.parse, code, id, entryModuleIds.indexOf(id) !== -1, ignoreGlobal, ignoreRequire, customNamedExports[ id ], sourceMap, allowDynamicRequire, ast );
225 if ( !transformed ) {
226 esModulesWithoutDefaultExport.push( id );
227 return;
228 }
115 const transformed = transformCommonjs(
116 this.parse,
117 code,
118 id,
119 entryModuleIds.indexOf(id) !== -1,
120 ignoreGlobal,
121 ignoreRequire,
122 customNamedExports[id],
123 sourceMap,
124 allowDynamicRequire,
125 ast
126 );
127 if (!transformed) {
128 esModulesWithoutDefaultExport[id] = true;
129 return null;
130 }
229131
230 return transformed;
231 }).catch(err => {
232 this.error(err, err.loc);
233 });
132 return transformed;
133 })
134 .catch(err => {
135 this.error(err, err.loc);
136 });
234137
235 setIsCjsPromise(id, transformPromise.then( transformed => transformed ? true : false, () => true ));
236
138 setIsCjsPromise(id, transformPromise.then(Boolean, () => false));
237139 return transformPromise;
238140 }
239141 };
0 const isCjsPromises = Object.create(null);
1
2 export function getIsCjsPromise(id) {
3 let isCjsPromise = isCjsPromises[id];
4 if (isCjsPromise) return isCjsPromise.promise;
5
6 const promise = new Promise(resolve => {
7 isCjsPromises[id] = isCjsPromise = {
8 resolve,
9 promise: undefined
10 };
11 });
12 isCjsPromise.promise = promise;
13
14 return promise;
15 }
16
17 export function setIsCjsPromise(id, promise) {
18 const isCjsPromise = isCjsPromises[id];
19 if (isCjsPromise) {
20 if (isCjsPromise.resolve) {
21 isCjsPromise.resolve(promise);
22 isCjsPromise.resolve = undefined;
23 }
24 } else {
25 isCjsPromises[id] = { promise, resolve: undefined };
26 }
27 }
0 import {statSync} from 'fs';
1 import {dirname, resolve, sep} from 'path';
2 import defaultResolver from './default-resolver';
3 import {EXTERNAL_PREFIX, PROXY_PREFIX} from './helpers';
4 import {first} from './utils';
5
6 function getCandidatesForExtension(resolved, extension) {
7 return [resolved + extension, resolved + `${sep}index${extension}`];
8 }
9
10 function getCandidates(resolved, extensions) {
11 return extensions.reduce(
12 (paths, extension) => paths.concat(getCandidatesForExtension(resolved, extension)),
13 [resolved]
14 );
15 }
16
17 export function getResolveId(extensions) {
18 let resolveUsingOtherResolvers;
19
20 function resolveId(importee, importer) {
21 const isProxyModule = importee.startsWith(PROXY_PREFIX);
22 if (isProxyModule) {
23 importee = importee.slice(PROXY_PREFIX.length);
24 } else if (importee.startsWith('\0')) {
25 return importee;
26 }
27
28 if (importer && importer.startsWith(PROXY_PREFIX)) {
29 importer = importer.slice(PROXY_PREFIX.length);
30 }
31
32 return resolveUsingOtherResolvers(importee, importer).then(resolved => {
33 if (resolved) return isProxyModule ? PROXY_PREFIX + resolved : resolved;
34
35 resolved = defaultResolver(importee, importer);
36
37 if (isProxyModule) {
38 if (resolved) return PROXY_PREFIX + resolved;
39 return EXTERNAL_PREFIX + importee; // external
40 }
41
42 return resolved;
43 });
44 }
45
46 resolveId.setRollupOptions = function(options) {
47 const resolvers = (options.plugins || [])
48 .map(plugin => {
49 if (plugin.resolveId === resolveId) {
50 // substitute CommonJS resolution logic
51 return (importee, importer) => {
52 if (importee[0] !== '.' || !importer) return; // not our problem
53
54 const resolved = resolve(dirname(importer), importee);
55 const candidates = getCandidates(resolved, extensions);
56
57 for (let i = 0; i < candidates.length; i += 1) {
58 try {
59 const stats = statSync(candidates[i]);
60 if (stats.isFile()) return candidates[i];
61 } catch (err) {
62 /* noop */
63 }
64 }
65 };
66 }
67
68 return plugin.resolveId;
69 })
70 .filter(Boolean);
71
72 const isExternal = id =>
73 options.external
74 ? Array.isArray(options.external)
75 ? options.external.includes(id)
76 : options.external(id)
77 : false;
78
79 resolvers.unshift(id => (isExternal(id) ? false : null));
80
81 resolveUsingOtherResolvers = first(resolvers);
82 };
83
84 return resolveId;
85 }
00 import { walk } from 'estree-walker';
11 import MagicString from 'magic-string';
22 import { attachScopes, makeLegalIdentifier } from 'rollup-pluginutils';
3 import { extractNames, flatten, isReference, isTruthy, isFalsy } from './ast-utils.js';
4 import { PREFIX, HELPERS_ID } from './helpers.js';
3 import { extractNames, flatten, isFalsy, isReference, isTruthy } from './ast-utils.js';
4 import { HELPERS_ID, PROXY_PREFIX } from './helpers.js';
55 import { getName } from './utils.js';
66
7 const reserved = 'process location abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for from function goto if implements import in instanceof int interface let long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var void volatile while with yield'.split( ' ' );
7 const reserved = 'process location abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for from function goto if implements import in instanceof int interface let long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var void volatile while with yield'.split(
8 ' '
9 );
810 const blacklist = { __esModule: true };
9 reserved.forEach( word => blacklist[ word ] = true );
11 reserved.forEach(word => (blacklist[word] = true));
1012
1113 const exportsPattern = /^(?:module\.)?exports(?:\.([a-zA-Z_$][a-zA-Z_$0-9]*))?$/;
1214
1517 const importExportDeclaration = /^(?:Import|Export(?:Named|Default))Declaration/;
1618 const functionType = /^(?:FunctionDeclaration|FunctionExpression|ArrowFunctionExpression)$/;
1719
18 function deconflict ( scope, globals, identifier ) {
20 function deconflict(scope, globals, identifier) {
1921 let i = 1;
2022 let deconflicted = identifier;
2123
22 while ( scope.contains( deconflicted ) || globals.has( deconflicted ) || deconflicted in blacklist ) deconflicted = `${identifier}_${i++}`;
23 scope.declarations[ deconflicted ] = true;
24 while (scope.contains(deconflicted) || globals.has(deconflicted) || deconflicted in blacklist)
25 deconflicted = `${identifier}_${i++}`;
26 scope.declarations[deconflicted] = true;
2427
2528 return deconflicted;
2629 }
2730
28 function tryParse ( parse, code, id ) {
31 function tryParse(parse, code, id) {
2932 try {
30 return parse( code, { allowReturnOutsideFunction: true });
31 } catch ( err ) {
33 return parse(code, { allowReturnOutsideFunction: true });
34 } catch (err) {
3235 err.message += ` in ${id}`;
3336 throw err;
3437 }
3538 }
3639
37 export function checkFirstpass (code, ignoreGlobal) {
40 export function hasCjsKeywords(code, ignoreGlobal) {
3841 const firstpass = ignoreGlobal ? firstpassNoGlobal : firstpassGlobal;
3942 return firstpass.test(code);
4043 }
4144
42 export function checkEsModule ( parse, code, id ) {
43 const ast = tryParse( parse, code, id );
44
45 // if there are top-level import/export declarations, this is ES not CommonJS
46 let hasDefaultExport = false;
45 export function checkEsModule(parse, code, id) {
46 const ast = tryParse(parse, code, id);
47
4748 let isEsModule = false;
48 for ( const node of ast.body ) {
49 if ( node.type === 'ExportDefaultDeclaration' )
50 hasDefaultExport = true;
51 if ( importExportDeclaration.test( node.type ) )
49 for (const node of ast.body) {
50 if (node.type === 'ExportDefaultDeclaration')
51 return { isEsModule: true, hasDefaultExport: true, ast };
52 if (node.type === 'ExportNamedDeclaration') {
5253 isEsModule = true;
53 }
54
55 return { isEsModule, hasDefaultExport, ast };
54 for (const specifier of node.specifiers) {
55 if (specifier.exported.name === 'default') {
56 return { isEsModule: true, hasDefaultExport: true, ast };
57 }
58 }
59 } else if (importExportDeclaration.test(node.type)) isEsModule = true;
60 }
61
62 return { isEsModule, hasDefaultExport: false, ast };
5663 }
5764
58 export function transformCommonjs ( parse, code, id, isEntry, ignoreGlobal, ignoreRequire, customNamedExports, sourceMap, allowDynamicRequire, astCache ) {
59 const ast = astCache || tryParse( parse, code, id );
60
61 const magicString = new MagicString( code );
65 export function transformCommonjs(
66 parse,
67 code,
68 id,
69 isEntry,
70 ignoreGlobal,
71 ignoreRequire,
72 customNamedExports,
73 sourceMap,
74 allowDynamicRequire,
75 astCache
76 ) {
77 const ast = astCache || tryParse(parse, code, id);
78
79 const magicString = new MagicString(code);
6280
6381 const required = {};
6482 // Because objects have no guaranteed ordering, yet we need it,
6785
6886 let uid = 0;
6987
70 let scope = attachScopes( ast, 'scope' );
88 let scope = attachScopes(ast, 'scope');
7189 const uses = { module: false, exports: false, global: false, require: false };
7290
7391 let lexicalDepth = 0;
7593
7694 const globals = new Set();
7795
78 const HELPERS_NAME = deconflict( scope, globals, 'commonjsHelpers' ); // TODO technically wrong since globals isn't populated yet, but ¯\_(ツ)_/¯
96 const HELPERS_NAME = deconflict(scope, globals, 'commonjsHelpers'); // TODO technically wrong since globals isn't populated yet, but ¯\_(ツ)_/¯
7997
8098 const namedExports = {};
8199
82100 // TODO handle transpiled modules
83 let shouldWrap = /__esModule/.test( code );
84
85 function isRequireStatement ( node ) {
86 if ( !node ) return;
87 if ( node.type !== 'CallExpression' ) return;
88 if ( node.callee.name !== 'require' || scope.contains( 'require' ) ) return;
89 if ( node.arguments.length !== 1 || (node.arguments[0].type !== 'Literal' && (node.arguments[0].type !== 'TemplateLiteral' || node.arguments[0].expressions.length > 0) ) ) return; // TODO handle these weird cases?
90 if ( ignoreRequire( node.arguments[0].value ) ) return;
91
101 let shouldWrap = /__esModule/.test(code);
102
103 function isRequireStatement(node) {
104 if (!node) return;
105 if (node.type !== 'CallExpression') return;
106 if (node.callee.name !== 'require' || scope.contains('require')) return;
107 if (node.arguments.length === 0) return; // Weird case of require() without arguments
92108 return true;
93109 }
94110
95 function getRequired ( node, name ) {
96 const source = node.arguments[0].type === 'Literal' ? node.arguments[0].value : node.arguments[0].quasis[0].value.cooked;
97
98 const existing = required[ source ];
99 if ( existing === undefined ) {
100 sources.push( source );
101
102 if ( !name ) {
111 function hasDynamicArguments(node) {
112 return (
113 node.arguments.length > 1 ||
114 (node.arguments[0].type !== 'Literal' &&
115 (node.arguments[0].type !== 'TemplateLiteral' || node.arguments[0].expressions.length > 0))
116 );
117 }
118
119 function isStaticRequireStatement(node) {
120 if (!isRequireStatement(node)) return;
121 if (hasDynamicArguments(node)) return;
122 if (ignoreRequire(node.arguments[0].value)) return;
123 return true;
124 }
125
126 function getRequireStringArg(node) {
127 return node.arguments[0].type === 'Literal'
128 ? node.arguments[0].value
129 : node.arguments[0].quasis[0].value.cooked;
130 }
131
132 function getRequired(node, name) {
133 const sourceId = getRequireStringArg(node);
134 const existing = required[sourceId];
135 if (existing === undefined) {
136 if (!name) {
103137 do name = `require$$${uid++}`;
104 while ( scope.contains( name ) );
105 }
106
107 required[ source ] = { source, name, importsDefault: false };
138 while (scope.contains(name));
139 }
140
141 sources.push(sourceId);
142 required[sourceId] = { source: sourceId, name, importsDefault: false };
108143 }
109144
110 return required[ source ];
145 return required[sourceId];
111146 }
112147
113148 // do a first pass, see which names are assigned to. This is necessary to prevent
114149 // illegally replacing `var foo = require('foo')` with `import foo from 'foo'`,
115150 // where `foo` is later reassigned. (This happens in the wild. CommonJS, sigh)
116151 const assignedTo = new Set();
117 walk( ast, {
118 enter ( node ) {
119 if ( node.type !== 'AssignmentExpression' ) return;
120 if ( node.left.type === 'MemberExpression' ) return;
121
122 extractNames( node.left ).forEach( name => {
123 assignedTo.add( name );
152 walk(ast, {
153 enter(node) {
154 if (node.type !== 'AssignmentExpression') return;
155 if (node.left.type === 'MemberExpression') return;
156
157 extractNames(node.left).forEach(name => {
158 assignedTo.add(name);
124159 });
125160 }
126161 });
127162
128 walk( ast, {
129 enter ( node, parent ) {
130 if ( sourceMap ) {
131 magicString.addSourcemapLocation( node.start );
132 magicString.addSourcemapLocation( node.end );
163 walk(ast, {
164 enter(node, parent) {
165 if (sourceMap) {
166 magicString.addSourcemapLocation(node.start);
167 magicString.addSourcemapLocation(node.end);
133168 }
134169
135170 // skip dead branches
136 if ( parent && ( parent.type === 'IfStatement' || parent.type === 'ConditionalExpression' ) ) {
137 if ( node === parent.consequent && isFalsy( parent.test ) ) return this.skip();
138 if ( node === parent.alternate && isTruthy( parent.test ) ) return this.skip();
139 }
140
141 if ( node._skip ) return this.skip();
171 if (parent && (parent.type === 'IfStatement' || parent.type === 'ConditionalExpression')) {
172 if (node === parent.consequent && isFalsy(parent.test)) return this.skip();
173 if (node === parent.alternate && isTruthy(parent.test)) return this.skip();
174 }
175
176 if (node._skip) return this.skip();
142177
143178 programDepth += 1;
144179
145 if ( node.scope ) scope = node.scope;
146 if ( functionType.test( node.type ) ) lexicalDepth += 1;
180 if (node.scope) scope = node.scope;
181 if (functionType.test(node.type)) lexicalDepth += 1;
147182
148183 // if toplevel return, we need to wrap it
149 if ( node.type === 'ReturnStatement' && lexicalDepth === 0 ) {
184 if (node.type === 'ReturnStatement' && lexicalDepth === 0) {
150185 shouldWrap = true;
151186 }
152187
153188 // rewrite `this` as `commonjsHelpers.commonjsGlobal`
154 if ( node.type === 'ThisExpression' && lexicalDepth === 0 ) {
189 if (node.type === 'ThisExpression' && lexicalDepth === 0) {
155190 uses.global = true;
156 if ( !ignoreGlobal ) magicString.overwrite( node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, { storeName: true } );
191 if (!ignoreGlobal)
192 magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, {
193 storeName: true
194 });
157195 return;
158196 }
159197
160198 // rewrite `typeof module`, `typeof module.exports` and `typeof exports` (https://github.com/rollup/rollup-plugin-commonjs/issues/151)
161 if ( node.type === 'UnaryExpression' && node.operator === 'typeof' ) {
162 const flattened = flatten( node.argument );
163 if ( !flattened ) return;
164
165 if ( scope.contains( flattened.name ) ) return;
166
167 if ( flattened.keypath === 'module.exports' || flattened.keypath === 'module' || flattened.keypath === 'exports' ) {
168 magicString.overwrite( node.start, node.end, `'object'`, { storeName: false } );
199 if (node.type === 'UnaryExpression' && node.operator === 'typeof') {
200 const flattened = flatten(node.argument);
201 if (!flattened) return;
202
203 if (scope.contains(flattened.name)) return;
204
205 if (
206 flattened.keypath === 'module.exports' ||
207 flattened.keypath === 'module' ||
208 flattened.keypath === 'exports'
209 ) {
210 magicString.overwrite(node.start, node.end, `'object'`, { storeName: false });
169211 }
170212 }
171213
172214 // rewrite `require` (if not already handled) `global` and `define`, and handle free references to
173215 // `module` and `exports` as these mean we need to wrap the module in commonjsHelpers.createCommonjsModule
174 if ( node.type === 'Identifier' ) {
175 if ( isReference( node, parent ) && !scope.contains( node.name ) ) {
176 if ( node.name in uses ) {
177 if ( node.name === 'require' ) {
178 if ( allowDynamicRequire ) return;
179 magicString.overwrite( node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, { storeName: true } );
216 if (node.type === 'Identifier') {
217 if (isReference(node, parent) && !scope.contains(node.name)) {
218 if (node.name in uses) {
219 if (node.name === 'require') {
220 if (allowDynamicRequire) return;
221 magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {
222 storeName: true
223 });
180224 }
181225
182 uses[ node.name ] = true;
183 if ( node.name === 'global' && !ignoreGlobal ) {
184 magicString.overwrite( node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, { storeName: true } );
226 uses[node.name] = true;
227 if (node.name === 'global' && !ignoreGlobal) {
228 magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, {
229 storeName: true
230 });
185231 }
186232
187233 // if module or exports are used outside the context of an assignment
188234 // expression, we need to wrap the module
189 if ( node.name === 'module' || node.name === 'exports' ) {
235 if (node.name === 'module' || node.name === 'exports') {
190236 shouldWrap = true;
191237 }
192238 }
193239
194 if ( node.name === 'define' ) {
195 magicString.overwrite( node.start, node.end, 'undefined', { storeName: true } );
240 if (node.name === 'define') {
241 magicString.overwrite(node.start, node.end, 'undefined', { storeName: true });
196242 }
197243
198 globals.add( node.name );
244 globals.add(node.name);
199245 }
200246
201247 return;
202248 }
203249
204250 // Is this an assignment to exports or module.exports?
205 if ( node.type === 'AssignmentExpression' ) {
206 if ( node.left.type !== 'MemberExpression' ) return;
207
208 const flattened = flatten( node.left );
209 if ( !flattened ) return;
210
211 if ( scope.contains( flattened.name ) ) return;
212
213 const match = exportsPattern.exec( flattened.keypath );
214 if ( !match || flattened.keypath === 'exports' ) return;
215
216 uses[ flattened.name ] = true;
251 if (node.type === 'AssignmentExpression') {
252 if (node.left.type !== 'MemberExpression') return;
253
254 const flattened = flatten(node.left);
255 if (!flattened) return;
256
257 if (scope.contains(flattened.name)) return;
258
259 const match = exportsPattern.exec(flattened.keypath);
260 if (!match || flattened.keypath === 'exports') return;
261
262 uses[flattened.name] = true;
217263
218264 // we're dealing with `module.exports = ...` or `[module.]exports.foo = ...` –
219265 // if this isn't top-level, we'll need to wrap the module
220 if ( programDepth > 3 ) shouldWrap = true;
266 if (programDepth > 3) shouldWrap = true;
221267
222268 node.left._skip = true;
223269
224 if ( flattened.keypath === 'module.exports' && node.right.type === 'ObjectExpression' ) {
225 return node.right.properties.forEach( prop => {
226 if ( prop.computed || prop.key.type !== 'Identifier' ) return;
270 if (flattened.keypath === 'module.exports' && node.right.type === 'ObjectExpression') {
271 return node.right.properties.forEach(prop => {
272 if (prop.computed || prop.key.type !== 'Identifier') return;
227273 const name = prop.key.name;
228 if ( name === makeLegalIdentifier( name ) ) namedExports[ name ] = true;
274 if (name === makeLegalIdentifier(name)) namedExports[name] = true;
229275 });
230276 }
231277
232 if ( match[1] ) namedExports[ match[1] ] = true;
278 if (match[1]) namedExports[match[1]] = true;
233279 return;
234280 }
235281
236282 // if this is `var x = require('x')`, we can do `import x from 'x'`
237 if ( node.type === 'VariableDeclarator' && node.id.type === 'Identifier' && isRequireStatement( node.init ) ) {
283 if (
284 node.type === 'VariableDeclarator' &&
285 node.id.type === 'Identifier' &&
286 isStaticRequireStatement(node.init)
287 ) {
238288 // for now, only do this for top-level requires. maybe fix this in future
239 if ( scope.parent ) return;
289 if (scope.parent) return;
240290
241291 // edge case — CJS allows you to assign to imports. ES doesn't
242 if ( assignedTo.has( node.id.name ) ) return;
243
244 const r = getRequired( node.init, node.id.name );
245 r.importsDefault = true;
246
247 if ( r.name === node.id.name ) {
292 if (assignedTo.has(node.id.name)) return;
293
294 const required = getRequired(node.init, node.id.name);
295 required.importsDefault = true;
296
297 if (required.name === node.id.name) {
248298 node._shouldRemove = true;
249299 }
250300 }
251301
252 if ( !isRequireStatement( node ) ) return;
253
254 const r = getRequired( node );
255
256 if ( parent.type === 'ExpressionStatement' ) {
302 if (!isStaticRequireStatement(node)) return;
303
304 const required = getRequired(node);
305
306 if (parent.type === 'ExpressionStatement') {
257307 // is a bare import, e.g. `require('foo');`
258 magicString.remove( parent.start, parent.end );
308 magicString.remove(parent.start, parent.end);
259309 } else {
260 r.importsDefault = true;
261 magicString.overwrite( node.start, node.end, r.name );
310 required.importsDefault = true;
311 magicString.overwrite(node.start, node.end, required.name);
262312 }
263313
264314 node.callee._skip = true;
265315 },
266316
267 leave ( node ) {
317 leave(node) {
268318 programDepth -= 1;
269 if ( node.scope ) scope = scope.parent;
270 if ( functionType.test( node.type ) ) lexicalDepth -= 1;
271
272 if ( node.type === 'VariableDeclaration' ) {
319 if (node.scope) scope = scope.parent;
320 if (functionType.test(node.type)) lexicalDepth -= 1;
321
322 if (node.type === 'VariableDeclaration') {
273323 let keepDeclaration = false;
274324 let c = node.declarations[0].start;
275325
276 for ( let i = 0; i < node.declarations.length; i += 1 ) {
326 for (let i = 0; i < node.declarations.length; i += 1) {
277327 const declarator = node.declarations[i];
278328
279 if ( declarator._shouldRemove ) {
280 magicString.remove( c, declarator.end );
329 if (declarator._shouldRemove) {
330 magicString.remove(c, declarator.end);
281331 } else {
282 if ( !keepDeclaration ) {
283 magicString.remove( c, declarator.start );
332 if (!keepDeclaration) {
333 magicString.remove(c, declarator.start);
284334 keepDeclaration = true;
285335 }
286336
288338 }
289339 }
290340
291 if ( !keepDeclaration ) {
292 magicString.remove( node.start, node.end );
341 if (!keepDeclaration) {
342 magicString.remove(node.start, node.end);
293343 }
294344 }
295345 }
296346 });
297347
298 if ( !sources.length && !uses.module && !uses.exports && !uses.require && ( ignoreGlobal || !uses.global ) ) {
299 if ( Object.keys( namedExports ).length ) {
300 throw new Error( `Custom named exports were specified for ${id} but it does not appear to be a CommonJS module` );
348 if (
349 !sources.length &&
350 !uses.module &&
351 !uses.exports &&
352 !uses.require &&
353 (ignoreGlobal || !uses.global)
354 ) {
355 if (Object.keys(namedExports).length) {
356 throw new Error(
357 `Custom named exports were specified for ${id} but it does not appear to be a CommonJS module`
358 );
301359 }
302360 return null; // not a CommonJS module
303361 }
304362
305363 const includeHelpers = shouldWrap || uses.global || uses.require;
306 const importBlock = ( includeHelpers ? [ `import * as ${HELPERS_NAME} from '${HELPERS_ID}';` ] : [] ).concat(
307 sources.map( source => {
308 // import the actual module before the proxy, so that we know
309 // what kind of proxy to build
310 return `import '${source}';`;
311 }),
312 sources.map( source => {
313 const { name, importsDefault } = required[ source ];
314 return `import ${importsDefault ? `${name} from ` : ``}'${PREFIX}${source}';`;
315 })
316 ).join( '\n' ) + '\n\n';
364 const importBlock =
365 (includeHelpers ? [`import * as ${HELPERS_NAME} from '${HELPERS_ID}';`] : [])
366 .concat(
367 sources.map(source => {
368 // import the actual module before the proxy, so that we know
369 // what kind of proxy to build
370 return `import '${source}';`;
371 }),
372 sources.map(source => {
373 const { name, importsDefault } = required[source];
374 return `import ${importsDefault ? `${name} from ` : ``}'${PROXY_PREFIX}${source}';`;
375 })
376 )
377 .join('\n') + '\n\n';
317378
318379 const namedExportDeclarations = [];
319380 let wrapperStart = '';
320381 let wrapperEnd = '';
321382
322 const moduleName = deconflict( scope, globals, getName( id ) );
323 if ( !isEntry ) {
383 const moduleName = deconflict(scope, globals, getName(id));
384 if (!isEntry) {
324385 const exportModuleExports = {
325386 str: `export { ${moduleName} as __moduleExports };`,
326387 name: '__moduleExports'
327388 };
328389
329 namedExportDeclarations.push( exportModuleExports );
330 }
331
332 const name = getName( id );
333
334 function addExport ( x ) {
335 const deconflicted = deconflict( scope, globals, name );
336
337 const declaration = deconflicted === name ?
338 `export var ${x} = ${moduleName}.${x};` :
339 `var ${deconflicted} = ${moduleName}.${x};\nexport { ${deconflicted} as ${x} };`;
390 namedExportDeclarations.push(exportModuleExports);
391 }
392
393 const name = getName(id);
394
395 function addExport(x) {
396 const deconflicted = deconflict(scope, globals, name);
397
398 const declaration =
399 deconflicted === name
400 ? `export var ${x} = ${moduleName}.${x};`
401 : `var ${deconflicted} = ${moduleName}.${x};\nexport { ${deconflicted} as ${x} };`;
340402
341403 namedExportDeclarations.push({
342404 str: declaration,
344406 });
345407 }
346408
347 if ( customNamedExports ) customNamedExports.forEach( addExport );
409 if (customNamedExports) customNamedExports.forEach(addExport);
348410
349411 const defaultExportPropertyAssignments = [];
350412 let hasDefaultExport = false;
351413
352 if ( shouldWrap ) {
414 if (shouldWrap) {
353415 const args = `module${uses.exports ? ', exports' : ''}`;
354416
355417 wrapperStart = `var ${moduleName} = ${HELPERS_NAME}.createCommonjsModule(function (${args}) {\n`;
357419 } else {
358420 const names = [];
359421
360 ast.body.forEach( node => {
361 if ( node.type === 'ExpressionStatement' && node.expression.type === 'AssignmentExpression' ) {
422 ast.body.forEach(node => {
423 if (node.type === 'ExpressionStatement' && node.expression.type === 'AssignmentExpression') {
362424 const left = node.expression.left;
363 const flattened = flatten( left );
364
365 if ( !flattened ) return;
366
367 const match = exportsPattern.exec( flattened.keypath );
368 if ( !match ) return;
369
370 if ( flattened.keypath === 'module.exports' ) {
425 const flattened = flatten(left);
426
427 if (!flattened) return;
428
429 const match = exportsPattern.exec(flattened.keypath);
430 if (!match) return;
431
432 if (flattened.keypath === 'module.exports') {
371433 hasDefaultExport = true;
372 magicString.overwrite( left.start, left.end, `var ${moduleName}` );
434 magicString.overwrite(left.start, left.end, `var ${moduleName}`);
373435 } else {
374436 const name = match[1];
375 const deconflicted = deconflict( scope, globals, name );
437 const deconflicted = deconflict(scope, globals, name);
376438
377439 names.push({ name, deconflicted });
378440
379 magicString.overwrite( node.start, left.end, `var ${deconflicted}` );
380
381 const declaration = name === deconflicted ?
382 `export { ${name} };` :
383 `export { ${deconflicted} as ${name} };`;
384
385 if ( name !== 'default' ) {
441 magicString.overwrite(node.start, left.end, `var ${deconflicted}`);
442
443 const declaration =
444 name === deconflicted
445 ? `export { ${name} };`
446 : `export { ${deconflicted} as ${name} };`;
447
448 if (name !== 'default') {
386449 namedExportDeclarations.push({
387450 str: declaration,
388451 name
390453 delete namedExports[name];
391454 }
392455
393 defaultExportPropertyAssignments.push( `${moduleName}.${name} = ${deconflicted};` );
456 defaultExportPropertyAssignments.push(`${moduleName}.${name} = ${deconflicted};`);
394457 }
395458 }
396459 });
397460
398 if ( !hasDefaultExport ) {
399 wrapperEnd = `\n\nvar ${moduleName} = {\n${
400 names.map( ({ name, deconflicted }) => `\t${name}: ${deconflicted}` ).join( ',\n' )
401 }\n};`;
461 if (!hasDefaultExport) {
462 wrapperEnd = `\n\nvar ${moduleName} = {\n${names
463 .map(({ name, deconflicted }) => `\t${name}: ${deconflicted}`)
464 .join(',\n')}\n};`;
402465 }
403466 }
404 Object.keys( namedExports )
405 .filter( key => !blacklist[ key ] )
406 .forEach( addExport );
407
408 const defaultExport = /__esModule/.test( code ) ?
409 `export default ${HELPERS_NAME}.unwrapExports(${moduleName});` :
410 `export default ${moduleName};`;
467 Object.keys(namedExports)
468 .filter(key => !blacklist[key])
469 .forEach(addExport);
470
471 const defaultExport = /__esModule/.test(code)
472 ? `export default ${HELPERS_NAME}.unwrapExports(${moduleName});`
473 : `export default ${moduleName};`;
411474
412475 const named = namedExportDeclarations
413 .filter( x => x.name !== 'default' || !hasDefaultExport )
414 .map( x => x.str );
415
416 const exportBlock = '\n\n' + [ defaultExport ]
417 .concat( named )
418 .concat( hasDefaultExport ? defaultExportPropertyAssignments : [] )
419 .join( '\n' );
420
421 magicString.trim()
422 .prepend( importBlock + wrapperStart )
476 .filter(x => x.name !== 'default' || !hasDefaultExport)
477 .map(x => x.str);
478
479 const exportBlock =
480 '\n\n' +
481 [defaultExport]
482 .concat(named)
483 .concat(hasDefaultExport ? defaultExportPropertyAssignments : [])
484 .join('\n');
485
486 magicString
423487 .trim()
424 .append( wrapperEnd + exportBlock );
488 .prepend(importBlock + wrapperStart)
489 .trim()
490 .append(wrapperEnd + exportBlock);
425491
426492 code = magicString.toString();
427493 const map = sourceMap ? magicString.generateMap() : null;
0 import { basename, extname, dirname, sep } from 'path';
1 import { makeLegalIdentifier } from 'rollup-pluginutils';
0 import {basename, dirname, extname, sep} from 'path';
1 import {makeLegalIdentifier} from 'rollup-pluginutils';
22
3 export function getName ( id ) {
4 const name = makeLegalIdentifier( basename( id, extname( id ) ) );
3 export function getName(id) {
4 const name = makeLegalIdentifier(basename(id, extname(id)));
55 if (name !== 'index') {
66 return name;
77 } else {
8 const segments = dirname( id ).split( sep );
9 return makeLegalIdentifier( segments[segments.length - 1] );
8 const segments = dirname(id).split(sep);
9 return makeLegalIdentifier(segments[segments.length - 1]);
1010 }
1111 }
1212
13 // Return the first non-falsy result from an array of
14 // maybe-sync, maybe-promise-returning functions
15 export function first(candidates) {
16 return function(...args) {
17 return candidates.reduce((promise, candidate) => {
18 return promise.then(
19 result => (result != null ? result : Promise.resolve(candidate(...args)))
20 );
21 }, Promise.resolve());
22 };
23 }
00 module.exports = {
11 options: {
2 ignore: [ 'foo' ]
2 ignore: ['foo']
33 }
4 };
4 };
11 options: {
22 ignore: id => id === 'foo'
33 }
4 };
4 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 exports: exports => {
4 assert.equal( exports, 42 );
4 assert.equal(exports, 42);
55 }
66 };
+0
-10
test/function/dynamic-require-fails/main.js less more
0 let message;
1
2 try {
3 const req = require;
4 req( 'nope' );
5 } catch ( err ) {
6 message = err.message;
7 }
8
9 assert.equal( message, 'Dynamic requires are not currently supported by rollup-plugin-commonjs' );
0 export default 'default export';
0 assert.equal(require('./reexporter'), 'default export');
0 export {default} from './imported';
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 exports: exports => {
4 assert.equal( exports, 'BARBAZ' );
4 assert.equal(exports, 'BARBAZ');
55 }
66 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 options: {
4 external: [ 'foo' ]
4 external: ['foo']
55 },
66 exports: exports => {
7 assert.equal( exports, 'foo' );
7 assert.equal(exports, 'foo');
88 }
99 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
3 exports: function ( exports ) {
4 assert.equal( exports.encoded, encodeURIComponent( 'test string' ) );
3 exports(exports) {
4 assert.equal(exports.encoded, encodeURIComponent('test string'));
55 }
66 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 exports: exports => {
4 assert.equal( exports(), 2 );
4 assert.equal(exports(), 2);
55 }
66 };
0 const path = require( 'path' );
0 const path = require('path');
11
22 module.exports = {
33 pluginOptions: {
44 namedExports: {
5 [ path.resolve( __dirname, 'foo.js' ) ]: [ 'named' ]
5 [path.resolve(__dirname, 'foo.js')]: ['named']
66 }
77 }
88 };
0 module.exports = {
1 description: 'always resolve cjs detection even if an imported file has an unknown extension',
2 options: {
3 plugins: [
4 {
5 resolveId(importee) {
6 if (importee === 'second') {
7 return `${__dirname}/second.x`;
8 }
9 }
10 }
11 ]
12 },
13 pluginOptions: {}
14 };
0 assert.equal(require('second').result, 'second' );
0 export const result = 'second';
0 module.exports = {
1 description: 'always resolve cjs detection even if an imported file is filtered',
2 options: {
3 plugins: [
4 {
5 resolveId(importee) {
6 if (importee === 'second') {
7 return `${__dirname}/second.js`;
8 }
9 }
10 }
11 ]
12 },
13 pluginOptions: {
14 include: ['function/resolve-is-cjs-filtered/main.js']
15 }
16 };
0 assert.equal(require('second').result, 'second' );
0 export const result = 'second';
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 global: global => {
4 assert.equal( global.a, undefined );
5 assert.equal( global.b, 2 );
6 assert.equal( global.c, undefined );
4 assert.equal(global.a, undefined);
5 assert.equal(global.b, 2);
6 assert.equal(global.c, undefined);
77 }
88 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
33 exports: exports => {
4 assert.equal( exports, 'foo' );
4 assert.equal(exports, 'foo');
55 }
66 };
0 const assert = require( 'assert' );
0 const assert = require('assert');
11
22 module.exports = {
3 exports: exports => {
4 assert.equal( exports, 'bar' );
3 exports: exports => {
4 assert.equal(exports, 'bar');
55 }
66 };
0 const acorn = require( 'acorn' );
1 const path = require( 'path' );
2 const fs = require( 'fs' );
3 const assert = require( 'assert' );
4 const relative = require( 'require-relative' );
5 const { SourceMapConsumer } = require( 'source-map' );
6 const { getLocator } = require( 'locate-character' );
7 const { rollup } = require( 'rollup' );
8 const resolve = require( 'rollup-plugin-node-resolve' );
9
10 function commonjs (options) {
0 /* eslint-env mocha */
1 /* eslint-disable no-console */
2
3 const acorn = require('acorn');
4 const path = require('path');
5 const fs = require('fs');
6 const assert = require('assert');
7 const relative = require('require-relative');
8 const { SourceMapConsumer } = require('source-map');
9 const { getLocator } = require('locate-character');
10 const { rollup } = require('rollup');
11 const resolve = require('rollup-plugin-node-resolve');
12
13 function commonjs(options) {
1114 delete require.cache[require.resolve('..')];
1215 return require('..')(options);
1316 }
1417
15 require( 'source-map-support' ).install();
16
17 process.chdir( __dirname );
18
19 function execute ( code, context = {} ) {
18 require('source-map-support').install();
19
20 process.chdir(__dirname);
21
22 function execute(code, context = {}) {
2023 let fn;
21
22 const contextKeys = Object.keys( context );
23
24 const argNames = contextKeys.concat( 'module', 'exports', 'require', 'global', 'assert', code );
24 const contextKeys = Object.keys(context);
25 const argNames = contextKeys.concat('module', 'exports', 'require', 'global', 'assert', code);
2526
2627 try {
27 fn = new Function( ...argNames );
28 } catch ( err ) {
28 fn = new Function(...argNames);
29 } catch (err) {
2930 // syntax error
30 console.log( code );
31 console.log(code);
3132 throw err;
3233 }
3334
3435 const module = { exports: {} };
3536 const global = {};
3637
37 const argValues = contextKeys.map( key => context[ key ] ).concat(
38 module,
39 module.exports,
40 name => relative( name, 'test/x.js' ),
41 global,
42 assert
43 );
44
45 fn( ...argValues );
38 const argValues = contextKeys
39 .map(key => context[key])
40 .concat(module, module.exports, name => relative(name, 'test/x.js'), global, assert);
41
42 fn(...argValues);
4643
4744 return {
4845 code,
5148 };
5249 }
5350
54 async function executeBundle ( bundle, { context, exports } = {} ) {
55 const options = { format: 'cjs' };
56 if ( exports ) options.exports = exports;
57
58 const { code } = await bundle.generate( options );
59 return execute( code, context );
51 const getOutputFromGenerated = generated => (generated.output ? generated.output[0] : generated);
52
53 async function getCodeFromBundle(bundle, customOptions = {}) {
54 const options = Object.assign({ format: 'cjs' }, customOptions);
55 return getOutputFromGenerated(await bundle.generate(options)).code;
6056 }
6157
58 async function executeBundle(bundle, { context, exports } = {}) {
59 const code = await getCodeFromBundle(bundle, exports ? { exports } : {});
60 return execute(code, context);
61 }
62
6263 const transformContext = {
63 parse: ( input, options ) =>
64 acorn.parse( input, Object.assign( {
65 ecmaVersion: 9,
66 sourceType: 'module',
67 }, options ) )
64 parse: (input, options) =>
65 acorn.parse(
66 input,
67 Object.assign(
68 {
69 ecmaVersion: 9,
70 sourceType: 'module'
71 },
72 options
73 )
74 )
6875 };
6976
70 describe( 'rollup-plugin-commonjs', () => {
71 describe( 'form', () => {
72 fs.readdirSync( 'form' ).forEach( dir => {
77 describe('rollup-plugin-commonjs', () => {
78 describe('form', () => {
79 fs.readdirSync('form').forEach(dir => {
7380 let config;
7481
7582 try {
76 config = require( `./form/${dir}/_config.js` );
77 } catch ( err ) {
83 config = require(`./form/${dir}/_config.js`);
84 } catch (err) {
7885 config = {};
7986 }
8087
81 ( config.solo ? it.only : it )( dir, () => {
82 const { transform, options } = commonjs( config.options );
88 (config.solo ? it.only : it)(dir, () => {
89 const { transform, options } = commonjs(config.options);
8390 options({ input: 'main.js' });
8491
85 const input = fs.readFileSync( `form/${dir}/input.js`, 'utf-8' );
86 const expected = fs.readFileSync( `form/${dir}/output.js`, 'utf-8' ).trim();
87
88 return transform.call( transformContext, input, 'input.js' ).then( transformed => {
89 const actual = ( transformed ? transformed.code : input ).trim().replace( /\0/g, '' );
90 assert.equal( actual, expected );
92 const input = fs.readFileSync(`form/${dir}/input.js`, 'utf-8');
93
94 let outputFile = `form/${dir}/output`;
95 if (fs.existsSync(`${outputFile}.${process.platform}.js`)) {
96 outputFile += `.${process.platform}.js`;
97 } else {
98 outputFile += '.js';
99 }
100
101 const expected = fs.readFileSync(outputFile, 'utf-8').trim();
102
103 return transform.call(transformContext, input, 'input.js').then(transformed => {
104 const actual = (transformed ? transformed.code : input).trim().replace(/\0/g, '');
105 assert.equal(actual, expected);
91106 });
92107 });
93108 });
94109 });
95110
96 describe( 'function', () => {
97 fs.readdirSync( 'function' ).forEach( dir => {
111 describe('function', () => {
112 fs.readdirSync('function').forEach(dir => {
98113 let config;
99114
100115 try {
101 config = require( `./function/${dir}/_config.js` );
102 } catch ( err ) {
116 config = require(`./function/${dir}/_config.js`);
117 } catch (err) {
103118 config = {};
104119 }
105120
106 ( config.solo ? it.only : it )( dir, async () => {
107 const options = Object.assign({
108 input: `function/${dir}/main.js`,
109 plugins: [ commonjs( config.pluginOptions ) ]
110 }, config.options || {} );
111
112 const bundle = await rollup( options );
113 const { code } = await bundle.generate({ format: 'cjs' });
114 if ( config.show || config.solo ) {
115 console.error( code );
121 (config.solo ? it.only : it)(dir, async () => {
122 const options = Object.assign(
123 {
124 input: `function/${dir}/main.js`
125 },
126 config.options || {},
127 {
128 plugins: [
129 ...((config.options && config.options.plugins) || []),
130 commonjs(config.pluginOptions)
131 ]
132 }
133 );
134
135 const bundle = await rollup(options);
136 const code = await getCodeFromBundle(bundle);
137 if (config.show || config.solo) {
138 console.error(code);
116139 }
117140
118 const { exports, global } = execute( code, config.context );
119
120 if ( config.exports ) config.exports( exports );
121 if ( config.global ) config.global( global );
141 const { exports, global } = execute(code, config.context);
142
143 if (config.exports) config.exports(exports);
144 if (config.global) config.global(global);
122145 });
123146 });
124147 });
125148
126 describe( 'misc tests', () => {
149 describe('misc tests', () => {
127150 // most of these should be moved over to function...
128 it( 'generates a sourcemap', async () => {
151 it('generates a sourcemap', async () => {
129152 const bundle = await rollup({
130153 input: 'samples/sourcemap/main.js',
131 plugins: [ commonjs({ sourceMap: true }) ]
132 });
133
134 const {code, map} = await bundle.generate({
135 format: 'cjs',
136 sourcemap: true,
137 sourcemapFile: path.resolve( 'bundle.js' )
138 });
139
140 const smc = new SourceMapConsumer( map );
141 const locator = getLocator( code, { offsetLine: 1 });
142
143 let generatedLoc = locator( '42' );
144 let loc = smc.originalPositionFor( generatedLoc ); // 42
145 assert.equal( loc.source, 'samples/sourcemap/foo.js' );
146 assert.equal( loc.line, 1 );
147 assert.equal( loc.column, 15 );
148
149 generatedLoc = locator( 'log' );
150 loc = smc.originalPositionFor( generatedLoc ); // log
151 assert.equal( loc.source, 'samples/sourcemap/main.js' );
152 assert.equal( loc.line, 2 );
153 assert.equal( loc.column, 8 );
154 });
155
156 it( 'supports multiple entry points for experimentalCodeSplitting', async () => {
157 const bundle = await rollup({
158 input: [
159 'samples/multiple-entry-points/b.js',
160 'samples/multiple-entry-points/c.js'
161 ],
154 plugins: [commonjs({ sourceMap: true })]
155 });
156
157 const { code, map } = getOutputFromGenerated(
158 await bundle.generate({
159 format: 'cjs',
160 sourcemap: true,
161 sourcemapFile: path.resolve('bundle.js')
162 })
163 );
164
165 await SourceMapConsumer.with(map, null, async smc => {
166 const locator = getLocator(code, { offsetLine: 1 });
167
168 let generatedLoc = locator('42');
169 let loc = smc.originalPositionFor(generatedLoc); // 42
170 assert.equal(loc.source, 'samples/sourcemap/foo.js');
171 assert.equal(loc.line, 1);
172 assert.equal(loc.column, 15);
173
174 generatedLoc = locator('log');
175 loc = smc.originalPositionFor(generatedLoc); // log
176 assert.equal(loc.source, 'samples/sourcemap/main.js');
177 assert.equal(loc.line, 2);
178 assert.equal(loc.column, 8);
179 });
180 });
181
182 it('supports an array of multiple entry points for experimentalCodeSplitting', async () => {
183 const bundle = await rollup({
184 input: ['samples/multiple-entry-points/b.js', 'samples/multiple-entry-points/c.js'],
162185 experimentalCodeSplitting: true,
163 plugins: [ commonjs() ]
164 });
165
166 const {output} = await bundle.generate({
186 plugins: [commonjs()]
187 });
188
189 const { output } = await bundle.generate({
167190 format: 'cjs',
168191 chunkFileNames: '[name].js'
169192 });
170 //console.log(bundle);
171 assert.equal(Object.keys(output).length, 3);
172 assert.equal('b.js' in output, true);
173 assert.equal('c.js' in output, true);
174 });
175
176 it( 'supports multiple entry points as object for experimentalCodeSplitting', async () => {
193 if (Array.isArray(output)) {
194 assert.equal(output.length, 3);
195 assert.ok(output.find(({ fileName }) => fileName === 'b.js'));
196 assert.ok(output.find(({ fileName }) => fileName === 'c.js'));
197 } else {
198 assert.equal(Object.keys(output).length, 3);
199 assert.equal('b.js' in output, true);
200 assert.equal('c.js' in output, true);
201 }
202 });
203
204 it('supports an object of multiple entry points as object for experimentalCodeSplitting', async () => {
177205 const bundle = await rollup({
178206 input: {
179207 b: require.resolve('./samples/multiple-entry-points/b.js'),
180208 c: require.resolve('./samples/multiple-entry-points/c.js')
181209 },
182210 experimentalCodeSplitting: true,
183 plugins: [ resolve(), commonjs() ]
184 });
185
186 const {output} = await bundle.generate({
211 plugins: [resolve(), commonjs()]
212 });
213
214 const { output } = await bundle.generate({
187215 format: 'cjs',
188216 chunkFileNames: '[name].js'
189217 });
190218
191 assert.equal(Object.keys(output).length, 3);
192 assert.equal('b.js' in output, true);
193 assert.equal('c.js' in output, true);
194 });
195
196 it( 'handles references to `global`', async () => {
219 if (Array.isArray(output)) {
220 assert.equal(output.length, 3);
221 assert.ok(output.find(({ fileName }) => fileName === 'b.js'));
222 assert.ok(output.find(({ fileName }) => fileName === 'c.js'));
223 } else {
224 assert.equal(Object.keys(output).length, 3);
225 assert.equal('b.js' in output, true);
226 assert.equal('c.js' in output, true);
227 }
228 });
229
230 it('handles references to `global`', async () => {
197231 const bundle = await rollup({
198232 input: 'samples/global/main.js',
199 plugins: [ commonjs() ]
200 });
201
202 const generated = await bundle.generate({
203 format: 'cjs'
204 });
233 plugins: [commonjs()]
234 });
235
236 const code = await getCodeFromBundle(bundle);
205237
206238 const mockWindow = {};
207239 const mockGlobal = {};
208240 const mockSelf = {};
209241
210 const fn = new Function ( 'module', 'window', 'global', 'self', generated.code );
211
212 fn( {}, mockWindow, mockGlobal, mockSelf);
213 assert.equal( mockWindow.foo, 'bar', generated.code );
214 assert.equal( mockGlobal.foo, undefined, generated.code );
215 assert.equal( mockSelf.foo, undefined, generated.code );
216
217 fn( {}, undefined, mockGlobal, mockSelf );
218 assert.equal( mockGlobal.foo, 'bar', generated.code );
219 assert.equal( mockSelf.foo, undefined, generated.code );
220
221 fn( {}, undefined, undefined, mockSelf );
222 assert.equal( mockSelf.foo, 'bar', generated.code );
223 });
224
225 it( 'handles multiple references to `global`', async () => {
242 const fn = new Function('module', 'window', 'global', 'self', code);
243
244 fn({}, mockWindow, mockGlobal, mockSelf);
245 assert.equal(mockWindow.foo, 'bar', code);
246 assert.equal(mockGlobal.foo, undefined, code);
247 assert.equal(mockSelf.foo, undefined, code);
248
249 fn({}, undefined, mockGlobal, mockSelf);
250 assert.equal(mockGlobal.foo, 'bar', code);
251 assert.equal(mockSelf.foo, undefined, code);
252
253 fn({}, undefined, undefined, mockSelf);
254 assert.equal(mockSelf.foo, 'bar', code);
255 });
256
257 it('handles multiple references to `global`', async () => {
226258 const bundle = await rollup({
227259 input: 'samples/global-in-if-block/main.js',
228 plugins: [ commonjs() ]
229 });
230
231 const generated = await bundle.generate({
232 format: 'cjs'
233 });
234
235 const fn = new Function ( 'module', 'exports', 'window', generated.code );
236
260 plugins: [commonjs()]
261 });
262
263 const code = await getCodeFromBundle(bundle);
264 const fn = new Function('module', 'exports', 'window', code);
237265 const module = { exports: {} };
238266 const window = {};
239267
240 fn( module, module.exports, window );
241 assert.equal( window.count, 1 );
242
243 fn( module, module.exports, window );
244 assert.equal( window.count, 2 );
245 });
246
247 it( 'handles transpiled CommonJS modules', async () => {
268 fn(module, module.exports, window);
269 assert.equal(window.count, 1);
270
271 fn(module, module.exports, window);
272 assert.equal(window.count, 2);
273 });
274
275 it('handles transpiled CommonJS modules', async () => {
248276 const bundle = await rollup({
249277 input: 'samples/corejs/literal-with-default.js',
250 plugins: [ commonjs() ]
251 });
252
253 const generated = await bundle.generate({
254 format: 'cjs'
255 });
256
278 plugins: [commonjs()]
279 });
280
281 const code = await getCodeFromBundle(bundle);
257282 const module = { exports: {} };
258283
259 const fn = new Function ( 'module', 'exports', generated.code );
260 fn( module, module.exports );
261
262 assert.equal( module.exports, 'foobar', generated.code );
263 });
264
265 it( 'handles successive builds', async () => {
284 const fn = new Function('module', 'exports', code);
285 fn(module, module.exports);
286
287 assert.equal(module.exports, 'foobar', code);
288 });
289
290 it('handles successive builds', async () => {
266291 const plugin = commonjs();
267292 let bundle = await rollup({
268293 input: 'samples/corejs/literal-with-default.js',
269 plugins: [ plugin ]
294 plugins: [plugin]
270295 });
271296 await bundle.generate({
272297 format: 'cjs'
274299
275300 bundle = await rollup({
276301 input: 'samples/corejs/literal-with-default.js',
277 plugins: [ plugin ]
278 });
279 const generated = await bundle.generate({
280 format: 'cjs'
281 });
302 plugins: [plugin]
303 });
304 const code = await getCodeFromBundle(bundle);
282305
283306 const module = { exports: {} };
284307
285 const fn = new Function ( 'module', 'exports', generated.code );
286 fn( module, module.exports );
287
288 assert.equal( module.exports, 'foobar', generated.code );
289 });
290
291 it( 'allows named exports to be added explicitly via config', async () => {
308 const fn = new Function('module', 'exports', code);
309 fn(module, module.exports);
310
311 assert.equal(module.exports, 'foobar', code);
312 });
313
314 it('allows named exports to be added explicitly via config', async () => {
292315 const bundle = await rollup({
293316 input: 'samples/custom-named-exports/main.js',
294317 plugins: [
295318 resolve({ main: true }),
296319 commonjs({
297320 namedExports: {
298 'samples/custom-named-exports/secret-named-exporter.js': [ 'named' ],
299 'external': [ 'message' ]
321 'samples/custom-named-exports/secret-named-exporter.js': ['named'],
322 external: ['message']
300323 }
301324 })
302325 ]
303326 });
304327
305 await executeBundle( bundle );
306 });
307
308 it( 'ignores false positives with namedExports (#36)', async () => {
328 await executeBundle(bundle);
329 });
330
331 it('ignores false positives with namedExports (#36)', async () => {
309332 const bundle = await rollup({
310333 input: 'samples/custom-named-exports-false-positive/main.js',
311334 plugins: [
312335 resolve({ main: true }),
313336 commonjs({
314337 namedExports: {
315 'irrelevant': [ 'lol' ]
338 irrelevant: ['lol']
316339 }
317340 })
318341 ]
319342 });
320343
321 await executeBundle( bundle );
322 });
323
324 it( 'converts a CommonJS module with custom file extension', async () => {
344 await executeBundle(bundle);
345 });
346
347 it('converts a CommonJS module with custom file extension', async () => {
325348 const bundle = await rollup({
326349 input: 'samples/extension/main.coffee',
327 plugins: [ commonjs({ extensions: ['.coffee' ]}) ]
328 });
329
330 assert.equal( (await executeBundle( bundle )).exports, 42 );
331 });
332
333 it( 'identifies named exports from object literals', async () => {
350 plugins: [commonjs({ extensions: ['.coffee'] })]
351 });
352
353 assert.equal((await executeBundle(bundle)).exports, 42);
354 });
355
356 it('identifies named exports from object literals', async () => {
334357 const bundle = await rollup({
335358 input: 'samples/named-exports-from-object-literal/main.js',
336 plugins: [ commonjs() ]
359 plugins: [commonjs()]
337360 });
338361
339362 const { code } = await bundle.generate({
340363 format: 'cjs'
341364 });
342365
343 const fn = new Function ( 'module', 'assert', code );
344 fn( {}, assert );
345 });
346
347 it( 'can ignore references to `global`', async () => {
366 const fn = new Function('module', 'assert', code);
367 fn({}, assert);
368 });
369
370 it('can ignore references to `global`', async () => {
348371 const bundle = await rollup({
349372 input: 'samples/ignore-global/main.js',
350 plugins: [
351 commonjs({ ignoreGlobal: true })
352 ],
373 plugins: [commonjs({ ignoreGlobal: true })],
353374 onwarn: warning => {
354 if ( warning.code === 'THIS_IS_UNDEFINED' ) return;
355 console.warn( warning.message );
375 if (warning.code === 'THIS_IS_UNDEFINED') return;
376 console.warn(warning.message);
356377 }
357378 });
358379
359 const generated = await bundle.generate({
360 format: 'cjs'
361 });
362
363 const { exports, global } = await executeBundle( bundle );
364
365 assert.equal( exports.immediate1, global.setImmediate, generated.code );
366 assert.equal( exports.immediate2, global.setImmediate, generated.code );
367 assert.equal( exports.immediate3, null, generated.code );
368 });
369
370 it( 'can handle parens around right have node while producing default export', async () => {
380 const code = await getCodeFromBundle(bundle);
381 const { exports, global } = await executeBundle(bundle);
382
383 assert.equal(exports.immediate1, global.setImmediate, code);
384 assert.equal(exports.immediate2, global.setImmediate, code);
385 assert.equal(exports.immediate3, null, code);
386 });
387
388 it('can handle parens around right have node while producing default export', async () => {
371389 const bundle = await rollup({
372390 input: 'samples/paren-expression/index.js',
373 plugins: [ commonjs() ]
374 });
375
376 assert.equal( (await executeBundle( bundle )).exports, 42 );
377 });
378
379 describe( 'typeof transforms', () => {
380 it( 'correct-scoping', async () => {
391 plugins: [commonjs()]
392 });
393
394 assert.equal((await executeBundle(bundle)).exports, 42);
395 });
396
397 describe('typeof transforms', () => {
398 it('correct-scoping', async () => {
381399 const bundle = await rollup({
382400 input: 'samples/umd/correct-scoping.js',
383 plugins: [ commonjs() ]
401 plugins: [commonjs()]
384402 });
385403
386 assert.equal( (await executeBundle( bundle )).exports, 'object' );
387 });
388
389 it( 'protobuf', async () => {
404 assert.equal((await executeBundle(bundle)).exports, 'object');
405 });
406
407 it('protobuf', async () => {
390408 const bundle = await rollup({
391409 input: 'samples/umd/protobuf.js',
392 external: [ 'bytebuffer' ],
393 plugins: [ commonjs() ]
410 external: ['bytebuffer'],
411 plugins: [commonjs()]
394412 });
395413
396 assert.equal( (await executeBundle( bundle )).exports, true );
397 });
398
399 it( 'sinon', async () => {
414 assert.equal((await executeBundle(bundle)).exports, true);
415 });
416
417 it('sinon', async () => {
400418 const bundle = await rollup({
401419 input: 'samples/umd/sinon.js',
402 plugins: [ commonjs() ]
420 plugins: [commonjs()]
403421 });
404422
405 const { code } = await bundle.generate({ format: 'es' });
406
407 assert.equal( code.indexOf( 'typeof require' ), -1, code );
423 const { code } = getOutputFromGenerated(await bundle.generate({ format: 'es' }));
424
425 assert.equal(code.indexOf('typeof require'), -1, code);
408426 // assert.notEqual( code.indexOf( 'typeof module' ), -1, code ); // #151 breaks this test
409427 // assert.notEqual( code.indexOf( 'typeof define' ), -1, code ); // #144 breaks this test
410428 });
411429 });
412430
413 it( 'deconflicts helper name', async () => {
431 it('deconflicts helper name', async () => {
414432 const bundle = await rollup({
415433 input: 'samples/deconflict-helpers/main.js',
416 plugins: [ commonjs() ]
417 });
418
419 const { exports } = await executeBundle( bundle );
420 assert.notEqual( exports, 'nope' );
421 });
422
423 it( 'deconflicts reserved keywords', async () => {
434 plugins: [commonjs()]
435 });
436
437 const { exports } = await executeBundle(bundle);
438 assert.notEqual(exports, 'nope');
439 });
440
441 it('deconflicts reserved keywords', async () => {
424442 const bundle = await rollup({
425443 input: 'samples/reserved-as-property/main.js',
426 plugins: [ commonjs() ]
427 });
428
429 const reservedProp = (await executeBundle( bundle, { exports: 'named' })).exports.delete;
444 plugins: [commonjs()]
445 });
446
447 const reservedProp = (await executeBundle(bundle, { exports: 'named' })).exports.delete;
430448 assert.equal(reservedProp, 'foo');
431449 });
432450
433 it( 'does not process the entry file when it has a leading "." (issue #63)', async () => {
451 it('does not process the entry file when it has a leading "." (issue #63)', async () => {
434452 const bundle = await rollup({
435453 input: './function/basic/main.js',
436 plugins: [ commonjs() ]
437 });
438
439 await executeBundle( bundle );
440 });
441
442 it( 'does not reexport named contents', async () => {
454 plugins: [commonjs()]
455 });
456
457 await executeBundle(bundle);
458 });
459
460 it('does not reexport named contents', async () => {
443461 try {
444462 await rollup({
445463 input: 'samples/reexport/main.js',
446 plugins: [ commonjs() ]
464 plugins: [commonjs()]
447465 });
448466 } catch (error) {
449 assert.equal( error.message, `'named' is not exported by samples${path.sep}reexport${path.sep}reexport.js` );
467 assert.equal(
468 error.message,
469 `'named' is not exported by samples${path.sep}reexport${path.sep}reexport.js`
470 );
450471 }
451472 });
452473
453 it( 'respects other plugins', async () => {
474 it('respects other plugins', async () => {
454475 const bundle = await rollup({
455476 input: 'samples/other-transforms/main.js',
456477 plugins: [
457478 {
458 transform ( code, id ) {
459 if ( id[0] === '\0' ) return null;
460 return code.replace( '40', '41' );
479 transform(code, id) {
480 if (id[0] === '\0') return null;
481 return code.replace('40', '41');
461482 }
462483 },
463484 commonjs()
464485 ]
465486 });
466487
467 await executeBundle( bundle );
468 });
469
470 it( 'rewrites top-level defines', async () => {
488 await executeBundle(bundle);
489 });
490
491 it('rewrites top-level defines', async () => {
471492 const bundle = await rollup({
472493 input: 'samples/define-is-undefined/main.js',
473 plugins: [ commonjs() ]
474 });
475
476 function define () {
477 throw new Error( 'nope' );
494 plugins: [commonjs()]
495 });
496
497 function define() {
498 throw new Error('nope');
478499 }
479500
480501 define.amd = true;
481502
482 const { exports } = await executeBundle( bundle, { context: { define } });
483 assert.equal( exports, 42 );
484 });
485
486 it( 'respects options.external', async () => {
503 const { exports } = await executeBundle(bundle, { context: { define } });
504 assert.equal(exports, 42);
505 });
506
507 it('respects options.external', async () => {
487508 const bundle = await rollup({
488509 input: 'samples/external/main.js',
489 plugins: [
490 resolve(),
491 commonjs()
492 ],
510 plugins: [resolve(), commonjs()],
493511 external: ['baz']
494512 });
495513
496 const { code } = await bundle.generate({ format: 'cjs' });
497 assert.equal( code.indexOf( 'hello' ), -1 );
498
499 const { exports } = await executeBundle( bundle );
500 assert.equal( exports, 'HELLO' );
501 });
502
503 it( 'prefers to set name using directory for index files', async () => {
514 const code = await getCodeFromBundle(bundle);
515 assert.equal(code.indexOf('hello'), -1);
516
517 const { exports } = await executeBundle(bundle);
518 assert.equal(exports, 'HELLO');
519 });
520
521 it('prefers to set name using directory for index files', async () => {
504522 const bundle = await rollup({
505523 input: 'samples/rename-index/main.js',
506 plugins: [ commonjs() ]
507 });
508
509 const { code } = await bundle.generate({ format: 'cjs' });
510 assert.equal( code.indexOf( 'var index' ), -1 );
511 assert.notEqual( code.indexOf( 'var invalidVar' ), -1 );
512 assert.notEqual( code.indexOf( 'var validVar' ), -1 );
513 assert.notEqual( code.indexOf( 'var nonIndex' ), -1 );
514 });
515
516 it( 'does not misassign default when consuming rollup output', async () => {
524 plugins: [commonjs()]
525 });
526
527 const code = await getCodeFromBundle(bundle);
528 assert.equal(code.indexOf('var index'), -1);
529 assert.notEqual(code.indexOf('var invalidVar'), -1);
530 assert.notEqual(code.indexOf('var validVar'), -1);
531 assert.notEqual(code.indexOf('var nonIndex'), -1);
532 });
533
534 it('does not misassign default when consuming rollup output', async () => {
517535 // Issue #224
518536 const bundle = await rollup({
519537 input: 'samples/use-own-output/main.js',
520 plugins: [ commonjs() ],
538 plugins: [commonjs()]
521539 });
522540
523541 const window = {};
524 await executeBundle( bundle, { context: { window } } );
525 assert.notEqual( window.b.default, undefined );
526 });
527
528 it( 'does not warn even if the ES module not export "default"', async () => {
542 await executeBundle(bundle, { context: { window } });
543 assert.notEqual(window.b.default, undefined);
544 });
545
546 it('does not warn even if the ES module not export "default"', async () => {
529547 const warns = [];
530548 await rollup({
531549 input: 'samples/es-modules-without-default-export/main.js',
532 plugins: [ commonjs() ],
533 onwarn: (warn) => warns.push( warn )
534 });
535 assert.equal( warns.length, 0 );
550 plugins: [commonjs()],
551 onwarn: warn => warns.push(warn)
552 });
553 assert.equal(warns.length, 0);
536554
537555 await rollup({
538556 input: 'function/bare-import/bar.js',
539 plugins: [ commonjs() ],
540 onwarn: (warn) => warns.push( warn )
541 });
542 assert.equal( warns.length, 0 );
557 plugins: [commonjs()],
558 onwarn: warn => warns.push(warn)
559 });
560 assert.equal(warns.length, 0);
543561
544562 await rollup({
545563 input: 'function/bare-import-comment/main.js',
546 plugins: [ commonjs() ],
547 onwarn: (warn) => warns.push( warn )
548 });
549 assert.equal( warns.length, 0 );
550 });
551
552 it( 'compiles with cache', async () => {
564 plugins: [commonjs()],
565 onwarn: warn => warns.push(warn)
566 });
567 assert.equal(warns.length, 0);
568 });
569
570 it('compiles with cache', async () => {
553571 // specific commonjs require() to ensure same instance is used
554572 const commonjs = require('..');
555573
556574 const bundle = await rollup({
557575 input: 'function/index/main.js',
558 plugins: [ commonjs() ]
576 plugins: [commonjs()]
559577 });
560578
561579 await rollup({
562580 input: 'function/index/main.js',
563 plugins: [ commonjs() ],
581 plugins: [commonjs()],
564582 cache: bundle
565583 });
566584 });
567585
568 it( 'creates an error with a code frame when parsing fails', async () => {
586 it('creates an error with a code frame when parsing fails', async () => {
569587 try {
570588 await rollup({
571589 input: 'samples/invalid-syntax/main.js',
572 plugins: [ commonjs() ]
590 plugins: [commonjs()]
573591 });
574592 } catch (error) {
575 assert.equal( error.frame, '1: export const foo = 2,\n ^' );
593 assert.equal(error.frame, '1: export const foo = 2,\n ^');
576594 }
577595 });
578596
579597 it('ignores virtual modules', async () => {
580598 const bundle = await rollup({
581599 input: 'samples/ignore-virtual-modules/main.js',
582 plugins: [ commonjs(), {
583 load (id) {
584 if (id === '\0virtual') {
585 return 'export default "Virtual export"';
600 plugins: [
601 commonjs(),
602 {
603 load(id) {
604 if (id === '\0virtual') {
605 return 'export default "Virtual export"';
606 }
586607 }
587608 }
588 } ]
589 });
590 assert.equal( (await executeBundle( bundle )).exports, 'Virtual export' );
609 ]
610 });
611 assert.equal((await executeBundle(bundle)).exports, 'Virtual export');
612 });
613
614 it('does not produce warnings when importing .mjs without default export', async () => {
615 const bundle = await rollup({
616 input: 'main.mjs',
617 onwarn(warning) {
618 // The interop should not trigger a "default is not exported" warning
619 throw new Error(`Unexpected warning: ${warning.message}`);
620 },
621 plugins: [
622 commonjs(),
623 {
624 load(id) {
625 if (id === 'main.mjs') {
626 return 'import cjs from "cjs.js"; export default cjs;';
627 }
628 if (id === 'cjs.js') {
629 // CJS libraries expect to receive a CJS file here
630 return 'module.exports = require("fromNodeModules");';
631 }
632 if (id === 'fromNodeModules.mjs') {
633 return 'export const result = "from esm";';
634 }
635 },
636 resolveId(id) {
637 // rollup-plugin-node-resolve usually prefers ESM versions
638 if (id === 'fromNodeModules') {
639 return 'fromNodeModules.mjs';
640 }
641 return id;
642 }
643 }
644 ]
645 });
646 assert.deepEqual((await executeBundle(bundle)).exports, { result: 'from esm' });
647 });
648
649 it('produces optimized code when importing esm with a known default export', async () => {
650 const bundle = await rollup({
651 input: 'main.js',
652 plugins: [
653 commonjs(),
654 {
655 load(id) {
656 if (id === 'main.js') {
657 return 'module.exports = require("esm.js")';
658 }
659 if (id === 'esm.js') {
660 return 'export const ignored = "ignored"; export default "default"';
661 }
662 },
663 resolveId(id) {
664 return id;
665 }
666 }
667 ]
668 });
669 const code = await getCodeFromBundle(bundle);
670 assert.equal(
671 code,
672 `'use strict';
673
674 var require$$0 = "default";
675
676 var main = require$$0;
677
678 module.exports = main;
679 `
680 );
681 });
682
683 it('produces optimized code when importing esm without a default export', async () => {
684 const bundle = await rollup({
685 input: 'main.js',
686 plugins: [
687 commonjs(),
688 {
689 load(id) {
690 if (id === 'main.js') {
691 return 'module.exports = require("esm.js")';
692 }
693 if (id === 'esm.js') {
694 return 'export const value = "value";';
695 }
696 },
697 resolveId(id) {
698 return id;
699 }
700 }
701 ]
702 });
703 const code = await getCodeFromBundle(bundle);
704 assert.equal(
705 code,
706 `'use strict';
707
708 const value = "value";
709
710 var esm = /*#__PURE__*/Object.freeze({
711 value: value
712 });
713
714 var main = esm;
715
716 module.exports = main;
717 `
718 );
591719 });
592720 });
593721 });