diff --git a/README.md b/README.md
index 1c626bd..5e0b95a 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,7 @@

[](https://david-dm.org/smooth-code/loadable-components?path=packages/component)
[](https://david-dm.org/smooth-code/loadable-components?type=dev)
+[![Small size][https://img.badgesize.io/https://unpkg.com/@loadable/component/dist/loadable.min.js?compression=gzip]][https://unpkg.com/@loadable/component/dist/loadable.min.js]
```sh
npm install @loadable/component
@@ -123,12 +124,12 @@ function MyComponent() {
### Suspense
-`@loadable/component` exposes a `loadable.lazy` method that acts similarly as `React.lazy` one.
+`@loadable/component` exposes a `lazy` method that acts similarly as `React.lazy` one.
```js
-import loadable from '@loadable/component'
+import { lazy } from '@loadable/component'
-const OtherComponent = loadable.lazy(() => import('./OtherComponent'))
+const OtherComponent = lazy(() => import('./OtherComponent'))
function MyComponent() {
return (
@@ -141,7 +142,7 @@ function MyComponent() {
}
```
-> Use `loadable.lib.lazy` for libraries.
+> Use `lazy.lib` for libraries.
> Suspense is not yet available for server-side rendering.
@@ -183,18 +184,16 @@ If the other module fails to load (for example, due to network failure), it will
```js
import MyErrorBoundary from '/MyErrorBoundary'
-const OtherComponent = loadable.lazy(() => import('./OtherComponent'))
-const AnotherComponent = loadable.lazy(() => import('./AnotherComponent'))
+const OtherComponent = loadable(() => import('./OtherComponent'))
+const AnotherComponent = loadable(() => import('./AnotherComponent'))
const MyComponent = () => (
- Loading...
}>
-
-
+
)
@@ -267,7 +266,7 @@ function MyComponent() {
}
```
-> `prefetch` and `Prefetch` are also available for components created with `loadable.lazy`, `loadable.lib` and `loadable.lib.lazy`.
+> `prefetch` and `Prefetch` are also available for components created with `lazy`, `loadable.lib` and `lazy.lib`.
> Only component based prefetching is compatible with Server Side Rendering.
@@ -289,7 +288,7 @@ import loadable from '@loadable/component'
const OtherComponent = loadable(() => import('./OtherComponent'))
```
-### loadableState.lazy
+### lazy
Create a loadable component "Suspense" ready.
@@ -298,14 +297,14 @@ Create a loadable component "Suspense" ready.
| `loadFn` | The function call to load the component. |
```js
-import loadable from '@loadable/component'
+import { lazy } from '@loadable/component'
-const OtherComponent = loadable.lazy(() => import('./OtherComponent'))
+const OtherComponent = lazy(() => import('./OtherComponent'))
```
### LoadableComponent
-A component created using `loadable` or `loadable.lazy`.
+A component created using `loadable` or `lazy`.
| Props | Description |
| ---------- | ------------------------------------------------- |
@@ -328,7 +327,7 @@ import loadable from '@loadable/component'
const Moment = loadable.lib(() => import('moment'))
```
-### loadable.lib.lazy
+### lazy.lib
Create a loadable library "Suspense" ready.
@@ -337,14 +336,14 @@ Create a loadable library "Suspense" ready.
| `loadFn` | The function call to load the component. |
```js
-import loadable from '@loadable/component'
+import { lazy } from '@loadable/component'
-const Moment = loadable.lib.lazy(() => import('moment'))
+const Moment = lazy.lib(() => import('moment'))
```
### LoadableLibrary
-A component created using `loadable.lib` or `loadable.lib.lazy`.
+A component created using `loadable.lib` or `lazy.lib`.
| Props | Description |
| ---------- | ---------------------------------------------------- |
diff --git a/examples/suspense/src/index.js b/examples/suspense/src/index.js
index 7ef6057..f7ae863 100644
--- a/examples/suspense/src/index.js
+++ b/examples/suspense/src/index.js
@@ -1,9 +1,9 @@
import React, { Suspense } from 'react'
import { render } from 'react-dom'
-import loadable from '../../../packages/component'
+import { lazy } from '../../../packages/component'
-const Hello = loadable.lazy(() => import('./Hello'))
-const Moment = loadable.lib(() => import('moment'))
+const Hello = lazy(() => import('./Hello'))
+const Moment = lazy.lib(() => import('moment'))
const App = () => (
diff --git a/package.json b/package.json
index 57d26d3..5239c6b 100644
--- a/package.json
+++ b/package.json
@@ -3,9 +3,15 @@
"workspaces": [
"packages/*"
],
+ "bundlesize": [
+ {
+ "path": "./packages/component/dist/loadable.min.js",
+ "maxSize": "3 kB"
+ }
+ ],
"scripts": {
"build": "lerna run build",
- "ci": "yarn build && yarn lint && yarn test --ci",
+ "ci": "yarn build && yarn lint && yarn test --ci && bundlesize",
"dev": "WATCH_MODE=true lerna run build --parallel -- --watch",
"format": "prettier --write \"**/*.{js,json,md}\"",
"lint": "eslint .",
@@ -23,6 +29,7 @@
"babel-eslint": "^10.0.1",
"babel-jest": "^23.6.0",
"babel-loader": "^8.0.4",
+ "bundlesize": "^0.17.0",
"conventional-github-releaser": "^3.1.2",
"cross-env": "^5.2.0",
"eslint": "^5.7.0",
diff --git a/packages/babel-plugin/src/__snapshots__/index.test.js.snap b/packages/babel-plugin/src/__snapshots__/index.test.js.snap
index 44ef846..789df1b 100644
--- a/packages/babel-plugin/src/__snapshots__/index.test.js.snap
+++ b/packages/babel-plugin/src/__snapshots__/index.test.js.snap
@@ -201,6 +201,45 @@ exports[`plugin simple import in a complex promise should work 1`] = `
});"
`;
+exports[`plugin simple import should transform path into "chunk-friendly" name 1`] = `
+"loadable({
+ chunkName() {
+ return \\"foo-bar\\";
+ },
+
+ isReady(props) {
+ if (typeof __webpack_modules__ !== 'undefined') {
+ return !!__webpack_modules__[this.resolve(props)];
+ }
+
+ return false;
+ },
+
+ requireAsync: () => import(
+ /* webpackChunkName: \\"foo-bar\\" */
+ '../foo/bar'),
+
+ requireSync(props) {
+ const id = this.resolve(props);
+
+ if (typeof __webpack_require__ !== 'undefined') {
+ return __webpack_require__(id);
+ }
+
+ return eval('module.require')(id);
+ },
+
+ resolve() {
+ if (require.resolveWeak) {
+ return require.resolveWeak(\\"../foo/bar\\");
+ }
+
+ return require('path').resolve(__dirname, \\"../foo/bar\\");
+ }
+
+});"
+`;
+
exports[`plugin simple import should work with template literal 1`] = `
"loadable({
chunkName() {
diff --git a/packages/babel-plugin/src/index.test.js b/packages/babel-plugin/src/index.test.js
index 5a0c052..fb96d55 100644
--- a/packages/babel-plugin/src/index.test.js
+++ b/packages/babel-plugin/src/index.test.js
@@ -15,8 +15,16 @@ describe('plugin', () => {
describe('simple import', () => {
it('should work with template literal', () => {
const result = testPlugin(`
- loadable(() => import(\`./ModA\`))
- `)
+ loadable(() => import(\`./ModA\`))
+ `)
+
+ expect(result).toMatchSnapshot()
+ })
+
+ it('should transform path into "chunk-friendly" name', () => {
+ const result = testPlugin(`
+ loadable(() => import('../foo/bar'))
+ `)
expect(result).toMatchSnapshot()
})
diff --git a/packages/babel-plugin/src/properties/chunkName.js b/packages/babel-plugin/src/properties/chunkName.js
index 1c9decf..490fd20 100644
--- a/packages/babel-plugin/src/properties/chunkName.js
+++ b/packages/babel-plugin/src/properties/chunkName.js
@@ -29,7 +29,7 @@ function getRawChunkNameFromCommments(importArg) {
}
function moduleToChunk(str) {
- return str ? str.replace(/^[./]+|(\.js$)/g, '') : ''
+ return str ? str.replace(/^[./]+|(\.js$)/g, '').replace(/\//, '-') : ''
}
function replaceQuasiValue(str) {
@@ -65,7 +65,7 @@ export default function chunkNameProperty({ types: t }) {
importArg.node.expressions,
)
}
- return t.stringLiteral(importArg.node.value.replace(/^\.\//, ''))
+ return t.stringLiteral(moduleToChunk(importArg.node.value))
}
function getExistingChunkName(callPath) {
diff --git a/packages/component/src/createLoadable.js b/packages/component/src/createLoadable.js
index 070e148..4486365 100644
--- a/packages/component/src/createLoadable.js
+++ b/packages/component/src/createLoadable.js
@@ -134,6 +134,8 @@ function createLoadable({ resolve = identity, render, onLoad }) {
.catch(error => {
this.setState({ error, loading: false })
})
+
+ return this.promise
}
render() {
@@ -183,9 +185,7 @@ function createLoadable({ resolve = identity, render, onLoad }) {
return loadable(ctor, { ...options, suspense: true })
}
- loadable.lazy = lazy
-
- return loadable
+ return { loadable, lazy }
}
export default createLoadable
diff --git a/packages/component/src/index.js b/packages/component/src/index.js
index 866a8fa..99cccf2 100644
--- a/packages/component/src/index.js
+++ b/packages/component/src/index.js
@@ -1,12 +1,16 @@
/* eslint-disable no-underscore-dangle */
import * as sharedInternals from './sharedInternals'
-import loadable from './loadable'
-import library from './library'
+import * as loadableExports from './loadable'
+import * as libraryExports from './library'
-loadable.lib = library
+const { loadable } = loadableExports
+loadable.lib = libraryExports.loadable
+
+const { lazy } = loadableExports
+lazy.lib = libraryExports.lazy
export default loadable
-export { default as library } from './library'
+export { lazy }
export { default as loadComponents } from './loadComponents'
export const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals
diff --git a/packages/component/src/library.js b/packages/component/src/library.js
index 73e0737..025554f 100644
--- a/packages/component/src/library.js
+++ b/packages/component/src/library.js
@@ -1,7 +1,7 @@
/* eslint-disable no-use-before-define, react/no-multi-comp */
import createLoadable from './createLoadable'
-const library = createLoadable({
+export const { loadable, lazy } = createLoadable({
onLoad(result, props) {
if (result && props.ref) {
if (typeof props.ref === 'function') {
@@ -19,5 +19,3 @@ const library = createLoadable({
return null
},
})
-
-export default library
diff --git a/packages/component/src/loadable.js b/packages/component/src/loadable.js
index e9e86cf..8a407a6 100644
--- a/packages/component/src/loadable.js
+++ b/packages/component/src/loadable.js
@@ -3,11 +3,9 @@ import React from 'react'
import createLoadable from './createLoadable'
import { resolveComponent } from './resolvers'
-const loadable = createLoadable({
+export const { loadable, lazy } = createLoadable({
resolve: resolveComponent,
render({ result: Component, props }) {
return
},
})
-
-export default loadable
diff --git a/yarn.lock b/yarn.lock
index 3949ea3..2844373 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1694,6 +1694,21 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
+axios@0.15.3:
+ version "0.15.3"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053"
+ integrity sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=
+ dependencies:
+ follow-redirects "1.0.0"
+
+axios@^0.17.0:
+ version "0.17.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d"
+ integrity sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=
+ dependencies:
+ follow-redirects "^1.2.5"
+ is-buffer "^1.1.5"
+
axobject-query@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
@@ -1971,6 +1986,14 @@ binary-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
integrity sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=
+bl@^1.0.0:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
+ integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
+ dependencies:
+ readable-stream "^2.3.5"
+ safe-buffer "^5.1.1"
+
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@@ -2037,6 +2060,14 @@ braces@^2.3.0, braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
+brotli-size@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/brotli-size/-/brotli-size-0.0.1.tgz#8c1aeea01cd22f359b048951185bd539ff0c829f"
+ integrity sha1-jBruoBzSLzWbBIlRGFvVOf8Mgp8=
+ dependencies:
+ duplexer "^0.1.1"
+ iltorb "^1.0.9"
+
browser-process-hrtime@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e"
@@ -2065,6 +2096,24 @@ bser@^2.0.0:
dependencies:
node-int64 "^0.4.0"
+buffer-alloc-unsafe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+
+buffer-alloc@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+ dependencies:
+ buffer-alloc-unsafe "^1.1.0"
+ buffer-fill "^1.0.0"
+
+buffer-fill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
+
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -2085,6 +2134,22 @@ builtins@^1.0.3:
resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
+bundlesize@^0.17.0:
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/bundlesize/-/bundlesize-0.17.0.tgz#212ae5731ab0554d2acd509d23e1de18640b2008"
+ integrity sha512-w/jYWQupw/eijqx4LV6PPr1z0HmfXT8SMCg9tls1a3xrr6/PtC22MoFrYJ8j/uPLSANRQ+8WiN/gXuhTY6wogQ==
+ dependencies:
+ axios "^0.17.0"
+ brotli-size "0.0.1"
+ bytes "^3.0.0"
+ ci-env "^1.4.0"
+ commander "^2.11.0"
+ github-build "^1.2.0"
+ glob "^7.1.2"
+ gzip-size "^4.0.0"
+ prettycli "^1.4.3"
+ read-pkg-up "^3.0.0"
+
byline@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
@@ -2095,6 +2160,11 @@ byte-size@^4.0.3:
resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23"
integrity sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==
+bytes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
+
cacache@^11.0.1, cacache@^11.2.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.2.0.tgz#617bdc0b02844af56310e411c0878941d5739965"
@@ -2215,6 +2285,15 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
+chalk@2.1.0, chalk@^2.0.1, chalk@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
+ integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
chalk@^1.1.0, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -2235,15 +2314,6 @@ chalk@^2.0.0:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
-chalk@^2.0.1, chalk@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
- integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==
- dependencies:
- ansi-styles "^3.1.0"
- escape-string-regexp "^1.0.5"
- supports-color "^4.0.0"
-
chalk@^2.3.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
@@ -2283,6 +2353,11 @@ chownr@^1.0.1:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=
+ci-env@^1.4.0:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/ci-env/-/ci-env-1.6.1.tgz#3e3ef4fc528a2825397f912cfa30cde17ec364cc"
+ integrity sha512-sH0odjml3wEHLGLtdkrAaWcJxwbKyMUa60zedA+zoBfldhI2K75utVChP5Km8410R82aAw4/nflWBHG30+WlPQ==
+
ci-info@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
@@ -2819,7 +2894,7 @@ dateformat@^3.0.0:
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.2.tgz#9a4df4bff158ac2f34bc637abdb15471607e1659"
integrity sha1-mk30v/FYrC80vGN6vbFUcWB+Flk=
-debug@3.1.0, debug@^3.1.0:
+debug@3.1.0, debug@=3.1.0, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
@@ -2983,7 +3058,12 @@ detect-indent@^5.0.0:
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
-detect-libc@^1.0.2:
+detect-libc@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-0.2.0.tgz#47fdf567348a17ec25fcbf0b9e446348a76f9fb5"
+ integrity sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=
+
+detect-libc@^1.0.2, detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
@@ -3466,6 +3546,11 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
+expand-template@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd"
+ integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==
+
expect@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98"
@@ -3680,6 +3765,20 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
+follow-redirects@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37"
+ integrity sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=
+ dependencies:
+ debug "^2.2.0"
+
+follow-redirects@^1.2.5:
+ version "1.5.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6"
+ integrity sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==
+ dependencies:
+ debug "=3.1.0"
+
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -3744,6 +3843,11 @@ from2@^2.1.0, from2@^2.1.1:
inherits "^2.0.1"
readable-stream "^2.0.0"
+fs-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+ integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+
fs-extra@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6"
@@ -3951,6 +4055,18 @@ gitconfiglocal@^1.0.0:
dependencies:
ini "^1.3.2"
+github-build@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/github-build/-/github-build-1.2.0.tgz#b0bdb705ae4088218577e863c1a301030211051f"
+ integrity sha512-Iq7NialLYz5yRZDkiX8zaOWd+N3BssJJfUvG7wd8r4MeLCN88SdxEYo2esseMLpLtP4vNXhgamg1eRm7hw59qw==
+ dependencies:
+ axios "0.15.3"
+
+github-from-package@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
+ integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
+
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@@ -4076,6 +4192,14 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+gzip-size@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c"
+ integrity sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=
+ dependencies:
+ duplexer "^0.1.1"
+ pify "^3.0.0"
+
handlebars@^4.0.2, handlebars@^4.0.3:
version "4.0.10"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
@@ -4369,6 +4493,16 @@ ignore@^4.0.6:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+iltorb@^1.0.9:
+ version "1.3.10"
+ resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-1.3.10.tgz#a0d9e4e7d52bf510741442236cbe0cc4230fc9f8"
+ integrity sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==
+ dependencies:
+ detect-libc "^0.2.0"
+ nan "^2.6.2"
+ node-gyp "^3.6.2"
+ prebuild-install "^2.3.0"
+
import-local@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
@@ -5990,7 +6124,7 @@ nan@^2.3.0:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
integrity sha1-5P805slf37WuzAjeZZb0NgWn20U=
-nan@^2.9.2:
+nan@^2.6.2, nan@^2.9.2:
version "2.11.1"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==
@@ -6031,6 +6165,13 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
integrity sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==
+node-abi@^2.2.0:
+ version "2.4.5"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.5.tgz#1fd1fb66641bf3c4dcf55a5490ba10c467ead80c"
+ integrity sha512-aa/UC6Nr3+tqhHGRsAuw/edz7/q9nnetBrKWxj6rpTtm+0X9T1qU7lIEHMS3yN9JwAbRiKUbRRFy1PLz/y3aaA==
+ dependencies:
+ semver "^5.4.1"
+
node-fetch-npm@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7"
@@ -6040,7 +6181,7 @@ node-fetch-npm@^2.0.2:
json-parse-better-errors "^1.0.0"
safe-buffer "^5.1.1"
-node-gyp@^3.8.0:
+node-gyp@^3.6.2, node-gyp@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
@@ -6116,6 +6257,11 @@ node-releases@^1.0.1:
dependencies:
semver "^5.3.0"
+noop-logger@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
+ integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
+
"nopt@2 || 3":
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
@@ -6231,7 +6377,7 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.1.2:
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1, npmlog@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -6379,7 +6525,7 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
-os-homedir@^1.0.0:
+os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
@@ -6734,6 +6880,27 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+prebuild-install@^2.3.0:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.3.tgz#9f65f242782d370296353710e9bc843490c19f69"
+ integrity sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==
+ dependencies:
+ detect-libc "^1.0.3"
+ expand-template "^1.0.2"
+ github-from-package "0.0.0"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ node-abi "^2.2.0"
+ noop-logger "^0.1.1"
+ npmlog "^4.0.1"
+ os-homedir "^1.0.1"
+ pump "^2.0.1"
+ rc "^1.1.6"
+ simple-get "^2.7.0"
+ tar-fs "^1.13.0"
+ tunnel-agent "^0.6.0"
+ which-pm-runs "^1.0.0"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -6762,6 +6929,13 @@ pretty-format@^23.6.0:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
+prettycli@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/prettycli/-/prettycli-1.4.3.tgz#b28ec2aad9de07ae1fd75ef294fb54cbdee07ed5"
+ integrity sha512-KLiwAXXfSWXZqGmZlnKPuGMTFp+0QbcySplL1ft9gfteT/BNsG64Xo8u2Qr9r+qnsIZWBQ66Zs8tg+8s2fmzvw==
+ dependencies:
+ chalk "2.1.0"
+
private@^0.1.6:
version "0.1.7"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
@@ -6840,7 +7014,15 @@ psl@^1.1.24:
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
-pump@^2.0.0:
+pump@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
+ integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pump@^2.0.0, pump@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
@@ -6922,6 +7104,16 @@ randomatic@^1.1.3:
is-number "^3.0.0"
kind-of "^4.0.0"
+rc@^1.1.6, rc@^1.2.7:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
rc@^1.1.7:
version "1.2.1"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
@@ -6932,16 +7124,6 @@ rc@^1.1.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
react-is@^16.3.2:
version "16.3.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.3.2.tgz#f4d3d0e2f5fbb6ac46450641eb2e25bf05d36b22"
@@ -7045,7 +7227,7 @@ read@1, read@~1.0.1:
dependencies:
mute-stream "~0.0.4"
-"readable-stream@1 || 2", readable-stream@^2.0.4:
+"readable-stream@1 || 2", readable-stream@^2.0.4, readable-stream@^2.3.0, readable-stream@^2.3.5:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
@@ -7678,6 +7860,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+simple-concat@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
+ integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
+
+simple-get@^2.7.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d"
+ integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==
+ dependencies:
+ decompress-response "^3.3.0"
+ once "^1.3.1"
+ simple-concat "^1.0.0"
+
sisteransi@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce"
@@ -8121,6 +8317,16 @@ table@^5.0.2:
slice-ansi "1.0.0"
string-width "^2.1.1"
+tar-fs@^1.13.0:
+ version "1.16.3"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509"
+ integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==
+ dependencies:
+ chownr "^1.0.1"
+ mkdirp "^0.5.1"
+ pump "^1.0.0"
+ tar-stream "^1.1.2"
+
tar-pack@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
@@ -8135,6 +8341,19 @@ tar-pack@^3.4.0:
tar "^2.2.1"
uid-number "^0.0.6"
+tar-stream@^1.1.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
+ integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==
+ dependencies:
+ bl "^1.0.0"
+ buffer-alloc "^1.2.0"
+ end-of-stream "^1.0.0"
+ fs-constants "^1.0.0"
+ readable-stream "^2.3.0"
+ to-buffer "^1.1.1"
+ xtend "^4.0.0"
+
tar@^2.0.0, tar@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -8230,6 +8449,11 @@ tmpl@1.0.x:
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
+to-buffer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
+ integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
+
to-fast-properties@^1.0.1, to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
@@ -8611,6 +8835,11 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+which-pm-runs@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
+ integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
+
which@1, which@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
@@ -8727,7 +8956,7 @@ xregexp@4.0.0:
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
-xtend@~4.0.1:
+xtend@^4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=