diff --git a/.circleci/config.yml b/.circleci/config.yml
index 55069b505837..829bfa4fd66b 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -81,6 +81,11 @@ jobs:
command: |
cd examples/angular-cli
yarn build-storybook
+ - run:
+ name: "Build polymer-cli"
+ command: |
+ cd examples/polymer-cli
+ yarn build-storybook
- run:
name: "Run react kitchen-sink (smoke test)"
command: |
@@ -96,6 +101,10 @@ jobs:
command: |
cd examples/angular-cli
yarn storybook --smoke-test
+ - run:
+ name: "Visually test storybook"
+ command: |
+ yarn chromatic
- run:
name: "Run image snapshots"
command: yarn test --image
@@ -207,26 +216,6 @@ jobs:
command: |
yarn test --coverage --runInBand --core
yarn coverage
- storybook:
- <<: *defaults
- steps:
- - checkout
- - restore_cache:
- name: "Restore core dependencies cache"
- keys:
- - core-dependencies-{{ checksum "yarn.lock" }}
- - restore_cache:
- name: "Restore core dist cache"
- keys:
- - core-dist-{{ .Revision }}
- - run:
- name: "Link packages"
- command: |
- yarn install
- - run:
- name: "Visually test storybook"
- command: |
- yarn chromatic
cli:
working_directory: /tmp/storybook
docker:
@@ -292,9 +281,6 @@ workflows:
- unit-test:
requires:
- build
- - storybook:
- requires:
- - build
- cli:
requires:
- build
diff --git a/.eslintignore b/.eslintignore
index d04728ab519f..d68999f17799 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -2,8 +2,6 @@ dist
build
coverage
node_modules
-addons/**/example/**
-app/**/demo/**
docs/public
lib/cli/test
*.bundle.js
@@ -13,3 +11,4 @@ lib/cli/test
!.eslintrc.js
!.eslintrc-markdown.js
!.jest.config.js
+!.storybook
diff --git a/.eslintrc-markdown.js b/.eslintrc-markdown.js
deleted file mode 100644
index c9ddcbe65f4f..000000000000
--- a/.eslintrc-markdown.js
+++ /dev/null
@@ -1,59 +0,0 @@
-const error = 2;
-const warn = 1;
-const ignore = 0;
-
-module.exports = {
- root: true,
- extends: ['eslint-config-airbnb', 'plugin:jest/recommended', 'prettier'],
- plugins: ['prettier', 'jest', 'react'],
- parser: 'babel-eslint',
- parserOptions: {
- sourceType: 'module',
- },
- env: {
- es6: true,
- node: true,
- 'jest/globals': true,
- },
- globals: {
- storiesOf: true,
- addonAPI: true,
- __DEV__: true,
- fetch: true,
- },
- rules: {
- strict: [error, 'never'],
- 'prettier/prettier': [
- warn,
- {
- printWidth: 100,
- tabWidth: 2,
- bracketSpacing: true,
- trailingComma: 'es5',
- singleQuote: true,
- },
- ],
- 'no-console': ignore,
- 'global-require': ignore,
- quotes: [warn, 'single'],
- 'no-unused-vars': ignore,
- 'class-methods-use-this': ignore,
- 'arrow-parens': [warn, 'as-needed'],
- 'space-before-function-paren': ignore,
- 'import/no-unresolved': ignore,
- 'import/extensions': ignore,
- 'import/no-extraneous-dependencies': ignore,
- 'import/prefer-default-export': ignore,
- 'react/prop-types': ignore,
- 'react/jsx-wrap-multilines': ignore,
- 'react/jsx-uses-react': error,
- 'react/jsx-uses-vars': error,
- 'react/react-in-jsx-scope': ignore,
- 'react/jsx-filename-extension': ignore,
- 'jsx-a11y/accessible-emoji': ignore,
- 'jsx-a11y/href-no-hash': ignore,
- 'jsx-a11y/label-has-for': ignore,
- 'jsx-a11y/anchor-is-valid': ['warn', { aspects: ['invalidHref'] }],
- 'react/no-unescaped-entities': ignore,
- },
-};
diff --git a/.eslintrc.js b/.eslintrc.js
index ec55d7a46309..fe1935d02fe1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -4,7 +4,13 @@ const ignore = 0;
module.exports = {
root: true,
- extends: ['eslint-config-airbnb', 'plugin:jest/recommended', 'prettier'],
+ extends: [
+ 'eslint-config-airbnb',
+ 'plugin:jest/recommended',
+ 'plugin:import/react-native',
+ 'prettier',
+ 'prettier/react',
+ ],
plugins: ['prettier', 'jest', 'react', 'json'],
parser: 'babel-eslint',
parserOptions: {
@@ -18,9 +24,13 @@ module.exports = {
settings: {
'import/core-modules': ['enzyme'],
'import/ignore': ['node_modules\\/(?!@storybook)'],
+ 'import/resolver': {
+ node: {
+ extensions: ['.js', '.ts'],
+ },
+ },
},
rules: {
- strict: [error, 'never'],
'prettier/prettier': [
warn,
{
@@ -32,16 +42,13 @@ module.exports = {
},
],
'no-debugger': process.env.NODE_ENV === 'production' ? error : ignore,
- quotes: [warn, 'single', { avoidEscape: true }],
'class-methods-use-this': ignore,
- 'arrow-parens': [warn, 'as-needed'],
- 'space-before-function-paren': ignore,
- 'import/no-unresolved': error,
'import/extensions': [
error,
+ 'always',
{
js: 'never',
- json: 'always',
+ ts: 'never',
},
],
'import/no-extraneous-dependencies': [
@@ -56,6 +63,7 @@ module.exports = {
'**/scripts/*.js',
'**/stories/**/*.js',
'**/__tests__/**/*.js',
+ '**/.storybook/**/*.js',
],
peerDependencies: true,
},
@@ -64,24 +72,41 @@ module.exports = {
'import/default': error,
'import/named': error,
'import/namespace': error,
- 'react/jsx-wrap-multilines': ignore,
- 'react/jsx-indent': ignore,
- 'react/jsx-indent-props': ignore,
- 'react/jsx-closing-bracket-location': ignore,
- 'react/jsx-uses-react': error,
- 'react/jsx-uses-vars': error,
- 'react/react-in-jsx-scope': error,
'react/jsx-filename-extension': [
warn,
{
extensions: ['.js', '.jsx'],
},
],
- 'jsx-a11y/accessible-emoji': ignore,
- 'jsx-a11y/href-no-hash': ignore,
- 'jsx-a11y/label-has-for': ignore,
- 'jsx-a11y/click-events-have-key-events': error,
- 'jsx-a11y/anchor-is-valid': [warn, { aspects: ['invalidHref'] }],
'react/no-unescaped-entities': ignore,
+ 'jsx-a11y/label-has-for': [
+ error,
+ {
+ required: {
+ some: ['nesting', 'id'],
+ },
+ },
+ ],
+ 'jsx-a11y/anchor-is-valid': [
+ error,
+ {
+ components: ['RoutedLink', 'MenuLink', 'LinkTo', 'Link'],
+ specialLink: ['overrideParams', 'kind', 'story', 'to'],
+ },
+ ],
},
+ overrides: [
+ {
+ files: ['**/react-native*/**', '**/REACT_NATIVE*/**', '**/crna*/**'],
+ rules: {
+ 'jsx-a11y/accessible-emoji': ignore,
+ },
+ },
+ {
+ files: '**/.storybook/config.js',
+ rules: {
+ 'global-require': ignore,
+ },
+ },
+ ],
};
diff --git a/.remarkrc.js b/.remarkrc.js
index 9a2b8e63e7e5..2c78f5c67277 100644
--- a/.remarkrc.js
+++ b/.remarkrc.js
@@ -1,18 +1,3 @@
module.exports = {
- plugins: [
- 'remark-preset-lint-recommended',
- ['remark-lint-list-item-indent', false],
- [
- 'remark-lint-code',
- {
- js: {
- module: 'node_modules/remark-lint-code-eslint',
- options: {
- fix: true,
- configFile: '.eslintrc-markdown.js',
- },
- },
- },
- ],
- ],
+ plugins: ['remark-preset-lint-recommended', ['remark-lint-list-item-indent', false]],
};
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39beccab8ff8..89250963b4e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,262 @@
+# 3.4.0-alpha.8
+
+2018-February-11
+
+#### Bug Fixes
+
+- React-Native: Fix by moving managerPath export to `server.js` [#2947](https://github.com/storybooks/storybook/pull/2947)
+- Addon-Info: Add type check to PropType on OneOf [#2653](https://github.com/storybooks/storybook/pull/2653)
+- Vue: Support .vue extension resolving [#2896](https://github.com/storybooks/storybook/pull/2896)
+
+#### Documentation
+
+- Update writing addons documentation [#2951](https://github.com/storybooks/storybook/pull/2951)
+- Update docs on LinkTo in addon-links [#2926](https://github.com/storybooks/storybook/pull/2926)
+
+#### Maintenance
+
+- Fix "dev" script to be cross-platform [#2922](https://github.com/storybooks/storybook/pull/2922)
+
+#### Dependency Upgrades
+
+
+
+98 Updates
+
+
+- Upgraded `jest-cli` in `/` from "22.2.1" to "22.2.2" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `jest-config` in `/` from "22.2.1" to "22.2.2" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `jest-environment-jsdom` in `/` from "22.2.0" to "22.2.2" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `jest-jasmine2` in `/` from "22.2.1" to "22.2.2" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `lib/core` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `lib/core` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `app/angular` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `app/angular` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `app/polymer` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `app/polymer` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `app/react-native` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `app/react-native` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `app/react` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `app/react` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `autoprefixer` in `app/vue` from "7.2.5" to "7.2.6" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `app/vue` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `examples/polymer-cli` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `@types/node` in `examples/angular-cli` from "6.0.99" to "6.0.100" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `webpack` in `examples/vue-kitchen-sink` from "3.10.0" to "3.11.0" [#2957](https://github.com/storybooks/storybook/pull/2957)
+- Upgraded `eslint-plugin-jest` in `/` from "21.7.0" to "21.8.0" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `react-datetime` in `addons/knobs` from "2.12.0" to "2.13.0" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `react-modal` in `lib/ui` from "3.1.12" to "3.1.13" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `react-modal` in `app/angular` from "3.1.12" to "3.1.13" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `react-modal` in `app/polymer` from "3.1.12" to "3.1.13" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `babel-jest` in `examples/cra-kitchen-sink` from "22.2.0" to "22.2.2" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `jest` in `examples/cra-kitchen-sink` from "22.2.1" to "22.2.2" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Upgraded `react-scripts` in `examples/cra-kitchen-sink` from "1.1.0" to "1.1.1" [#2952](https://github.com/storybooks/storybook/pull/2952)
+- Update gatsby in /docs from 1.9.184 to 1.9.187 [#2950](https://github.com/storybooks/storybook/pull/2950)
+- Upgraded `copy-webpack-plugin` in `app/polymer` from "4.3.1" to "4.4.0" [#2945](https://github.com/storybooks/storybook/pull/2945)
+- Upgraded `copy-webpack-plugin` in `examples/polymer-cli` from "4.3.1" to "4.4.0" [#2945](https://github.com/storybooks/storybook/pull/2945)
+- Upgraded `@angular/cli` in `examples/angular-cli` from "1.6.7" to "1.6.8" [#2945](https://github.com/storybooks/storybook/pull/2945)
+- Upgraded `@types/node` in `examples/angular-cli` from "6.0.97" to "6.0.99" [#2945](https://github.com/storybooks/storybook/pull/2945)
+- Upgraded `jasmine-core` in `examples/angular-cli` from "2.99.0" to "2.99.1" [#2945](https://github.com/storybooks/storybook/pull/2945)
+- Upgraded `gatsby-remark-images` in `/docs` from "1.5.42" to "1.5.43" [#2944](https://github.com/storybooks/storybook/pull/2944)
+- Upgraded `gatsby-transformer-remark` in `/docs` from "1.7.30" to "1.7.31" [#2944](https://github.com/storybooks/storybook/pull/2944)
+- Upgraded `gatsby-remark-images` in `/docs` from "1.5.41" to "1.5.42" [#2939](https://github.com/storybooks/storybook/pull/2939)
+- Upgraded `gatsby` in `/docs` from "1.9.183" to "1.9.184" [#2939](https://github.com/storybooks/storybook/pull/2939)
+- Upgraded `@angular/common` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/compiler` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/core` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/forms` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/platform-browser` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/platform-browser-dynamic` in `/` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `commander` in `/` from "2.14.0" to "2.14.1" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest` in `/` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest-cli` in `/` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest-config` in `/` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest-environment-jsdom` in `/` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest-jasmine2` in `/` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `graphql` in `addons/graphql` from "0.12.3" to "0.13.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `commander` in `lib/core` from "2.14.0" to "2.14.1" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `commander` in `app/react-native` from "2.14.0" to "2.14.1" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `commander` in `lib/cli` from "2.14.0" to "2.14.1" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/animations` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/common` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/compiler` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/core` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/forms` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/http` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/platform-browser` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/platform-browser-dynamic` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/router` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/compiler-cli` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `@angular/language-service` in `examples/angular-cli` from "5.2.3" to "5.2.4" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `babel-jest` in `examples/cra-kitchen-sink` from "22.1.0" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `jest` in `examples/cra-kitchen-sink` from "22.1.4" to "22.2.0" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Upgraded `eventemitter3` in `examples/official-storybook` from "3.0.0" to "3.0.1" [#2938](https://github.com/storybooks/storybook/pull/2938)
+- Update @types/node in examples/angular-cli from 6.0.96 to 6.0.97 [#2932](https://github.com/storybooks/storybook/pull/2932)
+- Update gatsby in /docs from 1.9.181 to 1.9.182 [#2929](https://github.com/storybooks/storybook/pull/2929)
+- Update jasmine-core in examples/angular-cli from 2.9.1 to 2.99.0 [#2930](https://github.com/storybooks/storybook/pull/2930)
+- Upgraded `commander` in `/` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `make-error` in `addons/actions` from "1.3.2" to "1.3.3" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `app/angular` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `app/polymer` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `app/react-native` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `react-native` in `app/react-native` from "0.52.2" to "0.53.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `app/react` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `app/vue` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `commander` in `lib/cli` from "2.13.0" to "2.14.0" [#2928](https://github.com/storybooks/storybook/pull/2928)
+- Upgraded `jest-enzyme` in `/` from "4.1.1" to "4.2.0" [#2919](https://github.com/storybooks/storybook/pull/2919)
+- Upgraded `react-modal` in `lib/ui` from "3.1.11" to "3.1.12" [#2919](https://github.com/storybooks/storybook/pull/2919)
+- Upgraded `react-modal` in `app/angular` from "3.1.11" to "3.1.12" [#2919](https://github.com/storybooks/storybook/pull/2919)
+- Upgraded `react-modal` in `app/polymer` from "3.1.11" to "3.1.12" [#2919](https://github.com/storybooks/storybook/pull/2919)
+- Upgraded `gatsby-remark-copy-linked-files` in `/docs` from "1.5.25" to "1.5.26" [#2927](https://github.com/storybooks/storybook/pull/2927)
+- Upgraded `gatsby-source-filesystem` in `/docs` from "1.5.16" to "1.5.18" [#2927](https://github.com/storybooks/storybook/pull/2927)
+- Upgraded `gatsby` in `/docs` from "1.9.178" to "1.9.179" [#2927](https://github.com/storybooks/storybook/pull/2927)
+- Update lodash in /docs from 4.17.4 to 4.17.5 [#2914](https://github.com/storybooks/storybook/pull/2914)
+- Update lodash in / from 4.17.4 to 4.17.5 [#2915](https://github.com/storybooks/storybook/pull/2915)
+- Upgraded `gatsby-link` in `/docs` from "1.6.35" to "1.6.36" [#2908](https://github.com/storybooks/storybook/pull/2908)
+- Upgraded `gatsby` in `/docs` from "1.9.175" to "1.9.177" [#2908](https://github.com/storybooks/storybook/pull/2908)
+- Upgraded `@storybook/addon-actions` in `/docs` from "3.3.11" to "3.3.12" [#2911](https://github.com/storybooks/storybook/pull/2911)
+- Upgraded `@storybook/addon-links` in `/docs` from "3.3.11" to "3.3.12" [#2911](https://github.com/storybooks/storybook/pull/2911)
+- Upgraded `@storybook/addons` in `/docs` from "3.3.11" to "3.3.12" [#2911](https://github.com/storybooks/storybook/pull/2911)
+- Upgraded `@storybook/react` in `/docs` from "3.3.11" to "3.3.12" [#2911](https://github.com/storybooks/storybook/pull/2911)
+- Upgraded `gatsby` in `/docs` from "1.9.175" to "1.9.178" [#2911](https://github.com/storybooks/storybook/pull/2911)
+- Upgraded `eslint` in `/` from "4.16.0" to "4.17.0" [#2912](https://github.com/storybooks/storybook/pull/2912)
+- Upgraded `ts-jest` in `/` from "22.0.1" to "22.0.3" [#2912](https://github.com/storybooks/storybook/pull/2912)
+- Upgraded `@polymer/polymer` in `examples/polymer-cli` from "2.4.0" to "2.5.0" [#2912](https://github.com/storybooks/storybook/pull/2912)
+
+
+
+# 3.3.13
+
+2018-February-11
+
+#### Bug Fixes
+
+- Angular: add rule for .md to webpack.config.prod.js [#2924](https://github.com/storybooks/storybook/pull/2924)
+- Check for correct props in Flow or prop-types [#2902](https://github.com/storybooks/storybook/pull/2902)
+
+# 3.4.0-alpha.7
+
+2018-February-03
+
+#### Features
+
+- Storyshots: env.NODE_PATH support [#2873](https://github.com/storybooks/storybook/pull/2873)
+- Knobs: Select knob key/value ordering [#1745](https://github.com/storybooks/storybook/pull/1745)
+- Angular: Add option to pass custom styles for ng components [#2856](https://github.com/storybooks/storybook/pull/2856)
+- Core: Add watch mode for build-storybook [#2866](https://github.com/storybooks/storybook/pull/2866)
+- Core: Add `__dirname` support [#2791](https://github.com/storybooks/storybook/pull/2791)
+
+#### Bug Fixes
+
+- UI: remove zero on story loading [#2857](https://github.com/storybooks/storybook/pull/2857)
+
+#### Documentation
+
+- StoryShots: Document ref mocking [#2869](https://github.com/storybooks/storybook/pull/2869)
+
+#### Maintenance
+
+- Typescript distribution [#2846](https://github.com/storybooks/storybook/pull/2846)
+- Use UTC timezone in formatting too for knobs test [#2861](https://github.com/storybooks/storybook/pull/2861)
+
+#### Dependency Upgrades
+
+
+
+76 Upgrades
+
+
+- Upgraded `eslint-plugin-prettier` in `/` from "2.5.0" to "2.6.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `nodemon` in `/` from "1.14.11" to "1.14.12" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `lib/core` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `app/angular` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `nodemon` in `app/angular` from "1.14.11" to "1.14.12" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `app/polymer` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `nodemon` in `app/polymer` from "1.14.11" to "1.14.12" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `app/react-native` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `app/react` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `nodemon` in `app/react` from "1.14.11" to "1.14.12" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `postcss-loader` in `app/vue` from "2.0.10" to "2.1.0" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `nodemon` in `app/vue` from "1.14.11" to "1.14.12" [#2910](https://github.com/storybooks/storybook/pull/2910)
+- Upgraded `@angular/common` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/compiler` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/core` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/forms` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/platform-browser` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/platform-browser-dynamic` in `/` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `tslint-config-prettier` in `/` from "1.6.0" to "1.7.0" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `react-split-pane` in `lib/ui` from "0.1.74" to "0.1.75" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/animations` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/common` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/compiler` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/core` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/forms` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/http` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/platform-browser` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/platform-browser-dynamic` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/router` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/cli` in `examples/angular-cli` from "1.6.6" to "1.6.7" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/compiler-cli` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `@angular/language-service` in `examples/angular-cli` from "5.2.2" to "5.2.3" [#2901](https://github.com/storybooks/storybook/pull/2901)
+- Upgraded `babel-plugin-macros` in `/` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-plugin-macros` in `app/angular` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `typescript` in `app/angular` from "2.6.2" to "2.7.1" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-plugin-macros` in `app/polymer` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-preset-minify` in `app/polymer` from "0.2.0" to "0.3.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-plugin-macros` in `app/react-native` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-preset-minify` in `app/react-native` from "0.2.0" to "0.3.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-plugin-macros` in `app/react` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-preset-minify` in `app/react` from "0.2.0" to "0.3.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-plugin-macros` in `app/vue` from "2.0.0" to "2.1.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `babel-preset-minify` in `app/vue` from "0.2.0" to "0.3.0" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `vue-style-loader` in `app/vue` from "3.1.1" to "3.1.2" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `vue-loader` in `app/vue` from "13.7.0" to "13.7.1" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `typescript` in `examples/angular-cli` from "2.6.2" to "2.7.1" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `vue-loader` in `examples/vue-kitchen-sink` from "13.7.0" to "13.7.1" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `vue-style-loader` in `examples/vue-kitchen-sink` from "3.1.1" to "3.1.2" [#2891](https://github.com/storybooks/storybook/pull/2891)
+- Upgraded `gatsby-source-filesystem` in `/docs` from "1.5.15" to "1.5.16" [#2875](https://github.com/storybooks/storybook/pull/2875)
+- Upgraded `gatsby` in `/docs` from "1.9.172" to "1.9.174" [#2875](https://github.com/storybooks/storybook/pull/2875)
+- Upgraded `@types/lodash` in `/` from "4.14.97" to "4.14.98" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `jest-enzyme` in `/` from "4.0.2" to "4.1.0" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `uglifyjs-webpack-plugin` in `app/angular` from "1.1.6" to "1.1.7" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `uglifyjs-webpack-plugin` in `app/react-native` from "1.1.6" to "1.1.7" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `uglifyjs-webpack-plugin` in `app/react` from "1.1.6" to "1.1.7" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `uglifyjs-webpack-plugin` in `app/vue` from "1.1.6" to "1.1.7" [#2876](https://github.com/storybooks/storybook/pull/2876)
+- Upgraded `gatsby-link` in `/docs` from "1.6.34" to "1.6.35" [#2858](https://github.com/storybooks/storybook/pull/2858)
+- Upgraded `gatsby-transformer-remark` in `/docs` from "1.7.29" to "1.7.30" [#2858](https://github.com/storybooks/storybook/pull/2858)
+- Upgraded `gatsby` in `/docs` from "1.9.169" to "1.9.171" [#2858](https://github.com/storybooks/storybook/pull/2858)
+- Make dependencies in polymer & angular up to date with other apps [#2852](https://github.com/storybooks/storybook/pull/2852)
+- Upgraded `@types/lodash` in `/` from "4.14.96" to "4.14.97" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `react-datetime` in `addons/knobs` from "2.11.1" to "2.12.0" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `addons/knobs` from "0.19.1" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `lib/core` from "0.19.1" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `app/angular` from "0.18.2" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `app/polymer` from "0.18.2" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `app/react-native` from "0.19.1" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `app/react` from "0.19.1" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `style-loader` in `app/vue` from "0.19.1" to "0.20.1" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `@polymer/polymer` in `examples/polymer-cli` from "2.3.1" to "2.4.0" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `@types/jasmine` in `examples/angular-cli` from "2.8.5" to "2.8.6" [#2850](https://github.com/storybooks/storybook/pull/2850)
+- Upgraded `@storybook/addon-actions` in `/docs` from "3.3.10" to "3.3.11" [#2849](https://github.com/storybooks/storybook/pull/2849)
+- Upgraded `@storybook/addon-links` in `/docs` from "3.3.10" to "3.3.11" [#2849](https://github.com/storybooks/storybook/pull/2849)
+- Upgraded `@storybook/addons` in `/docs` from "3.3.10" to "3.3.11" [#2849](https://github.com/storybooks/storybook/pull/2849)
+- Upgraded `@storybook/react` in `/docs` from "3.3.10" to "3.3.11" [#2849](https://github.com/storybooks/storybook/pull/2849)
+- Update url-loader from 0.5.8 to 0.6.2 in app/angular [#2847](https://github.com/storybooks/storybook/pull/2847)
+
+
+
+# 3.3.12
+
+2018-February-02
+
+#### Bug Fixes
+
+- Fix browser navigation again [#2870](https://github.com/storybooks/storybook/pull/2870)
+
+#### Dependency Upgrades
+
+- Update url-loader from 0.5.8 to 0.6.2 in app/angular [#2847](https://github.com/storybooks/storybook/pull/2847)
+
# 3.4.0-alpha.6
2018-January-27
@@ -19,7 +278,7 @@
#### Maintenance
-- ADD autolabeler.yml for https://github.com/probot/autolabeler [#2809](https://github.com/storybooks/storybook/pull/2809)
+- ADD autolabeler.yml for [#2809](https://github.com/storybooks/storybook/pull/2809)
- Fix css warning in angular-cli example [#2789](https://github.com/storybooks/storybook/pull/2789)
- Move more things to core [#2788](https://github.com/storybooks/storybook/pull/2788)
@@ -692,7 +951,7 @@ In addition to the changes listed here, also contains fixes from [3.3.5](#335) a
#### Bug Fixes
-- [app:angular] Fixed dependency injection for components [#2566](https://github.com/storybooks/storybook/pull/2566)
+- `app:angular` Fixed dependency injection for components [#2566](https://github.com/storybooks/storybook/pull/2566)
- Revert "Move everything from lodash to lodash-es" [#2591](https://github.com/storybooks/storybook/pull/2591)
#### Maintenance
@@ -778,7 +1037,7 @@ We'll do a better job of getting out smaller releases next time around. ;-)
- Added type annotation to helpers, added ts declaration files for angu… [#2459](https://github.com/storybooks/storybook/pull/2459)
- Adding extra metadata to module/components [#2526](https://github.com/storybooks/storybook/pull/2526)
- Fix ng component prop output override [#2456](https://github.com/storybooks/storybook/pull/2456)
-- [WIP] Angular versions support [#2467](https://github.com/storybooks/storybook/pull/2467)
+- `WIP` Angular versions support [#2467](https://github.com/storybooks/storybook/pull/2467)
- Angular Add custom pipes support [#2518](https://github.com/storybooks/storybook/pull/2518)
- Add angular support: Storybook for Angular [#1474](https://github.com/storybooks/storybook/pull/1474)
- Fix addon Knobs: add array in Object PropTypes [#2227](https://github.com/storybooks/storybook/pull/2227)
@@ -1035,7 +1294,7 @@ We'll do a better job of getting out smaller releases next time around. ;-)
- Added type annotation to helpers, added ts declaration files for angu… [#2459](https://github.com/storybooks/storybook/pull/2459)
- Adding extra metadata to module/components [#2526](https://github.com/storybooks/storybook/pull/2526)
- Fix ng component prop output override [#2456](https://github.com/storybooks/storybook/pull/2456)
-- [WIP] Angular versions support [#2467](https://github.com/storybooks/storybook/pull/2467)
+- `WIP` Angular versions support [#2467](https://github.com/storybooks/storybook/pull/2467)
- Angular Add custom pipes support [#2518](https://github.com/storybooks/storybook/pull/2518)
#### Bug Fixes
@@ -1351,7 +1610,7 @@ We'll do a better job of getting out smaller releases next time around. ;-)
#### Bug Fixes
- Number knob: apply default min/max/step values only in range mode [#2437](https://github.com/storybooks/storybook/pull/2437)
-- [addon-actions] Check result of getPropertyDescriptor for IE11 [#2428](https://github.com/storybooks/storybook/pull/2428)
+- `addon-actions` Check result of getPropertyDescriptor for IE11 [#2428](https://github.com/storybooks/storybook/pull/2428)
- Edited template of search box result item to fix overflow text in row [#2419](https://github.com/storybooks/storybook/pull/2419)
- Fix missing supported extension check in case when asset is a string [#2468](https://github.com/storybooks/storybook/pull/2468)
@@ -2395,7 +2654,7 @@ Minor bug fixes and documentation updates post 3.0.0 release.
- Fixed typo in react-native browser instructions [#1189](https://github.com/storybooks/storybook/pull/1189)
- Add instruction for npm install with -D for development dependency [#1168](https://github.com/storybooks/storybook/pull/1168)
-- Fix broken link for [addons] in README [#1167](https://github.com/storybooks/storybook/pull/1167)
+- Fix broken link for `addons` in README [#1167](https://github.com/storybooks/storybook/pull/1167)
- Refreshed logo in docs [#1149](https://github.com/storybooks/storybook/pull/1149)
- fix addon broken links in documentation [#1165](https://github.com/storybooks/storybook/pull/1165)
- start-storybook cli - expand commands descriptions [#1161](https://github.com/storybooks/storybook/pull/1161)
diff --git a/RELEASES.md b/RELEASES.md
index ae86af316b97..e4cf86c82d4f 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -86,7 +86,7 @@ addressed before a release can go out by adding them to the milestone. For examp
Adding bugs to the milestone helps people looking for good ways to contribute,
or to understand what is blocking the release so they can actually do something
about it. Discussion about which bugs are critical happens in the `#maintenance`
-channel [in our Slack](https://now-examples-slackin-rrirkqohko.now.sh/) [![Storybook Slack](https://now-examples-slackin-rrirkqohko.now.sh/badge.svg)].(https://now-examples-slackin-rrirkqohko.now.sh/)
+channel [in our Slack](https://now-examples-slackin-rrirkqohko.now.sh/) [![Storybook Slack](https://now-examples-slackin-rrirkqohko.now.sh/badge.svg)](https://now-examples-slackin-rrirkqohko.now.sh/)
If you're experiencing a bug, the best way to make sure that it gets attention
diff --git a/ROADMAP.md b/ROADMAP.md
index 98c6f940d947..7ee33e46251d 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -2,22 +2,22 @@
## Table of contents
- * [New features](#new-features)
- + [Responsive + multi-device viewports preview.](#responsive--multi-device-viewports-preview)
- + [Automatic story detection](#automatic-story-detection)
- + [Theme ability and override core UI components](#theme-ability-and-override-core-ui-components)
- + [Add a playground addon](#add-a-playground-addon)
- + [See multiple (or all) stories in 1 preview.](#see-multiple--or-all--stories-in-1-preview)
- * [Supporting other frameworks and libraries](#supporting-other-frameworks-and-libraries)
- + [Polymer & Webcomponents](#polymer---webcomponents)
- + [Aurelia](#aurelia)
- + [Ember](#ember)
- * [Breaking changes](#breaking-changes)
- + [Addon API](#addon-api)
- + [API for adding stories](#api-for-adding-stories)
- * [Documentation](#documentation)
- + [Better design](#better-design)
- + [Record videos and write blog post on how to use, tweak & develop storybook](#record-videos-and-write-blog-post-on-how-to-use--tweak---develop-storybook)
+* [New features](#new-features)
+ + [Responsive + multi-device viewports preview.](#responsive--multi-device-viewports-preview)
+ + [Automatic story detection](#automatic-story-detection)
+ + [Theme ability and override core UI components](#theme-ability-and-override-core-ui-components)
+ + [Add a playground addon](#add-a-playground-addon)
+ + [See multiple (or all) stories in 1 preview.](#see-multiple--or-all--stories-in-1-preview)
+* [Supporting other frameworks and libraries](#supporting-other-frameworks-and-libraries)
+ + [Polymer & Webcomponents](#polymer---webcomponents)
+ + [Aurelia](#aurelia)
+ + [Ember](#ember)
+* [Breaking changes](#breaking-changes)
+ + [Addon API](#addon-api)
+ + [API for adding stories](#api-for-adding-stories)
+* [Documentation](#documentation)
+ + [Better design](#better-design)
+ + [Record videos and write blog post on how to use, tweak & develop storybook](#record-videos-and-write-blog-post-on-how-to-use--tweak---develop-storybook)
## New features
diff --git a/addons/a11y/.storybook/components/Button/component.js b/addons/a11y/.storybook/components/Button/component.js
index cef6111d522b..d9c58bd13acd 100644
--- a/addons/a11y/.storybook/components/Button/component.js
+++ b/addons/a11y/.storybook/components/Button/component.js
@@ -15,10 +15,10 @@ const styles = {
wrong: {
color: '#ffffff',
backgroundColor: '#4caf50',
- }
-}
+ },
+};
-function Button({ label, content, disabled, contrast }) {
+function Button({ content, disabled, contrast }) {
return (
- { content }
+ {content}
- )
+ );
}
Button.propTypes = {
- label: PropTypes.string,
content: PropTypes.string,
disabled: PropTypes.bool,
- contrast: PropTypes.oneOf(['ok', 'wrong'])
+ contrast: PropTypes.oneOf(['ok', 'wrong']),
};
Button.defaultProps = {
+ content: 'null',
disabled: false,
contrast: 'ok',
};
diff --git a/addons/a11y/.storybook/components/Button/stories.js b/addons/a11y/.storybook/components/Button/stories.js
index 269e5cab100d..5972b9ea1457 100644
--- a/addons/a11y/.storybook/components/Button/stories.js
+++ b/addons/a11y/.storybook/components/Button/stories.js
@@ -1,34 +1,17 @@
import React from 'react';
import { storiesOf } from '@storybook/react';
+import Faker from 'faker';
import { checkA11y } from './../../../src';
import Button from './component';
-import Faker from 'faker';
-
const text = Faker.lorem.words();
storiesOf(' ', module)
.addDecorator(checkA11y)
- .add('Default', () => (
-
- ))
- .add('Content', () => (
-
- ))
- .add('Label', () => (
-
- ))
- .add('Disabled', () => (
-
- ))
- .add('Invalid contrast', () => (
-
- ));
+ .add('Default', () => )
+ .add('Content', () => )
+ .add('Label', () => )
+ .add('Disabled', () => )
+ .add('Invalid contrast', () => );
diff --git a/addons/a11y/.storybook/components/Form/components/Input.js b/addons/a11y/.storybook/components/Form/components/Input.js
index bee6d1337266..f5fca29664d8 100644
--- a/addons/a11y/.storybook/components/Form/components/Input.js
+++ b/addons/a11y/.storybook/components/Form/components/Input.js
@@ -2,14 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
function Input({ id, value, type, placeholder }) {
- return (
-
- );
+ return ;
}
Input.propTypes = {
@@ -17,6 +10,13 @@ Input.propTypes = {
id: PropTypes.string,
value: PropTypes.string,
placeholder: PropTypes.string,
-}
+};
+
+Input.defaultProps = {
+ type: null,
+ id: null,
+ value: null,
+ placeholder: null,
+};
export default Input;
diff --git a/addons/a11y/.storybook/components/Form/components/Label.js b/addons/a11y/.storybook/components/Form/components/Label.js
index cdae59704b21..5f3799a6ac6c 100644
--- a/addons/a11y/.storybook/components/Form/components/Label.js
+++ b/addons/a11y/.storybook/components/Form/components/Label.js
@@ -5,22 +5,19 @@ const styles = {
label: {
padding: '0 6px',
},
-}
+};
function Label({ id, content }) {
return (
-
- { content }
+
+ {content}
- )
+ );
}
Label.propTypes = {
- content: PropTypes.string,
- id: PropTypes.string,
+ content: PropTypes.string.isRequired,
+ id: PropTypes.string.isRequired,
};
export default Label;
diff --git a/addons/a11y/.storybook/components/Form/components/Row.js b/addons/a11y/.storybook/components/Form/components/Row.js
index 3cc62011201f..ed2238147599 100644
--- a/addons/a11y/.storybook/components/Form/components/Row.js
+++ b/addons/a11y/.storybook/components/Form/components/Row.js
@@ -15,7 +15,11 @@ function Row({ label, input }) {
Row.propTypes = {
label: PropTypes.instanceOf(Label),
- input: PropTypes.instanceOf(Input),
-}
+ input: PropTypes.instanceOf(Input).isRequired,
+};
+
+Row.defaultProps = {
+ label: null,
+};
export default Row;
diff --git a/addons/a11y/.storybook/components/Form/components/index.js b/addons/a11y/.storybook/components/Form/components/index.js
index 0a9ea851f8e1..c893c0a55dd6 100644
--- a/addons/a11y/.storybook/components/Form/components/index.js
+++ b/addons/a11y/.storybook/components/Form/components/index.js
@@ -2,8 +2,4 @@ import Input from './Input';
import Label from './Label';
import Row from './Row';
-export {
- Input,
- Label,
- Row,
-};
+export { Input, Label, Row };
diff --git a/addons/a11y/.storybook/components/Form/stories.js b/addons/a11y/.storybook/components/Form/stories.js
index 9cee34f84a45..2136b4fa8cfa 100644
--- a/addons/a11y/.storybook/components/Form/stories.js
+++ b/addons/a11y/.storybook/components/Form/stories.js
@@ -1,36 +1,20 @@
import React from 'react';
+import { storiesOf } from '@storybook/react';
+import Faker from 'faker';
import * as Form from './components';
-import { storiesOf } from '@storybook/react';
import { checkA11y } from './../../../src';
-import Faker from 'faker';
-
const label = Faker.lorem.word();
const placeholder = Faker.lorem.word();
storiesOf('', module)
.addDecorator(checkA11y)
- .add('Without Label', () => (
- }
- />
- ))
- .add ('With label', () => (
- }
- input={ }
- />
- ))
- .add ('With placeholder', () => (
- }
- />
+ .add('Without Label', () => } />)
+ .add('With label', () => (
+ } input={ } />
))
+ .add('With placeholder', () => (
+ } />
+ ));
diff --git a/addons/a11y/.storybook/components/Image/component.js b/addons/a11y/.storybook/components/Image/component.js
index 62a51a77c1e9..43faa4516dd5 100644
--- a/addons/a11y/.storybook/components/Image/component.js
+++ b/addons/a11y/.storybook/components/Image/component.js
@@ -2,13 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
function Image({ src, alt, presentation }) {
- return (
-
- );
+ return ;
}
Image.propTypes = {
@@ -17,4 +11,9 @@ Image.propTypes = {
presentation: PropTypes.bool,
};
+Image.defaultProps = {
+ alt: null,
+ presentation: false,
+};
+
export default Image;
diff --git a/addons/a11y/.storybook/components/Image/stories.js b/addons/a11y/.storybook/components/Image/stories.js
index f878d38fe417..93cd73a90052 100644
--- a/addons/a11y/.storybook/components/Image/stories.js
+++ b/addons/a11y/.storybook/components/Image/stories.js
@@ -1,29 +1,16 @@
import React from 'react';
import { storiesOf } from '@storybook/react';
+import Faker from 'faker';
import { checkA11y } from './../../../src';
import Image from './component';
-import Faker from 'faker';
-
const image = Faker.image.animals();
const alt = Faker.lorem.words();
storiesOf(' ', module)
.addDecorator(checkA11y)
- .add('Without alt', () => (
-
- ))
- .add('With alt', () => (
-
- ))
- .add('Presentation', () => (
-
- ));
+ .add('Without alt', () => )
+ .add('With alt', () => )
+ .add('Presentation', () => );
diff --git a/addons/a11y/.storybook/components/Typography/components/Heading.js b/addons/a11y/.storybook/components/Typography/components/Heading.js
index c338fc3ae4d4..980015cd91f3 100644
--- a/addons/a11y/.storybook/components/Typography/components/Heading.js
+++ b/addons/a11y/.storybook/components/Typography/components/Heading.js
@@ -1,20 +1,20 @@
-import React, { cloneElement } from 'react';
+import { createElement } from 'react';
import PropTypes from 'prop-types';
const headings = {
- 1: ( ),
- 2: ( ),
- 3: ( ),
- 4: ( ),
+ 1: 'h1',
+ 2: 'h2',
+ 3: 'h3',
+ 4: 'h4',
};
function Heading({ level, children }) {
- return cloneElement(headings[level], {}, children)
+ return createElement(headings[level], {}, children);
}
Heading.propTypes = {
level: PropTypes.oneOf([1, 2, 3, 4]),
- children: PropTypes.any,
+ children: PropTypes.node,
};
Heading.defaultProps = {
diff --git a/addons/a11y/.storybook/components/Typography/components/Link.js b/addons/a11y/.storybook/components/Typography/components/Link.js
index 10085c6896a6..6dc7887705fd 100644
--- a/addons/a11y/.storybook/components/Typography/components/Link.js
+++ b/addons/a11y/.storybook/components/Typography/components/Link.js
@@ -2,16 +2,12 @@ import React from 'react';
import PropTypes from 'prop-types';
function Link({ href, content }) {
- return (
-
- { content }
-
- );
+ return {content} ;
}
Link.propTypes = {
- href: PropTypes.string,
- content: PropTypes.string,
+ href: PropTypes.string.isRequired,
+ content: PropTypes.string.isRequired,
};
export default Link;
diff --git a/addons/a11y/.storybook/components/Typography/components/Text.js b/addons/a11y/.storybook/components/Typography/components/Text.js
index e7228d71c107..50407f577e8e 100644
--- a/addons/a11y/.storybook/components/Typography/components/Text.js
+++ b/addons/a11y/.storybook/components/Typography/components/Text.js
@@ -2,15 +2,11 @@ import React from 'react';
import PropTypes from 'prop-types';
function Text({ children }) {
- return (
-
- {children}
-
- );
+ return {children}
;
}
Text.propTypes = {
- children: PropTypes.any,
+ children: PropTypes.node.isRequired,
};
export default Text;
diff --git a/addons/a11y/.storybook/components/Typography/components/index.js b/addons/a11y/.storybook/components/Typography/components/index.js
index 2b5d7e625987..0fea22bde1ee 100644
--- a/addons/a11y/.storybook/components/Typography/components/index.js
+++ b/addons/a11y/.storybook/components/Typography/components/index.js
@@ -2,8 +2,4 @@ import Heading from './Heading';
import Link from './Link';
import Text from './Text';
-export {
- Heading,
- Link,
- Text,
-};
+export { Heading, Link, Text };
diff --git a/addons/a11y/.storybook/components/Typography/stories.js b/addons/a11y/.storybook/components/Typography/stories.js
index caa3d3e49a3c..6c4a50b82cab 100644
--- a/addons/a11y/.storybook/components/Typography/stories.js
+++ b/addons/a11y/.storybook/components/Typography/stories.js
@@ -1,41 +1,26 @@
import React from 'react';
import { storiesOf } from '@storybook/react';
+import Faker from 'faker';
import { checkA11y } from './../../../src';
import * as Typography from './components';
-import Faker from 'faker';
-
-const href = "javascript:void 0";
+// eslint-disable-next-line no-script-url
+const href = 'javascript:void 0';
storiesOf(' ', module)
.addDecorator(checkA11y)
.add('Correct', () => (
-
- {Faker.lorem.sentence()}
-
+ {Faker.lorem.sentence()}
-
- {Faker.lorem.paragraph()}
-
+ {Faker.lorem.paragraph()}
-
+
))
- .add('Empty Heading', () => (
-
- ))
- .add('Empty Paragraph', () => (
-
- ))
- .add('Empty Link', () => (
-
- ))
- .add('Link without href', () => (
-
- ));
+ .add('Empty Heading', () => )
+ .add('Empty Paragraph', () => )
+ .add('Empty Link', () => )
+ .add('Link without href', () => );
diff --git a/addons/a11y/.storybook/config.js b/addons/a11y/.storybook/config.js
index a5f560d3f48b..f7c1e980257f 100755
--- a/addons/a11y/.storybook/config.js
+++ b/addons/a11y/.storybook/config.js
@@ -1,9 +1,7 @@
import * as storybook from '@storybook/react';
-const req = require.context('./components/', true, /stories\.js$/)
+const req = require.context('./components/', true, /stories\.js$/);
-const loadStories = () =>
- req.keys().forEach(req);
+const loadStories = () => req.keys().forEach(req);
-
-storybook.configure(loadStories, module)
+storybook.configure(loadStories, module);
diff --git a/addons/a11y/package.json b/addons/a11y/package.json
index 86530ad5efac..acdea6e7c451 100644
--- a/addons/a11y/package.json
+++ b/addons/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "a11y addon for storybook",
"keywords": [
"a11y",
@@ -25,11 +25,15 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/components": "^3.4.0-alpha.8",
"axe-core": "^2.6.1",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"prop-types": "^15.6.0"
},
+ "devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8",
+ "faker": "^4.1.0"
+ },
"peerDependencies": {
"@storybook/addons": "^3.3.0",
"react": "*",
diff --git a/addons/actions/package.json b/addons/actions/package.json
index 36f2e3a753b5..6bfd462717fe 100644
--- a/addons/actions/package.json
+++ b/addons/actions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Action Logger addon for storybook",
"keywords": [
"storybook"
@@ -22,7 +22,7 @@
"dependencies": {
"deep-equal": "^1.0.1",
"global": "^4.3.2",
- "make-error": "^1.3.2",
+ "make-error": "^1.3.4",
"prop-types": "^15.6.0",
"react-inspector": "^2.2.2",
"uuid": "^3.2.1"
diff --git a/addons/actions/src/preview.js b/addons/actions/src/preview.js
index fc2457b32603..1df9c39c291b 100644
--- a/addons/actions/src/preview.js
+++ b/addons/actions/src/preview.js
@@ -1,5 +1,3 @@
-/* eslint-disable no-underscore-dangle */
-
import addons from '@storybook/addons';
import uuid from 'uuid/v1';
import { EVENT_ID } from './';
@@ -24,11 +22,9 @@ export function action(name) {
}
export function decorateAction(decorators) {
- // eslint-disable-next-line no-unused-vars, func-names
- return function(name) {
+ return name => {
const callAction = action(name);
- // eslint-disable-next-line no-unused-vars, func-names
- return function(..._args) {
+ return (..._args) => {
const decorated = decorators.reduce((args, fn) => fn(args), _args);
callAction(...decorated);
};
diff --git a/addons/background/package.json b/addons/background/package.json
index c5d4c21f6087..2570855dcd22 100644
--- a/addons/background/package.json
+++ b/addons/background/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "A storybook addon to show different backgrounds for your preview",
"keywords": [
"addon",
@@ -24,6 +24,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
+ "global": "^4.3.2",
"prop-types": "^15.6.0"
},
"peerDependencies": {
diff --git a/addons/background/src/BackgroundPanel.js b/addons/background/src/BackgroundPanel.js
index c5c8984215b7..de06c23e0f69 100644
--- a/addons/background/src/BackgroundPanel.js
+++ b/addons/background/src/BackgroundPanel.js
@@ -1,15 +1,21 @@
+import { document } from 'global';
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import addons from '@storybook/addons';
import Swatch from './Swatch';
+const storybookIframe = 'storybook-preview-iframe';
+
const style = {
font: {
fontFamily:
"-apple-system,'.SFNSText-Regular', 'San Francisco', Roboto, 'Segoe UI', 'Helvetica Neue', 'Lucida Grande', sans-serif",
fontSize: '14px',
},
+ iframe: {
+ transition: 'background 0.25s ease-in-out',
+ },
};
const defaultBackground = {
@@ -73,10 +79,10 @@ export default class BackgroundPanel extends Component {
const currentBackground = api.getQueryParam('background');
if (currentBackground) {
- this.setBackgroundInPreview(currentBackground);
+ this.updateIframe(currentBackground);
} else if (backgrounds.filter(x => x.default).length) {
const defaultBgs = backgrounds.filter(x => x.default);
- this.setBackgroundInPreview(defaultBgs[0].value);
+ this.updateIframe(defaultBgs[0].value);
}
});
@@ -86,13 +92,27 @@ export default class BackgroundPanel extends Component {
});
}
- setBackgroundInPreview = background => this.channel.emit('background', background);
+ componentDidMount() {
+ this.iframe = document.getElementById(storybookIframe);
+
+ if (!this.iframe) {
+ throw new Error('Cannot find Storybook iframe');
+ }
+
+ Object.keys(style.iframe).forEach(prop => {
+ this.iframe.style[prop] = style.iframe[prop];
+ });
+ }
setBackgroundFromSwatch = background => {
- this.setBackgroundInPreview(background);
+ this.updateIframe(background);
this.props.api.setQueryParams({ background });
};
+ updateIframe(background) {
+ this.iframe.style.background = background;
+ }
+
render() {
const backgrounds = [...this.state.backgrounds];
diff --git a/addons/background/src/__tests__/BackgroundPanel.js b/addons/background/src/__tests__/BackgroundPanel.js
index dd37d25380cc..2489d4c9d013 100644
--- a/addons/background/src/__tests__/BackgroundPanel.js
+++ b/addons/background/src/__tests__/BackgroundPanel.js
@@ -17,6 +17,16 @@ const mockedApi = {
};
const channel = new EventEmitter();
+jest.mock('global', () => ({
+ document: {
+ getElementById() {
+ return {
+ style: {},
+ };
+ },
+ },
+}));
+
describe('Background Panel', () => {
it('should exist', () => {
const backgroundPanel = shallow( );
@@ -105,19 +115,18 @@ describe('Background Panel', () => {
expect(backgroundPanel.state('backgrounds')).toHaveLength(0);
});
- it('should pass the event from swatch clicks through the provided channel', () => {
+ it('should set iframe background', () => {
const SpiedChannel = new EventEmitter();
const backgroundPanel = mount( );
backgroundPanel.setState({ backgrounds }); // force re-render
- const spy = jest.fn();
- SpiedChannel.on('background', spy);
-
backgroundPanel
.find('h4')
.first()
.simulate('click');
- expect(spy).toBeCalledWith(backgrounds[0].value);
+ expect(backgroundPanel.instance().iframe.style).toMatchObject({
+ background: backgrounds[0].value,
+ });
});
});
diff --git a/addons/background/src/__tests__/index.js b/addons/background/src/__tests__/index.js
index d097228959cd..1a3fdb5c52f4 100644
--- a/addons/background/src/__tests__/index.js
+++ b/addons/background/src/__tests__/index.js
@@ -16,34 +16,6 @@ describe('Background Decorator', () => {
expect(backgroundDecorator).toBeDefined();
});
- it('should initially have a transparent background state', () => {
- const SpiedChannel = new EventEmitter();
- const backgroundDecorator = shallow(
-
- );
-
- expect(backgroundDecorator.state().background).toBe('transparent');
- });
-
- it('should have a background matching its state', () => {
- const SpiedChannel = new EventEmitter();
- const backgroundDecorator = shallow(
-
- );
-
- expect(backgroundDecorator.html().match(/background:transparent/gim)).toHaveLength(1);
- });
-
- it('should set internal state when background event called', () => {
- const SpiedChannel = new EventEmitter();
- const backgroundDecorator = shallow(
-
- );
-
- SpiedChannel.emit('background', '#123456');
- expect(backgroundDecorator.state().background).toBe('#123456');
- });
-
it('should send background-unset event when the component unmounts', () => {
const SpiedChannel = new EventEmitter();
const backgroundDecorator = shallow(
diff --git a/addons/background/src/index.js b/addons/background/src/index.js
index 43c53af3925b..d74e08d6da5c 100644
--- a/addons/background/src/index.js
+++ b/addons/background/src/index.js
@@ -3,21 +3,6 @@ import PropTypes from 'prop-types';
import addons from '@storybook/addons';
-const style = {
- wrapper: {
- overflow: 'auto',
- position: 'fixed',
- top: 0,
- bottom: 0,
- right: 0,
- left: 0,
- transition: 'background 0.25s ease-in-out',
- backgroundPosition: 'center',
- backgroundSize: 'cover',
- background: 'transparent',
- },
-};
-
export class BackgroundDecorator extends React.Component {
constructor(props) {
super(props);
@@ -31,13 +16,10 @@ export class BackgroundDecorator extends React.Component {
this.channel = addons.getChannel();
}
- this.state = { background: 'transparent' };
-
this.story = story();
}
componentWillMount() {
- this.channel.on('background', this.setBackground);
this.channel.emit('background-set', this.props.backgrounds);
}
@@ -48,16 +30,11 @@ export class BackgroundDecorator extends React.Component {
}
componentWillUnmount() {
- this.channel.removeListener('background', this.setBackground);
this.channel.emit('background-unset');
}
- setBackground = background => this.setState({ background });
-
render() {
- const styles = style.wrapper;
- styles.background = this.state.background;
- return {this.story}
;
+ return this.story;
}
}
BackgroundDecorator.propTypes = {
diff --git a/addons/centered/example/index.js b/addons/centered/example/index.js
index 85507ca3f1f9..cdefc6801edb 100644
--- a/addons/centered/example/index.js
+++ b/addons/centered/example/index.js
@@ -1,6 +1,7 @@
-import React, { Component } from 'react';
import ReactDOM from 'react-dom';
-import decorator from '../index';
+import { document } from 'global';
+
+import decorator from '../src';
const content = decorator(() => 'Hello World!');
const wrapper = document.querySelector('#content');
diff --git a/addons/centered/package.json b/addons/centered/package.json
index 30823deee04e..b36c5d8c0080 100644
--- a/addons/centered/package.json
+++ b/addons/centered/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-centered",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook decorator to center components",
"license": "MIT",
"author": "Muhammed Thanish ",
@@ -12,6 +12,9 @@
"dependencies": {
"global": "^4.3.2"
},
+ "devDependencies": {
+ "react-dom": "^16.2.0"
+ },
"peerDependencies": {
"react": "*"
}
diff --git a/addons/events/package.json b/addons/events/package.json
index 4f17da3137b6..99b96328ffb3 100644
--- a/addons/events/package.json
+++ b/addons/events/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-events",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Add events to your Storybook stories.",
"keywords": [
"addon",
diff --git a/addons/events/src/components/Event.js b/addons/events/src/components/Event.js
index 100624c47e5c..33165b96d7d0 100644
--- a/addons/events/src/components/Event.js
+++ b/addons/events/src/components/Event.js
@@ -145,7 +145,9 @@ export default class Item extends Component {
disabled={failed}
title="Submit event"
>
- 📢
+
+ 📢
+
{isTextAreaShowed ? (
- ❌
+
+ ❌
+
) : (
- ✏️
+
+ ✏️
+
)}
diff --git a/addons/graphql/.storybook/config.js b/addons/graphql/.storybook/config.js
index 29599c59b5d2..9c18e1bf514c 100644
--- a/addons/graphql/.storybook/config.js
+++ b/addons/graphql/.storybook/config.js
@@ -1,2 +1,3 @@
import * as storybook from '@storybook/react';
+
storybook.configure(() => require('./stories'), module);
diff --git a/addons/graphql/.storybook/stories.js b/addons/graphql/.storybook/stories.js
index e92ed79d4b19..8e92226b5108 100644
--- a/addons/graphql/.storybook/stories.js
+++ b/addons/graphql/.storybook/stories.js
@@ -1,13 +1,14 @@
-import React from 'react';
-import { storiesOf } from '@storybook/react'
-import { setupGraphiQL } from '../src'
+import { storiesOf } from '@storybook/react';
+import { setupGraphiQL } from '../src';
// setup the graphiql helper which can be used with the add method later
const graphiql = setupGraphiQL({ url: 'http://localhost:3000/graphql' });
-storiesOf('GraphQL Demo', module)
- .add('get user info', graphiql(`{
+storiesOf('GraphQL Demo', module).add(
+ 'get user info',
+ graphiql(`{
user(id: "1") {
name
}
- }`));
+ }`)
+);
diff --git a/addons/graphql/package.json b/addons/graphql/package.json
index cc42dde6d69f..4315dbe73ceb 100644
--- a/addons/graphql/package.json
+++ b/addons/graphql/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-graphql",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook addon to display the GraphiQL IDE",
"keywords": [
"storybook"
@@ -24,9 +24,12 @@
"dependencies": {
"global": "^4.3.2",
"graphiql": "^0.11.11",
- "graphql": "^0.12.3",
+ "graphql": "^0.13.1",
"prop-types": "^15.6.0"
},
+ "devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8"
+ },
"peerDependencies": {
"react": "*"
}
diff --git a/addons/info/.storybook/config.js b/addons/info/.storybook/config.js
index 85ac9515b63c..bfb85e5f9f13 100644
--- a/addons/info/.storybook/config.js
+++ b/addons/info/.storybook/config.js
@@ -2,14 +2,10 @@ import React from 'react';
import { configure, setAddon, addDecorator } from '@storybook/react';
import InfoAddon from '../src/';
-addDecorator((story) => (
-
- {story()}
-
-));
+addDecorator(story => {story()}
);
setAddon(InfoAddon);
-configure(function () {
+configure(() => {
require('../example/story');
}, module);
diff --git a/addons/info/.storybook/user/modify_webpack_config.js b/addons/info/.storybook/user/modify_webpack_config.js
index 2716de914d59..75e957836877 100644
--- a/addons/info/.storybook/user/modify_webpack_config.js
+++ b/addons/info/.storybook/user/modify_webpack_config.js
@@ -1,4 +1,4 @@
-module.exports = function (config) {
+module.exports = () => {
// This is the default webpack config defined in the `../webpack.config.js`
// modify as you need.
};
diff --git a/addons/info/.storybook/webpack.config.js b/addons/info/.storybook/webpack.config.js
index 115532575ea6..e2343550bf35 100644
--- a/addons/info/.storybook/webpack.config.js
+++ b/addons/info/.storybook/webpack.config.js
@@ -19,7 +19,7 @@ const config = {
test: /\.json?$/,
loaders: ['json'],
include: path.resolve(__dirname, '../'),
- }
+ },
],
},
};
diff --git a/addons/info/example/Button.js b/addons/info/example/Button.js
index df7c34c01288..70bf2aabe2ae 100644
--- a/addons/info/example/Button.js
+++ b/addons/info/example/Button.js
@@ -1,20 +1,21 @@
import PropTypes from 'prop-types';
import React from 'react';
-const Button = ({ disabled, label, style, onClick }) => (
+const Button = ({ disabled, label, onClick }) => (
{label}
);
-Object.assign(Button, {
- displayName: 'Button',
- propTypes: {
- label: PropTypes.string.isRequired,
- style: PropTypes.object,
- disabled: PropTypes.bool,
- onClick: PropTypes.func,
- },
-});
+Button.propTypes = {
+ label: PropTypes.string.isRequired,
+ disabled: PropTypes.bool,
+ onClick: PropTypes.func,
+};
+
+Button.defaultProps = {
+ disabled: false,
+ onClick() {},
+};
export default Button;
diff --git a/addons/info/example/story.js b/addons/info/example/story.js
index e927751d8920..2b6be297537b 100644
--- a/addons/info/example/story.js
+++ b/addons/info/example/story.js
@@ -1,21 +1,18 @@
import React from 'react';
-import Button from './Button';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';
-storiesOf(
- 'Button'
-).addWithInfo(
+import Button from './Button';
+
+storiesOf('Button').addWithInfo(
'simple usage',
'This is the basic usage with the button with providing a label to show the text.',
() => (
-
- Click the "?" mark at top-right to view the info.
-
+
Click the "?" mark at top-right to view the info.
)
);
@@ -88,27 +85,22 @@ storiesOf('Button').addWithInfo(
This is a JSX info section
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed ornare massa rutrum metus commodo, a mattis velit dignissim.
- Fusce vestibulum turpis sed massa egestas pharetra. Sed at libero
- nulla.
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare massa rutrum metus
+ commodo, a mattis velit dignissim. Fusce vestibulum turpis sed massa egestas pharetra. Sed at
+ libero nulla.
-
- This is a link
-
+ This is a link
-
+
,
() => (
-
- Click the "?" mark at top-right to view the info.
-
+
Click the "?" mark at top-right to view the info.
)
);
@@ -118,18 +110,15 @@ storiesOf('Button').addWithInfo(
This is a JSX info section
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed ornare massa rutrum metus commodo, a mattis velit dignissim.
- Fusce vestibulum turpis sed massa egestas pharetra. Sed at libero
- nulla.
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare massa rutrum metus
+ commodo, a mattis velit dignissim. Fusce vestibulum turpis sed massa egestas pharetra. Sed at
+ libero nulla.
-
- This is a link
-
+ This is a link
-
+
,
() => ,
@@ -182,11 +171,11 @@ storiesOf('Button').addWithInfo(
() => ,
{
inline: true,
- styles: stylesheet => {
- stylesheet.infoPage = {
+ styles: stylesheet => ({
+ ...stylesheet,
+ infoPage: {
backgroundColor: '#ccc',
- };
- return stylesheet;
- },
+ },
+ }),
}
);
diff --git a/addons/info/package.json b/addons/info/package.json
index 9b1c66e1aade..95199515773e 100644
--- a/addons/info/package.json
+++ b/addons/info/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-info",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "A Storybook addon to show additional information for your stories.",
"license": "MIT",
"main": "dist/index.js",
@@ -15,10 +15,10 @@
"storybook": "start-storybook -p 9010"
},
"dependencies": {
- "@storybook/client-logger": "^3.4.0-alpha.6",
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/client-logger": "^3.4.0-alpha.8",
+ "@storybook/components": "^3.4.0-alpha.8",
"babel-runtime": "^6.26.0",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"global": "^4.3.2",
"marksy": "^6.0.3",
"nested-object-assign": "^1.0.1",
@@ -27,6 +27,8 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8",
"react-test-renderer": "^16.1.0"
},
"peerDependencies": {
diff --git a/addons/info/src/components/PropTable.js b/addons/info/src/components/PropTable.js
index c2e9ef81c313..3f03e240084c 100644
--- a/addons/info/src/components/PropTable.js
+++ b/addons/info/src/components/PropTable.js
@@ -1,5 +1,3 @@
-/* eslint-disable no-underscore-dangle */
-
import PropTypes from 'prop-types';
import React from 'react';
diff --git a/addons/info/src/components/types/ArrayOf.js b/addons/info/src/components/types/ArrayOf.js
index ce78fc6fb65f..81834331cedb 100644
--- a/addons/info/src/components/types/ArrayOf.js
+++ b/addons/info/src/components/types/ArrayOf.js
@@ -1,13 +1,13 @@
import React from 'react';
import PrettyPropType from './PrettyPropType';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
const ArrayOf = ({ propType }) => (
[
-
+
]
diff --git a/addons/info/src/components/types/Enum.js b/addons/info/src/components/types/Enum.js
index 83b017eed92e..2de8d4830a87 100644
--- a/addons/info/src/components/types/Enum.js
+++ b/addons/info/src/components/types/Enum.js
@@ -1,7 +1,13 @@
import React from 'react';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
-const Enum = ({ propType }) => {propType.value.map(({ value }) => value).join(' | ')} ;
+const Enum = ({ propType }) => (
+
+ {getPropTypes(propType)
+ .map(({ value }) => value)
+ .join(' | ')}
+
+);
Enum.propTypes = {
propType: TypeInfo.isRequired,
diff --git a/addons/info/src/components/types/InstanceOf.js b/addons/info/src/components/types/InstanceOf.js
index 94577c950954..786c77fdd399 100644
--- a/addons/info/src/components/types/InstanceOf.js
+++ b/addons/info/src/components/types/InstanceOf.js
@@ -1,7 +1,7 @@
import React from 'react';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
-const InstanceOf = ({ propType }) => {propType.value} ;
+const InstanceOf = ({ propType }) => {getPropTypes(propType)} ;
InstanceOf.propTypes = {
propType: TypeInfo.isRequired,
diff --git a/addons/info/src/components/types/Literal.js b/addons/info/src/components/types/Literal.js
new file mode 100644
index 000000000000..83b222e40788
--- /dev/null
+++ b/addons/info/src/components/types/Literal.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { TypeInfo } from './proptypes';
+
+const Literal = ({ propType }) => {propType.value} ;
+
+Literal.propTypes = {
+ propType: TypeInfo.isRequired,
+};
+
+export default Literal;
diff --git a/addons/info/src/components/types/ObjectOf.js b/addons/info/src/components/types/ObjectOf.js
index c9604d299017..e27908d814a2 100644
--- a/addons/info/src/components/types/ObjectOf.js
+++ b/addons/info/src/components/types/ObjectOf.js
@@ -1,12 +1,12 @@
import React from 'react';
import PrettyPropType from './PrettyPropType';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
const ObjectOf = ({ propType }) => (
{'{[]: '}
-
+
{'}'}
);
diff --git a/addons/info/src/components/types/OneOf.js b/addons/info/src/components/types/OneOf.js
index a771772d8e1f..deacfa4633e8 100644
--- a/addons/info/src/components/types/OneOf.js
+++ b/addons/info/src/components/types/OneOf.js
@@ -1,7 +1,12 @@
import React from 'react';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
-const OneOf = ({ propType }) => {propType.value.map(({ value }) => value).join(' | ')} ;
+const joinValues = propTypes => propTypes.map(({ value }) => value).join(' | ');
+
+const OneOf = ({ propType }) => {
+ const propTypes = getPropTypes(propType);
+ return {`oneOf ${Array.isArray(propTypes) ? joinValues(propTypes) : propTypes}`} ;
+};
OneOf.propTypes = {
propType: TypeInfo.isRequired,
diff --git a/addons/info/src/components/types/OneOfType.js b/addons/info/src/components/types/OneOfType.js
index fab5bb53bc94..8b04c5fb4849 100644
--- a/addons/info/src/components/types/OneOfType.js
+++ b/addons/info/src/components/types/OneOfType.js
@@ -1,18 +1,18 @@
import React from 'react';
import PrettyPropType from './PrettyPropType';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
const OneOfType = ({ propType }) => {
- const { length } = propType.value;
+ const propTypes = getPropTypes(propType);
return (
- {propType.value
+ {propTypes
.map((value, i) => {
const key = `${value.name}${value.value ? `-${value.value}` : ''}`;
return [
,
- i < length - 1 ? | : null,
+ i < propTypes.length - 1 ? | : null,
];
})
.reduce((acc, tuple) => acc.concat(tuple), [])}
diff --git a/addons/info/src/components/types/PrettyPropType.js b/addons/info/src/components/types/PrettyPropType.js
index 846842ffc136..d725edcb841e 100644
--- a/addons/info/src/components/types/PrettyPropType.js
+++ b/addons/info/src/components/types/PrettyPropType.js
@@ -9,6 +9,7 @@ import ObjectOf from './ObjectOf';
import OneOf from './OneOf';
import InstanceOf from './InstanceOf';
import Signature from './Signature';
+import Literal from './Literal';
import { TypeInfo } from './proptypes';
@@ -20,6 +21,7 @@ const propTypeComponentMap = new Map([
['objectOf', ObjectOf],
// Might be overkill to have below proptypes as separate components *shrug*
['object', ObjectType],
+ ['literal', Literal],
['enum', OneOf],
['instanceOf', InstanceOf],
['signature', Signature],
diff --git a/addons/info/src/components/types/Shape.js b/addons/info/src/components/types/Shape.js
index fc366b935a79..3349c96a1478 100644
--- a/addons/info/src/components/types/Shape.js
+++ b/addons/info/src/components/types/Shape.js
@@ -5,7 +5,7 @@ import { HighlightButton } from '@storybook/components';
import PrettyPropType from './PrettyPropType';
import PropertyLabel from './PropertyLabel';
-import { TypeInfo } from './proptypes';
+import { TypeInfo, getPropTypes } from './proptypes';
const MARGIN_SIZE = 15;
@@ -33,6 +33,7 @@ class Shape extends React.Component {
render() {
const { propType, depth } = this.props;
+ const propTypes = getPropTypes(propType);
return (
...
{!this.state.minimized &&
- Object.keys(propType.value).map(childProperty => (
+ Object.keys(propTypes).map(childProperty => (
))}
diff --git a/addons/info/src/components/types/proptypes.js b/addons/info/src/components/types/proptypes.js
index 03b101ae76b5..5aee013bed17 100644
--- a/addons/info/src/components/types/proptypes.js
+++ b/addons/info/src/components/types/proptypes.js
@@ -7,3 +7,5 @@ export const TypeInfo = oneOfType([
}),
PropTypes.string,
]);
+
+export const getPropTypes = propType => propType.value || propType.elements;
diff --git a/addons/jest/README.md b/addons/jest/README.md
index 40555e3ade01..940340d2c345 100644
--- a/addons/jest/README.md
+++ b/addons/jest/README.md
@@ -113,8 +113,8 @@ storiesOf('MyComponent', module)
### withTests(options)
-- **options.results**: [OBJECT] jest output results. *mandatory*
-- **filteExt**: [STRING] test file extention. *optionnal*. This allow you to write "MyComponent" and not "MyComponent.test.js". It will be used as regex to find your file results. Default value is `((\\.specs?)|(\\.tests?))?(\\.js)?$`. That mean it will match: MyComponent.js, MyComponent.test.js, MyComponent.tests.js, MyComponent.spec.js, MyComponent.specs.js...
+- **options.results**: OBJECT jest output results. *mandatory*
+- **filteExt**: STRING test file extention. *optionnal*. This allow you to write "MyComponent" and not "MyComponent.test.js". It will be used as regex to find your file results. Default value is `((\\.specs?)|(\\.tests?))?(\\.js)?$`. That mean it will match: MyComponent.js, MyComponent.test.js, MyComponent.tests.js, MyComponent.spec.js, MyComponent.specs.js...
## TODO
diff --git a/addons/jest/package.json b/addons/jest/package.json
index c300db362273..cb4289ea67fc 100644
--- a/addons/jest/package.json
+++ b/addons/jest/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
@@ -25,9 +25,9 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/components": "^3.4.0-alpha.8",
"glamor": "^2.20.40",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"global": "^4.3.2",
"prop-types": "^15.6.0"
},
diff --git a/addons/jest/src/register.js b/addons/jest/src/register.js
index 8abcc1b9dfe8..66639bb3b402 100644
--- a/addons/jest/src/register.js
+++ b/addons/jest/src/register.js
@@ -1,4 +1,3 @@
-/* eslint-disable react/no-danger */
import React from 'react';
import addons from '@storybook/addons';
diff --git a/addons/knobs/.storybook/user/modify_webpack_config.js b/addons/knobs/.storybook/user/modify_webpack_config.js
index 2716de914d59..75e957836877 100644
--- a/addons/knobs/.storybook/user/modify_webpack_config.js
+++ b/addons/knobs/.storybook/user/modify_webpack_config.js
@@ -1,4 +1,4 @@
-module.exports = function (config) {
+module.exports = () => {
// This is the default webpack config defined in the `../webpack.config.js`
// modify as you need.
};
diff --git a/addons/knobs/README.md b/addons/knobs/README.md
index cb51e157f63f..fb54dccfcb65 100644
--- a/addons/knobs/README.md
+++ b/addons/knobs/README.md
@@ -265,6 +265,7 @@ const options = {
const defaultValue = 'Red';
const value = selectV2(label, options, defaultValue)
+```
### date
@@ -283,7 +284,7 @@ const value = date(label, defaultValue);
The `date` knob returns the selected date as stringified Unix timestamp (e.g. `"1510913096516"`).
If your component needs the date in a different form you can wrap the `date` function:
-```
+```js
function myDateKnob(name, defaultValue) {
const stringTimestamp = date(name, defaultValue)
return new Date(stringTimestamp)
diff --git a/addons/knobs/example/stories/index.js b/addons/knobs/example/stories/index.js
index c295f90f9958..3c98a04f8db3 100644
--- a/addons/knobs/example/stories/index.js
+++ b/addons/knobs/example/stories/index.js
@@ -34,8 +34,8 @@ stories.add('with all knobs', () => {
return (
- I'm {name} and I was born on "{moment(dob).format('DD MMM YYYY')}"
- I like:
{passions.map((p, i) => {p} )}
+ I'm {name} and I was born on "{moment(dob).format('DD MMM YYYY')}" I like:{' '}
+
My favorite number is {favoriteNumber}.
My most comfortable room temperature is {comfortTemp} degrees Fahrenheit.
@@ -50,25 +50,33 @@ stories.add('dates Knob', () => {
return (
- Javascript Date default value, passes date value
+
+ Javascript Date default value, passes date value
+
const myDob = date('My DOB', new Date('July 07 1993'));
- // I was born in: "{moment(myDob).format('DD MMM YYYY')}"
+ {`// I was born in: "${moment(myDob).format('DD MMM YYYY')}"`}
- undefined default value passes today's date
+
+ undefined default value passes today's date
+
const today = date('today');
- // Today's date is: "{moment(today).format('DD MMM YYYY')}"
+ {`// Today's date is: "${moment(today).format('DD MMM YYYY')}"`}
- null default value passes null value
+
+ null default value passes null value
+
const dob = date('DOB', null);
- // You were born in: "{dob ? moment(dob).format('DD MMM YYYY') : 'Please select date.'}"
+ {`// You were born in: "${
+ dob ? moment(dob).format('DD MMM YYYY') : 'Please select date.'
+ }"`}
@@ -80,9 +88,7 @@ stories.add('dynamic knobs', () => {
const showOptional = select('Show optional', ['yes', 'no'], 'yes');
return (
-
- {text('compulsary', 'I must be here')}
-
+
{text('compulsary', 'I must be here')}
{showOptional === 'yes' ?
{text('optional', 'I can disapear')}
: null}
);
diff --git a/addons/knobs/package.json b/addons/knobs/package.json
index 5728b8c6c490..bbf7b26b9e6a 100644
--- a/addons/knobs/package.json
+++ b/addons/knobs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-knobs",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook Addon Prop Editor Component",
"license": "MIT",
"main": "dist/index.js",
@@ -23,13 +23,14 @@
"moment": "^2.20.1",
"prop-types": "^15.6.0",
"react-color": "^2.11.4",
- "react-datetime": "^2.12.0",
+ "react-datetime": "^2.14.0",
"react-textarea-autosize": "^5.2.1",
"util-deprecate": "^1.0.2"
},
"devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8",
"raw-loader": "^0.5.1",
- "style-loader": "^0.20.1",
+ "style-loader": "^0.20.2",
"vue": "^2.5.13"
},
"peerDependencies": {
diff --git a/addons/knobs/src/components/__tests__/Array.js b/addons/knobs/src/components/__tests__/Array.js
index 88af1cb5ba6f..74bad56442eb 100644
--- a/addons/knobs/src/components/__tests__/Array.js
+++ b/addons/knobs/src/components/__tests__/Array.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line
+import { shallow } from 'enzyme';
import ArrayType from '../types/Array';
describe('Array', () => {
diff --git a/addons/knobs/src/components/__tests__/Panel.js b/addons/knobs/src/components/__tests__/Panel.js
index 6994937e810b..ef0389705b6f 100644
--- a/addons/knobs/src/components/__tests__/Panel.js
+++ b/addons/knobs/src/components/__tests__/Panel.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line
+import { shallow } from 'enzyme';
import Panel from '../Panel';
describe('Panel', () => {
diff --git a/addons/knobs/src/components/__tests__/Select.js b/addons/knobs/src/components/__tests__/Select.js
index ce77519ec8ea..71dd7825196b 100644
--- a/addons/knobs/src/components/__tests__/Select.js
+++ b/addons/knobs/src/components/__tests__/Select.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line
+import { shallow } from 'enzyme';
import SelectType from '../types/Select';
describe('Select', () => {
diff --git a/addons/knobs/src/index.js b/addons/knobs/src/index.js
index f144aac24aec..51c13caacd49 100644
--- a/addons/knobs/src/index.js
+++ b/addons/knobs/src/index.js
@@ -22,10 +22,8 @@ import {
export { knob, text, boolean, number, color, object, array, date, button, select, selectV2 };
-deprecate(
- () => {},
- 'Using @storybook/addon-knobs directly is discouraged, please use @storybook/addon-knobs/{{framework}}'
-);
+deprecate(() => {},
+'Using @storybook/addon-knobs directly is discouraged, please use @storybook/addon-knobs/{{framework}}');
// generic higher-order component decorator for all platforms - usage is discouraged
// This file Should be removed with 4.0 release
diff --git a/addons/links/.storybook/config.js b/addons/links/.storybook/config.js
index 29599c59b5d2..9c18e1bf514c 100644
--- a/addons/links/.storybook/config.js
+++ b/addons/links/.storybook/config.js
@@ -1,2 +1,3 @@
import * as storybook from '@storybook/react';
+
storybook.configure(() => require('./stories'), module);
diff --git a/addons/links/.storybook/stories.js b/addons/links/.storybook/stories.js
index 0385d9ac2c56..183d44449f92 100644
--- a/addons/links/.storybook/stories.js
+++ b/addons/links/.storybook/stories.js
@@ -1,4 +1,5 @@
-import React from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { storiesOf } from '@storybook/react';
import { linkTo } from '../src';
@@ -10,15 +11,36 @@ storiesOf('Button', module)
Go to "First Story"
))
.add('Multiple Selection', () => (
- {
- return filter === 'First' ? 'First Story' : 'Second Story';
- })}/>
+ (filter === 'First' ? 'First Story' : 'Second Story'))}
+ />
));
-const MultipleStories = ({onClick}) => {
- return (
-
- Go to "First Story"
- Go to "Second Story"
- );
+class MultipleStories extends Component {
+ constructor(...args) {
+ super(...args);
+ this.onFirstClick = this.onFirstClick.bind(this);
+ this.onSecondClick = this.onSecondClick.bind(this);
+ }
+
+ onFirstClick() {
+ this.props.onClick('First');
+ }
+
+ onSecondClick() {
+ this.props.onClick('Second');
+ }
+
+ render() {
+ return (
+
+ Go to "First Story"
+ Go to "Second Story"
+
+ );
+ }
}
+
+MultipleStories.propTypes = {
+ onClick: PropTypes.func.isRequired,
+};
diff --git a/addons/links/README.md b/addons/links/README.md
index 9598fe24fc58..095278097003 100644
--- a/addons/links/README.md
+++ b/addons/links/README.md
@@ -105,7 +105,7 @@ A React implementation of such a component can be imported from `@storybook/addo
```js
import { storiesOf } from '@storybook/react';
-import { LinkTo } from '@storybook/addon-links';
+import LinkTo from '@storybook/addon-links/react';
storiesOf('Link', module)
.add('First', () => (
diff --git a/addons/links/package.json b/addons/links/package.json
index 3a155ec86651..02c78b5965cf 100644
--- a/addons/links/package.json
+++ b/addons/links/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Story Links addon for storybook",
"keywords": [
"storybook"
@@ -22,11 +22,12 @@
"storybook": "start-storybook -p 9001"
},
"dependencies": {
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/components": "^3.4.0-alpha.8",
"global": "^4.3.2",
"prop-types": "^15.5.10"
},
"devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8",
"enzyme": "^3.3.0",
"react": "^16.1.0",
"react-dom": "^16.1.0",
diff --git a/addons/notes/package.json b/addons/notes/package.json
index 80f4cb77b9fe..33e0fec9efc6 100644
--- a/addons/notes/package.json
+++ b/addons/notes/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-notes",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Write notes for your Storybook stories.",
"keywords": [
"addon",
@@ -24,6 +24,9 @@
"prop-types": "^15.6.0",
"util-deprecate": "^1.0.2"
},
+ "devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8"
+ },
"peerDependencies": {
"@storybook/addons": "^3.3.0",
"react": "*"
diff --git a/addons/notes/src/__tests__/index.js b/addons/notes/src/__tests__/index.js
new file mode 100644
index 000000000000..a21aec2a7f25
--- /dev/null
+++ b/addons/notes/src/__tests__/index.js
@@ -0,0 +1,19 @@
+import addons from '@storybook/addons';
+import { withNotes } from '..';
+
+jest.mock('@storybook/addons');
+
+describe('Storybook Addon Notes', () => {
+ it('should inject info', () => {
+ const channel = { emit: jest.fn() };
+ addons.getChannel.mockReturnValue(channel);
+
+ const getStory = jest.fn();
+ const context = {};
+
+ const decoratedStory = withNotes('hello')(getStory);
+ decoratedStory(context);
+ expect(channel.emit).toHaveBeenCalledWith('storybook/notes/add_notes', 'hello');
+ expect(getStory).toHaveBeenCalledWith(context);
+ });
+});
diff --git a/addons/notes/src/tests/index.js b/addons/notes/src/tests/index.js
deleted file mode 100644
index d06c3dd08746..000000000000
--- a/addons/notes/src/tests/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-const { describe, it } = global;
-
-describe('Storybook Addon Notes', () => {
- it('should have some tests');
-});
diff --git a/addons/options/.storybook/stories.js b/addons/options/.storybook/stories.js
index f9a2300173b9..ef3c262e668a 100644
--- a/addons/options/.storybook/stories.js
+++ b/addons/options/.storybook/stories.js
@@ -2,9 +2,5 @@ import React from 'react';
import { storiesOf } from '@storybook/react';
storiesOf('Hello', module)
- .add('Hello World', () => (
- Hello World
- ))
- .add('Hello Earth', () => (
- Hello Earth
- ));
+ .add('Hello World', () => Hello World )
+ .add('Hello Earth', () => Hello Earth );
diff --git a/addons/options/package.json b/addons/options/package.json
index d02c29fb6218..423383d4eb68 100644
--- a/addons/options/package.json
+++ b/addons/options/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-options",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Options addon for storybook",
"keywords": [
"storybook"
@@ -19,6 +19,9 @@
"prepare": "node ../../scripts/prepare.js",
"storybook": "start-storybook -p 9001"
},
+ "devDependencies": {
+ "@storybook/react": "^3.4.0-alpha.8"
+ },
"peerDependencies": {
"@storybook/addons": "^3.3.0",
"react": "*",
diff --git a/addons/storyshots/.storybook/config.js b/addons/storyshots/.storybook/config.js
index e56acc7f9c23..e3f08b8cfe91 100644
--- a/addons/storyshots/.storybook/config.js
+++ b/addons/storyshots/.storybook/config.js
@@ -1,10 +1,10 @@
import { configure } from '@storybook/react';
-const req = require.context('../stories/required_with_context', true, /.stories.js$/)
+const req = require.context('../stories/required_with_context', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename))
- require('../stories/directly_required')
+ req.keys().forEach(filename => req(filename));
+ require('../stories/directly_required');
}
configure(loadStories, module);
diff --git a/addons/storyshots/README.md b/addons/storyshots/README.md
index 097e47913df4..36a19d1680e3 100644
--- a/addons/storyshots/README.md
+++ b/addons/storyshots/README.md
@@ -153,8 +153,8 @@ initStoryshots({
Internally, it uses [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot).
When willing to generate and compare image snapshots for your stories, you have two options:
- - Have a storybook running (ie. accessible via http(s), for instance using `yarn run storybook`)
- - Have a static build of the storybook (for instance, using `yarn run build-storybook`)
+- Have a storybook running (ie. accessible via http(s), for instance using `yarn run storybook`)
+- Have a static build of the storybook (for instance, using `yarn run build-storybook`)
Then you will need to reference the storybook URL (`file://...` if local, `http(s)://...` if served)
@@ -166,10 +166,10 @@ import initStoryshots, { imageSnapshot } from '@storybook/addon-storyshots';
initStoryshots({suite: 'Image storyshots', test: imageSnapshot});
```
-This will assume you have a storybook running on at _http://localhost:6006_.
+This will assume you have a storybook running on at __.
Internally here are the steps:
- Launches a Chrome headless using [puppeteer](https://github.com/GoogleChrome/puppeteer)
-- Browses each stories (calling _http://localhost:6006/iframe.html?..._ URL),
+- Browses each stories (calling __ URL),
- Take screenshots & save all images under _\_image_snapshots\__ folder.
### Specifying the storybook URL
@@ -180,7 +180,7 @@ import initStoryshots, { imageSnapshot } from '@storybook/addon-storyshots';
initStoryshots({suite: 'Image storyshots', test: imageSnapshot({storybookUrl: 'http://my-specific-domain.com:9010'})});
```
-The above config will use _https://my-specific-domain.com:9010_ for screenshots.
+The above config will use __ for screenshots.
You may also use a local static build of storybook if you do not want to run the webpack dev-server:
diff --git a/addons/storyshots/package.json b/addons/storyshots/package.json
index 38c072c87f07..c916eea7c826 100644
--- a/addons/storyshots/package.json
+++ b/addons/storyshots/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "StoryShots is a Jest Snapshot Testing Addon for Storybook.",
"license": "MIT",
"main": "dist/index.js",
@@ -16,7 +16,8 @@
"storybook": "start-storybook -p 6006"
},
"dependencies": {
- "@storybook/channels": "^3.4.0-alpha.6",
+ "@storybook/channels": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
"babel-runtime": "^6.26.0",
"glob": "^7.1.2",
"global": "^4.3.2",
@@ -27,22 +28,23 @@
"read-pkg-up": "^3.0.0"
},
"devDependencies": {
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8",
"babel-cli": "^6.26.0",
- "babel-jest": "^20.0.3",
+ "babel-jest": "^22.1.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"enzyme-to-json": "^3.3.1",
- "jest": "^20.0.4",
- "jest-cli": "^20.0.4",
+ "jest": "^22.3.0",
+ "jest-cli": "^22.3.0",
"react": "^16.1.0",
"react-dom": "^16.1.0"
},
"peerDependencies": {
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0 || ^7.0.0-0"
}
}
diff --git a/addons/storyshots/src/angular/renderTree.js b/addons/storyshots/src/angular/renderTree.js
index ebe9f0e8f0a0..81d22e8d0b0a 100644
--- a/addons/storyshots/src/angular/renderTree.js
+++ b/addons/storyshots/src/angular/renderTree.js
@@ -9,7 +9,7 @@ import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/t
// eslint-disable-next-line import/no-extraneous-dependencies
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { addSerializer } from 'jest-specific-snapshot';
-import { initModuleData } from './helpers.ts';
+import { initModuleData } from './helpers';
addSerializer(HTMLCommentSerializer);
addSerializer(AngularSnapshotSerializer);
diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js
index b50b4c7351b6..1a127cde9eb3 100644
--- a/addons/storyshots/src/index.js
+++ b/addons/storyshots/src/index.js
@@ -1,4 +1,3 @@
-/* eslint-disable no-loop-func */
import fs from 'fs';
import glob from 'glob';
import global, { describe, it, beforeEach, afterEach } from 'global';
diff --git a/addons/storyshots/src/require_context.js b/addons/storyshots/src/require_context.js
index ff77a6902e89..c4af43351277 100644
--- a/addons/storyshots/src/require_context.js
+++ b/addons/storyshots/src/require_context.js
@@ -1,3 +1,4 @@
+import { process } from 'global';
import vm from 'vm';
import fs from 'fs';
import path from 'path';
@@ -40,6 +41,14 @@ function isRelativeRequest(request) {
);
}
+function getFullPath(dirname, request) {
+ if (isRelativeRequest(request) || !process.env.NODE_PATH) {
+ return path.resolve(dirname, request);
+ }
+
+ return path.resolve(process.env.NODE_PATH, request);
+}
+
export default function runWithRequireContext(content, options) {
const { filename, dirname } = options;
@@ -57,7 +66,8 @@ export default function runWithRequireContext(content, options) {
newRequire.cache = require.cache;
newRequire.context = (directory, useSubdirectories = false, regExp = /^\.\//) => {
- const fullPath = path.resolve(dirname, directory);
+ const fullPath = getFullPath(dirname, directory);
+
const keys = {};
requireModules(keys, fullPath, '.', regExp, useSubdirectories);
diff --git a/addons/storyshots/src/test-body-image-snapshot.js b/addons/storyshots/src/test-body-image-snapshot.js
index f05b83464b0b..9ea2a3731673 100644
--- a/addons/storyshots/src/test-body-image-snapshot.js
+++ b/addons/storyshots/src/test-body-image-snapshot.js
@@ -1,5 +1,6 @@
import puppeteer from 'puppeteer';
import { toMatchImageSnapshot } from 'jest-image-snapshot';
+import { logger } from '@storybook/node-logger';
expect.extend({ toMatchImageSnapshot });
@@ -13,7 +14,7 @@ export const imageSnapshot = ({
const testFn = ({ context }) => {
if (context.framework === 'rn') {
// Skip tests since we de not support RN image snapshots.
- console.error(
+ logger.error(
"It seems you are running imageSnapshot on RN app and it's not supported. Skipping test."
);
return Promise.resolve();
@@ -24,7 +25,7 @@ export const imageSnapshot = ({
const storyUrl = `/iframe.html?selectedKind=${encodedKind}&selectedStory=${encodedStoryName}`;
const url = storybookUrl + storyUrl;
if (!browser || !page) {
- console.error(
+ logger.error(
`Error when generating image snapshot for test ${context.kind} - ${
context.story
} : It seems the headless browser is not running.`
@@ -36,7 +37,7 @@ export const imageSnapshot = ({
return page
.goto(url)
.catch(e => {
- console.error(
+ logger.error(
`ERROR WHILE CONNECTING TO ${url}, did you start or build the storybook first ? A storybook instance should be running or a static version should be built when using image snapshot feature.`,
e
);
diff --git a/addons/storyshots/stories/__snapshots__/storyshot.enzyme.test.js.snap b/addons/storyshots/stories/__snapshots__/storyshot.enzyme.test.js.snap
index a54673b29e9f..4457ca09552d 100644
--- a/addons/storyshots/stories/__snapshots__/storyshot.enzyme.test.js.snap
+++ b/addons/storyshots/stories/__snapshots__/storyshot.enzyme.test.js.snap
@@ -5,7 +5,12 @@ exports[`Storyshots Another Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
@@ -23,7 +28,12 @@ exports[`Storyshots Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
@@ -49,15 +59,13 @@ exports[`Storyshots Welcome to Storybook 1`] = `
This is a UI component dev environment for your app.
- We've added some basic stories inside the
-
+ We've added some basic stories inside the
src/stories
-
- directory.
+ directory.
A story is a single state of one or more UI components. You can have as many stories as you want.
@@ -66,17 +74,14 @@ exports[`Storyshots Welcome to Storybook 1`] = `
See these sample
-
stories
-
-
- for a component called
+
+ for a component called
@@ -95,7 +100,8 @@ exports[`Storyshots Welcome to Storybook 1`] = `
>
Button
- stories located at
+ stories located at
+
@@ -126,15 +132,13 @@ exports[`Storyshots Welcome to Storybook 1`] = `
NOTE:
- Have a look at the
-
+ Have a look at the
.storybook/webpack.config.js
-
- to add webpack loaders and plugins you are using in this project.
+ to add webpack loaders and plugins you are using in this project.
`;
diff --git a/addons/storyshots/stories/__snapshots__/storyshot.shallow.test.js.snap b/addons/storyshots/stories/__snapshots__/storyshot.shallow.test.js.snap
index 15dd9f09577d..e6ab111a8a4f 100644
--- a/addons/storyshots/stories/__snapshots__/storyshot.shallow.test.js.snap
+++ b/addons/storyshots/stories/__snapshots__/storyshot.shallow.test.js.snap
@@ -5,7 +5,12 @@ exports[`Storyshots Another Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
@@ -23,7 +28,12 @@ exports[`Storyshots Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
@@ -45,13 +55,11 @@ exports[`Storyshots Welcome to Storybook 1`] = `
This is a UI component dev environment for your app.
- We've added some basic stories inside the
-
+ We've added some basic stories inside the
src/stories
-
- directory.
+ directory.
A story is a single state of one or more UI components. You can have as many stories as you want.
@@ -60,16 +68,13 @@ exports[`Storyshots Welcome to Storybook 1`] = `
See these sample
-
stories
-
-
- for a component called
+
+ for a component called
Button
@@ -84,7 +89,8 @@ exports[`Storyshots Welcome to Storybook 1`] = `
Button
- stories located at
+ stories located at
+
src/stories/index.js
@@ -110,13 +116,11 @@ exports[`Storyshots Welcome to Storybook 1`] = `
NOTE:
- Have a look at the
-
+ Have a look at the
.storybook/webpack.config.js
-
- to add webpack loaders and plugins you are using in this project.
+ to add webpack loaders and plugins you are using in this project.
`;
diff --git a/addons/storyshots/stories/__snapshots__/storyshot.shallowWithOptions.test.js.snap b/addons/storyshots/stories/__snapshots__/storyshot.shallowWithOptions.test.js.snap
index c9abf91b5660..e810d1782d13 100644
--- a/addons/storyshots/stories/__snapshots__/storyshot.shallowWithOptions.test.js.snap
+++ b/addons/storyshots/stories/__snapshots__/storyshot.shallowWithOptions.test.js.snap
@@ -1,11 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Another Button with some emoji 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"😀 😎 👍 💯\\",\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
+exports[`Storyshots Another Button with some emoji 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":{\\"type\\":\\"span\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"role\\":\\"img\\",\\"aria-label\\":\\"so cool\\",\\"children\\":\\"😀 😎 👍 💯\\"},\\"_owner\\":null,\\"_store\\":{}},\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
exports[`Storyshots Another Button with text 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Hello Button\\",\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
-exports[`Storyshots Button with some emoji 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"😀 😎 👍 💯\\",\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
+exports[`Storyshots Button with some emoji 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":{\\"type\\":\\"span\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"role\\":\\"img\\",\\"aria-label\\":\\"so cool\\",\\"children\\":\\"😀 😎 👍 💯\\"},\\"_owner\\":null,\\"_store\\":{}},\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
exports[`Storyshots Button with text 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Hello Button\\",\\"className\\":\\"css-1yjiefr\\"},\\"_owner\\":null,\\"_store\\":{}}"`;
-exports[`Storyshots Welcome to Storybook 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Welcome to storybook\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"This is a UI component dev environment for your app.\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"We've added some basic stories inside the\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"src/stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"directory.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"A story is a single state of one or more UI components. You can have as many stories as you want.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"(Basically a story is like a visual test case.)\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"See these sample\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"role\\":\\"button\\",\\"tabIndex\\":\\"0\\",\\"children\\":\\"stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"for a component called\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Button\\"},\\"_owner\\":null,\\"_store\\":{}},\\".\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"Just like that, you can add your own components as stories.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"You can also edit those components and see changes right away.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"(Try editing the \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Button\\"},\\"_owner\\":null,\\"_store\\":{}},\\" stories located at \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"src/stories/index.js\\"},\\"_owner\\":null,\\"_store\\":{}},\\".)\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"Usually we create stories with smaller UI components in the app.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"Have a look at the\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"href\\":\\"https://storybook.js.org/basics/writing-stories\\",\\"target\\":\\"_blank\\",\\"rel\\":\\"noopener noreferrer\\",\\"children\\":\\"Writing Stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"section in our documentation.\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[{\\"type\\":\\"b\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"NOTE:\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"Have a look at the\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\".storybook/webpack.config.js\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"to add webpack loaders and plugins you are using in this project.\\"]},\\"_owner\\":null,\\"_store\\":{}}]},\\"_owner\\":null,\\"_store\\":{}}"`;
+exports[`Storyshots Welcome to Storybook 1`] = `"{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Welcome to storybook\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"This is a UI component dev environment for your app.\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"We've added some basic stories inside the \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"src/stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" directory.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"A story is a single state of one or more UI components. You can have as many stories as you want.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"(Basically a story is like a visual test case.)\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"See these sample\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"for a component called \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Button\\"},\\"_owner\\":null,\\"_store\\":{}},\\".\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"Just like that, you can add your own components as stories.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"You can also edit those components and see changes right away.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"(Try editing the \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"Button\\"},\\"_owner\\":null,\\"_store\\":{}},\\" stories located at\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"src/stories/index.js\\"},\\"_owner\\":null,\\"_store\\":{}},\\".)\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"p\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[\\"Usually we create stories with smaller UI components in the app.\\",{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"Have a look at the\\",\\" \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"href\\":\\"https://storybook.js.org/basics/writing-stories\\",\\"target\\":\\"_blank\\",\\"rel\\":\\"noopener noreferrer\\",\\"children\\":\\"Writing Stories\\"},\\"_owner\\":null,\\"_store\\":{}},\\" \\",\\"section in our documentation.\\"]},\\"_owner\\":null,\\"_store\\":{}},{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":[{\\"type\\":\\"b\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\"NOTE:\\"},\\"_owner\\":null,\\"_store\\":{}},{\\"type\\":\\"br\\",\\"key\\":null,\\"ref\\":null,\\"props\\":{},\\"_owner\\":null,\\"_store\\":{}},\\"Have a look at the \\",{\\"key\\":null,\\"ref\\":null,\\"props\\":{\\"children\\":\\".storybook/webpack.config.js\\"},\\"_owner\\":null,\\"_store\\":{}},\\" to add webpack loaders and plugins you are using in this project.\\"]},\\"_owner\\":null,\\"_store\\":{}}]},\\"_owner\\":null,\\"_store\\":{}}"`;
diff --git a/addons/storyshots/stories/directly_required/__snapshots__/index.storyshot b/addons/storyshots/stories/directly_required/__snapshots__/index.storyshot
index 354841be656e..154165f33e0e 100644
--- a/addons/storyshots/stories/directly_required/__snapshots__/index.storyshot
+++ b/addons/storyshots/stories/directly_required/__snapshots__/index.storyshot
@@ -5,7 +5,12 @@ exports[`Storyshots Another Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
diff --git a/addons/storyshots/stories/directly_required/index.js b/addons/storyshots/stories/directly_required/index.js
index 0b6cb2f94f98..7bc4dc08f9d4 100644
--- a/addons/storyshots/stories/directly_required/index.js
+++ b/addons/storyshots/stories/directly_required/index.js
@@ -1,9 +1,15 @@
import React from 'react';
-import { storiesOf } from '@storybook/react'; // eslint-disable-line
-import { action } from '@storybook/addon-actions'; // eslint-disable-line
+import { storiesOf } from '@storybook/react';
+import { action } from '@storybook/addon-actions';
import { Button } from '@storybook/react/demo';
storiesOf('Another Button', module)
.add('with text', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/addons/storyshots/stories/required_with_context/Button.stories.js b/addons/storyshots/stories/required_with_context/Button.stories.js
index 27496bf316cd..e63d097b98be 100644
--- a/addons/storyshots/stories/required_with_context/Button.stories.js
+++ b/addons/storyshots/stories/required_with_context/Button.stories.js
@@ -1,9 +1,15 @@
import React from 'react';
-import { storiesOf } from '@storybook/react'; // eslint-disable-line
-import { action } from '@storybook/addon-actions'; // eslint-disable-line
+import { storiesOf } from '@storybook/react';
+import { action } from '@storybook/addon-actions';
import { Button } from '@storybook/react/demo';
storiesOf('Button', module)
.add('with text', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot b/addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot
index 56b21f7fdec4..8494c5343f2e 100644
--- a/addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot
+++ b/addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot
@@ -5,7 +5,12 @@ exports[`Storyshots Button with some emoji 1`] = `
className="css-1yjiefr"
onClick={[Function]}
>
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
diff --git a/addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot b/addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot
index bc6abe86a6e7..68c15539e1fc 100644
--- a/addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot
+++ b/addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot
@@ -13,15 +13,13 @@ exports[`Storyshots Welcome to Storybook 1`] = `
This is a UI component dev environment for your app.
- We've added some basic stories inside the
-
+ We've added some basic stories inside the
src/stories
-
- directory.
+ directory.
A story is a single state of one or more UI components. You can have as many stories as you want.
@@ -30,17 +28,14 @@ exports[`Storyshots Welcome to Storybook 1`] = `
See these sample
-
stories
-
-
- for a component called
+
+ for a component called
@@ -59,7 +54,8 @@ exports[`Storyshots Welcome to Storybook 1`] = `
>
Button
- stories located at
+ stories located at
+
@@ -90,15 +86,13 @@ exports[`Storyshots Welcome to Storybook 1`] = `
NOTE:
- Have a look at the
-
+ Have a look at the
.storybook/webpack.config.js
-
- to add webpack loaders and plugins you are using in this project.
+ to add webpack loaders and plugins you are using in this project.
`;
diff --git a/addons/storyshots/tsconfig.json b/addons/storyshots/tsconfig.json
new file mode 100644
index 000000000000..84fb13689add
--- /dev/null
+++ b/addons/storyshots/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": [
+ "src/**/*.ts"
+ ],
+ "compileOnSave": false,
+ "compilerOptions": {
+ "rootDir": "./src"
+ }
+}
diff --git a/addons/viewport/package.json b/addons/viewport/package.json
index bc5f28b6a2ec..ddf4e5a4ce8d 100644
--- a/addons/viewport/package.json
+++ b/addons/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook addon to change the viewport size to mobile",
"keywords": [
"storybook"
@@ -11,7 +11,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/components": "^3.4.0-alpha.8",
"global": "^4.3.2",
"prop-types": "^15.5.10"
},
diff --git a/addons/viewport/src/components/RotateViewport.js b/addons/viewport/src/components/RotateViewport.js
index ef6c9c1011e7..6fd7b493dff9 100644
--- a/addons/viewport/src/components/RotateViewport.js
+++ b/addons/viewport/src/components/RotateViewport.js
@@ -10,8 +10,10 @@ export function RotateViewport({ active, ...props }) {
};
return (
- Rotate
-
+
+ Rotate
+
+
{active ? 'Vertical' : 'Landscape'}
diff --git a/addons/viewport/src/components/SelectViewport.js b/addons/viewport/src/components/SelectViewport.js
index c711ccc54864..230e360239d8 100644
--- a/addons/viewport/src/components/SelectViewport.js
+++ b/addons/viewport/src/components/SelectViewport.js
@@ -7,8 +7,10 @@ import * as styles from './styles';
export function SelectViewport({ activeViewport, onChange }) {
return (
-
Device
-
+
+ Device
+
+
Default
{Object.keys(viewports).map(key => (
diff --git a/addons/viewport/src/components/tests/Panel.test.js b/addons/viewport/src/components/tests/Panel.test.js
index 8915ca49ef3e..4ad4a189185a 100644
--- a/addons/viewport/src/components/tests/Panel.test.js
+++ b/addons/viewport/src/components/tests/Panel.test.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
+import { shallow } from 'enzyme';
import { document } from 'global';
import { Panel } from '../Panel';
diff --git a/addons/viewport/src/components/tests/RotateViewport.test.js b/addons/viewport/src/components/tests/RotateViewport.test.js
index 75d04a87b931..02dd22da6f1a 100644
--- a/addons/viewport/src/components/tests/RotateViewport.test.js
+++ b/addons/viewport/src/components/tests/RotateViewport.test.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
+import { shallow } from 'enzyme';
import { RotateViewport } from '../RotateViewport';
import * as styles from '../styles';
diff --git a/addons/viewport/src/components/tests/SelectViewport.test.js b/addons/viewport/src/components/tests/SelectViewport.test.js
index 2101cc445e9b..f43d30763d5c 100644
--- a/addons/viewport/src/components/tests/SelectViewport.test.js
+++ b/addons/viewport/src/components/tests/SelectViewport.test.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
+import { shallow } from 'enzyme';
import { SelectViewport } from '../SelectViewport';
import { viewports, defaultViewport } from '../viewportInfo';
import * as styles from '../styles';
diff --git a/app/angular/demo.js b/app/angular/demo.js
index e301e97f20e1..545f611dd696 100644
--- a/app/angular/demo.js
+++ b/app/angular/demo.js
@@ -1,5 +1,5 @@
/* eslint-disable global-require */
module.exports = {
- Welcome: require('./dist/demo/welcome.component.ts').default,
- Button: require('./dist/demo/button.component.ts').default,
+ Welcome: require('./dist/demo/welcome.component').default,
+ Button: require('./dist/demo/button.component').default,
};
diff --git a/app/angular/package.json b/app/angular/package.json
index 97643c836250..7503daee5b5c 100644
--- a/app/angular/package.json
+++ b/app/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook for Angular: Develop Angular Components in isolation with Hot Reloading.",
"homepage": "https://github.com/storybooks/storybook/tree/master/apps/angular",
"bugs": {
@@ -23,16 +23,16 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/core": "^3.4.0-alpha.6",
- "@storybook/node-logger": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/core": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
"airbnb-js-shims": "^1.4.1",
"angular2-template-loader": "^0.6.2",
- "autoprefixer": "^7.2.5",
+ "autoprefixer": "^7.2.6",
"babel-core": "^6.26.0",
"babel-loader": "^7.0.0",
"babel-plugin-macros": "^2.1.0",
@@ -43,8 +43,6 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.23.0",
"case-sensitive-paths-webpack-plugin": "^2.0.0",
- "chalk": "^2.1.0",
- "commander": "^2.13.0",
"common-tags": "^1.7.2",
"configstore": "^3.1.0",
"core-js": "^2.4.1",
@@ -64,39 +62,34 @@
"markdown-loader": "^2.0.2",
"node-sass": "^4.7.2",
"postcss-flexbugs-fixes": "^3.3.0",
- "postcss-loader": "^2.0.10",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.5.10",
"qs": "^6.5.1",
"raw-loader": "^0.5.1",
"react": "^16.0.0",
"react-dev-utils": "^5.0.0",
"react-dom": "^16.0.0",
- "react-modal": "^3.1.11",
+ "react-modal": "^3.2.1",
"redux": "^3.6.0",
"request": "^2.81.0",
"rxjs": "^5.4.2",
"sass-loader": "^6.0.6",
- "serve-favicon": "^2.4.3",
- "shelljs": "^0.8.1",
- "style-loader": "^0.20.1",
+ "style-loader": "^0.20.2",
"ts-loader": "^2.2.2",
- "uglifyjs-webpack-plugin": "^1.1.7",
+ "uglifyjs-webpack-plugin": "^1.2.0",
"url-loader": "^0.6.2",
"util-deprecate": "^1.0.2",
- "uuid": "^3.2.1",
- "webpack": "^2.5.1 || ^3.0.0",
- "webpack-dev-middleware": "^1.10.2",
- "webpack-hot-middleware": "^2.18.0",
+ "webpack": "^3.11.0",
"zone.js": "^0.8.20"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-plugin-transform-decorators": "^6.24.1",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
- "codelyzer": "^3.1.2",
+ "codelyzer": "^4.1.0",
"mock-fs": "^4.3.0",
- "nodemon": "^1.14.11",
- "typescript": "^2.7.1"
+ "nodemon": "^1.15.0",
+ "typescript": "^2.7.2"
},
"peerDependencies": {
"@angular/common": ">=4.0.0",
diff --git a/app/angular/src/client/preview/render.js b/app/angular/src/client/preview/render.js
index d53d95342278..c188ebc3513d 100644
--- a/app/angular/src/client/preview/render.js
+++ b/app/angular/src/client/preview/render.js
@@ -1,4 +1,4 @@
-import { renderNgApp, renderNgError, renderNoPreview } from './angular/helpers.ts';
+import { renderNgApp, renderNgError, renderNoPreview } from './angular/helpers';
const logger = console;
let previousKind = '';
diff --git a/app/angular/src/server/build.js b/app/angular/src/server/build.js
index cf7c810fbf34..804f258a0ba4 100755
--- a/app/angular/src/server/build.js
+++ b/app/angular/src/server/build.js
@@ -1,93 +1,12 @@
-import '@storybook/core/env';
-
-import webpack from 'webpack';
-import program from 'commander';
+import { buildStatic } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
import packageJson from '../../package.json';
import getBaseConfig from './config/webpack.config.prod';
import loadConfig from './config';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'production';
-
-program
- .version(packageJson.version)
- .option('-s, --static-dir ', 'Directory where to load static files from', parseList)
- .option('-o, --output-dir [dir-name]', 'Directory where to store built files')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option('-w, --watch', 'Enable watch mode')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}\n`));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- staticDir: 'SBCONFIG_STATIC_DIR',
- outputDir: 'SBCONFIG_OUTPUT_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
+buildStatic({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-const configDir = program.configDir || './.storybook';
-const outputDir = program.outputDir || './storybook-static';
-
-// create output directory if not exists
-shelljs.mkdir('-p', path.resolve(outputDir));
-// clear the static dir
-shelljs.rm('-rf', path.resolve(outputDir, 'static'));
-shelljs.cp(path.resolve(__dirname, 'public/favicon.ico'), outputDir);
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-// NOTE changes to env should be done before calling `getBaseConfig`
-const config = loadConfig('PRODUCTION', getBaseConfig(configDir), configDir);
-config.output.path = path.resolve(outputDir);
-
-// copy all static files
-if (program.staticDir) {
- program.staticDir.forEach(dir => {
- if (!fs.existsSync(dir)) {
- logger.error(`Error: no such directory to load static files: ${dir}`);
- process.exit(-1);
- }
- logger.info(`=> Copying static files from: ${dir}`);
- shelljs.cp('-r', `${dir}/*`, outputDir);
- });
-}
-
-// compile all resources with webpack and write them to the disk.
-logger.info('Building storybook ...');
-const webpackCb = (err, stats) => {
- if (err || stats.hasErrors()) {
- logger.error('Failed to build the storybook');
- // eslint-disable-next-line no-unused-expressions
- err && logger.error(err.message);
- // eslint-disable-next-line no-unused-expressions
- stats && stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e));
- process.exitCode = 1;
- }
- logger.info('Building storybook completed.');
-};
-const compiler = webpack(config);
-if (program.watch) {
- compiler.watch({}, webpackCb);
-} else {
- compiler.run(webpackCb);
-}
diff --git a/app/angular/src/server/config/webpack.config.js b/app/angular/src/server/config/webpack.config.js
index b6d2ddf57726..c9059d3cd095 100644
--- a/app/angular/src/server/config/webpack.config.js
+++ b/app/angular/src/server/config/webpack.config.js
@@ -4,8 +4,7 @@ import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
-import WatchMissingNodeModulesPlugin from './WatchMissingNodeModulesPlugin';
+import { WatchMissingNodeModulesPlugin, managerPath } from '@storybook/core/server';
import { includePaths, excludePaths, nodeModulesPaths, loadEnv, nodePaths } from './utils';
import babelLoaderConfig from './babel';
@@ -79,7 +78,7 @@ export default function(configDir) {
{
test: /\.html$/,
loader: 'raw-loader',
- exclude: /\.async\.css$/,
+ exclude: /\.async\.html$/,
},
{
test: /\.scss$/,
diff --git a/app/angular/src/server/config/webpack.config.prod.js b/app/angular/src/server/config/webpack.config.prod.js
index e649dbaf5b3d..9465dc127fea 100644
--- a/app/angular/src/server/config/webpack.config.prod.js
+++ b/app/angular/src/server/config/webpack.config.prod.js
@@ -4,7 +4,7 @@ import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { managerPath } from '@storybook/core/server';
import babelLoaderConfig from './babel.prod';
import { includePaths, excludePaths, loadEnv, nodePaths } from './utils';
@@ -97,6 +97,17 @@ export default function(configDir) {
test: /\.scss$/,
loaders: [require.resolve('raw-loader'), require.resolve('sass-loader')],
},
+ {
+ test: /\.md$/,
+ use: [
+ {
+ loader: 'html-loader',
+ },
+ {
+ loader: 'markdown-loader',
+ },
+ ],
+ },
],
},
resolve: {
diff --git a/app/angular/src/server/index.js b/app/angular/src/server/index.js
index c0c5ff601dee..69df1fe59e54 100755
--- a/app/angular/src/server/index.js
+++ b/app/angular/src/server/index.js
@@ -1,165 +1,12 @@
-import '@storybook/core/env';
-
-import express from 'express';
-import https from 'https';
-import favicon from 'serve-favicon';
-import program from 'commander';
+import { buildDev } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
-import storybook, { webpackValid } from './middleware';
import packageJson from '../../package.json';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-
-program
- .version(packageJson.version)
- .option('-p, --port [number]', 'Port to run Storybook (Required)', parseInt)
- .option('-h, --host [string]', 'Host to run Storybook')
- .option('-s, --static-dir ', 'Directory where to load static files from')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option(
- '--https',
- 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.'
- )
- .option(
- '--ssl-ca ',
- 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)',
- parseList
- )
- .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)')
- .option('--ssl-key ', 'Provide an SSL key. (Required with --https)')
- .option('--smoke-test', 'Exit after successful start')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}`) + chalk.reset('\n'));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- port: 'SBCONFIG_PORT',
- host: 'SBCONFIG_HOSTNAME',
- staticDir: 'SBCONFIG_STATIC_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
-});
-
-if (!program.port) {
- logger.error('Error: port to run Storybook is required!\n');
- program.help();
- process.exit(-1);
-}
-
-// Used with `app.listen` below
-const listenAddr = [program.port];
-
-if (program.host) {
- listenAddr.push(program.host);
-}
-
-const app = express();
-let server = app;
-
-if (program.https) {
- if (!program.sslCert) {
- logger.error('Error: --ssl-cert is required with --https');
- process.exit(-1);
- }
- if (!program.sslKey) {
- logger.error('Error: --ssl-key is required with --https');
- process.exit(-1);
- }
-
- const sslOptions = {
- ca: (program.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
- cert: fs.readFileSync(program.sslCert, 'utf-8'),
- key: fs.readFileSync(program.sslKey, 'utf-8'),
- };
-
- server = https.createServer(sslOptions, app);
-}
-
-let hasCustomFavicon = false;
-
-if (program.staticDir) {
- program.staticDir = parseList(program.staticDir);
- program.staticDir.forEach(dir => {
- const staticPath = path.resolve(dir);
- if (!fs.existsSync(staticPath)) {
- logger.error(`Error: no such directory to load static files: ${staticPath}`);
- process.exit(-1);
- }
- logger.info(`=> Loading static files from: ${staticPath} .`);
- app.use(express.static(staticPath, { index: false }));
-
- const faviconPath = path.resolve(staticPath, 'favicon.ico');
- if (fs.existsSync(faviconPath)) {
- hasCustomFavicon = true;
- app.use(favicon(faviconPath));
- }
- });
-}
-
-if (!hasCustomFavicon) {
- app.use(favicon(path.resolve(__dirname, 'public/favicon.ico')));
-}
-
-const configDir = program.configDir || './.storybook';
-
-// The repository info is sent to the storybook while running on
-// development mode so it'll be easier for tools to integrate.
-const exec = cmd => shelljs.exec(cmd, { silent: true }).stdout.trim();
-process.env.STORYBOOK_GIT_ORIGIN =
- process.env.STORYBOOK_GIT_ORIGIN || exec('git remote get-url origin');
-process.env.STORYBOOK_GIT_BRANCH =
- process.env.STORYBOOK_GIT_BRANCH || exec('git symbolic-ref HEAD --short');
-
-// NOTE changes to env should be done before calling `getBaseConfig`
-// `getBaseConfig` function which is called inside the middleware
-app.use(storybook(configDir));
-
-let serverResolve = () => {};
-let serverReject = () => {};
-const serverListening = new Promise((resolve, reject) => {
- serverResolve = resolve;
- serverReject = reject;
-});
-server.listen(...listenAddr, error => {
- if (error) {
- serverReject(error);
- } else {
- serverResolve();
- }
+import getBaseConfig from './config/webpack.config';
+import loadConfig from './config';
+
+buildDev({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-Promise.all([webpackValid, serverListening])
- .then(() => {
- const address = `http://${program.host || 'localhost'}:${program.port}/`;
- logger.info(`Storybook started on => ${chalk.cyan(address)}\n`);
- if (program.smokeTest) {
- process.exit(0);
- }
- })
- .catch(error => {
- if (error instanceof Error) {
- logger.error(error);
- }
- if (program.smokeTest) {
- process.exit(1);
- }
- });
diff --git a/app/angular/src/server/middleware.js b/app/angular/src/server/middleware.js
deleted file mode 100644
index 28e8554bccf5..000000000000
--- a/app/angular/src/server/middleware.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import path from 'path';
-import { Router } from 'express';
-import webpack from 'webpack';
-import webpackDevMiddleware from 'webpack-dev-middleware';
-import webpackHotMiddleware from 'webpack-hot-middleware';
-import getBaseConfig from './config/webpack.config';
-import loadConfig from './config';
-import { getMiddleware } from './utils';
-
-let webpackResolve = () => {};
-let webpackReject = () => {};
-export const webpackValid = new Promise((resolve, reject) => {
- webpackResolve = resolve;
- webpackReject = reject;
-});
-
-export default function(configDir) {
- // Build the webpack configuration using the `getBaseConfig`
- // custom `.babelrc` file and `webpack.config.js` files
- const config = loadConfig('DEVELOPMENT', getBaseConfig(configDir), configDir);
- const middlewareFn = getMiddleware(configDir);
-
- // remove the leading '/'
- let { publicPath } = config.output;
- if (publicPath[0] === '/') {
- publicPath = publicPath.slice(1);
- }
-
- const compiler = webpack(config);
- const devMiddlewareOptions = {
- noInfo: true,
- publicPath: config.output.publicPath,
- watchOptions: config.watchOptions || {},
- ...config.devServer,
- };
-
- const router = new Router();
- const webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, devMiddlewareOptions);
- router.use(webpackDevMiddlewareInstance);
- router.use(webpackHotMiddleware(compiler));
-
- // custom middleware
- middlewareFn(router);
-
- webpackDevMiddlewareInstance.waitUntilValid(stats => {
- router.get('/', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/index.html`));
- });
-
- router.get('/iframe.html', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/iframe.html`));
- });
-
- if (stats.toJson().errors.length) {
- webpackReject(stats);
- } else {
- webpackResolve(stats);
- }
- });
-
- return router;
-}
diff --git a/app/angular/src/server/utils.js b/app/angular/src/server/utils.js
index 71396437a03d..913f4c3219ea 100644
--- a/app/angular/src/server/utils.js
+++ b/app/angular/src/server/utils.js
@@ -5,10 +5,6 @@ import deprecate from 'util-deprecate';
const fallbackHeadUsage = deprecate(() => {},
'Usage of head.html has been deprecated. Please rename head.html to preview-head.html');
-export function parseList(str) {
- return str.split(',');
-}
-
export function getPreviewHeadHtml(configDirPath) {
const headHtmlPath = path.resolve(configDirPath, 'preview-head.html');
const fallbackHtmlPath = path.resolve(configDirPath, 'head.html');
@@ -32,25 +28,3 @@ export function getManagerHeadHtml(configDirPath) {
return scriptHtml;
}
-
-export function getEnvConfig(program, configEnv) {
- Object.keys(configEnv).forEach(fieldName => {
- const envVarName = configEnv[fieldName];
- const envVarValue = process.env[envVarName];
- if (envVarValue) {
- program[fieldName] = envVarValue; // eslint-disable-line
- }
- });
-}
-
-export function getMiddleware(configDir) {
- const middlewarePath = path.resolve(configDir, 'middleware.js');
- if (fs.existsSync(middlewarePath)) {
- let middlewareModule = require(middlewarePath); // eslint-disable-line
- if (middlewareModule.__esModule) { // eslint-disable-line
- middlewareModule = middlewareModule.default;
- }
- return middlewareModule;
- }
- return () => {};
-}
diff --git a/app/angular/tsconfig.json b/app/angular/tsconfig.json
index 1b9dd767251f..84fb13689add 100644
--- a/app/angular/tsconfig.json
+++ b/app/angular/tsconfig.json
@@ -1,13 +1,10 @@
{
+ "extends": "../../tsconfig.json",
+ "include": [
+ "src/**/*.ts"
+ ],
"compileOnSave": false,
"compilerOptions": {
- "emitDecoratorMetadata": true,
- "experimentalDecorators": true,
- "skipLibCheck": true,
- "noImplicitAny": true,
- "lib": [
- "es2016",
- "dom"
- ]
+ "rootDir": "./src"
}
}
diff --git a/app/polymer/package.json b/app/polymer/package.json
index f9a2cc82f8a0..4900e87c4d5a 100644
--- a/app/polymer/package.json
+++ b/app/polymer/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/polymer",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook for Polymer: Develop Polymer components in isolation with Hot Reloading.",
"homepage": "https://github.com/storybooks/storybook/tree/master/apps/polymer",
"bugs": {
@@ -22,15 +22,15 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/client-logger": "^3.4.0-alpha.6",
- "@storybook/core": "^3.4.0-alpha.6",
- "@storybook/node-logger": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/client-logger": "^3.4.0-alpha.8",
+ "@storybook/core": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
"@webcomponents/webcomponentsjs": "^1.1.0",
"airbnb-js-shims": "^1.4.1",
- "autoprefixer": "^7.1.6",
+ "autoprefixer": "^7.2.6",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-plugin-macros": "^2.1.0",
@@ -45,11 +45,9 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "chalk": "^2.3.0",
- "commander": "^2.11.0",
"common-tags": "^1.4.0",
"configstore": "^3.1.1",
- "copy-webpack-plugin": "^4.2.0",
+ "copy-webpack-plugin": "^4.4.0",
"core-js": "^2.5.1",
"css-loader": "^0.28.9",
"dotenv-webpack": "^1.5.4",
@@ -64,27 +62,23 @@
"lodash.pick": "^4.4.0",
"polymer-webpack-loader": "2.0.1",
"postcss-flexbugs-fixes": "^3.3.0",
- "postcss-loader": "^2.0.8",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.6.0",
"qs": "^6.5.1",
"react": "^16.0.0",
"react-dev-utils": "^5.0.0",
"react-dom": "^16.0.0",
- "react-modal": "^3.1.11",
+ "react-modal": "^3.2.1",
"redux": "^3.7.2",
"request": "^2.83.0",
- "serve-favicon": "^2.4.5",
- "shelljs": "^0.8.1",
- "style-loader": "^0.20.1",
+ "style-loader": "^0.20.2",
+ "uglifyjs-webpack-plugin": "^1.2.0",
"url-loader": "^0.6.2",
"util-deprecate": "^1.0.2",
- "uuid": "^3.2.1",
- "webpack": "^3.6.0",
- "webpack-dev-middleware": "^1.12.0",
- "webpack-hot-middleware": "^2.20.0"
+ "webpack": "^3.11.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",
- "nodemon": "^1.12.1"
+ "nodemon": "^1.15.0"
}
}
diff --git a/app/polymer/src/client/preview/index.js b/app/polymer/src/client/preview/index.js
index 2d7bfe85f327..1b7632cfa72e 100644
--- a/app/polymer/src/client/preview/index.js
+++ b/app/polymer/src/client/preview/index.js
@@ -23,9 +23,7 @@ const isBrowser =
!(navigator.userAgent.indexOf('jsdom') > -1);
const storyStore = new StoryStore();
-/* eslint-disable no-underscore-dangle */
const reduxStore = createStore(reducer);
-/* eslint-enable */
const context = { storyStore, reduxStore };
if (isBrowser) {
diff --git a/app/polymer/src/server/build.js b/app/polymer/src/server/build.js
index 3f05ed3b4b76..804f258a0ba4 100755
--- a/app/polymer/src/server/build.js
+++ b/app/polymer/src/server/build.js
@@ -1,93 +1,12 @@
-import '@storybook/core/env';
-
-import webpack from 'webpack';
-import program from 'commander';
+import { buildStatic } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
import packageJson from '../../package.json';
import getBaseConfig from './config/webpack.config.prod';
import loadConfig from './config';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'production';
-
-program
- .version(packageJson.version)
- .option('-s, --static-dir ', 'Directory where to load static files from', parseList)
- .option('-o, --output-dir [dir-name]', 'Directory where to store built files')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option('-w, --watch', 'Enable watch mode')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}\n`));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- staticDir: 'SBCONFIG_STATIC_DIR',
- outputDir: 'SBCONFIG_OUTPUT_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
+buildStatic({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-const configDir = program.configDir || './.storybook';
-const outputDir = program.outputDir || './storybook-static';
-
-// create output directory if not exists
-shelljs.mkdir('-p', path.resolve(outputDir));
-// clear the static dir
-shelljs.rm('-rf', path.resolve(outputDir, 'static'));
-shelljs.cp(path.resolve(__dirname, 'public/favicon.ico'), outputDir);
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-// NOTE changes to env should be done before calling `getBaseConfig`
-const config = loadConfig('PRODUCTION', getBaseConfig(), configDir);
-config.output.path = path.resolve(outputDir);
-
-// copy all static files
-if (program.staticDir) {
- program.staticDir.forEach(dir => {
- if (!fs.existsSync(dir)) {
- logger.error(`Error: no such directory to load static files: ${dir}`);
- process.exit(-1);
- }
- logger.log(`=> Copying static files from: ${dir}`);
- shelljs.cp('-r', `${dir}/*`, outputDir);
- });
-}
-
-// compile all resources with webpack and write them to the disk.
-logger.info('Building storybook ...');
-const webpackCb = (err, stats) => {
- if (err || stats.hasErrors()) {
- logger.error('Failed to build the storybook');
- // eslint-disable-next-line no-unused-expressions
- err && logger.error(err.message);
- // eslint-disable-next-line no-unused-expressions
- stats && stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e));
- process.exitCode = 1;
- }
- logger.info('Building storybook completed.');
-};
-const compiler = webpack(config);
-if (program.watch) {
- compiler.watch({}, webpackCb);
-} else {
- compiler.run(webpackCb);
-}
diff --git a/app/polymer/src/server/config/WatchMissingNodeModulesPlugin.js b/app/polymer/src/server/config/WatchMissingNodeModulesPlugin.js
deleted file mode 100644
index 962bbb97ff45..000000000000
--- a/app/polymer/src/server/config/WatchMissingNodeModulesPlugin.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-// @remove-on-eject-end
-
-// This Webpack plugin ensures `npm install ` forces a project rebuild.
-// We’re not sure why this isn't Webpack's default behavior.
-// See https://github.com/facebookincubator/create-react-app/issues/186.
-
-function WatchMissingNodeModulesPlugin(nodeModulesPath) {
- this.nodeModulesPath = nodeModulesPath;
-}
-
-WatchMissingNodeModulesPlugin.prototype.apply = function apply(compiler) {
- compiler.plugin('emit', (compilation, callback) => {
- const missingDeps = compilation.missingDependencies;
- const { nodeModulesPath } = this;
-
- // If any missing files are expected to appear in node_modules...
- if (missingDeps.some(file => file.indexOf(nodeModulesPath) !== -1)) {
- // ...tell webpack to watch node_modules recursively until they appear.
- compilation.contextDependencies.push(nodeModulesPath);
- }
-
- callback();
- });
-};
-
-module.exports = WatchMissingNodeModulesPlugin;
diff --git a/app/polymer/src/server/config/babel.prod.js b/app/polymer/src/server/config/babel.prod.js
index 59a87fe49bc3..fe982349f250 100644
--- a/app/polymer/src/server/config/babel.prod.js
+++ b/app/polymer/src/server/config/babel.prod.js
@@ -13,7 +13,12 @@ module.exports = {
],
require.resolve('babel-preset-stage-0'),
require.resolve('babel-preset-react'),
- require.resolve('babel-preset-minify'),
+ [
+ require.resolve('babel-preset-minify'),
+ {
+ mangle: false,
+ },
+ ],
],
plugins: [
require.resolve('babel-plugin-transform-regenerator'),
diff --git a/app/polymer/src/server/config/utils.js b/app/polymer/src/server/config/utils.js
index 0236481efd78..fc73c38a37f0 100644
--- a/app/polymer/src/server/config/utils.js
+++ b/app/polymer/src/server/config/utils.js
@@ -33,5 +33,3 @@ export function loadEnv(options = {}) {
'process.env': env,
};
}
-
-export const getConfigDir = () => process.env.SBCONFIG_CONFIG_DIR || './.storybook';
diff --git a/app/polymer/src/server/config/webpack.config.js b/app/polymer/src/server/config/webpack.config.js
index daf5560ddb84..1d0b1ccc3d96 100644
--- a/app/polymer/src/server/config/webpack.config.js
+++ b/app/polymer/src/server/config/webpack.config.js
@@ -5,22 +5,14 @@ import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import CopyWebpackPlugin from 'copy-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { WatchMissingNodeModulesPlugin, managerPath } from '@storybook/core/server';
-import WatchMissingNodeModulesPlugin from './WatchMissingNodeModulesPlugin';
-import {
- getConfigDir,
- includePaths,
- excludePaths,
- nodeModulesPaths,
- loadEnv,
- nodePaths,
-} from './utils';
+import { includePaths, excludePaths, nodeModulesPaths, loadEnv, nodePaths } from './utils';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
import babelLoaderConfig from './babel';
import { version } from '../../../package.json';
-export default function() {
+export default function(configDir) {
const config = {
devtool: 'cheap-module-source-map',
entry: {
@@ -42,7 +34,7 @@ export default function() {
filename: 'index.html',
chunks: ['manager'],
data: {
- managerHead: getManagerHeadHtml(getConfigDir()),
+ managerHead: getManagerHeadHtml(configDir),
version,
},
template: require.resolve('../index.html.ejs'),
@@ -51,7 +43,7 @@ export default function() {
filename: 'iframe.html',
excludeChunks: ['manager'],
data: {
- previewHead: getPreviewHeadHtml(getConfigDir()),
+ previewHead: getPreviewHeadHtml(configDir),
},
template: require.resolve('../iframe.html.ejs'),
}),
diff --git a/app/polymer/src/server/config/webpack.config.prod.js b/app/polymer/src/server/config/webpack.config.prod.js
index 5c8e5bfd55c7..34cb9c69c340 100644
--- a/app/polymer/src/server/config/webpack.config.prod.js
+++ b/app/polymer/src/server/config/webpack.config.prod.js
@@ -1,15 +1,16 @@
import webpack from 'webpack';
+import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import CopyWebpackPlugin from 'copy-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { managerPath } from '@storybook/core/server';
import babelLoaderConfig from './babel.prod';
-import { getConfigDir, includePaths, excludePaths, loadEnv, nodePaths } from './utils';
+import { includePaths, excludePaths, loadEnv, nodePaths } from './utils';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
import { version } from '../../../package.json';
-export default function() {
+export default function(configDir) {
const entries = {
preview: [require.resolve('./polyfills'), require.resolve('./globals')],
manager: [require.resolve('./polyfills'), managerPath],
@@ -34,7 +35,7 @@ export default function() {
filename: 'index.html',
chunks: ['manager'],
data: {
- managerHead: getManagerHeadHtml(getConfigDir()),
+ managerHead: getManagerHeadHtml(configDir),
version,
},
template: require.resolve('../index.html.ejs'),
@@ -43,7 +44,7 @@ export default function() {
filename: 'iframe.html',
excludeChunks: ['manager'],
data: {
- previewHead: getPreviewHeadHtml(getConfigDir()),
+ previewHead: getPreviewHeadHtml(configDir),
},
template: require.resolve('../iframe.html.ejs'),
}),
@@ -52,15 +53,18 @@ export default function() {
{ from: require.resolve('@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js') },
]),
new webpack.DefinePlugin(loadEnv({ production: true })),
- new webpack.optimize.UglifyJsPlugin({
- compress: {
- screw_ie8: true,
+ new UglifyJsPlugin({
+ parallel: true,
+ uglifyOptions: {
+ ie8: false,
+ mangle: false,
warnings: false,
- },
- mangle: false,
- output: {
- comments: false,
- screw_ie8: true,
+ compress: {
+ keep_fnames: true,
+ },
+ output: {
+ comments: false,
+ },
},
}),
new Dotenv({ silent: true }),
diff --git a/app/polymer/src/server/index.js b/app/polymer/src/server/index.js
index f4e504bf0662..69df1fe59e54 100755
--- a/app/polymer/src/server/index.js
+++ b/app/polymer/src/server/index.js
@@ -1,168 +1,12 @@
-import '@storybook/core/env';
-
-import express from 'express';
-import https from 'https';
-import favicon from 'serve-favicon';
-import program from 'commander';
+import { buildDev } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
-import storybook, { webpackValid } from './middleware';
import packageJson from '../../package.json';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-
-program
- .version(packageJson.version)
- .option('-p, --port [number]', 'Port to run Storybook (Required)', str => parseInt(str, 10))
- .option('-h, --host [string]', 'Host to run Storybook')
- .option('-s, --static-dir ', 'Directory where to load static files from')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option(
- '--https',
- 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.'
- )
- .option(
- '--ssl-ca ',
- 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)',
- parseList
- )
- .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)')
- .option('--ssl-key ', 'Provide an SSL key. (Required with --https)')
- .option('--smoke-test', 'Exit after successful start')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}`) + chalk.reset('\n'));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- port: 'SBCONFIG_PORT',
- host: 'SBCONFIG_HOSTNAME',
- staticDir: 'SBCONFIG_STATIC_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
-});
-
-if (!program.port) {
- logger.error('Error: port to run Storybook is required!\n');
- program.help();
- process.exit(-1);
-}
-
-// Used with `app.listen` below
-const listenAddr = [program.port];
-
-if (program.host) {
- listenAddr.push(program.host);
-}
-
-const app = express();
-let server = app;
-
-if (program.https) {
- if (!program.sslCert) {
- logger.error('Error: --ssl-cert is required with --https');
- process.exit(-1);
- }
- if (!program.sslKey) {
- logger.error('Error: --ssl-key is required with --https');
- process.exit(-1);
- }
-
- const sslOptions = {
- ca: (program.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
- cert: fs.readFileSync(program.sslCert, 'utf-8'),
- key: fs.readFileSync(program.sslKey, 'utf-8'),
- };
-
- server = https.createServer(sslOptions, app);
-}
-
-let hasCustomFavicon = false;
-
-if (program.staticDir) {
- program.staticDir = parseList(program.staticDir);
- program.staticDir.forEach(dir => {
- const staticPath = path.resolve(dir);
- if (!fs.existsSync(staticPath)) {
- logger.error(`Error: no such directory to load static files: ${staticPath}`);
- process.exit(-1);
- }
- logger.log(`=> Loading static files from: ${staticPath} .`);
- app.use(express.static(staticPath, { index: false }));
-
- const faviconPath = path.resolve(staticPath, 'favicon.ico');
- if (fs.existsSync(faviconPath)) {
- hasCustomFavicon = true;
- app.use(favicon(faviconPath));
- }
- });
-}
-
-if (!hasCustomFavicon) {
- app.use(favicon(path.resolve(__dirname, 'public/favicon.ico')));
-}
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-const configDir = program.configDir || './.storybook';
-
-// The repository info is sent to the storybook while running on
-// development mode so it'll be easier for tools to integrate.
-const exec = cmd => shelljs.exec(cmd, { silent: true }).stdout.trim();
-process.env.STORYBOOK_GIT_ORIGIN =
- process.env.STORYBOOK_GIT_ORIGIN || exec('git remote get-url origin');
-process.env.STORYBOOK_GIT_BRANCH =
- process.env.STORYBOOK_GIT_BRANCH || exec('git symbolic-ref HEAD --short');
-
-// NOTE changes to env should be done before calling `getBaseConfig`
-// `getBaseConfig` function which is called inside the middleware
-app.use(storybook(configDir));
-
-let serverResolve = () => {};
-let serverReject = () => {};
-const serverListening = new Promise((resolve, reject) => {
- serverResolve = resolve;
- serverReject = reject;
-});
-server.listen(...listenAddr, error => {
- if (error) {
- serverReject(error);
- } else {
- serverResolve();
- }
+import getBaseConfig from './config/webpack.config';
+import loadConfig from './config';
+
+buildDev({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-Promise.all([webpackValid, serverListening])
- .then(() => {
- const proto = program.https ? 'https' : 'http';
- const address = `${proto}://${program.host || 'localhost'}:${program.port}/`;
- logger.info(`Storybook started on => ${chalk.cyan(address)}\n`);
- if (program.smokeTest) {
- process.exit(0);
- }
- })
- .catch(error => {
- if (error instanceof Error) {
- logger.error(error);
- }
- if (program.smokeTest) {
- process.exit(1);
- }
- });
diff --git a/app/polymer/src/server/middleware.js b/app/polymer/src/server/middleware.js
deleted file mode 100644
index 1dd6fa775b11..000000000000
--- a/app/polymer/src/server/middleware.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Router } from 'express';
-import webpack from 'webpack';
-import path from 'path';
-import webpackDevMiddleware from 'webpack-dev-middleware';
-import webpackHotMiddleware from 'webpack-hot-middleware';
-import getBaseConfig from './config/webpack.config';
-import loadConfig from './config';
-import { getMiddleware } from './utils';
-
-let webpackResolve = () => {};
-let webpackReject = () => {};
-export const webpackValid = new Promise((resolve, reject) => {
- webpackResolve = resolve;
- webpackReject = reject;
-});
-
-export default function(configDir) {
- // Build the webpack configuration using the `getBaseConfig`
- // custom `.babelrc` file and `webpack.config.js` files
- const config = loadConfig('DEVELOPMENT', getBaseConfig(), configDir);
- const middlewareFn = getMiddleware(configDir);
-
- // remove the leading '/'
- let { publicPath } = config.output;
- if (publicPath[0] === '/') {
- publicPath = publicPath.slice(1);
- }
-
- const compiler = webpack(config);
- const devMiddlewareOptions = {
- noInfo: true,
- publicPath: config.output.publicPath,
- watchOptions: config.watchOptions || {},
- ...config.devServer,
- };
-
- const router = new Router();
- const webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, devMiddlewareOptions);
- router.use(webpackDevMiddlewareInstance);
- router.use(webpackHotMiddleware(compiler));
-
- // custom middleware
- middlewareFn(router);
-
- webpackDevMiddlewareInstance.waitUntilValid(stats => {
- router.get('/', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/index.html`));
- });
-
- router.get('/iframe.html', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/iframe.html`));
- });
-
- if (stats.toJson().errors.length) {
- webpackReject(stats);
- } else {
- webpackResolve(stats);
- }
- });
-
- return router;
-}
diff --git a/app/polymer/src/server/utils.js b/app/polymer/src/server/utils.js
index 71396437a03d..913f4c3219ea 100644
--- a/app/polymer/src/server/utils.js
+++ b/app/polymer/src/server/utils.js
@@ -5,10 +5,6 @@ import deprecate from 'util-deprecate';
const fallbackHeadUsage = deprecate(() => {},
'Usage of head.html has been deprecated. Please rename head.html to preview-head.html');
-export function parseList(str) {
- return str.split(',');
-}
-
export function getPreviewHeadHtml(configDirPath) {
const headHtmlPath = path.resolve(configDirPath, 'preview-head.html');
const fallbackHtmlPath = path.resolve(configDirPath, 'head.html');
@@ -32,25 +28,3 @@ export function getManagerHeadHtml(configDirPath) {
return scriptHtml;
}
-
-export function getEnvConfig(program, configEnv) {
- Object.keys(configEnv).forEach(fieldName => {
- const envVarName = configEnv[fieldName];
- const envVarValue = process.env[envVarName];
- if (envVarValue) {
- program[fieldName] = envVarValue; // eslint-disable-line
- }
- });
-}
-
-export function getMiddleware(configDir) {
- const middlewarePath = path.resolve(configDir, 'middleware.js');
- if (fs.existsSync(middlewarePath)) {
- let middlewareModule = require(middlewarePath); // eslint-disable-line
- if (middlewareModule.__esModule) { // eslint-disable-line
- middlewareModule = middlewareModule.default;
- }
- return middlewareModule;
- }
- return () => {};
-}
diff --git a/app/react-native/package.json b/app/react-native/package.json
index 17be1836b7da..de6d21b0f7f3 100644
--- a/app/react-native/package.json
+++ b/app/react-native/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react-native",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "A better way to develop React Native Components for your app",
"keywords": [
"react",
@@ -25,13 +25,13 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-websocket": "^3.4.0-alpha.6",
- "@storybook/core": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
- "autoprefixer": "^7.2.5",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-websocket": "^3.4.0-alpha.8",
+ "@storybook/core": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
+ "autoprefixer": "^7.2.6",
"babel-loader": "^7.1.2",
"babel-plugin-macros": "^2.1.0",
"babel-plugin-syntax-async-functions": "^6.13.0",
@@ -48,7 +48,7 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "commander": "^2.13.0",
+ "commander": "^2.14.1",
"css-loader": "^0.28.9",
"express": "^4.16.2",
"file-loader": "^1.1.6",
@@ -57,18 +57,18 @@
"html-webpack-plugin": "^2.30.1",
"json-loader": "^0.5.7",
"json5": "^0.5.1",
- "postcss-loader": "^2.0.10",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.6.0",
"react-native-compat": "^1.0.0",
- "react-native-iphone-x-helper": "^1.0.1",
+ "react-native-iphone-x-helper": "^1.0.2",
"shelljs": "^0.8.1",
- "style-loader": "^0.20.1",
- "uglifyjs-webpack-plugin": "^1.1.7",
+ "style-loader": "^0.20.2",
+ "uglifyjs-webpack-plugin": "^1.2.0",
"url-loader": "^0.6.2",
"url-parse": "^1.1.9",
"util-deprecate": "^1.0.2",
"uuid": "^3.2.1",
- "webpack": "^3.10.0",
+ "webpack": "^3.11.0",
"webpack-dev-middleware": "^1.12.2",
"webpack-hot-middleware": "^2.21.0",
"ws": "^3.3.3"
diff --git a/app/react/package.json b/app/react/package.json
index 155fd768b804..4e75feabcb3e 100644
--- a/app/react/package.json
+++ b/app/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybooks/storybook/tree/master/app/react",
"bugs": {
@@ -23,16 +23,16 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/client-logger": "^3.4.0-alpha.6",
- "@storybook/core": "^3.4.0-alpha.6",
- "@storybook/node-logger": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/client-logger": "^3.4.0-alpha.8",
+ "@storybook/core": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
"airbnb-js-shims": "^1.4.1",
- "autoprefixer": "^7.2.5",
+ "autoprefixer": "^7.2.6",
"babel-loader": "^7.1.2",
"babel-plugin-macros": "^2.1.0",
"babel-plugin-react-docgen": "^1.8.2",
@@ -45,8 +45,6 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "chalk": "^2.3.0",
- "commander": "^2.13.0",
"common-tags": "^1.7.2",
"configstore": "^3.1.1",
"core-js": "^2.5.3",
@@ -56,7 +54,7 @@
"file-loader": "^1.1.6",
"find-cache-dir": "^1.0.0",
"glamor": "^2.20.40",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"global": "^4.3.2",
"html-loader": "^0.5.5",
"html-webpack-plugin": "^2.30.1",
@@ -67,25 +65,20 @@
"markdown-loader": "^2.0.2",
"npmlog": "^4.1.2",
"postcss-flexbugs-fixes": "^3.3.0",
- "postcss-loader": "^2.0.10",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.6.0",
"qs": "^6.5.1",
"react-dev-utils": "^5.0.0",
"redux": "^3.7.2",
"request": "^2.83.0",
- "serve-favicon": "^2.4.5",
- "shelljs": "^0.8.1",
- "style-loader": "^0.20.1",
- "uglifyjs-webpack-plugin": "^1.1.7",
+ "style-loader": "^0.20.2",
+ "uglifyjs-webpack-plugin": "^1.2.0",
"url-loader": "^0.6.2",
"util-deprecate": "^1.0.2",
- "uuid": "^3.2.1",
- "webpack": "^3.10.0",
- "webpack-dev-middleware": "^1.12.2",
- "webpack-hot-middleware": "^2.21.0"
+ "webpack": "^3.11.0"
},
"devDependencies": {
- "nodemon": "^1.14.11"
+ "nodemon": "^1.15.0"
},
"peerDependencies": {
"babel-core": "^6.26.0 || ^7.0.0-0",
diff --git a/app/react/src/client/preview/index.js b/app/react/src/client/preview/index.js
index 2d7bfe85f327..1b7632cfa72e 100644
--- a/app/react/src/client/preview/index.js
+++ b/app/react/src/client/preview/index.js
@@ -23,9 +23,7 @@ const isBrowser =
!(navigator.userAgent.indexOf('jsdom') > -1);
const storyStore = new StoryStore();
-/* eslint-disable no-underscore-dangle */
const reduxStore = createStore(reducer);
-/* eslint-enable */
const context = { storyStore, reduxStore };
if (isBrowser) {
diff --git a/app/react/src/demo/Welcome.js b/app/react/src/demo/Welcome.js
index fcde670c95fb..e2ca878619e7 100644
--- a/app/react/src/demo/Welcome.js
+++ b/app/react/src/demo/Welcome.js
@@ -33,35 +33,39 @@ const Link = glamorous.a({
paddingBottom: 2,
});
+const NavButton = glamorous(Link.withComponent('button'))({
+ borderTop: 'none',
+ borderRight: 'none',
+ borderLeft: 'none',
+ backgroundColor: 'transparent',
+ padding: 0,
+ cursor: 'pointer',
+ font: 'inherit',
+});
const StoryLink = Link.withComponent(LinkTo);
-const Welcome = props =>
+const Welcome = props => (
Welcome to storybook
This is a UI component dev environment for your app.
- We've added some basic stories inside the
- {' '}
- src/stories
- {' '}
- directory.
+ We've added some basic stories inside the src/stories directory.
- A story is a single state of one or more UI components. You can have as many stories as
- you want.
+ A story is a single state of one or more UI components. You can have as many stories as you
+ want.
(Basically a story is like a visual test case.)
- See these sample
- {' '}
- {props.showApp
- ? stories
- : stories
- }
- {' '}
- for a component called
- {' '}
- Button
+ See these sample{' '}
+ {props.showApp ? (
+ stories
+ ) : (
+
+ stories
+
+ )}{' '}
+ for a component called Button
.
@@ -69,34 +73,29 @@ const Welcome = props =>
You can also edit those components and see changes right away.
- (Try editing the Button stories
- located at src/stories/index.js .)
+ (Try editing the Button stories located at{' '}
+ src/stories/index.js .)
Usually we create stories with smaller UI components in the app.
- Have a look at the
- {' '}
+ Have a look at the{' '}
Writing Stories
-
- {' '}
+ {' '}
section in our documentation.
NOTE:
- Have a look at the
- {' '}
- .storybook/webpack.config.js
- {' '}
- to add webpack
+ Have a look at the .storybook/webpack.config.js to add webpack
loaders and plugins you are using in this project.
- ;
+
+);
Welcome.displayName = 'Welcome';
Welcome.propTypes = {
@@ -104,5 +103,10 @@ Welcome.propTypes = {
showKind: PropTypes.string,
showStory: PropTypes.string,
};
+Welcome.defaultProps = {
+ showApp: null,
+ showKind: null,
+ showStory: null,
+};
export { Welcome as default };
diff --git a/app/react/src/server/build.js b/app/react/src/server/build.js
index cf7c810fbf34..804f258a0ba4 100755
--- a/app/react/src/server/build.js
+++ b/app/react/src/server/build.js
@@ -1,93 +1,12 @@
-import '@storybook/core/env';
-
-import webpack from 'webpack';
-import program from 'commander';
+import { buildStatic } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
import packageJson from '../../package.json';
import getBaseConfig from './config/webpack.config.prod';
import loadConfig from './config';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'production';
-
-program
- .version(packageJson.version)
- .option('-s, --static-dir ', 'Directory where to load static files from', parseList)
- .option('-o, --output-dir [dir-name]', 'Directory where to store built files')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option('-w, --watch', 'Enable watch mode')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}\n`));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- staticDir: 'SBCONFIG_STATIC_DIR',
- outputDir: 'SBCONFIG_OUTPUT_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
+buildStatic({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-const configDir = program.configDir || './.storybook';
-const outputDir = program.outputDir || './storybook-static';
-
-// create output directory if not exists
-shelljs.mkdir('-p', path.resolve(outputDir));
-// clear the static dir
-shelljs.rm('-rf', path.resolve(outputDir, 'static'));
-shelljs.cp(path.resolve(__dirname, 'public/favicon.ico'), outputDir);
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-// NOTE changes to env should be done before calling `getBaseConfig`
-const config = loadConfig('PRODUCTION', getBaseConfig(configDir), configDir);
-config.output.path = path.resolve(outputDir);
-
-// copy all static files
-if (program.staticDir) {
- program.staticDir.forEach(dir => {
- if (!fs.existsSync(dir)) {
- logger.error(`Error: no such directory to load static files: ${dir}`);
- process.exit(-1);
- }
- logger.info(`=> Copying static files from: ${dir}`);
- shelljs.cp('-r', `${dir}/*`, outputDir);
- });
-}
-
-// compile all resources with webpack and write them to the disk.
-logger.info('Building storybook ...');
-const webpackCb = (err, stats) => {
- if (err || stats.hasErrors()) {
- logger.error('Failed to build the storybook');
- // eslint-disable-next-line no-unused-expressions
- err && logger.error(err.message);
- // eslint-disable-next-line no-unused-expressions
- stats && stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e));
- process.exitCode = 1;
- }
- logger.info('Building storybook completed.');
-};
-const compiler = webpack(config);
-if (program.watch) {
- compiler.watch({}, webpackCb);
-} else {
- compiler.run(webpackCb);
-}
diff --git a/app/react/src/server/config/WatchMissingNodeModulesPlugin.js b/app/react/src/server/config/WatchMissingNodeModulesPlugin.js
deleted file mode 100644
index 962bbb97ff45..000000000000
--- a/app/react/src/server/config/WatchMissingNodeModulesPlugin.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-// @remove-on-eject-end
-
-// This Webpack plugin ensures `npm install ` forces a project rebuild.
-// We’re not sure why this isn't Webpack's default behavior.
-// See https://github.com/facebookincubator/create-react-app/issues/186.
-
-function WatchMissingNodeModulesPlugin(nodeModulesPath) {
- this.nodeModulesPath = nodeModulesPath;
-}
-
-WatchMissingNodeModulesPlugin.prototype.apply = function apply(compiler) {
- compiler.plugin('emit', (compilation, callback) => {
- const missingDeps = compilation.missingDependencies;
- const { nodeModulesPath } = this;
-
- // If any missing files are expected to appear in node_modules...
- if (missingDeps.some(file => file.indexOf(nodeModulesPath) !== -1)) {
- // ...tell webpack to watch node_modules recursively until they appear.
- compilation.contextDependencies.push(nodeModulesPath);
- }
-
- callback();
- });
-};
-
-module.exports = WatchMissingNodeModulesPlugin;
diff --git a/app/react/src/server/config/webpack.config.js b/app/react/src/server/config/webpack.config.js
index 1b107f2278ab..7de48c12403e 100644
--- a/app/react/src/server/config/webpack.config.js
+++ b/app/react/src/server/config/webpack.config.js
@@ -4,9 +4,8 @@ import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { WatchMissingNodeModulesPlugin, managerPath } from '@storybook/core/server';
-import WatchMissingNodeModulesPlugin from './WatchMissingNodeModulesPlugin';
import { includePaths, excludePaths, nodeModulesPaths, loadEnv, nodePaths } from './utils';
import babelLoaderConfig from './babel';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
diff --git a/app/react/src/server/config/webpack.config.prod.js b/app/react/src/server/config/webpack.config.prod.js
index 5f8047bfbc43..70527fac71c9 100644
--- a/app/react/src/server/config/webpack.config.prod.js
+++ b/app/react/src/server/config/webpack.config.prod.js
@@ -3,7 +3,7 @@ import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { managerPath } from '@storybook/core/server';
import babelLoaderConfig from './babel.prod';
import { includePaths, excludePaths, loadEnv, nodePaths } from './utils';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
diff --git a/app/react/src/server/index.js b/app/react/src/server/index.js
index df61018103a7..69df1fe59e54 100755
--- a/app/react/src/server/index.js
+++ b/app/react/src/server/index.js
@@ -1,168 +1,12 @@
-import '@storybook/core/env';
-
-import express from 'express';
-import https from 'https';
-import favicon from 'serve-favicon';
-import program from 'commander';
+import { buildDev } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import { logger } from '@storybook/node-logger';
-import storybook, { webpackValid } from './middleware';
import packageJson from '../../package.json';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-
-program
- .version(packageJson.version)
- .option('-p, --port [number]', 'Port to run Storybook (Required)', str => parseInt(str, 10))
- .option('-h, --host [string]', 'Host to run Storybook')
- .option('-s, --static-dir ', 'Directory where to load static files from')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option(
- '--https',
- 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.'
- )
- .option(
- '--ssl-ca ',
- 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)',
- parseList
- )
- .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)')
- .option('--ssl-key ', 'Provide an SSL key. (Required with --https)')
- .option('--smoke-test', 'Exit after successful start')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}`) + chalk.reset('\n'));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- port: 'SBCONFIG_PORT',
- host: 'SBCONFIG_HOSTNAME',
- staticDir: 'SBCONFIG_STATIC_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
-});
-
-if (!program.port) {
- logger.error('Error: port to run Storybook is required!\n');
- program.help();
- process.exit(-1);
-}
-
-// Used with `app.listen` below
-const listenAddr = [program.port];
-
-if (program.host) {
- listenAddr.push(program.host);
-}
-
-const app = express();
-let server = app;
-
-if (program.https) {
- if (!program.sslCert) {
- logger.error('Error: --ssl-cert is required with --https');
- process.exit(-1);
- }
- if (!program.sslKey) {
- logger.error('Error: --ssl-key is required with --https');
- process.exit(-1);
- }
-
- const sslOptions = {
- ca: (program.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
- cert: fs.readFileSync(program.sslCert, 'utf-8'),
- key: fs.readFileSync(program.sslKey, 'utf-8'),
- };
-
- server = https.createServer(sslOptions, app);
-}
-
-let hasCustomFavicon = false;
-
-if (program.staticDir) {
- program.staticDir = parseList(program.staticDir);
- program.staticDir.forEach(dir => {
- const staticPath = path.resolve(dir);
- if (!fs.existsSync(staticPath)) {
- logger.error(`Error: no such directory to load static files: ${staticPath}`);
- process.exit(-1);
- }
- logger.info(`=> Loading static files from: ${staticPath} .`);
- app.use(express.static(staticPath, { index: false }));
-
- const faviconPath = path.resolve(staticPath, 'favicon.ico');
- if (fs.existsSync(faviconPath)) {
- hasCustomFavicon = true;
- app.use(favicon(faviconPath));
- }
- });
-}
-
-if (!hasCustomFavicon) {
- app.use(favicon(path.resolve(__dirname, 'public/favicon.ico')));
-}
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-const configDir = program.configDir || './.storybook';
-
-// The repository info is sent to the storybook while running on
-// development mode so it'll be easier for tools to integrate.
-const exec = cmd => shelljs.exec(cmd, { silent: true }).stdout.trim();
-process.env.STORYBOOK_GIT_ORIGIN =
- process.env.STORYBOOK_GIT_ORIGIN || exec('git remote get-url origin');
-process.env.STORYBOOK_GIT_BRANCH =
- process.env.STORYBOOK_GIT_BRANCH || exec('git symbolic-ref HEAD --short');
-
-// NOTE changes to env should be done before calling `getBaseConfig`
-// `getBaseConfig` function which is called inside the middleware
-app.use(storybook(configDir));
-
-let serverResolve = () => {};
-let serverReject = () => {};
-const serverListening = new Promise((resolve, reject) => {
- serverResolve = resolve;
- serverReject = reject;
-});
-server.listen(...listenAddr, error => {
- if (error) {
- serverReject(error);
- } else {
- serverResolve();
- }
+import getBaseConfig from './config/webpack.config';
+import loadConfig from './config';
+
+buildDev({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-Promise.all([webpackValid, serverListening])
- .then(() => {
- const proto = program.https ? 'https' : 'http';
- const address = `${proto}://${program.host || 'localhost'}:${program.port}/`;
- logger.info(`Storybook started on => ${chalk.cyan(address)}\n`);
- if (program.smokeTest) {
- process.exit(0);
- }
- })
- .catch(error => {
- if (error instanceof Error) {
- logger.error(error);
- }
- if (program.smokeTest) {
- process.exit(1);
- }
- });
diff --git a/app/react/src/server/utils.js b/app/react/src/server/utils.js
index 71396437a03d..913f4c3219ea 100644
--- a/app/react/src/server/utils.js
+++ b/app/react/src/server/utils.js
@@ -5,10 +5,6 @@ import deprecate from 'util-deprecate';
const fallbackHeadUsage = deprecate(() => {},
'Usage of head.html has been deprecated. Please rename head.html to preview-head.html');
-export function parseList(str) {
- return str.split(',');
-}
-
export function getPreviewHeadHtml(configDirPath) {
const headHtmlPath = path.resolve(configDirPath, 'preview-head.html');
const fallbackHtmlPath = path.resolve(configDirPath, 'head.html');
@@ -32,25 +28,3 @@ export function getManagerHeadHtml(configDirPath) {
return scriptHtml;
}
-
-export function getEnvConfig(program, configEnv) {
- Object.keys(configEnv).forEach(fieldName => {
- const envVarName = configEnv[fieldName];
- const envVarValue = process.env[envVarName];
- if (envVarValue) {
- program[fieldName] = envVarValue; // eslint-disable-line
- }
- });
-}
-
-export function getMiddleware(configDir) {
- const middlewarePath = path.resolve(configDir, 'middleware.js');
- if (fs.existsSync(middlewarePath)) {
- let middlewareModule = require(middlewarePath); // eslint-disable-line
- if (middlewareModule.__esModule) { // eslint-disable-line
- middlewareModule = middlewareModule.default;
- }
- return middlewareModule;
- }
- return () => {};
-}
diff --git a/app/vue/README.md b/app/vue/README.md
index be675eef9e36..f65bf9eca9e3 100644
--- a/app/vue/README.md
+++ b/app/vue/README.md
@@ -28,7 +28,7 @@ getstorybook
For more information visit: [storybook.js.org](https://storybook.js.org)
## Starter Storybook-for-Vue Boilerplate project with [Vuetify](https://github.com/vuetifyjs/vuetify) Material Component Framework
-https://github.com/white-rabbit-japan/vuetify-storyboard-boilerplate
+
* * *
diff --git a/app/vue/package.json b/app/vue/package.json
index 4ef0560a85f0..0b2052d219c5 100644
--- a/app/vue/package.json
+++ b/app/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/vue",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybooks/storybook/tree/master/apps/vue",
"bugs": {
@@ -23,14 +23,14 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/core": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/core": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
"airbnb-js-shims": "^1.4.1",
- "autoprefixer": "^7.2.5",
+ "autoprefixer": "^7.2.6",
"babel-loader": "^7.1.2",
"babel-plugin-macros": "^2.1.0",
"babel-plugin-react-docgen": "^1.8.2",
@@ -43,8 +43,6 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "chalk": "^2.3.0",
- "commander": "^2.13.0",
"common-tags": "^1.7.2",
"configstore": "^3.1.1",
"core-js": "^2.5.3",
@@ -61,7 +59,7 @@
"json5": "^0.5.1",
"markdown-loader": "^2.0.2",
"postcss-flexbugs-fixes": "^3.3.0",
- "postcss-loader": "^2.0.10",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.6.0",
"qs": "^6.5.1",
"react": "^16.2.0",
@@ -69,21 +67,16 @@
"react-dom": "^16.2.0",
"redux": "^3.7.2",
"request": "^2.83.0",
- "serve-favicon": "^2.4.5",
- "shelljs": "^0.8.1",
- "style-loader": "^0.20.1",
- "uglifyjs-webpack-plugin": "^1.1.7",
+ "style-loader": "^0.20.2",
+ "uglifyjs-webpack-plugin": "^1.2.0",
"url-loader": "^0.6.2",
"util-deprecate": "^1.0.2",
- "uuid": "^3.2.1",
"vue-hot-reload-api": "^2.2.4",
"vue-style-loader": "^3.1.2",
- "webpack": "^3.10.0",
- "webpack-dev-middleware": "^1.12.2",
- "webpack-hot-middleware": "^2.21.0"
+ "webpack": "^3.11.0"
},
"devDependencies": {
- "nodemon": "^1.14.11",
+ "nodemon": "^1.15.0",
"vue": "^2.5.13",
"vue-loader": "^13.7.1",
"vue-template-compiler": "^2.5.13"
diff --git a/app/vue/src/server/build.js b/app/vue/src/server/build.js
index 189e227dff3e..804f258a0ba4 100755
--- a/app/vue/src/server/build.js
+++ b/app/vue/src/server/build.js
@@ -1,95 +1,12 @@
-import '@storybook/core/env';
-
-import webpack from 'webpack';
-import program from 'commander';
+import { buildStatic } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
import packageJson from '../../package.json';
import getBaseConfig from './config/webpack.config.prod';
import loadConfig from './config';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'production';
-
-// avoid ESLint errors
-const logger = console;
-
-program
- .version(packageJson.version)
- .option('-s, --static-dir ', 'Directory where to load static files from', parseList)
- .option('-o, --output-dir [dir-name]', 'Directory where to store built files')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option('-w, --watch', 'Enable watch mode')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}\n`));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- staticDir: 'SBCONFIG_STATIC_DIR',
- outputDir: 'SBCONFIG_OUTPUT_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
+buildStatic({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-const configDir = program.configDir || './.storybook';
-const outputDir = program.outputDir || './storybook-static';
-
-// create output directory if not exists
-shelljs.mkdir('-p', path.resolve(outputDir));
-// clear the static dir
-shelljs.rm('-rf', path.resolve(outputDir, 'static'));
-shelljs.cp(path.resolve(__dirname, 'public/favicon.ico'), outputDir);
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-// NOTE changes to env should be done before calling `getBaseConfig`
-const config = loadConfig('PRODUCTION', getBaseConfig(configDir), configDir);
-config.output.path = path.resolve(outputDir);
-
-// copy all static files
-if (program.staticDir) {
- program.staticDir.forEach(dir => {
- if (!fs.existsSync(dir)) {
- logger.error(`Error: no such directory to load static files: ${dir}`);
- process.exit(-1);
- }
- logger.log(`=> Copying static files from: ${dir}`);
- shelljs.cp('-r', `${dir}/*`, outputDir);
- });
-}
-
-// compile all resources with webpack and write them to the disk.
-logger.info('Building storybook ...');
-const webpackCb = (err, stats) => {
- if (err || stats.hasErrors()) {
- logger.error('Failed to build the storybook');
- // eslint-disable-next-line no-unused-expressions
- err && logger.error(err.message);
- // eslint-disable-next-line no-unused-expressions
- stats && stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e));
- process.exitCode = 1;
- }
- logger.info('Building storybook completed.');
-};
-const compiler = webpack(config);
-if (program.watch) {
- compiler.watch({}, webpackCb);
-} else {
- compiler.run(webpackCb);
-}
diff --git a/app/vue/src/server/config/WatchMissingNodeModulesPlugin.js b/app/vue/src/server/config/WatchMissingNodeModulesPlugin.js
deleted file mode 100644
index 962bbb97ff45..000000000000
--- a/app/vue/src/server/config/WatchMissingNodeModulesPlugin.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-// @remove-on-eject-end
-
-// This Webpack plugin ensures `npm install ` forces a project rebuild.
-// We’re not sure why this isn't Webpack's default behavior.
-// See https://github.com/facebookincubator/create-react-app/issues/186.
-
-function WatchMissingNodeModulesPlugin(nodeModulesPath) {
- this.nodeModulesPath = nodeModulesPath;
-}
-
-WatchMissingNodeModulesPlugin.prototype.apply = function apply(compiler) {
- compiler.plugin('emit', (compilation, callback) => {
- const missingDeps = compilation.missingDependencies;
- const { nodeModulesPath } = this;
-
- // If any missing files are expected to appear in node_modules...
- if (missingDeps.some(file => file.indexOf(nodeModulesPath) !== -1)) {
- // ...tell webpack to watch node_modules recursively until they appear.
- compilation.contextDependencies.push(nodeModulesPath);
- }
-
- callback();
- });
-};
-
-module.exports = WatchMissingNodeModulesPlugin;
diff --git a/app/vue/src/server/config/webpack.config.js b/app/vue/src/server/config/webpack.config.js
index e03d83f452c1..f98a9b25e4ce 100644
--- a/app/vue/src/server/config/webpack.config.js
+++ b/app/vue/src/server/config/webpack.config.js
@@ -4,9 +4,8 @@ import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { WatchMissingNodeModulesPlugin, managerPath } from '@storybook/core/server';
-import WatchMissingNodeModulesPlugin from './WatchMissingNodeModulesPlugin';
import { includePaths, excludePaths, nodeModulesPaths, loadEnv, nodePaths } from './utils';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
import babelLoaderConfig from './babel';
@@ -84,7 +83,7 @@ export default function(configDir) {
resolve: {
// Since we ship with json-loader always, it's better to move extensions to here
// from the default config.
- extensions: ['.js', '.json', '.jsx'],
+ extensions: ['.js', '.json', '.jsx', '.vue'],
// Add support to NODE_PATH. With this we could avoid relative path imports.
// Based on this CRA feature: https://github.com/facebookincubator/create-react-app/issues/253
modules: ['node_modules'].concat(nodePaths),
diff --git a/app/vue/src/server/config/webpack.config.prod.js b/app/vue/src/server/config/webpack.config.prod.js
index b99bee1002d9..895ab3ad31d5 100644
--- a/app/vue/src/server/config/webpack.config.prod.js
+++ b/app/vue/src/server/config/webpack.config.prod.js
@@ -3,7 +3,7 @@ import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
import Dotenv from 'dotenv-webpack';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import { managerPath } from '@storybook/core/client';
+import { managerPath } from '@storybook/core/server';
import babelLoaderConfig from './babel.prod';
import { includePaths, excludePaths, loadEnv, nodePaths } from './utils';
import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils';
@@ -94,7 +94,7 @@ export default function(configDir) {
resolve: {
// Since we ship with json-loader always, it's better to move extensions to here
// from the default config.
- extensions: ['.js', '.json', '.jsx'],
+ extensions: ['.js', '.json', '.jsx', '.vue'],
// Add support to NODE_PATH. With this we could avoid relative path imports.
// Based on this CRA feature: https://github.com/facebookincubator/create-react-app/issues/253
modules: ['node_modules'].concat(nodePaths),
diff --git a/app/vue/src/server/index.js b/app/vue/src/server/index.js
index 123aba1e8b1e..69df1fe59e54 100755
--- a/app/vue/src/server/index.js
+++ b/app/vue/src/server/index.js
@@ -1,169 +1,12 @@
-import '@storybook/core/env';
-
-import express from 'express';
-import https from 'https';
-import favicon from 'serve-favicon';
-import program from 'commander';
+import { buildDev } from '@storybook/core/server';
import path from 'path';
-import fs from 'fs';
-import chalk from 'chalk';
-import shelljs from 'shelljs';
-import storybook, { webpackValid } from './middleware';
import packageJson from '../../package.json';
-import { parseList, getEnvConfig } from './utils';
-
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-
-const logger = console;
-
-program
- .version(packageJson.version)
- .option('-p, --port [number]', 'Port to run Storybook (Required)', str => parseInt(str, 10))
- .option('-h, --host [string]', 'Host to run Storybook')
- .option('-s, --static-dir ', 'Directory where to load static files from')
- .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
- .option(
- '--https',
- 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.'
- )
- .option(
- '--ssl-ca ',
- 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)',
- parseList
- )
- .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)')
- .option('--ssl-key ', 'Provide an SSL key. (Required with --https)')
- .option('--smoke-test', 'Exit after successful start')
- .option('-d, --db-path [db-file]', 'DEPRECATED!')
- .option('--enable-db', 'DEPRECATED!')
- .parse(process.argv);
-
-logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}`) + chalk.reset('\n'));
-
-if (program.enableDb || program.dbPath) {
- logger.error(
- [
- 'Error: the experimental local database addon is no longer bundled with',
- 'react-storybook. Please remove these flags (-d,--db-path,--enable-db)',
- 'from the command or npm script and try again.',
- ].join(' ')
- );
- process.exit(1);
-}
-
-// The key is the field created in `program` variable for
-// each command line argument. Value is the env variable.
-getEnvConfig(program, {
- port: 'SBCONFIG_PORT',
- host: 'SBCONFIG_HOSTNAME',
- staticDir: 'SBCONFIG_STATIC_DIR',
- configDir: 'SBCONFIG_CONFIG_DIR',
+import getBaseConfig from './config/webpack.config';
+import loadConfig from './config';
+
+buildDev({
+ packageJson,
+ getBaseConfig,
+ loadConfig,
+ defaultFavIcon: path.resolve(__dirname, 'public/favicon.ico'),
});
-
-if (!program.port) {
- logger.error('Error: port to run Storybook is required!\n');
- program.help();
- process.exit(-1);
-}
-
-// Used with `app.listen` below
-const listenAddr = [program.port];
-
-if (program.host) {
- listenAddr.push(program.host);
-}
-
-const app = express();
-let server = app;
-
-if (program.https) {
- if (!program.sslCert) {
- logger.error('Error: --ssl-cert is required with --https');
- process.exit(-1);
- }
- if (!program.sslKey) {
- logger.error('Error: --ssl-key is required with --https');
- process.exit(-1);
- }
-
- const sslOptions = {
- ca: (program.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
- cert: fs.readFileSync(program.sslCert, 'utf-8'),
- key: fs.readFileSync(program.sslKey, 'utf-8'),
- };
-
- server = https.createServer(sslOptions, app);
-}
-
-let hasCustomFavicon = false;
-
-if (program.staticDir) {
- program.staticDir = parseList(program.staticDir);
- program.staticDir.forEach(dir => {
- const staticPath = path.resolve(dir);
- if (!fs.existsSync(staticPath)) {
- logger.error(`Error: no such directory to load static files: ${staticPath}`);
- process.exit(-1);
- }
- logger.log(`=> Loading static files from: ${staticPath} .`);
- app.use(express.static(staticPath, { index: false }));
-
- const faviconPath = path.resolve(staticPath, 'favicon.ico');
- if (fs.existsSync(faviconPath)) {
- hasCustomFavicon = true;
- app.use(favicon(faviconPath));
- }
- });
-}
-
-if (!hasCustomFavicon) {
- app.use(favicon(path.resolve(__dirname, 'public/favicon.ico')));
-}
-
-// Build the webpack configuration using the `baseConfig`
-// custom `.babelrc` file and `webpack.config.js` files
-const configDir = program.configDir || './.storybook';
-
-// The repository info is sent to the storybook while running on
-// development mode so it'll be easier for tools to integrate.
-const exec = cmd => shelljs.exec(cmd, { silent: true }).stdout.trim();
-process.env.STORYBOOK_GIT_ORIGIN =
- process.env.STORYBOOK_GIT_ORIGIN || exec('git remote get-url origin');
-process.env.STORYBOOK_GIT_BRANCH =
- process.env.STORYBOOK_GIT_BRANCH || exec('git symbolic-ref HEAD --short');
-
-// NOTE changes to env should be done before calling `getBaseConfig`
-// `getBaseConfig` function which is called inside the middleware
-app.use(storybook(configDir));
-
-let serverResolve = () => {};
-let serverReject = () => {};
-const serverListening = new Promise((resolve, reject) => {
- serverResolve = resolve;
- serverReject = reject;
-});
-server.listen(...listenAddr, error => {
- if (error) {
- serverReject(error);
- } else {
- serverResolve();
- }
-});
-
-Promise.all([webpackValid, serverListening])
- .then(() => {
- const proto = program.https ? 'https' : 'http';
- const address = `${proto}://${program.host || 'localhost'}:${program.port}/`;
- logger.info(`Storybook started on => ${chalk.cyan(address)}\n`);
- if (program.smokeTest) {
- process.exit(0);
- }
- })
- .catch(error => {
- if (error instanceof Error) {
- logger.error(error);
- }
- if (program.smokeTest) {
- process.exit(1);
- }
- });
diff --git a/app/vue/src/server/middleware.js b/app/vue/src/server/middleware.js
deleted file mode 100644
index 3921bf4733f9..000000000000
--- a/app/vue/src/server/middleware.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Router } from 'express';
-import webpack from 'webpack';
-import path from 'path';
-import webpackDevMiddleware from 'webpack-dev-middleware';
-import webpackHotMiddleware from 'webpack-hot-middleware';
-import getBaseConfig from './config/webpack.config';
-import loadConfig from './config';
-import { getMiddleware } from './utils';
-
-let webpackResolve = () => {};
-let webpackReject = () => {};
-export const webpackValid = new Promise((resolve, reject) => {
- webpackResolve = resolve;
- webpackReject = reject;
-});
-
-export default function(configDir) {
- // Build the webpack configuration using the `getBaseConfig`
- // custom `.babelrc` file and `webpack.config.js` files
- const config = loadConfig('DEVELOPMENT', getBaseConfig(configDir), configDir);
- const middlewareFn = getMiddleware(configDir);
-
- // remove the leading '/'
- let { publicPath } = config.output;
- if (publicPath[0] === '/') {
- publicPath = publicPath.slice(1);
- }
-
- const compiler = webpack(config);
- const devMiddlewareOptions = {
- noInfo: true,
- publicPath: config.output.publicPath,
- watchOptions: config.watchOptions || {},
- ...config.devServer,
- };
-
- const router = new Router();
- const webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, devMiddlewareOptions);
- router.use(webpackDevMiddlewareInstance);
- router.use(webpackHotMiddleware(compiler));
-
- // custom middleware
- middlewareFn(router);
-
- webpackDevMiddlewareInstance.waitUntilValid(stats => {
- router.get('/', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/index.html`));
- });
-
- router.get('/iframe.html', (req, res) => {
- res.set('Content-Type', 'text/html');
- res.sendFile(path.join(`${__dirname}/public/iframe.html`));
- });
-
- if (stats.toJson().errors.length) {
- webpackReject(stats);
- } else {
- webpackResolve(stats);
- }
- });
-
- return router;
-}
diff --git a/app/vue/src/server/utils.js b/app/vue/src/server/utils.js
index 71396437a03d..913f4c3219ea 100644
--- a/app/vue/src/server/utils.js
+++ b/app/vue/src/server/utils.js
@@ -5,10 +5,6 @@ import deprecate from 'util-deprecate';
const fallbackHeadUsage = deprecate(() => {},
'Usage of head.html has been deprecated. Please rename head.html to preview-head.html');
-export function parseList(str) {
- return str.split(',');
-}
-
export function getPreviewHeadHtml(configDirPath) {
const headHtmlPath = path.resolve(configDirPath, 'preview-head.html');
const fallbackHtmlPath = path.resolve(configDirPath, 'head.html');
@@ -32,25 +28,3 @@ export function getManagerHeadHtml(configDirPath) {
return scriptHtml;
}
-
-export function getEnvConfig(program, configEnv) {
- Object.keys(configEnv).forEach(fieldName => {
- const envVarName = configEnv[fieldName];
- const envVarValue = process.env[envVarName];
- if (envVarValue) {
- program[fieldName] = envVarValue; // eslint-disable-line
- }
- });
-}
-
-export function getMiddleware(configDir) {
- const middlewarePath = path.resolve(configDir, 'middleware.js');
- if (fs.existsSync(middlewarePath)) {
- let middlewareModule = require(middlewarePath); // eslint-disable-line
- if (middlewareModule.__esModule) { // eslint-disable-line
- middlewareModule = middlewareModule.default;
- }
- return middlewareModule;
- }
- return () => {};
-}
diff --git a/dependencies.yml b/dependencies.yml
index 1bb78e84e417..50c7d30581fb 100644
--- a/dependencies.yml
+++ b/dependencies.yml
@@ -30,9 +30,11 @@ collectors:
actors:
# pull requests for updates to our major version
- type: js-lerna
+ dependencies_not_matching: "^react-native$"
versions: "L.Y.Y"
settings:
batch_mode: true
+ # batch_bootstrap: true
bootstrap_command: yarn --ignore-scripts --ignore-engines --silent
github_labels:
- dependencies:update
diff --git a/docs/.eslintrc.js b/docs/.eslintrc.js
index a46d9c4a5954..6ab0b6d43eca 100644
--- a/docs/.eslintrc.js
+++ b/docs/.eslintrc.js
@@ -5,13 +5,13 @@ module.exports = {
graphql: false,
},
rules: {
- 'import/no-unresolved': warn,
+ 'import/no-unresolved': [warn, { commonjs: true, caseSensitive: true }],
'import/extensions': [
// because of highlight.js
warn,
+ 'always',
{
js: 'never',
- json: 'always',
},
],
},
diff --git a/docs/.storybook/config.js b/docs/.storybook/config.js
index a19d86a3a9b7..ac173268f49d 100644
--- a/docs/.storybook/config.js
+++ b/docs/.storybook/config.js
@@ -1,6 +1,6 @@
import React from 'react';
import { configure, addDecorator } from '@storybook/react';
-import { MemoryRouter } from 'react-router'
+import { MemoryRouter } from 'react-router';
import 'bootstrap/dist/css/bootstrap.css';
import '../src/css/main.css';
diff --git a/docs/.storybook/webpack.config.js b/docs/.storybook/webpack.config.js
index cd808a9bf616..65ab1ce95c78 100644
--- a/docs/.storybook/webpack.config.js
+++ b/docs/.storybook/webpack.config.js
@@ -1,5 +1,3 @@
-const path = require('path');
-
const config = {
module: {
rules: [
diff --git a/docs/package.json b/docs/package.json
index cb07205250d7..2a4bedc0e3db 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -18,10 +18,10 @@
"storybook": "start-storybook -p 9009 -s src/pages"
},
"dependencies": {
- "@storybook/addon-actions": "^3.3.11",
- "@storybook/addon-links": "^3.3.11",
- "@storybook/addons": "^3.3.11",
- "@storybook/react": "^3.3.11",
+ "@storybook/addon-actions": "^3.3.13",
+ "@storybook/addon-links": "^3.3.13",
+ "@storybook/addons": "^3.3.13",
+ "@storybook/react": "^3.3.13",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-loader": "^6.4.1",
@@ -31,20 +31,20 @@
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"bootstrap": "^3.3.7",
- "gatsby": "^1.9.174",
- "gatsby-link": "^1.6.35",
- "gatsby-plugin-sharp": "^1.6.27",
- "gatsby-remark-autolink-headers": "^1.4.11",
- "gatsby-remark-copy-linked-files": "^1.5.25",
- "gatsby-remark-images": "^1.5.41",
- "gatsby-remark-smartypants": "^1.4.10",
- "gatsby-source-filesystem": "^1.5.16",
- "gatsby-transformer-remark": "^1.7.30",
+ "gatsby": "^1.9.201",
+ "gatsby-link": "^1.6.37",
+ "gatsby-plugin-sharp": "^1.6.30",
+ "gatsby-remark-autolink-headers": "^1.4.12",
+ "gatsby-remark-copy-linked-files": "^1.5.27",
+ "gatsby-remark-images": "^1.5.46",
+ "gatsby-remark-smartypants": "^1.4.11",
+ "gatsby-source-filesystem": "^1.5.20",
+ "gatsby-transformer-remark": "^1.7.32",
"gh-pages": "^1.1.0",
"global": "^4.3.2",
"highlight.js": "^9.12.0",
- "lodash": "^4.17.2",
- "marked": "^0.3.12",
+ "lodash": "^4.17.5",
+ "marked": "^0.3.14",
"prop-types": "^15.6.0",
"react": "^15.6.1",
"react-document-title": "^2.0.3",
diff --git a/docs/src/components/Grid/GridItem/index.js b/docs/src/components/Grid/GridItem/index.js
index 71f14c0aa233..c7d9092591ea 100644
--- a/docs/src/components/Grid/GridItem/index.js
+++ b/docs/src/components/Grid/GridItem/index.js
@@ -8,9 +8,9 @@ const linkProps = {
className: 'link',
};
-const GridItem = ({ title, description, source, demo, thumbnail }) => (
+const GridItem = ({ title, description, source, demo, thumbnailSrc }) => (
-
+
@@ -34,7 +34,7 @@ const GridItem = ({ title, description, source, demo, thumbnail }) => (
GridItem.propTypes = {
title: PropTypes.string.isRequired,
description: PropTypes.string.isRequired,
- thumbnail: PropTypes.string.isRequired,
+ thumbnailSrc: PropTypes.string.isRequired,
source: PropTypes.string,
demo: PropTypes.string,
};
diff --git a/docs/src/components/Homepage/MainLinks/index.js b/docs/src/components/Homepage/MainLinks/index.js
index 9cee530065b4..ea4c5733df56 100644
--- a/docs/src/components/Homepage/MainLinks/index.js
+++ b/docs/src/components/Homepage/MainLinks/index.js
@@ -60,7 +60,12 @@ class MainLinks extends React.Component {
id="search"
placeholder="type to search"
/>
-
+
🔍
diff --git a/docs/src/components/Homepage/UsedBy/index.jsx b/docs/src/components/Homepage/UsedBy/index.js
similarity index 100%
rename from docs/src/components/Homepage/UsedBy/index.jsx
rename to docs/src/components/Homepage/UsedBy/index.js
diff --git a/docs/src/pages/addons/addon-gallery/index.md b/docs/src/pages/addons/addon-gallery/index.md
index f38d43c79bac..47de3137a5bd 100644
--- a/docs/src/pages/addons/addon-gallery/index.md
+++ b/docs/src/pages/addons/addon-gallery/index.md
@@ -42,6 +42,10 @@ Storyshots is a way to automatically jest-snapshot all your stories. [More info
Redirects console output (logs, errors, warnings) into Action Logger Panel. `withConsole` decorator notifies from what stories logs are coming.
+### [Backgrounds](https://github.com/storybooks/storybook/tree/master/addons/background)
+
+With this addon, you can switch between background colors and background images for your preview components. It is really helpful for styleguides.
+
## Community Addons
You need to install these addons directly from NPM in order to use them.
@@ -75,10 +79,6 @@ Break your stories down into smaller categories (chapters) and subcategories (se
Given possible values for each prop, renders your component with all combinations of prop values.
Useful for finding edge cases or just seeing all component states at once.
-### [Backgrounds](https://github.com/NewSpring/react-storybook-addon-backgrounds)
-
-With this addon, you can switch between background colors and background images for your preview components. It is really helpful for styleguides.
-
### [Material-UI](https://github.com/sm-react/storybook-addon-material-ui)
Wraps your story into MuiThemeProvider.
diff --git a/docs/src/pages/addons/introduction/index.md b/docs/src/pages/addons/introduction/index.md
index 72734c43efa8..63f5a5fa891c 100644
--- a/docs/src/pages/addons/introduction/index.md
+++ b/docs/src/pages/addons/introduction/index.md
@@ -68,7 +68,7 @@ storiesOf('Button', module)
Hello Button
))
.add('with some emojies', () => (
-
😀 😎 👍 💯
+
😀 😎 👍 💯
));
```
@@ -102,7 +102,7 @@ storiesOf('Button', module)
Hello Button
))
.add('with some emojies', () => (
-
😀 😎 👍 💯
+
😀 😎 👍 💯
));
```
diff --git a/docs/src/pages/addons/using-addons/index.md b/docs/src/pages/addons/using-addons/index.md
index fe56cffb3e86..96d40fedb891 100644
--- a/docs/src/pages/addons/using-addons/index.md
+++ b/docs/src/pages/addons/using-addons/index.md
@@ -39,7 +39,7 @@ import Button from './Button';
storiesOf('Button', module)
.add('with some emoji', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
diff --git a/docs/src/pages/addons/writing-addons/index.md b/docs/src/pages/addons/writing-addons/index.md
index 1b79d60cb89f..61dba335768e 100644
--- a/docs/src/pages/addons/writing-addons/index.md
+++ b/docs/src/pages/addons/writing-addons/index.md
@@ -55,7 +55,7 @@ storiesOf('Button', module)
))
.add('with some emoji', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
@@ -104,7 +104,77 @@ In the above case, it will emit the notes' text to the channel, so our panel can
Then add the following code to the register.js.
-See:
+```js
+import React from 'react';
+import addons from '@storybook/addons';
+
+const styles = {
+ notesPanel: {
+ margin: 10,
+ fontFamily: 'Arial',
+ fontSize: 14,
+ color: '#444',
+ width: '100%',
+ overflow: 'auto',
+ }
+};
+
+class Notes extends React.Component {
+ constructor(...args) {
+ super(...args);
+ this.state = {text: ''};
+ this.onAddNotes = this.onAddNotes.bind(this);
+ }
+
+ onAddNotes(text) {
+ this.setState({text});
+ }
+
+ componentDidMount() {
+ const { channel, api } = this.props;
+ // Listen to the notes and render it.
+ channel.on('kadira/notes/add_notes', this.onAddNotes);
+
+ // Clear the current notes on every story change.
+ this.stopListeningOnStory = api.onStory(() => {
+ this.onAddNotes('');
+ });
+ }
+
+ render() {
+ const { text } = this.state;
+ const textAfterFormatted = text? text.trim().replace(/\n/g, ' ') : "";
+
+ return (
+
+ );
+ }
+
+ // This is some cleanup tasks when the Notes panel is unmounting.
+ componentWillUnmount() {
+ if(this.stopListeningOnStory) {
+ this.stopListeningOnStory();
+ }
+
+ this.unmounted = true;
+ const { channel, api } = this.props;
+ channel.removeListener('kadira/notes/add_notes', this.onAddNotes);
+ }
+}
+
+// Register the addon with a unique name.
+addons.register('kadira/notes', (api) => {
+ // Also need to set a unique name to the panel.
+ addons.addPanel('kadira/notes/panel', {
+ title: 'Notes',
+ render: () => (
+
+ ),
+ })
+})
+```
It will register our addon and add a panel. In this case, the panel represents a React component called `Notes`. That component has access to the channel and storybook api.
@@ -146,7 +216,7 @@ storiesOf('Button', module)
))
.add('with some emojies', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
diff --git a/docs/src/pages/basics/guide-react/index.md b/docs/src/pages/basics/guide-react/index.md
index 10f81f2fcf64..cc6004eead3b 100644
--- a/docs/src/pages/basics/guide-react/index.md
+++ b/docs/src/pages/basics/guide-react/index.md
@@ -87,7 +87,7 @@ storiesOf('Button', module)
Hello Button
))
.add('with some emoji', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
diff --git a/docs/src/pages/basics/writing-stories/index.md b/docs/src/pages/basics/writing-stories/index.md
index ba880d94af43..d8315d10dfb8 100644
--- a/docs/src/pages/basics/writing-stories/index.md
+++ b/docs/src/pages/basics/writing-stories/index.md
@@ -35,7 +35,7 @@ storiesOf('Button', module)
Hello Button
))
.add('with some emoji', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
@@ -139,7 +139,7 @@ storiesOf('My App/Buttons/Simple', module)
storiesOf('My App/Buttons/Emoji', module)
.add('with some emoji', () => (
- 😀 😎 👍 💯
+ 😀 😎 👍 💯
));
```
diff --git a/docs/src/pages/configurations/custom-webpack-config/index.md b/docs/src/pages/configurations/custom-webpack-config/index.md
index 872735689d2c..d4d9d2e8c704 100644
--- a/docs/src/pages/configurations/custom-webpack-config/index.md
+++ b/docs/src/pages/configurations/custom-webpack-config/index.md
@@ -36,7 +36,7 @@ module.exports = {
Since this config file stays in the Storybook directory, you need to set the include path as above. If the config directory stays in a different directory, you need to set the include path relative to that.
-You also need to install the loaders (style, css, and sass) used in above config manually.
+You also need to install the loaders (style, css, sass, as well as node-sass) used in above config manually.
> Once you create this `webpack.config.js` file, Storybook won't load the [default Webpack config](/configurations/default-config/) other than loading JS files with the Babel loader. This will disable included functionality like svg loading. Read on to learn how to [retain defaults](#full-control-mode--default).
diff --git a/docs/src/pages/examples/_examples.yml b/docs/src/pages/examples/_examples.yml
index be65a08cf009..b7adb153de4e 100644
--- a/docs/src/pages/examples/_examples.yml
+++ b/docs/src/pages/examples/_examples.yml
@@ -1,146 +1,146 @@
carbon:
- thumbnail: ./thumbnails/carbon.png
+ thumbnail: carbon.png
title: Carbon Components
description: IBM's Carbon Design System implemented in React.
source: https://github.com/carbon-design-system/carbon-components-react
demo: http://react.carbondesignsystem.com
site: http://carbondesignsystem.com
airbnb:
- thumbnail: ./thumbnails/airbnb.jpg
+ thumbnail: airbnb.jpg
title: Airbnb Dates
description: An internationalizable, mobile-friendly datepicker library for the web.
source: https://github.com/airbnb/react-dates
demo: http://airbnb.io/react-dates/
site: http://airbnb.com
lonelyplanet:
- thumbnail: ./thumbnails/lonelyplanet.jpg
+ thumbnail: lonelyplanet.jpg
title: Lonely Planet
description: All the tools you need to build the Lonely Planet UI experience.
source: https://github.com/lonelyplanet/backpack-ui
demo: https://lonelyplanet.github.io/backpack-ui/
site: https://www.lonelyplanet.com/
atlassian:
- thumbnail: ./thumbnails/atlassian.png
+ thumbnail: atlassian.png
title: Atlassian AtlasKit
description: Atlassian's official UI library.
demo: https://atlaskit.atlassian.com/components
site: https://atlaskit.atlassian.com/
wix:
- thumbnail: ./thumbnails/wix.png
+ thumbnail: wix.png
title: Wix Style React
description: Components that conform to Wix Style
source: https://github.com/wix/wix-style-react
demo: https://wix.github.io/wix-style-react/
site: https://wix.com
buffer:
- thumbnail: ./thumbnails/buffer.jpg
+ thumbnail: buffer.jpg
title: Buffer Components
description: A collection of Buffer UI React components.
source: https://github.com/bufferapp/buffer-components
demo: https://bufferapp.github.io/buffer-components/
site: https://buffer.com
algolia:
- thumbnail: ./thumbnails/algolia.jpg
+ thumbnail: algolia.jpg
title: Algolia InstantSearch
description: Lightning-fast, hyper-configurable search.
source: https://github.com/algolia/react-instantsearch/
demo: https://community.algolia.com/react-instantsearch/storybook/
rebass:
- thumbnail: ./thumbnails/rebass.png
+ thumbnail: rebass.png
title: Rebass
description: Functional React UI component library
demo: http://jxnblk.com/rebass/stories/
source: https://github.com/jxnblk/rebass
site: http://jxnblk.com/rebass
coursera:
- thumbnail: ./thumbnails/coursera-ui.png
+ thumbnail: coursera-ui.png
title: Coursera
description: Coursera UI component library
demo: https://building.coursera.org/coursera-ui
artsy:
- thumbnail: ./thumbnails/artsy.png
+ thumbnail: artsy.png
title: Artsy Force
description: Artsy's "Force" component library
demo: https://artsy.github.io/reaction/
source: https://github.com/artsy/reaction-force
site: https://artsy.net
necolas:
- thumbnail: ./thumbnails/reactnativeweb.jpg
+ thumbnail: reactnativeweb.jpg
title: React Native Web
description: Storybook demo for React Native Web.
source: https://github.com/necolas/react-native-web
demo: https://necolas.github.io/react-native-web/storybook/
griddle:
- thumbnail: ./thumbnails/griddle.jpg
+ thumbnail: griddle.jpg
title: Griddle
description: An ultra customizable datagrid component for React.
source: https://github.com/GriddleGriddle/Griddle
demo: https://griddlegriddle.github.io/Griddle/examples/controlling-griddle/
site: https://griddlegriddle.github.io/Griddle/
tachyons:
- thumbnail: ./thumbnails/tachyons.png
+ thumbnail: tachyons.png
title: Tachyons Components
description: A searchable directory of Tachyons Components
source: https://github.com/blairanderson/tachyonstemplates
demo: https://www.tachyonstemplates.com/components/
appbase:
- thumbnail: ./thumbnails/appbase.jpg
+ thumbnail: appbase.jpg
title: Appbase Maps
description: A storybook playground for ReactiveMaps and ReactiveSearch.
source: https://github.com/appbaseio/playground
demo: https://opensource.appbase.io/playground/
site: https://appbase.io
quran:
- thumbnail: ./thumbnails/quran.jpg
+ thumbnail: quran.jpg
title: Quran.com
description: Component library for Quran.com, Quranicaudio.com and Salah.com.
source: https://github.com/quran/common-components
demo: https://quran.github.io/common-components/
site: https://quran.com/
terraeclipse:
- thumbnail: ./thumbnails/terraeclipse.jpg
+ thumbnail: terraeclipse.jpg
title: TerraEclipse
description: React components for TerraEclipse, a political technology and strategy firm.
source: https://github.com/TerraEclipse/react-stack
demo: https://terraeclipse.github.io/react-stack/
timeline:
- thumbnail: ./thumbnails/timeline.jpg
+ thumbnail: timeline.jpg
title: React Event Timeline
description: Event timeline component.
source: https://github.com/rcdexta/react-event-timeline
demo: https://rcdexta.github.io/react-event-timeline/
semanticui:
- thumbnail: ./thumbnails/semanticui.png
+ thumbnail: semanticui.png
title: Semantic-UI
description: Storybook for Semantic-UI React components
source: https://github.com/white-rabbit-japan/Semantic-UI-React-Storybook
demo: https://white-rabbit-japan.github.io/Semantic-UI-React-Storybook/
hackoregon:
- thumbnail: ./thumbnails/hackoregon.png
+ thumbnail: hackoregon.png
title: Hack Oregon
description: Official component library and storybook for Hack Oregon.
source: https://github.com/hackoregon/component-library
demo: https://hackoregon.github.io/component-library/
todomvc:
- thumbnail: ./thumbnails/todomvc.png
+ thumbnail: todomvc.png
title: TodoMVC with Specs
description: Todo app Storybook with built-in unit tests.
source: https://github.com/thorjarhun/react-storybook-todolist
demo: https://thorjarhun.github.io/react-storybook-todolist/
react-svg-pan-zoom:
- thumbnail: ./thumbnails/react-svg-pan-zoom.png
+ thumbnail: react-svg-pan-zoom.png
title: React SVG Pan Zoom
description: A React component that adds pan and zoom features to SVG
source: https://github.com/chrvadala/react-svg-pan-zoom
demo: https://chrvadala.github.io/react-svg-pan-zoom/
fyndiq-ui:
- thumbnail: ./thumbnails/fyndiq.jpg
+ thumbnail: fyndiq.jpg
title: Fyndiq
description: Fyndiq UI Component library
source: https://github.com/fyndiq/fyndiq-ui
demo: https://fyndiq.github.io/fyndiq-ui/
gumgum:
- thumbnail: ./thumbnails/gumgum.png
+ thumbnail: gumgum.png
title: GumGum
description: GumGum (Computer Vision Company) Component library
demo: https://storybook.gumgum.com
diff --git a/docs/src/pages/examples/index.jsx b/docs/src/pages/examples/index.jsx
index 9d5c84ba8ace..16e028151648 100644
--- a/docs/src/pages/examples/index.jsx
+++ b/docs/src/pages/examples/index.jsx
@@ -2,6 +2,12 @@ import React from 'react';
import { values } from 'lodash';
import Examples from '../../components/Grid/Examples';
-import data from './_examples.yml';
+import examples from './_examples.yml';
-export default () => ;
+const examplesArray = values(examples).map(example => ({
+ ...example,
+ // eslint-disable-next-line import/no-dynamic-require, global-require
+ thumbnailSrc: require(`./thumbnails/${example.thumbnail}`),
+}));
+
+export default () => ;
diff --git a/docs/src/stories/index.js b/docs/src/stories/index.js
index f9d8240f38aa..66d0b46edde4 100644
--- a/docs/src/stories/index.js
+++ b/docs/src/stories/index.js
@@ -1,5 +1,3 @@
-// TODO reenable when @storybook/react with jsnext:main is published
-// eslint-disable-next-line import/named
import { storiesOf } from '@storybook/react';
import implementations from './implementations';
diff --git a/docs/yarn.lock b/docs/yarn.lock
index b11501d74de4..0d09c93d06d5 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -2,9 +2,9 @@
# yarn lockfile v1
-"@storybook/addon-actions@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.11.tgz#158a64f01c97fcf6922e7a370c6519d216544bcd"
+"@storybook/addon-actions@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.13.tgz#6ba603e5254ab01d16f9ff97c1656f3746710059"
dependencies:
deep-equal "^1.0.1"
global "^4.3.2"
@@ -13,37 +13,37 @@
react-inspector "^2.2.2"
uuid "^3.1.0"
-"@storybook/addon-links@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.3.11.tgz#7bc57baddd1502153ee94cf11fcb88d49131b211"
+"@storybook/addon-links@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.3.13.tgz#ea27db37e609a9036e4e6164ed52edf768b99eef"
dependencies:
- "@storybook/components" "^3.3.11"
+ "@storybook/components" "^3.3.13"
global "^4.3.2"
prop-types "^15.5.10"
-"@storybook/addons@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.11.tgz#7f85136d6da785160658aee512fd3cac99780f42"
+"@storybook/addons@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.13.tgz#b5c0395494b856cadc5bcb946cab7c206bc4f9af"
-"@storybook/channel-postmessage@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.3.11.tgz#a379f96f7819ba3752bb471ebf90ad07c3fc28ea"
+"@storybook/channel-postmessage@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.3.13.tgz#35eda62a97d0d1479452dc3a5338d320d5117083"
dependencies:
- "@storybook/channels" "^3.3.11"
+ "@storybook/channels" "^3.3.13"
global "^4.3.2"
json-stringify-safe "^5.0.1"
-"@storybook/channels@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.3.11.tgz#569f1c7c364aeb076df78eb829c58f9c9f0a3936"
+"@storybook/channels@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.3.13.tgz#892b80c89329198096761f4f3ddf11d9b252fc61"
-"@storybook/client-logger@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.3.11.tgz#35c851dbed2067201189847c7aa92f8d567a4d61"
+"@storybook/client-logger@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.3.13.tgz#a8d3120cf7e013a9e467c05dd440f529b3a93254"
-"@storybook/components@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.3.11.tgz#cb2a48b52e7cb45408172f4462f4730ca6970e78"
+"@storybook/components@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.3.13.tgz#003addacf9c98d61a35246eb7c76908d38d323c4"
dependencies:
glamor "^2.20.40"
glamorous "^4.11.2"
@@ -57,9 +57,9 @@
"@storybook/react-simple-di" "^1.2.1"
babel-runtime "6.x.x"
-"@storybook/node-logger@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-3.3.11.tgz#e459cbf8da75e2671a08de4f6dfe32b556b20af6"
+"@storybook/node-logger@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-3.3.13.tgz#ecc26dca0cdea4cf0b182e3b3c0c3e8466ca7764"
dependencies:
chalk "^2.3.0"
npmlog "^4.1.2"
@@ -87,17 +87,17 @@
dependencies:
babel-runtime "^6.5.0"
-"@storybook/react@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.3.11.tgz#5438d40aa095dd7b0c2f4e8e51a83fd5151df0c1"
- dependencies:
- "@storybook/addon-actions" "^3.3.11"
- "@storybook/addon-links" "^3.3.11"
- "@storybook/addons" "^3.3.11"
- "@storybook/channel-postmessage" "^3.3.11"
- "@storybook/client-logger" "^3.3.11"
- "@storybook/node-logger" "^3.3.11"
- "@storybook/ui" "^3.3.11"
+"@storybook/react@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.3.13.tgz#5b610e09158582d24a7e748663e27372185c2a19"
+ dependencies:
+ "@storybook/addon-actions" "^3.3.13"
+ "@storybook/addon-links" "^3.3.13"
+ "@storybook/addons" "^3.3.13"
+ "@storybook/channel-postmessage" "^3.3.13"
+ "@storybook/client-logger" "^3.3.13"
+ "@storybook/node-logger" "^3.3.13"
+ "@storybook/ui" "^3.3.13"
airbnb-js-shims "^1.4.0"
autoprefixer "^7.2.3"
babel-loader "^7.1.2"
@@ -149,11 +149,11 @@
webpack-dev-middleware "^1.12.2"
webpack-hot-middleware "^2.21.0"
-"@storybook/ui@^3.3.11":
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.3.11.tgz#df500b97739da484d51d6a1bcb52ce3866ad2148"
+"@storybook/ui@^3.3.13":
+ version "3.3.13"
+ resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.3.13.tgz#97656822a6503bf07b66a0288c757768f5451805"
dependencies:
- "@storybook/components" "^3.3.11"
+ "@storybook/components" "^3.3.13"
"@storybook/mantra-core" "^1.7.2"
"@storybook/react-komposer" "^2.0.3"
babel-runtime "^6.26.0"
@@ -177,7 +177,7 @@
react-treebeard "^2.1.0"
redux "^3.7.2"
-"@types/history@*":
+"@types/history@*", "@types/history@^4.6.2":
version "4.6.2"
resolved "https://registry.yarnpkg.com/@types/history/-/history-4.6.2.tgz#12cfaba693ba20f114ed5765467ff25fdf67ddb0"
@@ -3955,6 +3955,10 @@ fast-glob@^1.0.1:
micromatch "^3.0.3"
readdir-enhanced "^1.5.2"
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
fast-memoize@^2.2.7:
version "2.2.8"
resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.2.8.tgz#d7f899f31d037b12d9db4281912f9018575720b1"
@@ -4346,15 +4350,15 @@ fuse.js@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.2.0.tgz#f0448e8069855bf2a3e683cdc1d320e7e2a07ef4"
-gatsby-1-config-css-modules@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/gatsby-1-config-css-modules/-/gatsby-1-config-css-modules-1.0.8.tgz#c051b7be22c6d07d485c2d9d05e0b88c13f4a572"
+gatsby-1-config-css-modules@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/gatsby-1-config-css-modules/-/gatsby-1-config-css-modules-1.0.9.tgz#ae7ebffcaea4b1cc821951b71c123107d697bfaa"
dependencies:
babel-runtime "^6.26.0"
-gatsby-cli@^1.1.33:
- version "1.1.33"
- resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-1.1.33.tgz#a79337d73f88ef1157aceefd245242ec0d463680"
+gatsby-cli@^1.1.40:
+ version "1.1.40"
+ resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-1.1.40.tgz#6d81d245092f1eb983a2c3015875c3750c7d7db8"
dependencies:
babel-code-frame "^6.26.0"
babel-runtime "^6.26.0"
@@ -4374,25 +4378,26 @@ gatsby-cli@^1.1.33:
yargs "^8.0.2"
yurnalist "^0.2.1"
-gatsby-link@^1.6.35:
- version "1.6.35"
- resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-1.6.35.tgz#28ade7aa44460d0a3102d45e4f7413ff7a633e47"
+gatsby-link@^1.6.37:
+ version "1.6.37"
+ resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-1.6.37.tgz#d132290c0239dc2e11a9106353c586f969194673"
dependencies:
+ "@types/history" "^4.6.2"
"@types/react-router-dom" "^4.2.2"
babel-runtime "^6.26.0"
prop-types "^15.5.8"
ric "^1.3.0"
-gatsby-module-loader@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/gatsby-module-loader/-/gatsby-module-loader-1.0.9.tgz#a33f3496589577749d2fbb680f7bab9ddcc86172"
+gatsby-module-loader@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/gatsby-module-loader/-/gatsby-module-loader-1.0.10.tgz#32560de487ea5523097917bc1dc76b9a1247bbe9"
dependencies:
babel-runtime "^6.26.0"
loader-utils "^0.2.16"
-gatsby-plugin-sharp@^1.6.27:
- version "1.6.27"
- resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-1.6.27.tgz#28b697d19417ec1bf5ad0d4d805d5c634ed12c46"
+gatsby-plugin-sharp@^1.6.30:
+ version "1.6.30"
+ resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-1.6.30.tgz#c9c76c24687ed8c55e1524bae90486fe512586c2"
dependencies:
async "^2.1.2"
babel-runtime "^6.26.0"
@@ -4407,26 +4412,26 @@ gatsby-plugin-sharp@^1.6.27:
sharp "^0.19.0"
svgo "^0.7.2"
-gatsby-react-router-scroll@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-1.0.9.tgz#0a321e7ae8c69ac6ba9528abf5b7be4e549a943f"
+gatsby-react-router-scroll@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-1.0.11.tgz#1ad3bdfc7f0a897abf24e4d89111ee49de516691"
dependencies:
babel-runtime "^6.26.0"
- scroll-behavior "^0.9.1"
+ scroll-behavior "^0.9.9"
warning "^3.0.0"
-gatsby-remark-autolink-headers@^1.4.11:
- version "1.4.11"
- resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-1.4.11.tgz#d6d33613c18e405d90177dfa7dd54dd7853b4759"
+gatsby-remark-autolink-headers@^1.4.12:
+ version "1.4.12"
+ resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-1.4.12.tgz#98d1cc3b2d08dd24fe145db6360d7afb04c3874c"
dependencies:
babel-runtime "^6.26.0"
github-slugger "^1.1.1"
mdast-util-to-string "^1.0.2"
unist-util-visit "^1.1.1"
-gatsby-remark-copy-linked-files@^1.5.25:
- version "1.5.25"
- resolved "https://registry.yarnpkg.com/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-1.5.25.tgz#ca2098551de4df929f03b8ab0d3bfa54b9f68deb"
+gatsby-remark-copy-linked-files@^1.5.27:
+ version "1.5.27"
+ resolved "https://registry.yarnpkg.com/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-1.5.27.tgz#09657a439e14696e2e81b3b752632d1ae1367c89"
dependencies:
babel-runtime "^6.26.0"
cheerio "^1.0.0-rc.2"
@@ -4437,30 +4442,30 @@ gatsby-remark-copy-linked-files@^1.5.25:
path-is-inside "^1.0.2"
unist-util-visit "^1.1.1"
-gatsby-remark-images@^1.5.41:
- version "1.5.41"
- resolved "https://registry.yarnpkg.com/gatsby-remark-images/-/gatsby-remark-images-1.5.41.tgz#8692c6609a64ecd80a0137acc9a9878dc02ebc47"
+gatsby-remark-images@^1.5.46:
+ version "1.5.46"
+ resolved "https://registry.yarnpkg.com/gatsby-remark-images/-/gatsby-remark-images-1.5.46.tgz#b0b615236858a3a1ec80119057ce5c133d1b3313"
dependencies:
babel-runtime "^6.26.0"
cheerio "^1.0.0-rc.2"
- gatsby-plugin-sharp "^1.6.27"
+ gatsby-plugin-sharp "^1.6.30"
is-relative-url "^2.0.0"
lodash "^4.17.4"
slash "^1.0.0"
unist-util-select "^1.5.0"
-gatsby-remark-smartypants@^1.4.10:
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/gatsby-remark-smartypants/-/gatsby-remark-smartypants-1.4.10.tgz#b04c06741529e693dc54fe23e191edb3cf0aea9e"
+gatsby-remark-smartypants@^1.4.11:
+ version "1.4.11"
+ resolved "https://registry.yarnpkg.com/gatsby-remark-smartypants/-/gatsby-remark-smartypants-1.4.11.tgz#86e756aa9f093f25627961b00c14bcec6ebd1894"
dependencies:
babel-runtime "^6.26.0"
retext "^4.0.0"
retext-smartypants "^2.0.0"
unist-util-visit "^1.1.1"
-gatsby-source-filesystem@^1.5.16:
- version "1.5.16"
- resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-1.5.16.tgz#1439093b6ad53322667870ca4ed636ad0e2121b0"
+gatsby-source-filesystem@^1.5.20:
+ version "1.5.20"
+ resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-1.5.20.tgz#5f5bc8989497795adee7302451174ef5eaf6086d"
dependencies:
babel-cli "^6.26.0"
babel-runtime "^6.26.0"
@@ -4474,9 +4479,9 @@ gatsby-source-filesystem@^1.5.16:
slash "^1.0.0"
valid-url "^1.0.9"
-gatsby-transformer-remark@^1.7.30:
- version "1.7.30"
- resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-1.7.30.tgz#8785bc1f6b7df312bcf93ac02b6523723218f1e7"
+gatsby-transformer-remark@^1.7.32:
+ version "1.7.32"
+ resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-1.7.32.tgz#c16d2a2655f5a027626c7aee5e92850eaeae4664"
dependencies:
babel-runtime "^6.26.0"
bluebird "^3.5.0"
@@ -4499,9 +4504,9 @@ gatsby-transformer-remark@^1.7.30:
unist-util-select "^1.5.0"
unist-util-visit "^1.1.1"
-gatsby@^1.9.174:
- version "1.9.175"
- resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-1.9.175.tgz#a0e1f9a66202f5821abfc1fdbcf3673c3dfa5b4c"
+gatsby@^1.9.201:
+ version "1.9.201"
+ resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-1.9.201.tgz#792ed6dfd8e75ad89bb6c8e1fe262b493f88eb7d"
dependencies:
async "^2.1.2"
babel-code-frame "^6.22.0"
@@ -4535,20 +4540,21 @@ gatsby@^1.9.174:
express "^4.14.0"
express-graphql "^0.6.6"
extract-text-webpack-plugin "^1.0.1"
+ fast-levenshtein "~2.0.4"
file-loader "^0.9.0"
flat "^2.0.1"
friendly-errors-webpack-plugin "^1.6.1"
front-matter "^2.1.0"
fs-extra "^4.0.1"
- gatsby-1-config-css-modules "^1.0.8"
- gatsby-cli "^1.1.33"
- gatsby-link "^1.6.35"
- gatsby-module-loader "^1.0.9"
- gatsby-react-router-scroll "^1.0.9"
+ gatsby-1-config-css-modules "^1.0.9"
+ gatsby-cli "^1.1.40"
+ gatsby-link "^1.6.37"
+ gatsby-module-loader "^1.0.10"
+ gatsby-react-router-scroll "^1.0.11"
glob "^7.1.1"
graphql "^0.11.7"
graphql-relay "^0.5.1"
- graphql-skip-limit "^1.0.9"
+ graphql-skip-limit "^1.0.10"
history "^4.6.2"
invariant "^2.2.2"
is-relative "^0.2.1"
@@ -4908,9 +4914,9 @@ graphql-relay@^0.5.1:
version "0.5.3"
resolved "https://registry.yarnpkg.com/graphql-relay/-/graphql-relay-0.5.3.tgz#56a78ac07c87d89795a34db6b8e9681b827be5b5"
-graphql-skip-limit@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/graphql-skip-limit/-/graphql-skip-limit-1.0.9.tgz#20d0de6bd6cf3460c4fdcee3d6b379634d0d44b7"
+graphql-skip-limit@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/graphql-skip-limit/-/graphql-skip-limit-1.0.10.tgz#0923b8b2e333cfc5d47283fa3e376657a1378452"
dependencies:
babel-runtime "^6.26.0"
graphql "^0.11.7"
@@ -6594,6 +6600,10 @@ lodash@4.11.1:
version "4.11.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.11.1.tgz#a32106eb8e2ec8e82c241611414773c9df15f8bc"
+lodash@^4.17.5:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@@ -6720,9 +6730,9 @@ markdown-table@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.1.tgz#4b3dd3a133d1518b8ef0dbc709bf2a1b4824bc8c"
-marked@^0.3.12:
- version "0.3.12"
- resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.12.tgz#7cf25ff2252632f3fe2406bde258e94eee927519"
+marked@^0.3.14:
+ version "0.3.14"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.14.tgz#42375c23e206b95fdd497dd1d2f33ae4d1cf3d6c"
marked@^0.3.6:
version "0.3.9"
@@ -9657,9 +9667,9 @@ schema-utils@^0.4.2:
ajv "^5.0.0"
ajv-keywords "^2.1.0"
-scroll-behavior@^0.9.1:
- version "0.9.4"
- resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.4.tgz#73b4a0eae3e59c0b8f3b6fc1ff78f054a513e79c"
+scroll-behavior@^0.9.9:
+ version "0.9.9"
+ resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.9.tgz#ebfe0658455b82ad885b66195215416674dacce2"
dependencies:
dom-helpers "^3.2.1"
invariant "^2.2.2"
diff --git a/examples/angular-cli/.storybook/addons.js b/examples/angular-cli/.storybook/addons.js
index c558d2235028..44a1313c8f0d 100644
--- a/examples/angular-cli/.storybook/addons.js
+++ b/examples/angular-cli/.storybook/addons.js
@@ -1,6 +1,5 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import '@storybook/addon-actions/register';
import '@storybook/addon-links/register';
import '@storybook/addon-notes/register';
import '@storybook/addon-knobs/register';
+import '@storybook/addon-options/register';
diff --git a/examples/angular-cli/.storybook/config.js b/examples/angular-cli/.storybook/config.js
index 8fb37a998635..2fef94e1cea6 100644
--- a/examples/angular-cli/.storybook/config.js
+++ b/examples/angular-cli/.storybook/config.js
@@ -1,15 +1,20 @@
import { configure } from '@storybook/angular';
+import { setOptions } from '@storybook/addon-options';
import addCssWarning from '../src/cssWarning';
addCssWarning();
+setOptions({
+ hierarchyRootSeparator: /\|/,
+});
+
function loadStories() {
// put welcome screen at the top of the list so it's the first one displayed
require('../src/stories');
// automatically import all story ts files that end with *.stories.ts
- const req = require.context('../src/stories', true, /\.stories\.ts$/)
- req.keys().forEach((filename) => req(filename))
+ const req = require.context('../src/stories', true, /\.stories\.ts$/);
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/examples/angular-cli/package.json b/examples/angular-cli/package.json
index a97502dedf32..73465f1df4e7 100644
--- a/examples/angular-cli/package.json
+++ b/examples/angular-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-cli",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"private": true,
"license": "MIT",
"scripts": {
@@ -13,42 +13,44 @@
"test": "ng test"
},
"dependencies": {
- "@angular/animations": "^5.2.2",
- "@angular/common": "^5.2.2",
- "@angular/compiler": "^5.2.2",
- "@angular/core": "^5.2.2",
- "@angular/forms": "^5.2.2",
- "@angular/http": "^5.2.2",
- "@angular/platform-browser": "^5.2.2",
- "@angular/platform-browser-dynamic": "^5.2.2",
- "@angular/router": "^5.2.2",
+ "@angular/animations": "^5.2.5",
+ "@angular/common": "^5.2.5",
+ "@angular/compiler": "^5.2.5",
+ "@angular/core": "^5.2.5",
+ "@angular/forms": "^5.2.5",
+ "@angular/http": "^5.2.5",
+ "@angular/platform-browser": "^5.2.5",
+ "@angular/platform-browser-dynamic": "^5.2.5",
+ "@angular/router": "^5.2.5",
"core-js": "^2.4.1",
"rxjs": "^5.4.2",
"zone.js": "^0.8.20"
},
"devDependencies": {
- "@angular/cli": "1.6.6",
- "@angular/compiler-cli": "^5.2.2",
- "@angular/language-service": "^5.2.2",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-storyshots": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/angular": "^3.4.0-alpha.6",
+ "@angular/cli": "1.7.0",
+ "@angular/compiler-cli": "^5.2.5",
+ "@angular/language-service": "^5.2.5",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-storyshots": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/angular": "^3.4.0-alpha.8",
"@types/jasmine": "~2.8.6",
- "@types/node": "~6.0.96",
+ "@types/node": "~9.4.6",
"global": "^4.3.2",
- "jasmine-core": "~2.9.1",
+ "jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
- "karma": "~1.7.0",
+ "karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.4.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
- "ts-node": "~3.3.0",
- "typescript": "^2.7.1"
+ "ts-node": "~4.1.0",
+ "typescript": "^2.7.2"
}
}
diff --git a/examples/angular-cli/src/stories/__snapshots__/addon-actions.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/addon-actions.stories.storyshot
index 744f3a1be919..252d7be8acc7 100644
--- a/examples/angular-cli/src/stories/__snapshots__/addon-actions.stories.storyshot
+++ b/examples/angular-cli/src/stories/__snapshots__/addon-actions.stories.storyshot
@@ -1,18 +1,18 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Addon Actions Action and method 1`] = `
+exports[`Storyshots Addon|Actions Action and method 1`] = `
Action and Method
@@ -22,19 +22,19 @@ exports[`Storyshots Addon Actions Action and method 1`] = `
`;
-exports[`Storyshots Addon Actions Action only 1`] = `
+exports[`Storyshots Addon|Actions Action only 1`] = `
Action only
diff --git a/examples/angular-cli/src/stories/__snapshots__/addon-knobs.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/addon-knobs.stories.storyshot
index 59e126d4c6db..c33cc5239ccc 100644
--- a/examples/angular-cli/src/stories/__snapshots__/addon-knobs.stories.storyshot
+++ b/examples/angular-cli/src/stories/__snapshots__/addon-knobs.stories.storyshot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Addon Knobs All knobs 1`] = `
+exports[`Storyshots Addon|Knobs All knobs 1`] = `
`;
-exports[`Storyshots Addon Knobs Simple 1`] = `
+exports[`Storyshots Addon|Knobs Simple 1`] = `
Go to Welcome Story
diff --git a/examples/angular-cli/src/stories/__snapshots__/addon-notes.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/addon-notes.stories.storyshot
index 94b5ff1c35a0..03dd16736718 100644
--- a/examples/angular-cli/src/stories/__snapshots__/addon-notes.stories.storyshot
+++ b/examples/angular-cli/src/stories/__snapshots__/addon-notes.stories.storyshot
@@ -1,18 +1,18 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Addon Notes Note with HTML 1`] = `
+exports[`Storyshots Addon|Notes Note with HTML 1`] = `
Notes with HTML
@@ -22,19 +22,19 @@ exports[`Storyshots Addon Notes Note with HTML 1`] = `
`;
-exports[`Storyshots Addon Notes Simple note 1`] = `
+exports[`Storyshots Addon|Notes Simple note 1`] = `
Notes on some Button
diff --git a/examples/angular-cli/src/stories/__snapshots__/custom-ng-content.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/custom-ng-content.stories.storyshot
new file mode 100644
index 000000000000..3616eacf80cd
--- /dev/null
+++ b/examples/angular-cli/src/stories/__snapshots__/custom-ng-content.stories.storyshot
@@ -0,0 +1,21 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Custom|ng-content Default 1`] = `
+
+
+
+
+
+ This is rendered in ng-content
+
+
+
+
+
+`;
diff --git a/examples/angular-cli/src/stories/__snapshots__/custom-pipes.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/custom-pipes.stories.storyshot
new file mode 100644
index 000000000000..b2a69015ad53
--- /dev/null
+++ b/examples/angular-cli/src/stories/__snapshots__/custom-pipes.stories.storyshot
@@ -0,0 +1,29 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Custom|Pipes Simple 1`] = `
+
+
+
+ CustomPipe: foobar
+
+
+
+`;
+
+exports[`Storyshots Custom|Pipes With Knobs 1`] = `
+
+
+
+ CustomPipe: foobar
+
+
+
+`;
diff --git a/examples/angular-cli/src/stories/__snapshots__/custom-metadata.stories.storyshot b/examples/angular-cli/src/stories/__snapshots__/custom-providers.stories.storyshot
similarity index 51%
rename from examples/angular-cli/src/stories/__snapshots__/custom-metadata.stories.storyshot
rename to examples/angular-cli/src/stories/__snapshots__/custom-providers.stories.storyshot
index d927a530a22b..97aa11aaed47 100644
--- a/examples/angular-cli/src/stories/__snapshots__/custom-metadata.stories.storyshot
+++ b/examples/angular-cli/src/stories/__snapshots__/custom-providers.stories.storyshot
@@ -1,34 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Custom Pipe Default 1`] = `
-
-
-
- CustomPipe: foobar
-
-
-
-`;
-
-exports[`Storyshots Custom Pipe/With Knobs NameComponent 1`] = `
-
-
-
- CustomPipe: foobar
-
-
-
-`;
-
-exports[`Storyshots Custom ngModule metadata simple 1`] = `
+exports[`Storyshots Custom|Providers Simple 1`] = `
`;
-exports[`Storyshots Custom ngModule metadata with knobs 1`] = `
+exports[`Storyshots Custom|Providers With knobs 1`] = `
Button with custom styles
@@ -25,24 +25,24 @@ exports[`Storyshots Custom Style Default 1`] = `
`;
-exports[`Storyshots Custom Style With Knobs 1`] = `
+exports[`Storyshots Custom|Style With Knobs 1`] = `
Button with custom styles
diff --git a/examples/angular-cli/src/stories/__snapshots__/index.storyshot b/examples/angular-cli/src/stories/__snapshots__/index.storyshot
index 4b9cce2ec8be..30483889802a 100644
--- a/examples/angular-cli/src/stories/__snapshots__/index.storyshot
+++ b/examples/angular-cli/src/stories/__snapshots__/index.storyshot
@@ -6,19 +6,22 @@ exports[`Storyshots Button with some emoji 1`] = `
data={[Function Object]}
target={[Function ViewContainerRef_]}
>
-
-
-
-
+
- 😀 😎 👍 💯
-
-
+
+
+
+ 😀 😎 👍 💯
+
+
-
+
+
`;
@@ -29,13 +32,6 @@ exports[`Storyshots Button with text 1`] = `
target={[Function ViewContainerRef_]}
>
-
-
-
- This is a template
-
-
-
-
-
+
+
+`;
+
+exports[`Storyshots Welcome to Storybook 1`] = `
+
+
Welcome to storybook
This is a UI component dev environment for your app.
We've added some basic stories inside the
src/stories
@@ -90,14 +95,14 @@ exports[`Storyshots Button with text 1`] = `
directory.
A story is a single state of one or more UI components. You can have as many stories as
you want.
(Basically a story is like a visual test case.)
@@ -106,12 +111,12 @@ exports[`Storyshots Button with text 1`] = `
See these sample
@@ -120,7 +125,7 @@ exports[`Storyshots Button with text 1`] = `
for a component called
Button
@@ -131,24 +136,24 @@ exports[`Storyshots Button with text 1`] = `
Just like that, you can add your own components as stories.
You can also edit those components and see changes right away.
(Try editing the
Button
@@ -156,7 +161,7 @@ exports[`Storyshots Button with text 1`] = `
stories
located at
src/stories/index.js
@@ -167,17 +172,17 @@ exports[`Storyshots Button with text 1`] = `
Usually we create stories with smaller UI components in the app.
Have a look at the
NOTE:
Have a look at the
.storybook/webpack.config.js
@@ -225,190 +230,6 @@ exports[`Storyshots Button with text 1`] = `
-
-
`;
-
-exports[`Storyshots Welcome to Storybook 1`] = `
-
-
-
-
-
-
-
-
- Welcome to storybook
-
-
-
-
- This is a UI component dev environment for your app.
-
-
-
-
-
- We've added some basic stories inside the
-
- src/stories
-
- directory.
-
-
-
- A story is a single state of one or more UI components. You can have as many stories as
- you want.
-
-
-
- (Basically a story is like a visual test case.)
-
-
-
-
-
-
- See these sample
-
- stories
-
- for a component called
-
-
- Button
-
- .
-
-
-
-
-
-
- Just like that, you can add your own components as stories.
-
-
-
- You can also edit those components and see changes right away.
-
-
-
- (Try editing the
-
- Button
-
- stories
- located at
-
- src/stories/index.js
-
- .)
-
-
-
-
-
-
- Usually we create stories with smaller UI components in the app.
-
-
- Have a look at the
-
-
- Writing Stories
-
-
- section in our documentation.
-
-
-
-
-
-
-
-
- NOTE:
-
-
-
-
-
- Have a look at the
-
- .storybook/webpack.config.js
-
-
- to add webpack loaders and plugins you are using in this project.
-
-
-
-
-
-
-
-
-
-`;
diff --git a/examples/angular-cli/src/stories/addon-actions.stories.ts b/examples/angular-cli/src/stories/addon-actions.stories.ts
index 6820b38ce4cb..6e20fd02b1ac 100644
--- a/examples/angular-cli/src/stories/addon-actions.stories.ts
+++ b/examples/angular-cli/src/stories/addon-actions.stories.ts
@@ -2,7 +2,7 @@ import { storiesOf } from '@storybook/angular';
import { action } from '@storybook/addon-actions';
import { Button } from '@storybook/angular/demo';
-storiesOf('Addon Actions', module)
+storiesOf('Addon|Actions', module)
.add('Action only', () => ({
component: Button,
props: {
diff --git a/examples/angular-cli/src/stories/addon-knobs.stories.ts b/examples/angular-cli/src/stories/addon-knobs.stories.ts
index 29708d2a8bb7..f4a1cd90b38c 100644
--- a/examples/angular-cli/src/stories/addon-knobs.stories.ts
+++ b/examples/angular-cli/src/stories/addon-knobs.stories.ts
@@ -16,7 +16,7 @@ import {
import { SimpleKnobsComponent } from './knobs.component';
import { AllKnobsComponent } from './all-knobs.component';
-storiesOf('Addon Knobs', module)
+storiesOf('Addon|Knobs', module)
.addDecorator(withKnobs)
.add('Simple', () => {
const name = text('name', 'John Doe');
diff --git a/examples/angular-cli/src/stories/addon-links.stories.ts b/examples/angular-cli/src/stories/addon-links.stories.ts
index c33f82b72565..61c583d620aa 100644
--- a/examples/angular-cli/src/stories/addon-links.stories.ts
+++ b/examples/angular-cli/src/stories/addon-links.stories.ts
@@ -2,7 +2,7 @@ import { linkTo } from '@storybook/addon-links';
import { storiesOf } from '@storybook/angular';
import { Button } from '@storybook/angular/demo';
-storiesOf('Another Button', module).add('button with link to another story', () => ({
+storiesOf('Addon|Links', module).add('button with link to another story', () => ({
component: Button,
props: {
text: 'Go to Welcome Story',
diff --git a/examples/angular-cli/src/stories/addon-notes.stories.ts b/examples/angular-cli/src/stories/addon-notes.stories.ts
index 64468bb5e256..c47e63d39cba 100644
--- a/examples/angular-cli/src/stories/addon-notes.stories.ts
+++ b/examples/angular-cli/src/stories/addon-notes.stories.ts
@@ -2,7 +2,7 @@ import { storiesOf } from '@storybook/angular';
import { withNotes } from '@storybook/addon-notes';
import { Button } from '@storybook/angular/demo';
-storiesOf('Addon Notes', module)
+storiesOf('Addon|Notes', module)
.add(
'Simple note',
withNotes({ text: 'My notes on some button' })(() => ({
diff --git a/examples/angular-cli/src/stories/component-with-di/__snapshots__/di.component.stories.storyshot b/examples/angular-cli/src/stories/component-with-di/__snapshots__/di.component.stories.storyshot
index 84e7b5be377d..63ab868eea34 100644
--- a/examples/angular-cli/src/stories/component-with-di/__snapshots__/di.component.stories.storyshot
+++ b/examples/angular-cli/src/stories/component-with-di/__snapshots__/di.component.stories.storyshot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Component dependencies inputs and inject dependencies 1`] = `
+exports[`Storyshots Custom|Dependencies inputs and inject dependencies 1`] = `
`;
-exports[`Storyshots Component dependencies inputs and inject dependencies with knobs 1`] = `
+exports[`Storyshots Custom|Dependencies inputs and inject dependencies with knobs 1`] = `
({
component: DiComponent,
props: {
diff --git a/examples/angular-cli/src/stories/component-with-style/__snapshots__/styled.component.stories.storyshot b/examples/angular-cli/src/stories/component-with-style/__snapshots__/styled.component.stories.storyshot
index d2a95b1f3523..ce08d8055500 100644
--- a/examples/angular-cli/src/stories/component-with-style/__snapshots__/styled.component.stories.storyshot
+++ b/examples/angular-cli/src/stories/component-with-style/__snapshots__/styled.component.stories.storyshot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Component styles Component with styles 1`] = `
+exports[`Storyshots Custom|styleUrls Component with styles 1`] = `
({
+storiesOf('Custom|styleUrls', module).add('Component with styles', () => ({
component: StyledComponent,
}));
diff --git a/examples/angular-cli/src/stories/custom-metadata.stories.ts b/examples/angular-cli/src/stories/custom-metadata.stories.ts
deleted file mode 100644
index 48c03a3ed644..000000000000
--- a/examples/angular-cli/src/stories/custom-metadata.stories.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { storiesOf } from '@storybook/angular';
-import { withKnobs, text } from '@storybook/addon-knobs/angular';
-
-import { NameComponent } from './moduleMetadata/name.component';
-import { CustomPipePipe } from './moduleMetadata/custom.pipe';
-import { DummyService } from './moduleMetadata/dummy.service';
-import { ServiceComponent } from './moduleMetadata/service.component';
-
-storiesOf('Custom Pipe', module).add('Default', () => ({
- component: NameComponent,
- props: {
- field: 'foobar',
- },
- moduleMetadata: {
- imports: [],
- schemas: [],
- declarations: [CustomPipePipe],
- providers: [],
- },
-}));
-
-storiesOf('Custom Pipe/With Knobs', module)
- .addDecorator(withKnobs)
- .add('NameComponent', () => ({
- component: NameComponent,
- props: {
- field: text('field', 'foobar'),
- },
- moduleMetadata: {
- imports: [],
- schemas: [],
- declarations: [CustomPipePipe],
- providers: [],
- },
- }));
-
-storiesOf('Custom ngModule metadata', module)
- .add('simple', () => ({
- component: ServiceComponent,
- props: {
- name: 'Static name',
- },
- moduleMetadata: {
- imports: [],
- schemas: [],
- declarations: [],
- providers: [DummyService],
- },
- }))
- .addDecorator(withKnobs)
- .add('with knobs', () => {
- const name = text('name', 'Dynamic knob');
-
- return {
- component: ServiceComponent,
- props: {
- name,
- },
- moduleMetadata: {
- imports: [],
- schemas: [],
- declarations: [],
- providers: [DummyService],
- },
- };
- });
diff --git a/examples/angular-cli/src/stories/custom-ng-content.stories.ts b/examples/angular-cli/src/stories/custom-ng-content.stories.ts
new file mode 100644
index 000000000000..5baa440d797b
--- /dev/null
+++ b/examples/angular-cli/src/stories/custom-ng-content.stories.ts
@@ -0,0 +1,15 @@
+import { Component } from '@angular/core';
+import { storiesOf } from '@storybook/angular';
+
+@Component({
+ selector: 'storybook-with-ng-content',
+ template: `
`,
+})
+class WithNgContentComponent {}
+
+storiesOf('Custom|ng-content', module).add('Default', () => ({
+ template: `This is rendered in ng-content `,
+ moduleMetadata: {
+ declarations: [WithNgContentComponent],
+ },
+}));
diff --git a/examples/angular-cli/src/stories/custom-pipes.stories.ts b/examples/angular-cli/src/stories/custom-pipes.stories.ts
new file mode 100644
index 000000000000..45b84c68ff0e
--- /dev/null
+++ b/examples/angular-cli/src/stories/custom-pipes.stories.ts
@@ -0,0 +1,32 @@
+import { storiesOf } from '@storybook/angular';
+import { withKnobs, text } from '@storybook/addon-knobs/angular';
+
+import { NameComponent } from './moduleMetadata/name.component';
+import { CustomPipePipe } from './moduleMetadata/custom.pipe';
+
+storiesOf('Custom|Pipes', module)
+ .add('Simple', () => ({
+ component: NameComponent,
+ props: {
+ field: 'foobar',
+ },
+ moduleMetadata: {
+ imports: [],
+ schemas: [],
+ declarations: [CustomPipePipe],
+ providers: [],
+ },
+ }))
+ .addDecorator(withKnobs)
+ .add('With Knobs', () => ({
+ component: NameComponent,
+ props: {
+ field: text('field', 'foobar'),
+ },
+ moduleMetadata: {
+ imports: [],
+ schemas: [],
+ declarations: [CustomPipePipe],
+ providers: [],
+ },
+ }));
diff --git a/examples/angular-cli/src/stories/custom-providers.stories.ts b/examples/angular-cli/src/stories/custom-providers.stories.ts
new file mode 100644
index 000000000000..420c2f1c64a2
--- /dev/null
+++ b/examples/angular-cli/src/stories/custom-providers.stories.ts
@@ -0,0 +1,36 @@
+import { storiesOf } from '@storybook/angular';
+import { withKnobs, text } from '@storybook/addon-knobs/angular';
+
+import { DummyService } from './moduleMetadata/dummy.service';
+import { ServiceComponent } from './moduleMetadata/service.component';
+
+storiesOf('Custom|Providers', module)
+ .add('Simple', () => ({
+ component: ServiceComponent,
+ props: {
+ name: 'Static name',
+ },
+ moduleMetadata: {
+ imports: [],
+ schemas: [],
+ declarations: [],
+ providers: [DummyService],
+ },
+ }))
+ .addDecorator(withKnobs)
+ .add('With knobs', () => {
+ const name = text('name', 'Dynamic knob');
+
+ return {
+ component: ServiceComponent,
+ props: {
+ name,
+ },
+ moduleMetadata: {
+ imports: [],
+ schemas: [],
+ declarations: [],
+ providers: [DummyService],
+ },
+ };
+ });
diff --git a/examples/angular-cli/src/stories/custom-styles.stories.ts b/examples/angular-cli/src/stories/custom-styles.stories.ts
index 7bf4e59958c0..6d8cabd8f2df 100644
--- a/examples/angular-cli/src/stories/custom-styles.stories.ts
+++ b/examples/angular-cli/src/stories/custom-styles.stories.ts
@@ -3,7 +3,7 @@ import { action } from '@storybook/addon-actions';
import { withKnobs, text } from '@storybook/addon-knobs/angular';
import { Button } from '@storybook/angular/demo';
-storiesOf('Custom Style', module)
+storiesOf('Custom|Style', module)
.add('Default', () => ({
template: ` `,
moduleMetadata: {
diff --git a/examples/angular-cli/src/stories/customControlValueAccessor/__snapshots__/custom-cva-component.stories.storyshot b/examples/angular-cli/src/stories/customControlValueAccessor/__snapshots__/custom-cva-component.stories.storyshot
index 63c11a12c5e8..11aed9fbe91b 100644
--- a/examples/angular-cli/src/stories/customControlValueAccessor/__snapshots__/custom-cva-component.stories.storyshot
+++ b/examples/angular-cli/src/stories/customControlValueAccessor/__snapshots__/custom-cva-component.stories.storyshot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots ngModel custom ControlValueAccessor 1`] = `
+exports[`Storyshots Custom|ngModel custom ControlValueAccessor 1`] = `
({
component: CustomCvaComponent,
diff --git a/examples/angular-cli/src/stories/index.ts b/examples/angular-cli/src/stories/index.ts
index 08fc7eac3698..625a86f6bc64 100644
--- a/examples/angular-cli/src/stories/index.ts
+++ b/examples/angular-cli/src/stories/index.ts
@@ -2,14 +2,18 @@ import { storiesOf } from '@storybook/angular';
import { Welcome, Button } from '@storybook/angular/demo';
storiesOf('Welcome', module).add('to Storybook', () => ({
- component: Welcome,
+ template: ` `,
props: {},
+ moduleMetadata: {
+ declarations: [Welcome],
+ },
}));
storiesOf('Button', module)
.add('with text', () => ({
+ template: ` `,
moduleMetadata: {
- declarations: [Button, Welcome],
+ declarations: [Button],
},
props: {
text: 'Hello Button',
@@ -18,14 +22,12 @@ storiesOf('Button', module)
console.log(event);
},
},
- template: `
- This is a template
-
-
- `,
}))
.add('with some emoji', () => ({
- component: Button,
+ template: ` `,
+ moduleMetadata: {
+ declarations: [Button],
+ },
props: {
text: '😀 😎 👍 💯',
onClick: () => {},
diff --git a/examples/angular-cli/src/stories/inheritance/__snapshots__/inheritance.stories.storyshot b/examples/angular-cli/src/stories/inheritance/__snapshots__/inheritance.stories.storyshot
index 67e21a5c1f77..80c76ca10549 100644
--- a/examples/angular-cli/src/stories/inheritance/__snapshots__/inheritance.stories.storyshot
+++ b/examples/angular-cli/src/stories/inheritance/__snapshots__/inheritance.stories.storyshot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Inheritance base button 1`] = `
+exports[`Storyshots Custom|Inheritance base button 1`] = `
`;
-exports[`Storyshots Inheritance icon button 1`] = `
+exports[`Storyshots Custom|Inheritance icon button 1`] = `
({
component: IconButtonComponent,
props: {
diff --git a/examples/angular-cli/tsconfig.json b/examples/angular-cli/tsconfig.json
index a6c016bf38ad..2508424a9a70 100644
--- a/examples/angular-cli/tsconfig.json
+++ b/examples/angular-cli/tsconfig.json
@@ -1,4 +1,7 @@
{
+ "lerna": {
+ "disabled": true
+ },
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
diff --git a/examples/cra-kitchen-sink/.storybook/config.js b/examples/cra-kitchen-sink/.storybook/config.js
index 3ee683d25cdd..f3fa6fc94282 100644
--- a/examples/cra-kitchen-sink/.storybook/config.js
+++ b/examples/cra-kitchen-sink/.storybook/config.js
@@ -25,8 +25,8 @@ function loadStories() {
require('../src/stories/welcome');
// automatically import all story js files that end with *.stories.js
- const req = require.context('../src/stories', true, /\.stories\.js$/)
- req.keys().forEach((filename) => req(filename))
+ const req = require.context('../src/stories', true, /\.stories\.js$/);
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/examples/cra-kitchen-sink/.storybook/webpack.config.js b/examples/cra-kitchen-sink/.storybook/webpack.config.js
index 5e12befd0629..8a6998fc93a3 100644
--- a/examples/cra-kitchen-sink/.storybook/webpack.config.js
+++ b/examples/cra-kitchen-sink/.storybook/webpack.config.js
@@ -9,11 +9,11 @@ module.exports = (storybookBaseConfig, configType, defaultConfig) => {
// Make whatever fine-grained changes you need
defaultConfig.plugins.push(
new webpack.optimize.CommonsChunkPlugin({
- name: "vendor",
+ name: 'vendor',
chunks: ['preview'],
- minChunks: function (module) {
+ minChunks(module) {
// this assumes your vendor imports exist in the node_modules directory
- return module.context && module.context.indexOf("node_modules") !== -1;
+ return module.context && module.context.indexOf('node_modules') !== -1;
},
})
);
diff --git a/examples/cra-kitchen-sink/package.json b/examples/cra-kitchen-sink/package.json
index 6421b33ce7aa..68dee6eb2c52 100644
--- a/examples/cra-kitchen-sink/package.json
+++ b/examples/cra-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "cra-kitchen-sink",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"private": true,
"scripts": {
"build": "react-scripts build",
@@ -12,35 +12,36 @@
},
"dependencies": {
"glamor": "^2.20.40",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"global": "^4.3.2",
"prop-types": "^15.6.0",
"react": "^16.2.0",
"react-dom": "^16.2.0"
},
"devDependencies": {
- "@storybook/addon-a11y": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-backgrounds": "^3.4.0-alpha.6",
- "@storybook/addon-centered": "^3.4.0-alpha.6",
- "@storybook/addon-events": "^3.4.0-alpha.6",
- "@storybook/addon-info": "^3.4.0-alpha.6",
- "@storybook/addon-jest": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-options": "^3.4.0-alpha.6",
- "@storybook/addon-storyshots": "^3.4.0-alpha.6",
- "@storybook/addon-viewport": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/client-logger": "^3.4.0-alpha.6",
- "@storybook/components": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6",
- "babel-jest": "^22.1.0",
+ "@storybook/addon-a11y": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-backgrounds": "^3.4.0-alpha.8",
+ "@storybook/addon-centered": "^3.4.0-alpha.8",
+ "@storybook/addon-events": "^3.4.0-alpha.8",
+ "@storybook/addon-info": "^3.4.0-alpha.8",
+ "@storybook/addon-jest": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-storyshots": "^3.4.0-alpha.8",
+ "@storybook/addon-viewport": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/client-logger": "^3.4.0-alpha.8",
+ "@storybook/components": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "babel-jest": "^22.2.2",
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "^3.3.1",
- "jest": "^22.1.4",
- "react-scripts": "^1.1.0"
+ "jest": "^22.3.0",
+ "react-scripts": "^1.1.1",
+ "webpack": "^3.11.0"
}
}
diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.stories.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.stories.storyshot
index f16b77e56881..fb90836a82f2 100644
--- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.stories.storyshot
+++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.stories.storyshot
@@ -631,7 +631,12 @@ exports[`Storyshots Button with some emoji 1`] = `
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
`;
diff --git a/examples/cra-kitchen-sink/src/stories/index.js b/examples/cra-kitchen-sink/src/stories/index.js
index a40676394ae8..36e85139f650 100644
--- a/examples/cra-kitchen-sink/src/stories/index.js
+++ b/examples/cra-kitchen-sink/src/stories/index.js
@@ -90,7 +90,7 @@
// .add('with some emoji', () => (
//
// {setOptions({ selectedAddonPanel: 'storybook/actions/actions-panel' })}
-// 😀 😎 👍 💯
+// 😀 😎 👍 💯
//
// ))
// .add('with notes', () => (
@@ -315,12 +315,12 @@
// .add(
// 'with a button and some emoji',
// withNotes('My notes on a button with emojies')(() => (
-// 😀 😎 👍 💯
+// 😀 😎 👍 💯
// ))
// )
// .add('with old API', () => (
//
-// 😀 😎 👍 💯
+// 😀 😎 👍 💯
//
// ));
@@ -362,16 +362,16 @@
// storiesOf('Cells/Molecules.Atoms/simple', module)
// .addDecorator(withKnobs)
// .add('with text', () => {text('buttonText', 'Hello Button')} )
-// .add('with some emoji', () => 😀 😎 👍 💯 );
+// .add('with some emoji', () => 😀 😎 👍 💯 );
// storiesOf('Cells/Molecules/Atoms.more', module)
// .add('with text2', () => Hello Button )
-// .add('with some emoji2', () => 😀 😎 👍 💯 );
+// .add('with some emoji2', () => 😀 😎 👍 💯 );
// storiesOf('Cells/Molecules', module)
// .add('with text', () => Hello Button )
-// .add('with some emoji', () => 😀 😎 👍 💯 );
+// .add('with some emoji', () => 😀 😎 👍 💯 );
// storiesOf('Cells.Molecules.Atoms', module)
// .add('with text2', () => Hello Button )
-// .add('with some emoji2', () => 😀 😎 👍 💯 );
+// .add('with some emoji2', () => 😀 😎 👍 💯 );
diff --git a/examples/cra-kitchen-sink/src/stories/index.stories.js b/examples/cra-kitchen-sink/src/stories/index.stories.js
index cebb63b19aed..a13abed14f90 100644
--- a/examples/cra-kitchen-sink/src/stories/index.stories.js
+++ b/examples/cra-kitchen-sink/src/stories/index.stories.js
@@ -41,7 +41,9 @@ storiesOf('Button', module)
.add('with some emoji', () => (
{setOptions({ selectedAddonPanel: 'storybook/actions/actions-panel' })}
- 😀 😎 👍 💯
+
+ 😀 😎 👍 💯
+
))
.add('with notes', () => (
diff --git a/examples/crna-kitchen-sink/.eslintrc.js b/examples/crna-kitchen-sink/.eslintrc.js
deleted file mode 100644
index 10af9c7f0f92..000000000000
--- a/examples/crna-kitchen-sink/.eslintrc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- extends: ['plugin:import/react-native'],
-};
diff --git a/examples/crna-kitchen-sink/app.json b/examples/crna-kitchen-sink/app.json
index 2f9f5b8269a3..7acefb4d1c1e 100644
--- a/examples/crna-kitchen-sink/app.json
+++ b/examples/crna-kitchen-sink/app.json
@@ -1,5 +1,5 @@
{
"expo": {
- "sdkVersion": "24.0.2"
+ "sdkVersion": "24.0.0"
}
}
diff --git a/examples/official-storybook/README.md b/examples/official-storybook/README.md
index cee8e08fef36..df6ee6f541f0 100644
--- a/examples/official-storybook/README.md
+++ b/examples/official-storybook/README.md
@@ -2,7 +2,7 @@
This storybook includes stories for:
- - `@storybook/components` - reusable UI components for addon authors
- - `@storybook/ui` - the UI of storybook itself
- - `@storybook/addon-*` - various addons.
- - `@storybook/other-*` - various examples.
+- `@storybook/components` - reusable UI components for addon authors
+- `@storybook/ui` - the UI of storybook itself
+- `@storybook/addon-*` - various addons.
+- `@storybook/other-*` - various examples.
diff --git a/examples/official-storybook/addons.js b/examples/official-storybook/addons.js
index 3d9e060a1226..e8ffd5ee2812 100644
--- a/examples/official-storybook/addons.js
+++ b/examples/official-storybook/addons.js
@@ -1,4 +1,3 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
import '@storybook/addon-actions/register';
import '@storybook/addon-links/register';
import '@storybook/addon-events/register';
@@ -8,6 +7,7 @@ import '@storybook/addon-knobs/register';
import '@storybook/addon-backgrounds/register';
import '@storybook/addon-a11y/register';
import '@storybook/addon-jest/register';
+import '@storybook/addon-viewport/register';
import addHeadWarning from './head-warning';
diff --git a/examples/official-storybook/built-storybooks/angular-cli b/examples/official-storybook/built-storybooks/angular-cli
new file mode 120000
index 000000000000..fb7a49bbf43c
--- /dev/null
+++ b/examples/official-storybook/built-storybooks/angular-cli
@@ -0,0 +1 @@
+../../angular-cli/storybook-static
\ No newline at end of file
diff --git a/examples/official-storybook/built-storybooks/cra-kitchen-sink b/examples/official-storybook/built-storybooks/cra-kitchen-sink
new file mode 120000
index 000000000000..bc94cdebbafc
--- /dev/null
+++ b/examples/official-storybook/built-storybooks/cra-kitchen-sink
@@ -0,0 +1 @@
+../../cra-kitchen-sink/storybook-static
\ No newline at end of file
diff --git a/examples/official-storybook/built-storybooks/polymer-cli b/examples/official-storybook/built-storybooks/polymer-cli
new file mode 120000
index 000000000000..0ea6cbfd0ec9
--- /dev/null
+++ b/examples/official-storybook/built-storybooks/polymer-cli
@@ -0,0 +1 @@
+../../polymer-cli/storybook-static
\ No newline at end of file
diff --git a/examples/official-storybook/built-storybooks/vue-kitchen-sink b/examples/official-storybook/built-storybooks/vue-kitchen-sink
new file mode 120000
index 000000000000..48946b56a2af
--- /dev/null
+++ b/examples/official-storybook/built-storybooks/vue-kitchen-sink
@@ -0,0 +1 @@
+../../vue-kitchen-sink/storybook-static
\ No newline at end of file
diff --git a/examples/official-storybook/components/DocgenButton.js b/examples/official-storybook/components/DocgenButton.js
index bf327352abd1..8a1b11329d49 100644
--- a/examples/official-storybook/components/DocgenButton.js
+++ b/examples/official-storybook/components/DocgenButton.js
@@ -105,6 +105,7 @@ DocgenButton.propTypes = {
* `oneOf` is basically an Enum which is also supported but can be pretty big.
*/
enm: PropTypes.oneOf(['News', 'Photos']),
+ enmEval: PropTypes.oneOf((() => ['News', 'Photos'])()),
/**
* A multi-type prop is also valid and is displayed as `Union`
*/
diff --git a/examples/official-storybook/components/FlowTypeButton.js b/examples/official-storybook/components/FlowTypeButton.js
index 4511adf970f6..be85c3a40d4a 100644
--- a/examples/official-storybook/components/FlowTypeButton.js
+++ b/examples/official-storybook/components/FlowTypeButton.js
@@ -1,13 +1,40 @@
// @flow
import React from 'react';
+/* eslint-disable react/no-unused-prop-types,react/require-default-props */
+
+const Message = {};
+
type PropsType = {
- /** The text to be rendered in the button */
+ /** A multi-type prop to be rendered in the button */
label: string,
/** Function to be called when the button is clicked */
onClick?: Function,
- /** Boolean representing wether the button is disabled */
+ /** Boolean representing whether the button is disabled */
disabled?: boolean,
+ /** A plain object */
+ obj?: Object,
+ /** A complex Object with nested types */
+ shape: {
+ id: number,
+ func?: Function,
+ arr?: Array<{
+ index: number,
+ }>,
+ shape?: {
+ shape?: {
+ foo?: string,
+ },
+ },
+ },
+ /** An array of numbers */
+ arrayOf?: Array,
+ /** A custom type */
+ msg?: typeof Message,
+ /** `oneOf` as Enum */
+ enm?: 'News' | 'Photos',
+ /** `oneOf` A multi-type prop of string or custom Message */
+ union?: string | typeof Message,
};
/** FlowTypeButton component description imported from comments inside the component file */
diff --git a/examples/official-storybook/config.js b/examples/official-storybook/config.js
index f2886738d26a..e7a90c2bceef 100644
--- a/examples/official-storybook/config.js
+++ b/examples/official-storybook/config.js
@@ -1,4 +1,3 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
import { configure } from '@storybook/react';
import { setOptions } from '@storybook/addon-options';
import 'react-chromatic/storybook-addon';
diff --git a/examples/official-storybook/image-snapshots/storyshots-image.runner.js b/examples/official-storybook/image-snapshots/storyshots-image.runner.js
index 19e82c2a50f2..6c2eae5a849b 100644
--- a/examples/official-storybook/image-snapshots/storyshots-image.runner.js
+++ b/examples/official-storybook/image-snapshots/storyshots-image.runner.js
@@ -4,7 +4,8 @@
* */
import path from 'path';
import fs from 'fs';
-import initStoryshots, { imageSnapshot } from '../../../addons/storyshots/src/index';
+import initStoryshots, { imageSnapshot } from '@storybook/addon-storyshots';
+import { logger } from '@storybook/node-logger';
// Image snapshots
// We do screenshots against the static build of the storybook.
@@ -12,7 +13,7 @@ import initStoryshots, { imageSnapshot } from '../../../addons/storyshots/src/in
const pathToStorybookStatic = path.join(__dirname, '../', 'storybook-static');
if (!fs.existsSync(pathToStorybookStatic)) {
- console.error(
+ logger.error(
'You are running image snapshots without having the static build of storybook. Please run "yarn run build-storybook" before running tests.'
);
} else {
diff --git a/examples/official-storybook/package.json b/examples/official-storybook/package.json
index e0b6a10f4e86..23bb10983100 100644
--- a/examples/official-storybook/package.json
+++ b/examples/official-storybook/package.json
@@ -1,39 +1,40 @@
{
"name": "official-storybook",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"private": true,
"scripts": {
"build-storybook": "build-storybook -c ./",
"chromatic": "chromatic test --storybook-addon --exit-zero-on-changes --app-code ab7m45tp9p",
"generate-addon-jest-testresults": "jest --config=tests/addon-jest.config.json --json --outputFile=stories/addon-jest.testresults.json",
"image-snapshots": "yarn run build-storybook && jest --projects=./image-snapshots",
- "storybook": "start-storybook -p 9010 -c ./"
+ "storybook": "start-storybook -p 9011 -c ./ -s built-storybooks"
},
"devDependencies": {
- "@storybook/addon-a11y": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-backgrounds": "^3.4.0-alpha.6",
- "@storybook/addon-centered": "^3.4.0-alpha.6",
- "@storybook/addon-events": "^3.4.0-alpha.6",
- "@storybook/addon-info": "^3.4.0-alpha.6",
- "@storybook/addon-jest": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-options": "^3.4.0-alpha.6",
- "@storybook/addon-storyshots": "^3.4.0-alpha.6",
- "@storybook/addon-viewport": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/components": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6",
- "babel-jest": "^21.2.0",
+ "@storybook/addon-a11y": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-backgrounds": "^3.4.0-alpha.8",
+ "@storybook/addon-centered": "^3.4.0-alpha.8",
+ "@storybook/addon-events": "^3.4.0-alpha.8",
+ "@storybook/addon-info": "^3.4.0-alpha.8",
+ "@storybook/addon-jest": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-storyshots": "^3.4.0-alpha.8",
+ "@storybook/addon-viewport": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/components": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "babel-jest": "^22.1.0",
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "^3.3.1",
- "eventemitter3": "^3.0.0",
+ "eventemitter3": "^3.0.1",
"format-json": "^1.0.3",
"global": "^4.3.2",
- "jest": "^21.2.1",
+ "jest": "^22.3.0",
"paths.macro": "^2.0.2",
"prop-types": "^15.6.0",
"react": "^16.2.0",
diff --git a/examples/official-storybook/stories/__snapshots__/addon-backgrounds.stories.storyshot b/examples/official-storybook/stories/__snapshots__/addon-backgrounds.stories.storyshot
index 7c24fd311035..59ddd8f533da 100644
--- a/examples/official-storybook/stories/__snapshots__/addon-backgrounds.stories.storyshot
+++ b/examples/official-storybook/stories/__snapshots__/addon-backgrounds.stories.storyshot
@@ -1,21 +1,13 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots Addons|Backgrounds story 1 1`] = `
-
-
- You should be able to switch backgrounds for this story
-
-
+
+ You should be able to switch backgrounds for this story
+
`;
exports[`Storyshots Addons|Backgrounds story 2 1`] = `
-
-
- This one too!
-
-
+
+ This one too!
+
`;
diff --git a/examples/official-storybook/stories/__snapshots__/addon-info.stories.storyshot b/examples/official-storybook/stories/__snapshots__/addon-info.stories.storyshot
index 4c177fc5dcf6..20a70fb9792b 100644
--- a/examples/official-storybook/stories/__snapshots__/addon-info.stories.storyshot
+++ b/examples/official-storybook/stories/__snapshots__/addon-info.stories.storyshot
@@ -3808,6 +3808,31 @@ exports[`Storyshots Addons|Info.React Docgen Comments from PropType declarations
class="css-d52hbj"
/>
+
+
+ enmEval
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+`;
+
+exports[`Storyshots App|acceptance cra-kitchen-sink 1`] = `
+
+`;
+
+exports[`Storyshots App|acceptance polymer-cli 1`] = `
+
+`;
+
+exports[`Storyshots App|acceptance vue-kitchen-sink 1`] = `
+
+`;
diff --git a/examples/official-storybook/stories/app-acceptance.stories.js b/examples/official-storybook/stories/app-acceptance.stories.js
new file mode 100644
index 000000000000..d63618a03a47
--- /dev/null
+++ b/examples/official-storybook/stories/app-acceptance.stories.js
@@ -0,0 +1,26 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+import { withNotes } from '@storybook/addon-notes';
+
+// For these stories to work, you must build the static version of the
+// example storybooks *before* running this storybook.
+
+const chapter = storiesOf('App|acceptance', module);
+
+const style = {
+ border: 0,
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ width: '100vw',
+ height: '100vh',
+};
+
+['cra-kitchen-sink', 'vue-kitchen-sink', 'angular-cli', 'polymer-cli'].forEach(name => {
+ chapter.add(
+ name,
+ withNotes(`You must build the storybook for the ${name} example for this story to work.`)(
+ () =>
+ )
+ );
+});
diff --git a/examples/polymer-cli/.storybook/addons.js b/examples/polymer-cli/.storybook/addons.js
index 1191fbebf304..40db03219095 100644
--- a/examples/polymer-cli/.storybook/addons.js
+++ b/examples/polymer-cli/.storybook/addons.js
@@ -2,3 +2,4 @@ import '@storybook/addon-actions/register';
import '@storybook/addon-notes/register';
import '@storybook/addon-knobs/register';
import '@storybook/addon-viewport/register';
+import '@storybook/addon-options/register';
diff --git a/examples/polymer-cli/.storybook/config.js b/examples/polymer-cli/.storybook/config.js
index 37ff65014786..895756388af9 100644
--- a/examples/polymer-cli/.storybook/config.js
+++ b/examples/polymer-cli/.storybook/config.js
@@ -1,10 +1,15 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import { configure } from '@storybook/polymer';
+import { setOptions } from '@storybook/addon-options';
+
+setOptions({
+ hierarchyRootSeparator: /\|/,
+});
function loadStories() {
require('../src/stories/index.stories');
- require('../src/stories/advanced.stories');
+
+ const req = require.context('../src/stories', true, /\.stories\.js$/);
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/examples/polymer-cli/package.json b/examples/polymer-cli/package.json
index a354a06d62b7..da064a39a126 100644
--- a/examples/polymer-cli/package.json
+++ b/examples/polymer-cli/package.json
@@ -1,22 +1,23 @@
{
"name": "polymer-cli",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"private": true,
"scripts": {
"start": "webpack-dev-server",
"storybook": "start-storybook -p 9001 -c .storybook"
},
"dependencies": {
- "@polymer/polymer": "^2.4.0",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-viewport": "^3.4.0-alpha.6",
- "@storybook/polymer": "^3.4.0-alpha.6",
+ "@polymer/polymer": "^2.5.0",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-viewport": "^3.4.0-alpha.8",
+ "@storybook/polymer": "^3.4.0-alpha.8",
"@webcomponents/webcomponentsjs": "^1.1.0",
"global": "^4.3.2",
"polymer-webpack-loader": "^2.0.0",
- "webpack": "^3.8.1"
+ "webpack": "^3.11.0"
},
"devDependencies": {
"babel": "^6.23.0",
@@ -24,7 +25,7 @@
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-2": "^6.24.1",
- "copy-webpack-plugin": "^4.2.0",
+ "copy-webpack-plugin": "^4.4.0",
"html-webpack-plugin": "^2.30.1",
"webpack-dev-server": "^2.11.1"
}
diff --git a/examples/polymer-cli/src/playground-button.html b/examples/polymer-cli/src/playground-button.html
index 272d6b2acc0d..51a4b0ed5daa 100644
--- a/examples/polymer-cli/src/playground-button.html
+++ b/examples/polymer-cli/src/playground-button.html
@@ -4,7 +4,15 @@
{
+ const el = document.createElement('playground-button');
+ el.addEventListener('click', action('log1'));
+ return el;
+ })
+ .add('Action and method', () => {
+ const el = document.createElement('playground-button');
+ el.addEventListener('click', e => action('log2')(e.target));
+ return el;
+ });
diff --git a/examples/polymer-cli/src/stories/addon-knobs.stories.js b/examples/polymer-cli/src/stories/addon-knobs.stories.js
new file mode 100644
index 000000000000..3473a82b7fe8
--- /dev/null
+++ b/examples/polymer-cli/src/stories/addon-knobs.stories.js
@@ -0,0 +1,56 @@
+import { storiesOf } from '@storybook/polymer';
+import { action } from '@storybook/addon-actions';
+import { document } from 'global';
+
+import {
+ withKnobs,
+ text,
+ button,
+ number,
+ select,
+ date,
+ color,
+ array,
+ boolean,
+} from '@storybook/addon-knobs/polymer';
+
+storiesOf('Addon|Knobs', module)
+ .addDecorator(withKnobs)
+ .add('simple', () => {
+ const title = text('Button title', 'Hello');
+ const el = document.createElement('playground-button');
+ el.setAttribute('title', title);
+ button('callback', () => el.setAttribute('title', 'testing'));
+ return el;
+ })
+ .add('complex', () => {
+ const name = text('Name', 'Jane');
+ const stock = number('Stock', 20, { range: true, min: 0, max: 30, step: 5 });
+ const fruits = { apples: 'Apple', bananas: 'Banana', cherries: 'Cherry' };
+ const fruit = select('Fruit', fruits, 'apple');
+ const price = number('Price', 2.25);
+ const colour = color('Border', 'deeppink');
+ const today = date('Today', new Date('Jan 20 2017 GMT+0'));
+ const items = array('Items', ['Laptop', 'Book', 'Whiskey']);
+ const nice = boolean('Nice', true);
+
+ const stockMessage = stock
+ ? `I have a stock of ${stock} ${fruit}, costing $${price} each.`
+ : `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`;
+ const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
+
+ button('Arbitrary action', action('You clicked it!'));
+
+ return `
+
+
My name is ${name},
+
today is ${new Date(today).toLocaleDateString('en-US', dateOptions)}
+
${stockMessage}
+
Also, I have:
+
+ ${items.map(item => `${item} `).join('')}
+
+
${nice ? 'Nice to meet you!' : 'Leave me alone!'}
+
+ `;
+ });
diff --git a/examples/polymer-cli/src/stories/addon-notes.stories.js b/examples/polymer-cli/src/stories/addon-notes.stories.js
new file mode 100644
index 000000000000..cab392df79fe
--- /dev/null
+++ b/examples/polymer-cli/src/stories/addon-notes.stories.js
@@ -0,0 +1,23 @@
+import { storiesOf } from '@storybook/polymer';
+import { withNotes } from '@storybook/addon-notes';
+
+storiesOf('Addon|Notes', module)
+ .add(
+ 'Simple note',
+ withNotes({ text: 'My notes on some bold text' })(
+ () =>
+ 'Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
'
+ )
+ )
+ .add(
+ 'Note with HTML',
+ withNotes({
+ text: `
+ My notes on emojies
+
+ It's not all that important to be honest, but..
+
+ Emojis are great, I love emojis, in fact I like using them in my Component notes too! 😇
+ `,
+ })(() => '🤔😳😯😮 😄😩😓😱 🤓😑😶😊
')
+ );
diff --git a/examples/polymer-cli/src/stories/advanced.stories.js b/examples/polymer-cli/src/stories/advanced.stories.js
deleted file mode 100644
index 509e4b512e0a..000000000000
--- a/examples/polymer-cli/src/stories/advanced.stories.js
+++ /dev/null
@@ -1,105 +0,0 @@
-import { storiesOf } from '@storybook/polymer';
-import { action } from '@storybook/addon-actions';
-import { withNotes } from '@storybook/addon-notes';
-import {
- withKnobs,
- text,
- button,
- number,
- select,
- date,
- color,
- array,
- boolean,
-} from '@storybook/addon-knobs/polymer';
-import { document } from 'global';
-import '../polymer-playground-app.html';
-import '../playground-button.html';
-import '../separated-button/separated-button.html';
-import './storybook-welcome-to-polymer.html';
-
-storiesOf('Advanced/Decorator', module)
- .addDecorator(story => {
- const el = story();
- el.setAttribute('title', `${el.getAttribute('title')} - decorated`);
- return el;
- })
- .add('example decoration', () => {
- const el = document.createElement('playground-button');
- el.setAttribute('title', 'An example title');
- return el;
- });
-
-storiesOf('Advanced/Addon Actions', module)
- .add('Action only', () => {
- const el = document.createElement('playground-button');
- el.addEventListener('click', action('log1'));
- return el;
- })
- .add('Action and method', () => {
- const el = document.createElement('playground-button');
- el.addEventListener('click', e => action('log2')(e.target));
- return el;
- });
-
-storiesOf('Advanced/Addon Notes', module)
- .add(
- 'Simple note',
- withNotes({ text: 'My notes on some bold text' })(
- () =>
- 'Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
'
- )
- )
- .add(
- 'Note with HTML',
- withNotes({
- text: `
- My notes on emojies
-
- It's not all that important to be honest, but..
-
- Emojis are great, I love emojis, in fact I like using them in my Component notes too! 😇
- `,
- })(() => '🤔😳😯😮 😄😩😓😱 🤓😑😶😊
')
- );
-
-storiesOf('Advanced/Addon Knobs', module)
- .addDecorator(withKnobs)
- .add('simple', () => {
- const title = text('Button title', 'Hello');
- const el = document.createElement('playground-button');
- el.setAttribute('title', title);
- button('callback', () => el.setAttribute('title', 'testing'));
- return el;
- })
- .add('complex', () => {
- const name = text('Name', 'Jane');
- const stock = number('Stock', 20, { range: true, min: 0, max: 30, step: 5 });
- const fruits = { apples: 'Apple', bananas: 'Banana', cherries: 'Cherry' };
- const fruit = select('Fruit', fruits, 'apple');
- const price = number('Price', 2.25);
- const colour = color('Border', 'deeppink');
- const today = date('Today', new Date('Jan 20 2017 GMT+0'));
- const items = array('Items', ['Laptop', 'Book', 'Whiskey']);
- const nice = boolean('Nice', true);
-
- const stockMessage = stock
- ? `I have a stock of ${stock} ${fruit}, costing $${price} each.`
- : `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`;
- const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
-
- button('Arbitrary action', action('You clicked it!'));
-
- return `
-
-
My name is ${name},
-
today is ${new Date(today).toLocaleDateString('en-US', dateOptions)}
-
${stockMessage}
-
Also, I have:
-
- ${items.map(item => `${item} `).join('')}
-
-
${nice ? 'Nice to meet you!' : 'Leave me alone!'}
-
- `;
- });
diff --git a/examples/polymer-cli/src/stories/custom-decorators.stories.js b/examples/polymer-cli/src/stories/custom-decorators.stories.js
new file mode 100644
index 000000000000..c2ef4cdf3ddb
--- /dev/null
+++ b/examples/polymer-cli/src/stories/custom-decorators.stories.js
@@ -0,0 +1,14 @@
+import { storiesOf } from '@storybook/polymer';
+import { document } from 'global';
+
+storiesOf('Custom|Decorator', module)
+ .addDecorator(story => {
+ const el = story();
+ el.setAttribute('title', `${el.getAttribute('title')} - decorated`);
+ return el;
+ })
+ .add('example decoration', () => {
+ const el = document.createElement('playground-button');
+ el.setAttribute('title', 'An example title');
+ return el;
+ });
diff --git a/examples/polymer-cli/src/stories/custom-rendering.stories.js b/examples/polymer-cli/src/stories/custom-rendering.stories.js
new file mode 100644
index 000000000000..d33bdc8c045f
--- /dev/null
+++ b/examples/polymer-cli/src/stories/custom-rendering.stories.js
@@ -0,0 +1,15 @@
+import { storiesOf } from '@storybook/polymer';
+import { document } from 'global';
+import { StringTemplateButton } from '../string-template-button';
+
+import '../separated-button/separated-button.html';
+
+storiesOf('Custom|Methods for rendering', module)
+ .add('html string', () => 'Rendered with string
')
+ .add('html with custom elements', () => ' ')
+ .add('document.createElement', () => {
+ const el = document.createElement('playground-button');
+ el.setAttribute('title', 'Rendered with document.createElement');
+ return el;
+ })
+ .add('Polymer instance', () => new StringTemplateButton());
diff --git a/examples/polymer-cli/src/stories/index.stories.js b/examples/polymer-cli/src/stories/index.stories.js
index f17d1fa3dbee..641787592c40 100644
--- a/examples/polymer-cli/src/stories/index.stories.js
+++ b/examples/polymer-cli/src/stories/index.stories.js
@@ -1,34 +1,19 @@
import { storiesOf } from '@storybook/polymer';
-import { withKnobs, text } from '@storybook/addon-knobs/polymer';
-import { document } from 'global';
+
import '../polymer-playground-app.html';
import '../playground-button.html';
-import '../separated-button/separated-button.html';
import './storybook-welcome-to-polymer.html';
-import { StringTemplateButton } from '../string-template-button';
storiesOf('Welcome', module).add(
'Welcome',
() => ' '
);
-storiesOf('App', module)
- .addDecorator(withKnobs)
- .add('full app', () => {
- const title = text('title', 'This title can be edited via a knob');
- return ` `;
- });
+storiesOf('App', module).add(
+ 'full app',
+ () => ' '
+);
storiesOf('Button', module)
.add('rounded', () => ' ')
.add('square', () => ' ');
-
-storiesOf('Methods for rendering', module)
- .add('html string', () => 'Rendered with string
')
- .add('html with custom elements', () => ' ')
- .add('document.createElement', () => {
- const el = document.createElement('playground-button');
- el.setAttribute('title', 'Rendered with document.createElement');
- return el;
- })
- .add('Polymer instance', () => new StringTemplateButton());
diff --git a/examples/react-native-vanilla/.eslintrc.js b/examples/react-native-vanilla/.eslintrc.js
deleted file mode 100644
index 10af9c7f0f92..000000000000
--- a/examples/react-native-vanilla/.eslintrc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- extends: ['plugin:import/react-native'],
-};
diff --git a/examples/vue-kitchen-sink/.storybook/addons.js b/examples/vue-kitchen-sink/.storybook/addons.js
index 2d7b52c620bd..392c585c9c6a 100644
--- a/examples/vue-kitchen-sink/.storybook/addons.js
+++ b/examples/vue-kitchen-sink/.storybook/addons.js
@@ -3,3 +3,4 @@ import '@storybook/addon-links/register';
import '@storybook/addon-notes/register';
import '@storybook/addon-knobs/register';
import '@storybook/addon-viewport/register';
+import '@storybook/addon-options/register';
diff --git a/examples/vue-kitchen-sink/.storybook/config.js b/examples/vue-kitchen-sink/.storybook/config.js
index 385320a351f4..4fe1aa7bbb86 100644
--- a/examples/vue-kitchen-sink/.storybook/config.js
+++ b/examples/vue-kitchen-sink/.storybook/config.js
@@ -1,15 +1,22 @@
import { configure } from '@storybook/vue';
+import { setOptions } from '@storybook/addon-options';
+import Vue from 'vue';
+import Vuex from 'vuex';
-import Vue from 'vue'
-import Vuex from 'vuex'
-
-import MyButton from '../src/stories/Button.vue'
+import MyButton from '../src/stories/Button.vue';
Vue.component('my-button', MyButton);
Vue.use(Vuex);
+setOptions({
+ hierarchyRootSeparator: /\|/,
+});
+
function loadStories() {
require('../src/stories');
+
+ const req = require.context('../src/stories', true, /\.stories\.js$/);
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/examples/vue-kitchen-sink/.storybook/webpack.config.js b/examples/vue-kitchen-sink/.storybook/webpack.config.js
index c96b297ebae5..0d8d7a63c6c3 100644
--- a/examples/vue-kitchen-sink/.storybook/webpack.config.js
+++ b/examples/vue-kitchen-sink/.storybook/webpack.config.js
@@ -8,11 +8,11 @@ module.exports = (storybookBaseConfig, configType, defaultConfig) => {
// Make whatever fine-grained changes you need
defaultConfig.plugins.push(
new webpack.optimize.CommonsChunkPlugin({
- name: "vendor",
+ name: 'vendor',
chunks: ['preview'],
- minChunks: function (module) {
+ minChunks(module) {
// this assumes your vendor imports exist in the node_modules directory
- return module.context && module.context.indexOf("node_modules") !== -1;
+ return module.context && module.context.indexOf('node_modules') !== -1;
},
})
);
diff --git a/examples/vue-kitchen-sink/package.json b/examples/vue-kitchen-sink/package.json
index 80acd6189727..6f0e5d57140a 100644
--- a/examples/vue-kitchen-sink/package.json
+++ b/examples/vue-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-example",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"private": true,
"scripts": {
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
@@ -13,19 +13,20 @@
"vuex": "^3.0.0"
},
"devDependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-centered": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-storyshots": "^3.4.0-alpha.6",
- "@storybook/addon-viewport": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/vue": "^3.4.0-alpha.6",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-centered": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-storyshots": "^3.4.0-alpha.8",
+ "@storybook/addon-viewport": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/vue": "^3.4.0-alpha.8",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.0",
- "babel-preset-vue": "^1.2.1",
+ "babel-preset-vue": "^2.0.1",
"cross-env": "^5.1.3",
"css-loader": "^0.28.9",
"file-loader": "^1.1.6",
@@ -33,7 +34,7 @@
"vue-loader": "^13.7.1",
"vue-style-loader": "^3.1.2",
"vue-template-compiler": "^2.5.13",
- "webpack": "^3.10.0",
+ "webpack": "^3.11.0",
"webpack-dev-server": "^2.11.1"
}
}
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-actions.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-actions.stories.storyshot
new file mode 100644
index 000000000000..7691db827094
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-actions.stories.storyshot
@@ -0,0 +1,19 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Addon|Actions Action and method 1`] = `
+
+ Click me to log the action!
+
+`;
+
+exports[`Storyshots Addon|Actions Action only 1`] = `
+
+ Click me to log the action!
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-centered.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-centered.stories.storyshot
new file mode 100644
index 000000000000..4838600b62f3
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-centered.stories.storyshot
@@ -0,0 +1,18 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Addon|Centered rounded 1`] = `
+
+
+
+ A Button with rounded edges!
+
+
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-knobs.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-knobs.stories.storyshot
new file mode 100644
index 000000000000..f2a13b0fcadf
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-knobs.stories.storyshot
@@ -0,0 +1,45 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Addon|Knobs All knobs 1`] = `
+
+
+ My name is Jane,
+
+
+
+ today is January 20, 2017
+
+
+
+ I have a stock of 20 apple, costing $2.25 each.
+
+
+
+ Also, I have:
+
+
+
+
+ Laptop
+
+
+ Book
+
+
+ Whiskey
+
+
+
+
+ Nice to meet you!
+
+
+`;
+
+exports[`Storyshots Addon|Knobs Simple 1`] = `
+
+ I am John Doe and I'm 44 years old.
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-notes.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-notes.stories.storyshot
new file mode 100644
index 000000000000..a005840d537d
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/addon-notes.stories.storyshot
@@ -0,0 +1,19 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Addon|Notes Note with HTML 1`] = `
+
+ 🤔😳😯😮
+
+ 😄😩😓😱
+
+ 🤓😑😶😊
+
+`;
+
+exports[`Storyshots Addon|Notes Simple note 1`] = `
+
+
+ Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
+
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-decorators.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-decorators.stories.storyshot
new file mode 100644
index 000000000000..eb88673228af
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-decorators.stories.storyshot
@@ -0,0 +1,34 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Custom|Decorator for Vue render 1`] = `
+
+
+
+ renders component: MyButton!
+
+
+
+`;
+
+exports[`Storyshots Custom|Decorator for Vue template 1`] = `
+
+
+
+ MyButton with template!
+
+
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-rendering.stories.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-rendering.stories.storyshot
new file mode 100644
index 000000000000..b2c1b397beba
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/custom-rendering.stories.storyshot
@@ -0,0 +1,95 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Custom|Method for rendering Vue JSX 1`] = `
+
+ MyButton rendered with JSX!
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue pre-registered component 1`] = `
+
+
+ This component was pre-registered in .storybook/config.js
+
+
+
+
+ MyButton rendered in a template!
+
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue render + component 1`] = `
+
+ renders component: MyButton!
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue render 1`] = `
+
+ renders a div with some text in it..
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue template + component 1`] = `
+
+ MyButton rendered in a template!
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue template + methods 1`] = `
+
+
+ Clicking the button will navigate to another story using the 'addon-links'
+
+
+
+
+ MyButton rendered in a template + props & methods!
+
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue template 1`] = `
+
+
+ A template
+
+
+
+ rendered in vue in storybook
+
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue vuex + actions 1`] = `
+
+ with vuex: 0!
+
+`;
+
+exports[`Storyshots Custom|Method for rendering Vue whatever you want 1`] = `
+
+ with awesomeness: 0!
+
+`;
diff --git a/examples/vue-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/vue-kitchen-sink/src/stories/__snapshots__/index.storyshot
index 8f065230c187..4ba02911bcbc 100644
--- a/examples/vue-kitchen-sink/src/stories/__snapshots__/index.storyshot
+++ b/examples/vue-kitchen-sink/src/stories/__snapshots__/index.storyshot
@@ -1,85 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Storyshots Addon Actions Action and method 1`] = `
-
- Click me to log the action!
-
-`;
-
-exports[`Storyshots Addon Actions Action only 1`] = `
-
- Click me to log the action!
-
-`;
-
-exports[`Storyshots Addon Knobs All knobs 1`] = `
-
-
- My name is Jane,
-
-
-
- today is January 20, 2017
-
-
-
- I have a stock of 20 apple, costing $2.25 each.
-
-
-
- Also, I have:
-
-
-
-
- Laptop
-
-
- Book
-
-
- Whiskey
-
-
-
-
- Nice to meet you!
-
-
-`;
-
-exports[`Storyshots Addon Knobs Simple 1`] = `
-
- I am John Doe and I'm 44 years old.
-
-`;
-
-exports[`Storyshots Addon Notes Note with HTML 1`] = `
-
- 🤔😳😯😮
-
- 😄😩😓😱
-
- 🤓😑😶😊
-
-`;
-
-exports[`Storyshots Addon Notes Simple note 1`] = `
-
-
- Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
-
-
-`;
-
exports[`Storyshots App App 1`] = `
-
-
- A Button with rounded edges!
-
-
-
-`;
-
-exports[`Storyshots Button square 1`] = `
-
-
-
- A Button with square edges!
-
-
-
-`;
-
-exports[`Storyshots Decorator for Vue render 1`] = `
-
-
-
- renders component: MyButton!
-
-
-
-`;
-
-exports[`Storyshots Decorator for Vue template 1`] = `
-
-
-
- MyButton with template!
-
-
-
-`;
-
-exports[`Storyshots Method for rendering Vue JSX 1`] = `
-
- MyButton rendered with JSX!
-
-`;
-
-exports[`Storyshots Method for rendering Vue pre-registered component 1`] = `
-
-
- This component was pre-registered in .storybook/config.js
-
-
-
-
- MyButton rendered in a template!
-
-
-`;
-
-exports[`Storyshots Method for rendering Vue render + component 1`] = `
-
- renders component: MyButton!
-
-`;
-
-exports[`Storyshots Method for rendering Vue render 1`] = `
-
- renders a div with some text in it..
-
-`;
-
-exports[`Storyshots Method for rendering Vue template + component 1`] = `
- MyButton rendered in a template!
+ A Button with rounded edges!
`;
-exports[`Storyshots Method for rendering Vue template + methods 1`] = `
-
-
- Clicking the button will navigate to another story using the 'addon-links'
-
-
-
-
- MyButton rendered in a template + props & methods!
-
-
-`;
-
-exports[`Storyshots Method for rendering Vue template 1`] = `
-
-
- A template
-
-
-
- rendered in vue in storybook
-
-
-`;
-
-exports[`Storyshots Method for rendering Vue vuex + actions 1`] = `
-
- with vuex: 0!
-
-`;
-
-exports[`Storyshots Method for rendering Vue whatever you want 1`] = `
+exports[`Storyshots Button square 1`] = `
- with awesomeness: 0!
+ A Button with square edges!
`;
diff --git a/examples/vue-kitchen-sink/src/stories/addon-actions.stories.js b/examples/vue-kitchen-sink/src/stories/addon-actions.stories.js
new file mode 100644
index 000000000000..e7c24137dda3
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/addon-actions.stories.js
@@ -0,0 +1,19 @@
+import { storiesOf } from '@storybook/vue';
+import { action } from '@storybook/addon-actions';
+
+storiesOf('Addon|Actions', module)
+ .add('Action only', () => ({
+ template: 'Click me to log the action ',
+ methods: {
+ log: action('log1'),
+ },
+ }))
+ .add('Action and method', () => ({
+ template: 'Click me to log the action ',
+ methods: {
+ log: e => {
+ e.preventDefault();
+ action('log2')(e.target);
+ },
+ },
+ }));
diff --git a/examples/vue-kitchen-sink/src/stories/addon-centered.stories.js b/examples/vue-kitchen-sink/src/stories/addon-centered.stories.js
new file mode 100644
index 000000000000..d202fc947c07
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/addon-centered.stories.js
@@ -0,0 +1,11 @@
+import { storiesOf } from '@storybook/vue';
+import Centered from '@storybook/addon-centered';
+
+import MyButton from './Button.vue';
+
+storiesOf('Addon|Centered', module)
+ .addDecorator(Centered)
+ .add('rounded', () => ({
+ components: { MyButton },
+ template: 'A Button with rounded edges ',
+ }));
diff --git a/examples/vue-kitchen-sink/src/stories/addon-knobs.stories.js b/examples/vue-kitchen-sink/src/stories/addon-knobs.stories.js
new file mode 100644
index 000000000000..a63f1646792f
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/addon-knobs.stories.js
@@ -0,0 +1,69 @@
+import { storiesOf } from '@storybook/vue';
+import { action } from '@storybook/addon-actions';
+import {
+ withKnobs,
+ text,
+ number,
+ boolean,
+ array,
+ select,
+ color,
+ date,
+ button,
+} from '@storybook/addon-knobs/vue';
+
+storiesOf('Addon|Knobs', module)
+ .addDecorator(withKnobs)
+ .add('Simple', () => {
+ const name = text('Name', 'John Doe');
+ const age = number('Age', 44);
+ const content = `I am ${name} and I'm ${age} years old.`;
+
+ return {
+ template: `${content}
`,
+ };
+ })
+ .add('All knobs', () => {
+ const name = text('Name', 'Jane');
+ const stock = number('Stock', 20, {
+ range: true,
+ min: 0,
+ max: 30,
+ step: 5,
+ });
+ const fruits = {
+ apples: 'Apple',
+ bananas: 'Banana',
+ cherries: 'Cherry',
+ };
+ const fruit = select('Fruit', fruits, 'apple');
+ const price = number('Price', 2.25);
+
+ const colour = color('Border', 'deeppink');
+ const today = date('Today', new Date('Jan 20 2017 GMT+0'));
+ const items = array('Items', ['Laptop', 'Book', 'Whiskey']);
+ const nice = boolean('Nice', true);
+
+ const stockMessage = stock
+ ? `I have a stock of ${stock} ${fruit}, costing $${price} each.`
+ : `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`;
+ const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!';
+ const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
+
+ button('Arbitrary action', action('You clicked it!'));
+
+ return {
+ template: `
+
+
My name is ${name},
+
today is ${new Date(today).toLocaleDateString('en-US', dateOptions)}
+
${stockMessage}
+
Also, I have:
+
+ ${items.map(item => `${item} `).join('')}
+
+
${salutation}
+
+ `,
+ };
+ });
diff --git a/examples/vue-kitchen-sink/src/stories/addon-notes.stories.js b/examples/vue-kitchen-sink/src/stories/addon-notes.stories.js
new file mode 100644
index 000000000000..a35213b8ff2e
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/addon-notes.stories.js
@@ -0,0 +1,25 @@
+import { storiesOf } from '@storybook/vue';
+import { withNotes } from '@storybook/addon-notes';
+
+storiesOf('Addon|Notes', module)
+ .add(
+ 'Simple note',
+ withNotes({ text: 'My notes on some bold text' })(() => ({
+ template:
+ 'Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
',
+ }))
+ )
+ .add(
+ 'Note with HTML',
+ withNotes({
+ text: `
+ My notes on emojies
+
+ It's not all that important to be honest, but..
+
+ Emojis are great, I love emojis, in fact I like using them in my Component notes too! 😇
+ `,
+ })(() => ({
+ template: '🤔😳😯😮 😄😩😓😱 🤓😑😶😊
',
+ }))
+ );
diff --git a/examples/vue-kitchen-sink/src/stories/custom-decorators.stories.js b/examples/vue-kitchen-sink/src/stories/custom-decorators.stories.js
new file mode 100644
index 000000000000..3ff256088776
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/custom-decorators.stories.js
@@ -0,0 +1,33 @@
+import { storiesOf } from '@storybook/vue';
+
+import MyButton from './Button.vue';
+
+storiesOf('Custom|Decorator for Vue', module)
+ .addDecorator(story => {
+ // Decorated with story function
+ const WrapButton = story();
+ return {
+ components: { WrapButton },
+ template: '
',
+ data() {
+ return { borderStyle: 'medium solid red' };
+ },
+ };
+ })
+ .addDecorator(() => ({
+ // Decorated with `story` component
+ template: '
',
+ data() {
+ return {
+ borderStyle: 'medium solid blue',
+ };
+ },
+ }))
+ .add('template', () => ({
+ template: 'MyButton with template ',
+ }))
+ .add('render', () => ({
+ render(h) {
+ return h(MyButton, { props: { color: 'pink' } }, ['renders component: MyButton']);
+ },
+ }));
diff --git a/examples/vue-kitchen-sink/src/stories/custom-rendering.stories.js b/examples/vue-kitchen-sink/src/stories/custom-rendering.stories.js
new file mode 100644
index 000000000000..cfbde6349393
--- /dev/null
+++ b/examples/vue-kitchen-sink/src/stories/custom-rendering.stories.js
@@ -0,0 +1,92 @@
+import Vuex from 'vuex';
+import { storiesOf } from '@storybook/vue';
+import { action } from '@storybook/addon-actions';
+import { linkTo } from '@storybook/addon-links';
+
+import MyButton from './Button.vue';
+
+storiesOf('Custom|Method for rendering Vue', module)
+ .add('render', () => ({
+ render: h => h('div', ['renders a div with some text in it..']),
+ }))
+ .add('render + component', () => ({
+ render(h) {
+ return h(MyButton, { props: { color: 'pink' } }, ['renders component: MyButton']);
+ },
+ }))
+ .add('template', () => ({
+ template: `
+
+
A template
+
rendered in vue in storybook
+
`,
+ }))
+ .add('template + component', () => ({
+ components: { MyButton },
+ template: 'MyButton rendered in a template ',
+ }))
+ .add('template + methods', () => ({
+ components: { MyButton },
+ template: `
+
+ Clicking the button will navigate to another story using the 'addon-links'
+ MyButton rendered in a template + props & methods
+
`,
+ methods: {
+ action: linkTo('Button'),
+ },
+ }))
+ .add('JSX', () => ({
+ components: { MyButton },
+ render() {
+ // eslint-disable-next-line react/react-in-jsx-scope
+ return MyButton rendered with JSX ;
+ },
+ }))
+ .add('vuex + actions', () => ({
+ components: { MyButton },
+ template: 'with vuex: {{ $store.state.count }} ',
+ store: new Vuex.Store({
+ state: { count: 0 },
+ mutations: {
+ increment(state) {
+ state.count += 1; // eslint-disable-line
+ action('vuex state')(state);
+ },
+ },
+ }),
+ methods: {
+ log() {
+ this.$store.commit('increment');
+ },
+ },
+ }))
+ .add('whatever you want', () => ({
+ components: { MyButton },
+ template:
+ 'with awesomeness: {{ $store.state.count }} ',
+ store: new Vuex.Store({
+ state: { count: 0 },
+ mutations: {
+ increment(state) {
+ state.count += 1; // eslint-disable-line
+ action('vuex state')(state);
+ },
+ },
+ }),
+ methods: {
+ log() {
+ this.$store.commit('increment');
+ },
+ },
+ }))
+ .add('pre-registered component', () => ({
+ /* By pre-registering component in config.js,
+ * the need to register all components with each story is removed.
+ * You'll only need the template */
+ template: `
+
+ This component was pre-registered in .storybook/config.js
+ MyButton rendered in a template
+
`,
+ }));
diff --git a/examples/vue-kitchen-sink/src/stories/index.js b/examples/vue-kitchen-sink/src/stories/index.js
index 645a4b23cc32..1a6eb3db1688 100644
--- a/examples/vue-kitchen-sink/src/stories/index.js
+++ b/examples/vue-kitchen-sink/src/stories/index.js
@@ -1,24 +1,5 @@
-/* eslint-disable react/react-in-jsx-scope */
-
-import Vuex from 'vuex';
import { storiesOf } from '@storybook/vue';
-import { action } from '@storybook/addon-actions';
-import { linkTo } from '@storybook/addon-links';
-import { withNotes } from '@storybook/addon-notes';
-import {
- withKnobs,
- text,
- number,
- boolean,
- array,
- select,
- color,
- date,
- button,
-} from '@storybook/addon-knobs/vue';
-import Centered from '@storybook/addon-centered';
-import MyButton from './Button.vue';
import Welcome from './Welcome.vue';
import App from '../App.vue';
@@ -31,7 +12,6 @@ storiesOf('App', module).add('App', () => ({
}));
storiesOf('Button', module)
- .addDecorator(Centered)
// Works if Vue.component is called in the config.js in .storybook
.add('rounded', () => ({
template: 'A Button with rounded edges ',
@@ -39,216 +19,3 @@ storiesOf('Button', module)
.add('square', () => ({
template: 'A Button with square edges ',
}));
-
-storiesOf('Method for rendering Vue', module)
- .add('render', () => ({
- render: h => h('div', ['renders a div with some text in it..']),
- }))
- .add('render + component', () => ({
- render(h) {
- return h(MyButton, { props: { color: 'pink' } }, ['renders component: MyButton']);
- },
- }))
- .add('template', () => ({
- template: `
-
-
A template
-
rendered in vue in storybook
-
`,
- }))
- .add('template + component', () => ({
- components: { MyButton },
- template: 'MyButton rendered in a template ',
- }))
- .add('template + methods', () => ({
- components: { MyButton },
- template: `
-
- Clicking the button will navigate to another story using the 'addon-links'
- MyButton rendered in a template + props & methods
-
`,
- methods: {
- action: linkTo('Button'),
- },
- }))
- .add('JSX', () => ({
- components: { MyButton },
- render() {
- return MyButton rendered with JSX ;
- },
- }))
- .add('vuex + actions', () => ({
- components: { MyButton },
- template: 'with vuex: {{ $store.state.count }} ',
- store: new Vuex.Store({
- state: { count: 0 },
- mutations: {
- increment(state) {
- state.count += 1; // eslint-disable-line
- action('vuex state')(state);
- },
- },
- }),
- methods: {
- log() {
- this.$store.commit('increment');
- },
- },
- }))
- .add('whatever you want', () => ({
- components: { MyButton },
- template:
- 'with awesomeness: {{ $store.state.count }} ',
- store: new Vuex.Store({
- state: { count: 0 },
- mutations: {
- increment(state) {
- state.count += 1; // eslint-disable-line
- action('vuex state')(state);
- },
- },
- }),
- methods: {
- log() {
- this.$store.commit('increment');
- },
- },
- }))
- .add('pre-registered component', () => ({
- /* By pre-registering component in config.js,
- * the need to register all components with each story is removed.
- * You'll only need the template */
- template: `
-
- This component was pre-registered in .storybook/config.js
- MyButton rendered in a template
-
`,
- }));
-
-storiesOf('Decorator for Vue', module)
- .addDecorator(story => {
- // Decorated with story function
- const WrapButton = story();
- return {
- components: { WrapButton },
- template: '
',
- data() {
- return { borderStyle: 'medium solid red' };
- },
- };
- })
- .addDecorator(() => ({
- // Decorated with `story` component
- template: '
',
- data() {
- return {
- borderStyle: 'medium solid blue',
- };
- },
- }))
- .add('template', () => ({
- template: 'MyButton with template ',
- }))
- .add('render', () => ({
- render(h) {
- return h(MyButton, { props: { color: 'pink' } }, ['renders component: MyButton']);
- },
- }));
-
-storiesOf('Addon Actions', module)
- .add('Action only', () => ({
- template: 'Click me to log the action ',
- methods: {
- log: action('log1'),
- },
- }))
- .add('Action and method', () => ({
- template: 'Click me to log the action ',
- methods: {
- log: e => {
- e.preventDefault();
- action('log2')(e.target);
- },
- },
- }));
-
-storiesOf('Addon Notes', module)
- .add(
- 'Simple note',
- withNotes({ text: 'My notes on some bold text' })(() => ({
- template:
- 'Etiam vulputate elit eu venenatis eleifend. Duis nec lectus augue. Morbi egestas diam sed vulputate mollis. Fusce egestas pretium vehicula. Integer sed neque diam. Donec consectetur velit vitae enim varius, ut placerat arcu imperdiet. Praesent sed faucibus arcu. Nullam sit amet nibh a enim eleifend rhoncus. Donec pretium elementum leo at fermentum. Nulla sollicitudin, mauris quis semper tempus, sem metus tristique diam, efficitur pulvinar mi urna id urna.
',
- }))
- )
- .add(
- 'Note with HTML',
- withNotes({
- text: `
- My notes on emojies
-
- It's not all that important to be honest, but..
-
- Emojis are great, I love emojis, in fact I like using them in my Component notes too! 😇
- `,
- })(() => ({
- template: '🤔😳😯😮 😄😩😓😱 🤓😑😶😊
',
- }))
- );
-
-storiesOf('Addon Knobs', module)
- .addDecorator(withKnobs)
- .add('Simple', () => {
- const name = text('Name', 'John Doe');
- const age = number('Age', 44);
- const content = `I am ${name} and I'm ${age} years old.`;
-
- return {
- template: `${content}
`,
- };
- })
- .add('All knobs', () => {
- const name = text('Name', 'Jane');
- const stock = number('Stock', 20, {
- range: true,
- min: 0,
- max: 30,
- step: 5,
- });
- const fruits = {
- apples: 'Apple',
- bananas: 'Banana',
- cherries: 'Cherry',
- };
- const fruit = select('Fruit', fruits, 'apple');
- const price = number('Price', 2.25);
-
- const colour = color('Border', 'deeppink');
- const today = date('Today', new Date('Jan 20 2017 GMT+0'));
- const items = array('Items', ['Laptop', 'Book', 'Whiskey']);
- const nice = boolean('Nice', true);
-
- const stockMessage = stock
- ? `I have a stock of ${stock} ${fruit}, costing $${price} each.`
- : `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`;
- const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!';
- const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
-
- button('Arbitrary action', action('You clicked it!'));
-
- return {
- template: `
-
-
My name is ${name},
-
today is ${new Date(today).toLocaleDateString('en-US', dateOptions)}
-
${stockMessage}
-
Also, I have:
-
- ${items.map(item => `${item} `).join('')}
-
-
${salutation}
-
- `,
- };
- });
-
-/* eslint-enable react/react-in-jsx-scope */
diff --git a/integration/__image_snapshots__/angular-cli-snap.png b/integration/__image_snapshots__/angular-cli-snap.png
index 926d9138c169..50073148dab8 100644
Binary files a/integration/__image_snapshots__/angular-cli-snap.png and b/integration/__image_snapshots__/angular-cli-snap.png differ
diff --git a/integration/__image_snapshots__/cra-kitchen-sink-snap.png b/integration/__image_snapshots__/cra-kitchen-sink-snap.png
index 77c42830fa0d..d6e23751a105 100644
Binary files a/integration/__image_snapshots__/cra-kitchen-sink-snap.png and b/integration/__image_snapshots__/cra-kitchen-sink-snap.png differ
diff --git a/integration/__image_snapshots__/vue-kitchen-sink-snap.png b/integration/__image_snapshots__/vue-kitchen-sink-snap.png
index 0b163a2070c1..0ad942f7f5dc 100644
Binary files a/integration/__image_snapshots__/vue-kitchen-sink-snap.png and b/integration/__image_snapshots__/vue-kitchen-sink-snap.png differ
diff --git a/lerna.json b/lerna.json
index 33449f79a631..1fd9ca37c6b0 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "lerna": "2.5.1",
+ "lerna": "2.9.0",
"npmClient": "yarn",
"useWorkspaces": true,
"commands": {
@@ -8,5 +8,5 @@
}
},
"concurrency": 1,
- "version": "3.4.0-alpha.6"
+ "version": "3.4.0-alpha.8"
}
diff --git a/lib/addons/package.json b/lib/addons/package.json
index a1aedd451ef6..654087531f7a 100644
--- a/lib/addons/package.json
+++ b/lib/addons/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addons",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook addons store",
"keywords": [
"storybook"
diff --git a/lib/channel-postmessage/package.json b/lib/channel-postmessage/package.json
index ef0a5da128b9..5038387491c0 100644
--- a/lib/channel-postmessage/package.json
+++ b/lib/channel-postmessage/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channel-postmessage",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "",
"license": "MIT",
"main": "dist/index.js",
@@ -9,7 +9,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/channels": "^3.4.0-alpha.6",
+ "@storybook/channels": "^3.4.0-alpha.8",
"global": "^4.3.2",
"json-stringify-safe": "^5.0.1"
}
diff --git a/lib/channel-websocket/package.json b/lib/channel-websocket/package.json
index d4a36af7f3be..88af16168b36 100644
--- a/lib/channel-websocket/package.json
+++ b/lib/channel-websocket/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channel-websocket",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "",
"license": "MIT",
"main": "dist/index.js",
@@ -9,7 +9,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/channels": "^3.4.0-alpha.6",
+ "@storybook/channels": "^3.4.0-alpha.8",
"global": "^4.3.2"
}
}
diff --git a/lib/channels/package.json b/lib/channels/package.json
index 81e777534f15..c7704fff5298 100644
--- a/lib/channels/package.json
+++ b/lib/channels/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "",
"license": "MIT",
"main": "dist/index.js",
diff --git a/lib/cli/.eslintrc b/lib/cli/.eslintrc
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/lib/cli/bin/generate.js b/lib/cli/bin/generate.js
index b23ca85f7170..23d718989aab 100755
--- a/lib/cli/bin/generate.js
+++ b/lib/cli/bin/generate.js
@@ -87,7 +87,6 @@ const runGenerator = () => {
return Promise.resolve();
case types.UPDATE_PACKAGE_ORGANIZATIONS:
- // eslint-disable-next-line
return updateOrganisationsGenerator(program.parser)
.then(() => null) // commmandLog doesn't like to see output
.then(commandLog('Upgrading your project to the new storybook packages.'))
@@ -111,7 +110,7 @@ const runGenerator = () => {
.then(() => {
logger.log(chalk.red('NOTE: CRNA app installation is not 100% automated.'));
logger.log(`To quickly run storybook, replace contents of ${app} with:\n`);
- codeLog(["export default from './storybook';"]); // eslint-disable-line
+ codeLog(["export default from './storybook';"]);
logger.log('\nFor a more complete discussion of options, see:\n');
logger.log(chalk.cyan(CRNA_DISCUSSION));
logger.log();
diff --git a/lib/cli/generators/ANGULAR/template/.storybook/addons.js b/lib/cli/generators/ANGULAR/template/.storybook/addons.js
index 4f9743d248ee..47eabe0ce400 100644
--- a/lib/cli/generators/ANGULAR/template/.storybook/addons.js
+++ b/lib/cli/generators/ANGULAR/template/.storybook/addons.js
@@ -1,5 +1,3 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import '@storybook/addon-actions/register';
import '@storybook/addon-links/register';
import '@storybook/addon-notes/register';
diff --git a/lib/cli/generators/ANGULAR/template/.storybook/config.js b/lib/cli/generators/ANGULAR/template/.storybook/config.js
index bc9d1d6cd9aa..88f8a5326e45 100644
--- a/lib/cli/generators/ANGULAR/template/.storybook/config.js
+++ b/lib/cli/generators/ANGULAR/template/.storybook/config.js
@@ -1,11 +1,9 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import { configure } from '@storybook/angular';
// automatically import all files ending in *.stories.ts
const req = require.context('../src/stories', true, /.stories.ts$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/generators/METEOR/template/.storybook/config.js b/lib/cli/generators/METEOR/template/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/generators/METEOR/template/.storybook/config.js
+++ b/lib/cli/generators/METEOR/template/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/generators/METEOR/template/stories/index.stories.js b/lib/cli/generators/METEOR/template/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/generators/METEOR/template/stories/index.stories.js
+++ b/lib/cli/generators/METEOR/template/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/generators/POLYMER/template/.storybook/config.js b/lib/cli/generators/POLYMER/template/.storybook/config.js
index 69b13d97fbeb..ea20a9f493ba 100644
--- a/lib/cli/generators/POLYMER/template/.storybook/config.js
+++ b/lib/cli/generators/POLYMER/template/.storybook/config.js
@@ -1,11 +1,9 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import { configure } from '@storybook/polymer';
// automatically import all files ending in *.stories.js
const req = require.context('../src/stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/generators/REACT/template/.storybook/config.js b/lib/cli/generators/REACT/template/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/generators/REACT/template/.storybook/config.js
+++ b/lib/cli/generators/REACT/template/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/generators/REACT/template/stories/index.stories.js b/lib/cli/generators/REACT/template/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/generators/REACT/template/stories/index.stories.js
+++ b/lib/cli/generators/REACT/template/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js b/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js
index 138e8817fa9f..7670ee12cd53 100644
--- a/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js
+++ b/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js
@@ -1,4 +1,3 @@
-/* eslint-disable global-require */
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import { getStorybookUI, configure } from '@storybook/react-native';
diff --git a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/index.js b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/index.js
index 138e8817fa9f..7670ee12cd53 100644
--- a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/index.js
+++ b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/index.js
@@ -1,4 +1,3 @@
-/* eslint-disable global-require */
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import { getStorybookUI, configure } from '@storybook/react-native';
diff --git a/lib/cli/generators/REACT_SCRIPTS/template/src/stories/index.js b/lib/cli/generators/REACT_SCRIPTS/template/src/stories/index.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/generators/REACT_SCRIPTS/template/src/stories/index.js
+++ b/lib/cli/generators/REACT_SCRIPTS/template/src/stories/index.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/generators/SFC_VUE/template/.storybook/addons.js b/lib/cli/generators/SFC_VUE/template/.storybook/addons.js
index 402ccc13eba3..6aed412d04af 100644
--- a/lib/cli/generators/SFC_VUE/template/.storybook/addons.js
+++ b/lib/cli/generators/SFC_VUE/template/.storybook/addons.js
@@ -1,2 +1,2 @@
-import '@storybook/addon-actions/register'
-import '@storybook/addon-links/register'
+import '@storybook/addon-actions/register';
+import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/SFC_VUE/template/.storybook/config.js b/lib/cli/generators/SFC_VUE/template/.storybook/config.js
index c6331538c108..07280e8efae1 100644
--- a/lib/cli/generators/SFC_VUE/template/.storybook/config.js
+++ b/lib/cli/generators/SFC_VUE/template/.storybook/config.js
@@ -1,9 +1,9 @@
-import { configure } from '@storybook/vue'
+import { configure } from '@storybook/vue';
// automatically import all files ending in *.stories.js
const req = require.context('../src/stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
-configure(loadStories, module)
+configure(loadStories, module);
diff --git a/lib/cli/generators/SFC_VUE/template/src/stories/index.stories.js b/lib/cli/generators/SFC_VUE/template/src/stories/index.stories.js
index 4fb3479a0b79..f6aa034f5a83 100644
--- a/lib/cli/generators/SFC_VUE/template/src/stories/index.stories.js
+++ b/lib/cli/generators/SFC_VUE/template/src/stories/index.stories.js
@@ -28,7 +28,8 @@ storiesOf('Button', module)
}))
.add('with some emoji', () => ({
components: { MyButton },
- template: '😀 😎 👍 💯 ',
+ template:
+ '😀 😎 👍 💯 ',
methods: { action: action('clicked') },
}));
diff --git a/lib/cli/generators/VUE/template/.storybook/addons.js b/lib/cli/generators/VUE/template/.storybook/addons.js
index 402ccc13eba3..6aed412d04af 100644
--- a/lib/cli/generators/VUE/template/.storybook/addons.js
+++ b/lib/cli/generators/VUE/template/.storybook/addons.js
@@ -1,2 +1,2 @@
-import '@storybook/addon-actions/register'
-import '@storybook/addon-links/register'
+import '@storybook/addon-actions/register';
+import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/VUE/template/.storybook/config.js b/lib/cli/generators/VUE/template/.storybook/config.js
index d5aba0f1fa3b..b044ee5461a3 100644
--- a/lib/cli/generators/VUE/template/.storybook/config.js
+++ b/lib/cli/generators/VUE/template/.storybook/config.js
@@ -1,9 +1,9 @@
-import { configure } from '@storybook/vue'
+import { configure } from '@storybook/vue';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
-configure(loadStories, module)
+configure(loadStories, module);
diff --git a/lib/cli/generators/WEBPACK_REACT/template/.storybook/config.js b/lib/cli/generators/WEBPACK_REACT/template/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/generators/WEBPACK_REACT/template/.storybook/config.js
+++ b/lib/cli/generators/WEBPACK_REACT/template/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/generators/WEBPACK_REACT/template/stories/index.stories.js b/lib/cli/generators/WEBPACK_REACT/template/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/generators/WEBPACK_REACT/template/stories/index.stories.js
+++ b/lib/cli/generators/WEBPACK_REACT/template/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/package.json b/lib/cli/package.json
index 9181cdf08db3..f860ddbce660 100644
--- a/lib/cli/package.json
+++ b/lib/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
"keywords": [
"cli",
@@ -25,14 +25,14 @@
"test-latest-cra": "cd test && ./test_latest_cra.sh"
},
"dependencies": {
- "@storybook/codemod": "^3.4.0-alpha.6",
+ "@storybook/codemod": "^3.4.0-alpha.8",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"babel-register": "^6.26.0",
"babel-runtime": "^6.26.0",
- "chalk": "^2.3.0",
+ "chalk": "^2.3.1",
"child-process-promise": "^2.2.1",
- "commander": "^2.13.0",
+ "commander": "^2.14.1",
"cross-spawn": "^5.0.1",
"jscodeshift": "^0.4.0",
"json5": "^0.5.1",
@@ -43,26 +43,26 @@
"update-notifier": "^2.3.0"
},
"devDependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-centered": "^3.4.0-alpha.6",
- "@storybook/addon-graphql": "^3.4.0-alpha.6",
- "@storybook/addon-info": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-options": "^3.4.0-alpha.6",
- "@storybook/addon-storyshots": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/angular": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/channel-websocket": "^3.4.0-alpha.6",
- "@storybook/channels": "^3.4.0-alpha.6",
- "@storybook/polymer": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/react-native": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
- "@storybook/vue": "^3.4.0-alpha.6",
- "check-node-version": "2.1.0",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-centered": "^3.4.0-alpha.8",
+ "@storybook/addon-graphql": "^3.4.0-alpha.8",
+ "@storybook/addon-info": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-options": "^3.4.0-alpha.8",
+ "@storybook/addon-storyshots": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/angular": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/channel-websocket": "^3.4.0-alpha.8",
+ "@storybook/channels": "^3.4.0-alpha.8",
+ "@storybook/polymer": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/react-native": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
+ "@storybook/vue": "^3.4.0-alpha.8",
+ "check-node-version": "3.2.0",
"npx": "9.7.1"
}
}
diff --git a/lib/cli/test/snapshots/angular-cli/.storybook/addons.js b/lib/cli/test/snapshots/angular-cli/.storybook/addons.js
index 4f9743d248ee..47eabe0ce400 100644
--- a/lib/cli/test/snapshots/angular-cli/.storybook/addons.js
+++ b/lib/cli/test/snapshots/angular-cli/.storybook/addons.js
@@ -1,5 +1,3 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import '@storybook/addon-actions/register';
import '@storybook/addon-links/register';
import '@storybook/addon-notes/register';
diff --git a/lib/cli/test/snapshots/angular-cli/.storybook/config.js b/lib/cli/test/snapshots/angular-cli/.storybook/config.js
index bc9d1d6cd9aa..88f8a5326e45 100644
--- a/lib/cli/test/snapshots/angular-cli/.storybook/config.js
+++ b/lib/cli/test/snapshots/angular-cli/.storybook/config.js
@@ -1,11 +1,9 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import { configure } from '@storybook/angular';
// automatically import all files ending in *.stories.ts
const req = require.context('../src/stories', true, /.stories.ts$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/angular-cli/package.json b/lib/cli/test/snapshots/angular-cli/package.json
index 3e2b85377c55..28303ce9783f 100644
--- a/lib/cli/test/snapshots/angular-cli/package.json
+++ b/lib/cli/test/snapshots/angular-cli/package.json
@@ -44,11 +44,11 @@
"ts-node": "1.2.1",
"tslint": "^4.3.0",
"typescript": "~2.4.0",
- "@storybook/angular": "^3.4.0-alpha.6",
- "@storybook/addon-notes": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/angular": "^3.4.0-alpha.8",
+ "@storybook/addon-notes": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0"
}
}
diff --git a/lib/cli/test/snapshots/meteor/.storybook/config.js b/lib/cli/test/snapshots/meteor/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/test/snapshots/meteor/.storybook/config.js
+++ b/lib/cli/test/snapshots/meteor/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/meteor/package.json b/lib/cli/test/snapshots/meteor/package.json
index b6c3d6c110ff..856fe6b82176 100644
--- a/lib/cli/test/snapshots/meteor/package.json
+++ b/lib/cli/test/snapshots/meteor/package.json
@@ -19,9 +19,9 @@
"babel-preset-react": "^6.24.1",
"babel-preset-stage-1": "^6.24.1",
"babel-root-slash-import": "^1.1.0",
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6"
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8"
}
}
diff --git a/lib/cli/test/snapshots/meteor/stories/index.stories.js b/lib/cli/test/snapshots/meteor/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/test/snapshots/meteor/stories/index.stories.js
+++ b/lib/cli/test/snapshots/meteor/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/test/snapshots/polymer/.storybook/config.js b/lib/cli/test/snapshots/polymer/.storybook/config.js
index 69b13d97fbeb..ea20a9f493ba 100644
--- a/lib/cli/test/snapshots/polymer/.storybook/config.js
+++ b/lib/cli/test/snapshots/polymer/.storybook/config.js
@@ -1,11 +1,9 @@
-/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */
-
import { configure } from '@storybook/polymer';
// automatically import all files ending in *.stories.js
const req = require.context('../src/stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/polymer/package.json b/lib/cli/test/snapshots/polymer/package.json
index 7649eebafa2b..e511f5b27115 100644
--- a/lib/cli/test/snapshots/polymer/package.json
+++ b/lib/cli/test/snapshots/polymer/package.json
@@ -12,6 +12,6 @@
"@polymer/polymer": "^2.2.0"
},
"devDependencies": {
- "@storybook/polymer": "^3.4.0-alpha.6"
+ "@storybook/polymer": "^3.4.0-alpha.8"
}
}
diff --git a/lib/cli/test/snapshots/react/.storybook/config.js b/lib/cli/test/snapshots/react/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/test/snapshots/react/.storybook/config.js
+++ b/lib/cli/test/snapshots/react/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/react/package.json b/lib/cli/test/snapshots/react/package.json
index c8e79f4d9735..956918231e84 100644
--- a/lib/cli/test/snapshots/react/package.json
+++ b/lib/cli/test/snapshots/react/package.json
@@ -20,10 +20,10 @@
"rollup-plugin-commonjs": "^8.2.0",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^1.1.1",
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0"
}
}
diff --git a/lib/cli/test/snapshots/react/stories/index.stories.js b/lib/cli/test/snapshots/react/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/test/snapshots/react/stories/index.stories.js
+++ b/lib/cli/test/snapshots/react/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/test/snapshots/react_native/package.json b/lib/cli/test/snapshots/react_native/package.json
index dcf0dc4c3a5f..e45558b00fd7 100644
--- a/lib/cli/test/snapshots/react_native/package.json
+++ b/lib/cli/test/snapshots/react_native/package.json
@@ -16,10 +16,10 @@
"babel-preset-react-native": "3.0.1",
"jest": "20.0.4",
"react-test-renderer": "16.0.0-alpha.12",
- "@storybook/react-native": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react-native": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0",
"react-dom": "16.0.0-alpha.12",
"prop-types": "^15.6.0"
diff --git a/lib/cli/test/snapshots/react_native/storybook/storybook.js b/lib/cli/test/snapshots/react_native/storybook/storybook.js
index 46a917d24354..c77ad96c5838 100644
--- a/lib/cli/test/snapshots/react_native/storybook/storybook.js
+++ b/lib/cli/test/snapshots/react_native/storybook/storybook.js
@@ -1,4 +1,3 @@
-/* eslint-disable global-require */
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import { getStorybookUI, configure } from '@storybook/react-native';
diff --git a/lib/cli/test/snapshots/react_native_scripts/package.json b/lib/cli/test/snapshots/react_native_scripts/package.json
index 8d75b0c50aa0..ee63f1d008e9 100644
--- a/lib/cli/test/snapshots/react_native_scripts/package.json
+++ b/lib/cli/test/snapshots/react_native_scripts/package.json
@@ -6,10 +6,10 @@
"react-native-scripts": "1.3.1",
"jest-expo": "~20.0.0",
"react-test-renderer": "16.0.0-alpha.12",
- "@storybook/react-native": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react-native": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0",
"react-dom": "16.0.0-alpha.12",
"prop-types": "^15.6.0"
diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/index.js b/lib/cli/test/snapshots/react_native_scripts/storybook/index.js
index 138e8817fa9f..7670ee12cd53 100644
--- a/lib/cli/test/snapshots/react_native_scripts/storybook/index.js
+++ b/lib/cli/test/snapshots/react_native_scripts/storybook/index.js
@@ -1,4 +1,3 @@
-/* eslint-disable global-require */
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import { getStorybookUI, configure } from '@storybook/react-native';
diff --git a/lib/cli/test/snapshots/react_project/.storybook/config.js b/lib/cli/test/snapshots/react_project/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/test/snapshots/react_project/.storybook/config.js
+++ b/lib/cli/test/snapshots/react_project/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/react_project/package.json b/lib/cli/test/snapshots/react_project/package.json
index 9acbdcb675e7..54bf95fee0b4 100644
--- a/lib/cli/test/snapshots/react_project/package.json
+++ b/lib/cli/test/snapshots/react_project/package.json
@@ -13,10 +13,10 @@
"babel-preset-react": "^6.24.1",
"react": "^15.6.1",
"react-dom": "^15.6.1",
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0"
},
"peerDependencies": {
diff --git a/lib/cli/test/snapshots/react_project/stories/index.stories.js b/lib/cli/test/snapshots/react_project/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/test/snapshots/react_project/stories/index.stories.js
+++ b/lib/cli/test/snapshots/react_project/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/test/snapshots/react_scripts/package.json b/lib/cli/test/snapshots/react_scripts/package.json
index 281cb09f5b5f..47fbf20634d6 100644
--- a/lib/cli/test/snapshots/react_scripts/package.json
+++ b/lib/cli/test/snapshots/react_scripts/package.json
@@ -16,10 +16,10 @@
"build-storybook": "build-storybook -s public"
},
"devDependencies": {
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0"
}
}
diff --git a/lib/cli/test/snapshots/react_scripts/src/stories/index.js b/lib/cli/test/snapshots/react_scripts/src/stories/index.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/test/snapshots/react_scripts/src/stories/index.js
+++ b/lib/cli/test/snapshots/react_scripts/src/stories/index.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js b/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js
index 402ccc13eba3..6aed412d04af 100644
--- a/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js
+++ b/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js
@@ -1,2 +1,2 @@
-import '@storybook/addon-actions/register'
-import '@storybook/addon-links/register'
+import '@storybook/addon-actions/register';
+import '@storybook/addon-links/register';
diff --git a/lib/cli/test/snapshots/sfc_vue/.storybook/config.js b/lib/cli/test/snapshots/sfc_vue/.storybook/config.js
index c6331538c108..07280e8efae1 100644
--- a/lib/cli/test/snapshots/sfc_vue/.storybook/config.js
+++ b/lib/cli/test/snapshots/sfc_vue/.storybook/config.js
@@ -1,9 +1,9 @@
-import { configure } from '@storybook/vue'
+import { configure } from '@storybook/vue';
// automatically import all files ending in *.stories.js
const req = require.context('../src/stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
-configure(loadStories, module)
+configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/sfc_vue/package.json b/lib/cli/test/snapshots/sfc_vue/package.json
index 234aa75a1b05..7078af67532f 100644
--- a/lib/cli/test/snapshots/sfc_vue/package.json
+++ b/lib/cli/test/snapshots/sfc_vue/package.json
@@ -49,10 +49,10 @@
"webpack-dev-middleware": "^1.10.0",
"webpack-hot-middleware": "^2.18.0",
"webpack-merge": "^4.1.0",
- "@storybook/vue": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/vue": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-preset-vue": "^2.0.1"
},
"engines": {
diff --git a/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js b/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js
index 4fb3479a0b79..f6aa034f5a83 100644
--- a/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js
+++ b/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js
@@ -28,7 +28,8 @@ storiesOf('Button', module)
}))
.add('with some emoji', () => ({
components: { MyButton },
- template: '😀 😎 👍 💯 ',
+ template:
+ '😀 😎 👍 💯 ',
methods: { action: action('clicked') },
}));
diff --git a/lib/cli/test/snapshots/update_package_organisations/package.json b/lib/cli/test/snapshots/update_package_organisations/package.json
index cc0c321cf8d9..ca21078420d2 100644
--- a/lib/cli/test/snapshots/update_package_organisations/package.json
+++ b/lib/cli/test/snapshots/update_package_organisations/package.json
@@ -8,8 +8,8 @@
"react-scripts": "0.9.x"
},
"devDependencies": {
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-core": "^6.26.0"
},
"scripts": {
diff --git a/lib/cli/test/snapshots/vue/.storybook/addons.js b/lib/cli/test/snapshots/vue/.storybook/addons.js
index 402ccc13eba3..6aed412d04af 100644
--- a/lib/cli/test/snapshots/vue/.storybook/addons.js
+++ b/lib/cli/test/snapshots/vue/.storybook/addons.js
@@ -1,2 +1,2 @@
-import '@storybook/addon-actions/register'
-import '@storybook/addon-links/register'
+import '@storybook/addon-actions/register';
+import '@storybook/addon-links/register';
diff --git a/lib/cli/test/snapshots/vue/.storybook/config.js b/lib/cli/test/snapshots/vue/.storybook/config.js
index d5aba0f1fa3b..b044ee5461a3 100644
--- a/lib/cli/test/snapshots/vue/.storybook/config.js
+++ b/lib/cli/test/snapshots/vue/.storybook/config.js
@@ -1,9 +1,9 @@
-import { configure } from '@storybook/vue'
+import { configure } from '@storybook/vue';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
-configure(loadStories, module)
+configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/vue/package.json b/lib/cli/test/snapshots/vue/package.json
index 9a24e0bf0bb4..c85f746a28ea 100644
--- a/lib/cli/test/snapshots/vue/package.json
+++ b/lib/cli/test/snapshots/vue/package.json
@@ -34,10 +34,10 @@
"rollup-plugin-serve": "^0.4.0",
"rollup-plugin-vue": "^2.4.0",
"rollup-watch": "^4.0.0",
- "@storybook/vue": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6",
+ "@storybook/vue": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8",
"babel-preset-vue": "^2.0.1"
}
}
diff --git a/lib/cli/test/snapshots/webpack_react/.storybook/config.js b/lib/cli/test/snapshots/webpack_react/.storybook/config.js
index 694160f50fe1..b98cb4736a4e 100644
--- a/lib/cli/test/snapshots/webpack_react/.storybook/config.js
+++ b/lib/cli/test/snapshots/webpack_react/.storybook/config.js
@@ -3,7 +3,7 @@ import { configure } from '@storybook/react';
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.js$/);
function loadStories() {
- req.keys().forEach((filename) => req(filename));
+ req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);
diff --git a/lib/cli/test/snapshots/webpack_react/package.json b/lib/cli/test/snapshots/webpack_react/package.json
index ddcbe7b73258..6ae9a65e752a 100644
--- a/lib/cli/test/snapshots/webpack_react/package.json
+++ b/lib/cli/test/snapshots/webpack_react/package.json
@@ -17,9 +17,9 @@
"babel-loader": "^7.1.2",
"babel-preset-react": "^6.24.1",
"webpack": "^3.5.5",
- "@storybook/react": "^3.4.0-alpha.6",
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-links": "^3.4.0-alpha.6",
- "@storybook/addons": "^3.4.0-alpha.6"
+ "@storybook/react": "^3.4.0-alpha.8",
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-links": "^3.4.0-alpha.8",
+ "@storybook/addons": "^3.4.0-alpha.8"
}
}
diff --git a/lib/cli/test/snapshots/webpack_react/stories/index.stories.js b/lib/cli/test/snapshots/webpack_react/stories/index.stories.js
index 9214f65c7bb5..aa04241802db 100644
--- a/lib/cli/test/snapshots/webpack_react/stories/index.stories.js
+++ b/lib/cli/test/snapshots/webpack_react/stories/index.stories.js
@@ -10,4 +10,10 @@ storiesOf('Welcome', module).add('to Storybook', () => Hello Button )
- .add('with some emoji', () => 😀 😎 👍 💯 );
+ .add('with some emoji', () => (
+
+
+ 😀 😎 👍 💯
+
+
+ ));
diff --git a/lib/client-logger/package.json b/lib/client-logger/package.json
index b1982cf2cd51..13a88b7fd555 100644
--- a/lib/client-logger/package.json
+++ b/lib/client-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "",
"license": "MIT",
"main": "dist/index.js",
diff --git a/lib/codemod/package.json b/lib/codemod/package.json
index 13a96b096f2d..8436c5f32d1d 100644
--- a/lib/codemod/package.json
+++ b/lib/codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "A collection of codemod scripts written with JSCodeshift",
"license": "MIT",
"main": "dist/index.js",
diff --git a/lib/components/package.json b/lib/components/package.json
index 386502c6195d..3498f2ae8ecd 100644
--- a/lib/components/package.json
+++ b/lib/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/components",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Core Storybook Components",
"license": "MIT",
"main": "dist/index.js",
@@ -16,7 +16,7 @@
},
"dependencies": {
"glamor": "^2.20.40",
- "glamorous": "^4.11.4",
+ "glamorous": "^4.11.6",
"prop-types": "^15.6.0"
},
"peerDependencies": {
@@ -24,8 +24,8 @@
"react-dom": "*"
},
"devDependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/addon-knobs": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6"
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/addon-knobs": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8"
}
}
diff --git a/lib/core/client.js b/lib/core/client.js
index ebec6e623a89..953e79fe056b 100644
--- a/lib/core/client.js
+++ b/lib/core/client.js
@@ -1,6 +1 @@
-const assign = require('babel-runtime/core-js/object/assign').default;
-const client = require('./dist/client').default;
-
-module.exports = assign({}, client, {
- managerPath: require.resolve('./dist/client/manager'),
-});
+module.exports = require('./dist/client').default;
diff --git a/lib/core/package.json b/lib/core/package.json
index 2efd91542aef..441f4de33da6 100644
--- a/lib/core/package.json
+++ b/lib/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Storybook framework-agnostic API",
"homepage": "https://github.com/storybooks/storybook/tree/master/lib/core",
"bugs": {
@@ -17,26 +17,35 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "^3.4.0-alpha.6",
- "@storybook/channel-postmessage": "^3.4.0-alpha.6",
- "@storybook/client-logger": "^3.4.0-alpha.6",
- "@storybook/ui": "^3.4.0-alpha.6",
- "autoprefixer": "^7.2.5",
+ "@storybook/addons": "^3.4.0-alpha.8",
+ "@storybook/channel-postmessage": "^3.4.0-alpha.8",
+ "@storybook/client-logger": "^3.4.0-alpha.8",
+ "@storybook/node-logger": "^3.4.0-alpha.8",
+ "@storybook/ui": "^3.4.0-alpha.8",
+ "autoprefixer": "^7.2.6",
"babel-runtime": "^6.26.0",
+ "chalk": "^2.3.1",
+ "commander": "^2.14.1",
"css-loader": "^0.28.9",
"dotenv": "^4.0.0",
"events": "^1.1.1",
+ "express": "^4.16.2",
"file-loader": "^1.1.6",
"global": "^4.3.2",
"json-loader": "^0.5.7",
"postcss-flexbugs-fixes": "^3.2.0",
- "postcss-loader": "^2.0.10",
+ "postcss-loader": "^2.1.0",
"prop-types": "^15.5.10",
"qs": "^6.5.1",
"react": "^16.0.0",
"react-dom": "^16.0.0",
- "style-loader": "^0.20.1",
- "url-loader": "^0.6.2"
+ "serve-favicon": "^2.4.5",
+ "shelljs": "^0.8.1",
+ "style-loader": "^0.20.2",
+ "url-loader": "^0.6.2",
+ "webpack": "^3.11.0",
+ "webpack-dev-middleware": "^1.12.2",
+ "webpack-hot-middleware": "^2.21.0"
},
"devDependencies": {
"babel-cli": "^6.26.0"
diff --git a/lib/core/server.js b/lib/core/server.js
index d154aae8392c..ee376d90f3a8 100644
--- a/lib/core/server.js
+++ b/lib/core/server.js
@@ -1,4 +1,10 @@
const assign = require('babel-runtime/core-js/object/assign').default;
const defaultWebpackConfig = require('./dist/server/config/defaults/webpack.config');
+const WatchMissingNodeModulesPlugin = require('./dist/server/config/WatchMissingNodeModulesPlugin');
+const buildStatic = require('./dist/server/build-static');
+const buildDev = require('./dist/server/build-dev');
-module.exports = assign({}, defaultWebpackConfig);
+module.exports = assign({}, defaultWebpackConfig, buildStatic, buildDev, {
+ WatchMissingNodeModulesPlugin,
+ managerPath: require.resolve('./dist/client/manager'),
+});
diff --git a/lib/core/src/server/build-dev.js b/lib/core/src/server/build-dev.js
new file mode 100644
index 000000000000..0516dc431462
--- /dev/null
+++ b/lib/core/src/server/build-dev.js
@@ -0,0 +1,168 @@
+import express from 'express';
+import https from 'https';
+import favicon from 'serve-favicon';
+import program from 'commander';
+import path from 'path';
+import fs from 'fs';
+import chalk from 'chalk';
+import shelljs from 'shelljs';
+import { logger } from '@storybook/node-logger';
+import storybook, { webpackValid } from './middleware';
+import { parseList, getEnvConfig } from './utils';
+import './config/env';
+
+export function buildDev({ packageJson, getBaseConfig, loadConfig, defaultFavIcon }) {
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development';
+
+ program
+ .version(packageJson.version)
+ .option('-p, --port [number]', 'Port to run Storybook (Required)', str => parseInt(str, 10))
+ .option('-h, --host [string]', 'Host to run Storybook')
+ .option('-s, --static-dir ', 'Directory where to load static files from')
+ .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
+ .option(
+ '--https',
+ 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.'
+ )
+ .option(
+ '--ssl-ca ',
+ 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)',
+ parseList
+ )
+ .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)')
+ .option('--ssl-key ', 'Provide an SSL key. (Required with --https)')
+ .option('--smoke-test', 'Exit after successful start')
+ .option('-d, --db-path [db-file]', 'DEPRECATED!')
+ .option('--enable-db', 'DEPRECATED!')
+ .parse(process.argv);
+
+ logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}`) + chalk.reset('\n'));
+
+ if (program.enableDb || program.dbPath) {
+ logger.error(
+ [
+ 'Error: the experimental local database addon is no longer bundled with',
+ 'storybook. Please remove these flags (-d,--db-path,--enable-db)',
+ 'from the command or npm script and try again.',
+ ].join(' ')
+ );
+ process.exit(1);
+ }
+
+ // The key is the field created in `program` variable for
+ // each command line argument. Value is the env variable.
+ getEnvConfig(program, {
+ port: 'SBCONFIG_PORT',
+ host: 'SBCONFIG_HOSTNAME',
+ staticDir: 'SBCONFIG_STATIC_DIR',
+ configDir: 'SBCONFIG_CONFIG_DIR',
+ });
+
+ if (!program.port) {
+ logger.error('Error: port to run Storybook is required!\n');
+ program.help();
+ process.exit(-1);
+ }
+
+ // Used with `app.listen` below
+ const listenAddr = [program.port];
+
+ if (program.host) {
+ listenAddr.push(program.host);
+ }
+
+ const app = express();
+ let server = app;
+
+ if (program.https) {
+ if (!program.sslCert) {
+ logger.error('Error: --ssl-cert is required with --https');
+ process.exit(-1);
+ }
+ if (!program.sslKey) {
+ logger.error('Error: --ssl-key is required with --https');
+ process.exit(-1);
+ }
+
+ const sslOptions = {
+ ca: (program.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
+ cert: fs.readFileSync(program.sslCert, 'utf-8'),
+ key: fs.readFileSync(program.sslKey, 'utf-8'),
+ };
+
+ server = https.createServer(sslOptions, app);
+ }
+
+ let hasCustomFavicon = false;
+
+ if (program.staticDir) {
+ program.staticDir = parseList(program.staticDir);
+ program.staticDir.forEach(dir => {
+ const staticPath = path.resolve(dir);
+ if (!fs.existsSync(staticPath)) {
+ logger.error(`Error: no such directory to load static files: ${staticPath}`);
+ process.exit(-1);
+ }
+ logger.info(`=> Loading static files from: ${staticPath} .`);
+ app.use(express.static(staticPath, { index: false }));
+
+ const faviconPath = path.resolve(staticPath, 'favicon.ico');
+ if (fs.existsSync(faviconPath)) {
+ hasCustomFavicon = true;
+ app.use(favicon(faviconPath));
+ }
+ });
+ }
+
+ if (!hasCustomFavicon) {
+ app.use(favicon(defaultFavIcon));
+ }
+
+ // Build the webpack configuration using the `baseConfig`
+ // custom `.babelrc` file and `webpack.config.js` files
+ const configDir = program.configDir || './.storybook';
+
+ // The repository info is sent to the storybook while running on
+ // development mode so it'll be easier for tools to integrate.
+ const exec = cmd => shelljs.exec(cmd, { silent: true }).stdout.trim();
+ process.env.STORYBOOK_GIT_ORIGIN =
+ process.env.STORYBOOK_GIT_ORIGIN || exec('git remote get-url origin');
+ process.env.STORYBOOK_GIT_BRANCH =
+ process.env.STORYBOOK_GIT_BRANCH || exec('git symbolic-ref HEAD --short');
+
+ // NOTE changes to env should be done before calling `getBaseConfig`
+ // `getBaseConfig` function which is called inside the middleware
+ app.use(storybook(configDir, loadConfig, getBaseConfig));
+
+ let serverResolve = () => {};
+ let serverReject = () => {};
+ const serverListening = new Promise((resolve, reject) => {
+ serverResolve = resolve;
+ serverReject = reject;
+ });
+ server.listen(...listenAddr, error => {
+ if (error) {
+ serverReject(error);
+ } else {
+ serverResolve();
+ }
+ });
+
+ Promise.all([webpackValid, serverListening])
+ .then(() => {
+ const proto = program.https ? 'https' : 'http';
+ const address = `${proto}://${program.host || 'localhost'}:${program.port}/`;
+ logger.info(`Storybook started on => ${chalk.cyan(address)}\n`);
+ if (program.smokeTest) {
+ process.exit(0);
+ }
+ })
+ .catch(error => {
+ if (error instanceof Error) {
+ logger.error(error);
+ }
+ if (program.smokeTest) {
+ process.exit(1);
+ }
+ });
+}
diff --git a/lib/core/src/server/build-static.js b/lib/core/src/server/build-static.js
new file mode 100644
index 000000000000..574480ada37e
--- /dev/null
+++ b/lib/core/src/server/build-static.js
@@ -0,0 +1,91 @@
+import webpack from 'webpack';
+import program from 'commander';
+import path from 'path';
+import fs from 'fs';
+import chalk from 'chalk';
+import shelljs from 'shelljs';
+import { logger } from '@storybook/node-logger';
+import { parseList, getEnvConfig } from './utils';
+import './config/env';
+
+export function buildStatic({ packageJson, getBaseConfig, loadConfig, defaultFavIcon }) {
+ process.env.NODE_ENV = process.env.NODE_ENV || 'production';
+
+ program
+ .version(packageJson.version)
+ .option('-s, --static-dir ', 'Directory where to load static files from', parseList)
+ .option('-o, --output-dir [dir-name]', 'Directory where to store built files')
+ .option('-c, --config-dir [dir-name]', 'Directory where to load Storybook configurations from')
+ .option('-w, --watch', 'Enable watch mode')
+ .option('-d, --db-path [db-file]', 'DEPRECATED!')
+ .option('--enable-db', 'DEPRECATED!')
+ .parse(process.argv);
+
+ logger.info(chalk.bold(`${packageJson.name} v${packageJson.version}\n`));
+
+ if (program.enableDb || program.dbPath) {
+ logger.error(
+ [
+ 'Error: the experimental local database addon is no longer bundled with',
+ 'storybook. Please remove these flags (-d,--db-path,--enable-db)',
+ 'from the command or npm script and try again.',
+ ].join(' ')
+ );
+ process.exit(1);
+ }
+
+ // The key is the field created in `program` variable for
+ // each command line argument. Value is the env variable.
+ getEnvConfig(program, {
+ staticDir: 'SBCONFIG_STATIC_DIR',
+ outputDir: 'SBCONFIG_OUTPUT_DIR',
+ configDir: 'SBCONFIG_CONFIG_DIR',
+ });
+
+ const configDir = program.configDir || './.storybook';
+ const outputDir = program.outputDir || './storybook-static';
+
+ // create output directory if not exists
+ shelljs.mkdir('-p', path.resolve(outputDir));
+ // clear the static dir
+ shelljs.rm('-rf', path.resolve(outputDir, 'static'));
+ shelljs.cp(defaultFavIcon, outputDir);
+
+ // Build the webpack configuration using the `baseConfig`
+ // custom `.babelrc` file and `webpack.config.js` files
+ // NOTE changes to env should be done before calling `getBaseConfig`
+ const config = loadConfig('PRODUCTION', getBaseConfig(configDir), configDir);
+ config.output.path = path.resolve(outputDir);
+
+ // copy all static files
+ if (program.staticDir) {
+ program.staticDir.forEach(dir => {
+ if (!fs.existsSync(dir)) {
+ logger.error(`Error: no such directory to load static files: ${dir}`);
+ process.exit(-1);
+ }
+ logger.info(`=> Copying static files from: ${dir}`);
+ shelljs.cp('-r', `${dir}/*`, outputDir);
+ });
+ }
+
+ // compile all resources with webpack and write them to the disk.
+ logger.info('Building storybook ...');
+ const webpackCb = (err, stats) => {
+ if (err || stats.hasErrors()) {
+ logger.error('Failed to build the storybook');
+ // eslint-disable-next-line no-unused-expressions
+ err && logger.error(err.message);
+ // eslint-disable-next-line no-unused-expressions
+ stats && stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e));
+ process.exitCode = 1;
+ }
+ logger.info('Building storybook completed.');
+ };
+ const compiler = webpack(config);
+ if (program.watch) {
+ compiler.watch({}, webpackCb);
+ } else {
+ compiler.run(webpackCb);
+ }
+}
diff --git a/app/angular/src/server/config/WatchMissingNodeModulesPlugin.js b/lib/core/src/server/config/WatchMissingNodeModulesPlugin.js
similarity index 100%
rename from app/angular/src/server/config/WatchMissingNodeModulesPlugin.js
rename to lib/core/src/server/config/WatchMissingNodeModulesPlugin.js
diff --git a/app/react/src/server/middleware.js b/lib/core/src/server/middleware.js
similarity index 93%
rename from app/react/src/server/middleware.js
rename to lib/core/src/server/middleware.js
index 28e8554bccf5..ad9e1862d07a 100644
--- a/app/react/src/server/middleware.js
+++ b/lib/core/src/server/middleware.js
@@ -3,18 +3,17 @@ import { Router } from 'express';
import webpack from 'webpack';
import webpackDevMiddleware from 'webpack-dev-middleware';
import webpackHotMiddleware from 'webpack-hot-middleware';
-import getBaseConfig from './config/webpack.config';
-import loadConfig from './config';
import { getMiddleware } from './utils';
let webpackResolve = () => {};
let webpackReject = () => {};
+
export const webpackValid = new Promise((resolve, reject) => {
webpackResolve = resolve;
webpackReject = reject;
});
-export default function(configDir) {
+export default function(configDir, loadConfig, getBaseConfig) {
// Build the webpack configuration using the `getBaseConfig`
// custom `.babelrc` file and `webpack.config.js` files
const config = loadConfig('DEVELOPMENT', getBaseConfig(configDir), configDir);
diff --git a/lib/core/src/server/utils.js b/lib/core/src/server/utils.js
new file mode 100644
index 000000000000..7e501fd37d55
--- /dev/null
+++ b/lib/core/src/server/utils.js
@@ -0,0 +1,28 @@
+import path from 'path';
+import fs from 'fs';
+
+export function parseList(str) {
+ return str.split(',');
+}
+
+export function getEnvConfig(program, configEnv) {
+ Object.keys(configEnv).forEach(fieldName => {
+ const envVarName = configEnv[fieldName];
+ const envVarValue = process.env[envVarName];
+ if (envVarValue) {
+ program[fieldName] = envVarValue; // eslint-disable-line
+ }
+ });
+}
+
+export function getMiddleware(configDir) {
+ const middlewarePath = path.resolve(configDir, 'middleware.js');
+ if (fs.existsSync(middlewarePath)) {
+ let middlewareModule = require(middlewarePath); // eslint-disable-line
+ if (middlewareModule.__esModule) { // eslint-disable-line
+ middlewareModule = middlewareModule.default;
+ }
+ return middlewareModule;
+ }
+ return () => {};
+}
diff --git a/lib/node-logger/package.json b/lib/node-logger/package.json
index 987722815c2f..cd2114e868cd 100644
--- a/lib/node-logger/package.json
+++ b/lib/node-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "",
"license": "MIT",
"main": "dist/index.js",
@@ -9,7 +9,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "chalk": "^2.3.0",
+ "chalk": "^2.3.1",
"npmlog": "^4.1.2"
}
}
diff --git a/lib/ui/package.json b/lib/ui/package.json
index f850996a965e..35663cc17196 100644
--- a/lib/ui/package.json
+++ b/lib/ui/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/ui",
- "version": "3.4.0-alpha.6",
+ "version": "3.4.0-alpha.8",
"description": "Core Storybook UI",
"license": "MIT",
"main": "dist/index.js",
@@ -15,7 +15,7 @@
"storybook": "start-storybook -p 9010"
},
"dependencies": {
- "@storybook/components": "^3.4.0-alpha.6",
+ "@storybook/components": "^3.4.0-alpha.8",
"@storybook/mantra-core": "^1.7.2",
"@storybook/react-komposer": "^2.0.3",
"babel-runtime": "^6.26.0",
@@ -31,11 +31,11 @@
"podda": "^1.2.2",
"prop-types": "^15.6.0",
"qs": "^6.5.1",
- "react-fuzzy": "^0.5.1",
+ "react-fuzzy": "^0.5.2",
"react-icons": "^2.2.7",
"react-inspector": "^2.2.2",
- "react-modal": "^3.1.11",
- "react-split-pane": "^0.1.74",
+ "react-modal": "^3.2.1",
+ "react-split-pane": "^0.1.77",
"react-treebeard": "^2.1.0",
"redux": "^3.7.2"
},
@@ -44,7 +44,7 @@
"react-dom": "*"
},
"devDependencies": {
- "@storybook/addon-actions": "^3.4.0-alpha.6",
- "@storybook/react": "^3.4.0-alpha.6"
+ "@storybook/addon-actions": "^3.4.0-alpha.8",
+ "@storybook/react": "^3.4.0-alpha.8"
}
}
diff --git a/lib/ui/src/modules/ui/components/search_box.js b/lib/ui/src/modules/ui/components/search_box.js
index 4f5b6c159db9..28642386d727 100644
--- a/lib/ui/src/modules/ui/components/search_box.js
+++ b/lib/ui/src/modules/ui/components/search_box.js
@@ -53,7 +53,7 @@ const suggestionTemplate = (props, state, styles, clickHandler) =>
const style = state.selectedIndex === i ? styles.selectedResultStyle : styles.resultsStyle;
return (
// react-fuzzy has its own keyboard navigation
- // eslint-disable-next-line jsx-a11y/interactive-supports-focus,jsx-a11y/click-events-have-key-events
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events
0;
}
-// eslint-disable-next-line react/prefer-stateless-function
class StoriesPanel extends Component {
renderStories() {
const { storiesHierarchies } = this.props;
diff --git a/package.json b/package.json
index 5d1715a16676..160660b99ba2 100644
--- a/package.json
+++ b/package.json
@@ -15,16 +15,18 @@
"precommit": "lint-staged",
"coverage": "codecov",
"danger": "danger",
- "dev": "lerna exec --parallel -- babel src -d dist --copy-files --ignore __mocks__/,tests/*,__tests__/,**.test.js,stories/,**.story.js,**.stories.js,__snapshots__ --plugins \"transform-runtime\" -w",
+ "dev": "concurrently --kill-others \"yarn dev:ts\" \"yarn dev:js\"",
+ "dev:js": "lerna exec --parallel -- cross-env-shell node \\$LERNA_ROOT_PATH/scripts/watch-js.js",
+ "dev:ts": "lerna exec --parallel -- cross-env-shell node \\$LERNA_ROOT_PATH/scripts/watch-ts.js",
"docs:build": "npm --prefix docs run build",
"docs:deploy:ci": "npm --prefix docs run deploy:ci",
"docs:deploy:manual": "npm --prefix docs run deploy:manual",
"docs:dev": "npm --prefix docs run dev",
"github-release": "github-release-from-changelog",
"lint": "yarn lint:js . && yarn lint:ts **/*.ts && yarn lint:md .",
- "lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location=.cache/eslint --ext .js,.jsx,.json",
+ "lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location=.cache/eslint --ext .js,.jsx,.json --report-unused-disable-directives",
"lint:ts": "tslint -p . -c tslint.json -t stylish",
- "lint:md": "remark",
+ "lint:md": "remark -q",
"publish": "lerna publish",
"postpublish": "yarn --cwd lib/cli test -o",
"repo-dirty-check": "node ./scripts/repo-dirty-check",
@@ -34,7 +36,12 @@
"chromatic": "npm --prefix examples/official-storybook run chromatic"
},
"devDependencies": {
- "@types/lodash": "^4.14.98",
+ "@angular/common": "^5.2.5",
+ "@angular/compiler": "^5.2.5",
+ "@angular/core": "^5.2.5",
+ "@angular/forms": "^5.2.5",
+ "@angular/platform-browser": "^5.2.5",
+ "@angular/platform-browser-dynamic": "^5.2.5",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-eslint": "^8.2.1",
@@ -45,60 +52,60 @@
"babel-plugin-macros": "^2.1.0",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
- "chalk": "^2.3.0",
+ "chalk": "^2.3.1",
"codecov": "^3.0.0",
- "codelyzer": "^3.1.2",
- "commander": "^2.13.0",
+ "codelyzer": "^4.1.0",
+ "commander": "^2.14.1",
+ "concurrently": "^3.5.1",
"cross-env": "^5.1.3",
- "danger": "^2.1.10",
+ "danger": "^3.1.6",
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.1",
- "eslint": "^4.16.0",
+ "eslint": "^4.18.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-import": "^2.8.0",
- "eslint-plugin-jest": "^21.7.0",
+ "eslint-plugin-jest": "^21.12.1",
"eslint-plugin-json": "^1.2.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
- "eslint-plugin-prettier": "^2.5.0",
- "eslint-plugin-react": "^7.6.0",
+ "eslint-plugin-prettier": "^2.6.0",
+ "eslint-plugin-react": "^7.6.1",
"gh-pages": "^1.1.0",
"github-release-from-changelog": "^1.3.1",
"glob": "^7.1.2",
"husky": "^0.14.3",
- "inquirer": "^4.0.2",
- "jest": "^22.1.4",
- "jest-cli": "^22.1.4",
- "jest-config": "^22.1.4",
+ "inquirer": "^5.1.0",
+ "jest": "^22.3.0",
+ "jest-cli": "^22.3.0",
+ "jest-config": "^22.3.0",
"jest-diff": "^22.1.0",
- "jest-environment-jsdom": "^22.1.4",
- "jest-enzyme": "^4.1.0",
+ "jest-environment-jsdom": "^22.3.0",
+ "jest-enzyme": "^4.2.0",
"jest-image-snapshot": "^2.3.0",
- "jest-jasmine2": "^22.1.4",
+ "jest-jasmine2": "^22.3.0",
"jest-preset-angular": "^5.0.0",
"jest-vue-preprocessor": "^1.3.1",
- "lerna": "2.6.0",
- "lint-staged": "^6.1.0",
- "lodash": "^4.17.4",
- "nodemon": "^1.14.11",
+ "lerna": "2.9.0",
+ "lint-staged": "^6.1.1",
+ "lodash": "^4.17.5",
+ "nodemon": "^1.15.0",
"npmlog": "^4.1.2",
"prettier": "^1.10.2",
- "puppeteer": "^0.13.0",
+ "puppeteer": "^1.1.0",
"raf": "^3.4.0",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-test-renderer": "^16.2.0",
- "remark-cli": "^4.0.0",
+ "remark-cli": "^5.0.0",
"remark-lint": "^6.0.1",
- "remark-lint-code": "^2.0.0",
- "remark-lint-code-eslint": "^2.0.0",
"remark-preset-lint-recommended": "^3.0.1",
+ "symlink-dir": "^1.1.2",
"shelljs": "^0.8.1",
- "symlink-dir": "^1.1.1",
- "ts-jest": "^22.0.0",
+ "ts-jest": "^22.0.4",
"tslint": "~5.9.1",
- "tslint-config-prettier": "^1.6.0",
- "tslint-plugin-prettier": "^1.3.0"
+ "tslint-config-prettier": "^1.8.0",
+ "tslint-plugin-prettier": "^1.3.0",
+ "typescript": "^2.7.2"
},
"engines": {
"node": ">=8.0.0",
diff --git a/scripts/compile-js.js b/scripts/compile-js.js
new file mode 100644
index 000000000000..7f9bbb0581ad
--- /dev/null
+++ b/scripts/compile-js.js
@@ -0,0 +1,49 @@
+/* eslint-disable no-console */
+const fs = require('fs');
+const path = require('path');
+const shell = require('shelljs');
+
+function getCommand(watch) {
+ const babel = path.join(__dirname, '..', 'node_modules', '.bin', 'babel');
+
+ const args = [
+ '--ignore __mocks__/,tests/*,__tests__/,**.test.js,stories/,**.story.js,**.stories.js,__snapshots__',
+ '--plugins "transform-runtime"',
+ './src --out-dir ./dist',
+ '--copy-files',
+ ];
+
+ if (watch) {
+ args.push('-w');
+ }
+
+ return `${babel} ${args.join(' ')}`;
+}
+
+function handleExit(code, errorCallback) {
+ if (code !== 0) {
+ if (errorCallback && typeof errorCallback === 'function') {
+ errorCallback();
+ }
+
+ shell.exit(code);
+ }
+}
+
+function babelify(options = {}) {
+ const { watch = false, silent = true, errorCallback } = options;
+
+ if (!fs.existsSync('src')) {
+ if (!silent) console.log('No src dir');
+ return;
+ }
+
+ const command = getCommand(watch);
+ const { code } = shell.exec(command, { silent });
+
+ handleExit(code, errorCallback);
+}
+
+module.exports = {
+ babelify,
+};
diff --git a/scripts/compile-ts.js b/scripts/compile-ts.js
new file mode 100644
index 000000000000..c918cd5f4dc3
--- /dev/null
+++ b/scripts/compile-ts.js
@@ -0,0 +1,53 @@
+/* eslint-disable no-console */
+const fs = require('fs');
+const path = require('path');
+const shell = require('shelljs');
+
+function getCommand(watch) {
+ const tsc = path.join(__dirname, '..', 'node_modules', '.bin', 'tsc');
+
+ const args = ['--outDir ./dist', '-d true', '--listEmittedFiles true'];
+
+ if (watch) {
+ args.push('-w');
+ }
+
+ return `${tsc} ${args.join(' ')}`;
+}
+
+function handleExit(code, errorCallback) {
+ if (code !== 0) {
+ if (errorCallback && typeof errorCallback === 'function') {
+ errorCallback();
+ }
+
+ shell.exit(code);
+ }
+}
+
+function tscfy(options = {}) {
+ const { watch = false, silent = true, errorCallback } = options;
+ const tsConfigFile = 'tsconfig.json';
+
+ if (!fs.existsSync(tsConfigFile)) {
+ if (!silent) console.log(`No ${tsConfigFile}`);
+ return;
+ }
+
+ const content = fs.readFileSync(tsConfigFile);
+ const tsConfig = JSON.parse(content);
+
+ if (tsConfig && tsConfig.lerna && tsConfig.lerna.disabled === true) {
+ if (!silent) console.log('Lerna disabled');
+ return;
+ }
+
+ const command = getCommand(watch);
+ const { code } = shell.exec(command, { silent });
+
+ handleExit(code, errorCallback);
+}
+
+module.exports = {
+ tscfy,
+};
diff --git a/scripts/netlify-build.sh b/scripts/netlify-build.sh
index 71de2feaa8f1..af34587fb7ba 100755
--- a/scripts/netlify-build.sh
+++ b/scripts/netlify-build.sh
@@ -35,6 +35,13 @@ elif [ "$BUILD_CONTEXT" = "ANGULAR" ]; then
yarn build-storybook
mv storybook-static ../../netlify-build
popd
+elif [ "$BUILD_CONTEXT" = "POLYMER" ]; then
+ echo "netlify-build Polymer examples"
+ pushd examples/polymer-cli
+ yarn
+ yarn build-storybook
+ mv storybook-static ../../netlify-build
+ popd
elif [ "$BUILD_CONTEXT" = "OFFICIAL" ]; then
echo "netlify-build official examples"
pushd examples/official-storybook
diff --git a/scripts/prepare.js b/scripts/prepare.js
index 81d57955f178..4dfe6d306a93 100644
--- a/scripts/prepare.js
+++ b/scripts/prepare.js
@@ -1,32 +1,51 @@
+/* eslint-disable no-console */
const path = require('path');
const shell = require('shelljs');
const chalk = require('chalk');
const log = require('npmlog');
+const { babelify } = require('./compile-js');
+const { tscfy } = require('./compile-ts');
-const modulePath = path.resolve('./');
-// eslint-disable-next-line import/no-dynamic-require
-const packageJson = require(path.join(modulePath, 'package.json'));
+function getPackageJson() {
+ const modulePath = path.resolve('./');
-shell.rm('-rf', 'dist');
+ // eslint-disable-next-line global-require,import/no-dynamic-require
+ return require(path.join(modulePath, 'package.json'));
+}
+
+function removeDist() {
+ shell.rm('-rf', 'dist');
+}
+
+function removeTsFromDist() {
+ // add .ts filtering to babel args and remove after babel - 7 is adopted
+ // --copy-files option doesn't work with --ignore
+ // https://github.com/babel/babel/issues/5404
-const babel = path.join(__dirname, '..', 'node_modules', '.bin', 'babel');
-const args = [
- '--ignore __mocks__/,tests/*,__tests__/,**.test.js,stories/,**.story.js,**.stories.js,__snapshots__',
- '--plugins "transform-runtime"',
- './src --out-dir ./dist',
- '--copy-files',
-].join(' ');
+ const tsFiles = shell.find('dist').filter(tsFile => tsFile.match(/\.ts$/));
-const command = `${babel} ${args}`;
-const { code } = shell.exec(command, { silent: true });
+ if (tsFiles.length) {
+ shell.rm(tsFiles);
+ }
+}
+
+function copyLicence() {
+ const licence = path.join(__dirname, '..', 'LICENSE');
+ shell.cp(licence, './');
+}
-if (code !== 0) {
- log.error(`FAILED: ${chalk.bold(`${packageJson.name}@${packageJson.version}`)}`);
- shell.exit(code);
+function logError(type, packageJson) {
+ log.error(
+ `FAILED to compile ${type}: ${chalk.bold(`${packageJson.name}@${packageJson.version}`)}`
+ );
}
-const licence = path.join(__dirname, '..', 'LICENSE');
-shell.cp(licence, './');
+const packageJson = getPackageJson();
+
+removeDist();
+babelify({ errorCallback: () => logError('js', packageJson) });
+removeTsFromDist();
+tscfy({ errorCallback: () => logError('ts', packageJson) });
+copyLicence();
-// eslint-disable-next-line no-console
console.log(chalk.gray(`Built: ${chalk.bold(`${packageJson.name}@${packageJson.version}`)}`));
diff --git a/scripts/watch-js.js b/scripts/watch-js.js
new file mode 100644
index 000000000000..fa55099c9d71
--- /dev/null
+++ b/scripts/watch-js.js
@@ -0,0 +1,8 @@
+const { babelify } = require('./compile-js');
+
+babelify({
+ watch: true,
+ silent: false,
+ // eslint-disable-next-line no-console
+ errorCallback: () => console.error('Failed to compile js'),
+});
diff --git a/scripts/watch-ts.js b/scripts/watch-ts.js
new file mode 100644
index 000000000000..3cabb8386a01
--- /dev/null
+++ b/scripts/watch-ts.js
@@ -0,0 +1,8 @@
+const { tscfy } = require('./compile-ts');
+
+tscfy({
+ watch: true,
+ silent: false,
+ // eslint-disable-next-line no-console
+ errorCallback: () => console.error('Failed to compile ts'),
+});
diff --git a/tsconfig.json b/tsconfig.json
index 85db264eac0b..c10e37b0ffc6 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,6 +5,7 @@
"experimentalDecorators": true,
"skipLibCheck": true,
"noImplicitAny": true,
+ "target": "es5",
"lib": [
"es2016",
"dom"
diff --git a/tslint.json b/tslint.json
index 5835bcdb92b4..45d1f7977aa8 100644
--- a/tslint.json
+++ b/tslint.json
@@ -119,7 +119,6 @@
"variable-declaration": "nospace"
}
],
- "typeof-compare": true,
"unified-signatures": true,
"variable-name": false,
"directive-selector": [
@@ -142,10 +141,7 @@
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
- "directive-class-suffix": true,
- "no-access-missing-member": true,
- "templates-use-public": true,
- "invoke-injectable": true
+ "directive-class-suffix": true
},
"linterOptions": {
"exclude": [
diff --git a/yarn.lock b/yarn.lock
index ea5bd9311144..b4cc6c751e9b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,58 +2,58 @@
# yarn lockfile v1
-"@angular-devkit/build-optimizer@~0.0.42":
- version "0.0.42"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.0.42.tgz#402b0dda4883db91e2381c3ddc55888408a7894e"
+"@angular-devkit/build-optimizer@0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.3.1.tgz#6a26a46c58858c7b67833c6d8a81198fa17d23e7"
dependencies:
loader-utils "^1.1.0"
source-map "^0.5.6"
typescript "~2.6.2"
webpack-sources "^1.0.1"
-"@angular-devkit/core@~0.0.29":
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.0.29.tgz#6fb319b45a62eff172318cbe256fdb24ef20af2b"
+"@angular-devkit/core@0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.3.1.tgz#6aeb990dec92d06360597928748aeeedc21afdde"
dependencies:
ajv "~5.5.1"
chokidar "^1.7.0"
rxjs "^5.5.6"
source-map "^0.5.6"
-"@angular-devkit/schematics@~0.0.52":
- version "0.0.52"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.0.52.tgz#cbd2f42778b50d6422a254ffaec05ad4ef3cb6c0"
+"@angular-devkit/schematics@0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.3.1.tgz#eb40ca260681f4f420ca8ed41f754fb3ea689f81"
dependencies:
"@ngtools/json-schema" "^1.1.0"
rxjs "^5.5.6"
-"@angular/animations@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.2.2.tgz#3364a0c4f355d3313dda9bde526e376c137fa169"
+"@angular/animations@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.2.5.tgz#3e72184321c4979305619c74902b8be92d76db70"
dependencies:
tslib "^1.7.1"
-"@angular/cli@1.6.6":
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.6.6.tgz#002119ab2ed804bbdc86075e0095eadda2a0baa0"
- dependencies:
- "@angular-devkit/build-optimizer" "~0.0.42"
- "@angular-devkit/core" "~0.0.29"
- "@angular-devkit/schematics" "~0.0.52"
- "@ngtools/json-schema" "1.1.0"
- "@ngtools/webpack" "1.9.6"
- "@schematics/angular" "~0.1.17"
+"@angular/cli@1.7.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.7.0.tgz#63c56e6d36d57bcd9d9d9425bd806f590f518211"
+ dependencies:
+ "@angular-devkit/build-optimizer" "0.3.1"
+ "@angular-devkit/core" "0.3.1"
+ "@angular-devkit/schematics" "0.3.1"
+ "@ngtools/json-schema" "1.2.0"
+ "@ngtools/webpack" "1.10.0"
+ "@schematics/angular" "0.3.1"
+ "@schematics/package-update" "0.3.1"
autoprefixer "^7.2.3"
+ cache-loader "^1.2.0"
chalk "~2.2.0"
circular-dependency-plugin "^4.2.1"
+ clean-css "^4.1.9"
common-tags "^1.3.1"
- copy-webpack-plugin "^4.1.1"
+ copy-webpack-plugin "~4.4.1"
core-object "^3.1.0"
- css-loader "^0.28.1"
- cssnano "^3.10.0"
denodeify "^1.2.1"
ember-cli-string-utils "^1.0.0"
- exports-loader "^0.6.3"
extract-text-webpack-plugin "^3.0.2"
file-loader "^1.1.5"
fs-extra "^4.0.0"
@@ -72,6 +72,7 @@
nopt "^4.0.1"
opn "~5.1.0"
portfinder "~1.0.12"
+ postcss "^6.0.16"
postcss-import "^11.0.0"
postcss-loader "^2.0.10"
postcss-url "^7.1.2"
@@ -81,14 +82,13 @@
sass-loader "^6.0.6"
semver "^5.1.0"
silent-error "^1.0.0"
- source-map-loader "^0.2.0"
source-map-support "^0.4.1"
- style-loader "^0.13.1"
+ style-loader "^0.19.1"
stylus "^0.54.5"
stylus-loader "^3.0.1"
- uglifyjs-webpack-plugin "^1.1.5"
+ uglifyjs-webpack-plugin "^1.1.8"
url-loader "^0.6.2"
- webpack "~3.10.0"
+ webpack "~3.11.0"
webpack-dev-middleware "~1.12.0"
webpack-dev-server "~2.11.0"
webpack-merge "^4.1.0"
@@ -97,64 +97,64 @@
optionalDependencies:
node-sass "^4.7.2"
-"@angular/common@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.2.2.tgz#24f0f21dbc29a8b2dbfe93d19ec5a18defca9edf"
+"@angular/common@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.2.5.tgz#08dd636fa46077d047066b13a1aae494066f6c55"
dependencies:
tslib "^1.7.1"
-"@angular/compiler-cli@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.2.2.tgz#0929463252adcf3f8094b1689cc5cbdcb6f8ceaa"
+"@angular/compiler-cli@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.2.5.tgz#b1988bb2c0a956e7fc163acf8c7d794a07a88d08"
dependencies:
chokidar "^1.4.2"
minimist "^1.2.0"
reflect-metadata "^0.1.2"
tsickle "^0.26.0"
-"@angular/compiler@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.2.2.tgz#cf6ef310c5ca2fdae9551af62d10ab24d4feb51a"
+"@angular/compiler@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.2.5.tgz#5e3b511906048a579fcd007aba72911472e5aa28"
dependencies:
tslib "^1.7.1"
-"@angular/core@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.2.2.tgz#54950023b971d9e01f6f6fdbc30d2b68e4d05eb2"
+"@angular/core@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.2.5.tgz#24f9cd75c5b2728f2ddd1869777590ea7177bca9"
dependencies:
tslib "^1.7.1"
-"@angular/forms@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.2.2.tgz#eca24f15d96de285cd0726601db4bffec39c01f3"
+"@angular/forms@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.2.5.tgz#2ad7a420c6ef6cd87a34071c5319ec83f7ed56aa"
dependencies:
tslib "^1.7.1"
-"@angular/http@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.2.2.tgz#d33c128d5737f8d701bbac3e7e23d831deec3457"
+"@angular/http@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.2.5.tgz#1208256e36f0e486d96d10a733fdc8424ffa16bf"
dependencies:
tslib "^1.7.1"
-"@angular/language-service@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-5.2.2.tgz#2829214885096c4168566a9f74364a8fed641a49"
+"@angular/language-service@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-5.2.5.tgz#7c3021f347dd4b28ae0a867700894f3de4930f48"
-"@angular/platform-browser-dynamic@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.2.tgz#2ddd7fa28bb34ae9e181e6f286dfe4c96bde95a6"
+"@angular/platform-browser-dynamic@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.5.tgz#b89df410bd953e2a6843325f9ac3c09a10eadaf0"
dependencies:
tslib "^1.7.1"
-"@angular/platform-browser@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.2.2.tgz#3eedcbbcc8c0e6c91eba7ed2b32de7c6679d9b62"
+"@angular/platform-browser@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.2.5.tgz#eae4af2b742fb901d84d6367cd99f9e88102151f"
dependencies:
tslib "^1.7.1"
-"@angular/router@^5.2.2":
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.2.2.tgz#b0ffd7121290e8c01f20862b4a2638ebcebc61cf"
+"@angular/router@^5.2.5":
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.2.5.tgz#f8f220d5fb85fc10d60fe606b0f2a64732265142"
dependencies:
tslib "^1.7.1"
@@ -167,8 +167,8 @@
js-tokens "^3.0.0"
"@babel/code-frame@^7.0.0-beta.35":
- version "7.0.0-beta.37"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.37.tgz#2da1dd3b1b57bfdea777ddc378df7cd12fe40171"
+ version "7.0.0-beta.38"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.38.tgz#c0af5930617e55e050336838e3a3670983b0b2b2"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
@@ -218,13 +218,17 @@
lodash "^4.2.0"
to-fast-properties "^2.0.0"
-"@ngtools/json-schema@1.1.0", "@ngtools/json-schema@^1.1.0":
+"@ngtools/json-schema@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.2.0.tgz#06e5ecd29e9a37d260a447dd873ea2becd228c4f"
+
+"@ngtools/json-schema@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922"
-"@ngtools/webpack@1.9.6":
- version "1.9.6"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.9.6.tgz#102c60ee4b8a84a26ddc1e2b334f327e91821a4d"
+"@ngtools/webpack@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.10.0.tgz#1e4f60bdba8cdb8aeb93ebb976e63bf175acd279"
dependencies:
chalk "~2.2.0"
enhanced-resolve "^3.1.0"
@@ -235,16 +239,37 @@
tree-kill "^1.0.0"
webpack-sources "^1.1.0"
-"@polymer/polymer@^2.4.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@polymer/polymer/-/polymer-2.4.0.tgz#a6151e43a72141bc39e9e2c420d04f702a923cf3"
+"@octokit/rest@^14.0.4":
+ version "14.0.5"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-14.0.5.tgz#6d130aa0c0024e2e2c8a4e3a48373f70b6ba983e"
+ dependencies:
+ before-after-hook "^1.1.0"
+ debug "^3.1.0"
+ dotenv "^4.0.0"
+ https-proxy-agent "^2.1.0"
+ is-stream "^1.1.0"
+ lodash "^4.17.4"
+ proxy-from-env "^1.0.0"
+ url-template "^2.0.8"
-"@schematics/angular@~0.1.17":
- version "0.1.17"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.1.17.tgz#084a7cbe2de6f94a856bd08d95c9d35ef8905e2b"
+"@polymer/polymer@^2.5.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@polymer/polymer/-/polymer-2.5.0.tgz#261439f5ab691c230d0c5dfb518b9247064ac13d"
+
+"@schematics/angular@0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.3.1.tgz#0f5185f5e718145031532fb03d127446e22ee9b8"
dependencies:
typescript "~2.6.2"
+"@schematics/package-update@0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@schematics/package-update/-/package-update-0.3.1.tgz#b7662a2aeb724e0f162b916cc0937278a6a1e709"
+ dependencies:
+ rxjs "^5.5.6"
+ semver "^5.3.0"
+ semver-intersect "^1.1.2"
+
"@storybook/mantra-core@^1.7.2":
version "1.7.2"
resolved "https://registry.yarnpkg.com/@storybook/mantra-core/-/mantra-core-1.7.2.tgz#e10c7faca29769e97131e0e0308ef7cfb655b70c"
@@ -286,10 +311,6 @@
version "0.11.7"
resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.11.7.tgz#da39a2f7c74e793e32e2bb7b3b68da1691532dd5"
-"@types/inline-style-prefixer@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@types/inline-style-prefixer/-/inline-style-prefixer-3.0.1.tgz#8541e636b029124b747952e9a28848286d2b5bf6"
-
"@types/jasmine@~2.8.6":
version "2.8.6"
resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.6.tgz#14445b6a1613cf4e05dd61c3c3256d0e95c0421e"
@@ -298,10 +319,6 @@
version "4.14.92"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.92.tgz#6e3cb0b71a1e12180a47a42a744e856c3ae99a57"
-"@types/lodash@^4.14.98":
- version "4.14.98"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.98.tgz#aaf012ae443e657e7885e605a4c1b340db160609"
-
"@types/mz@0.0.32":
version "0.0.32"
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-0.0.32.tgz#e8248b4e41424c052edc1725dd33650c313a3659"
@@ -312,10 +329,14 @@
version "9.3.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5"
-"@types/node@^6.0.0", "@types/node@^6.0.46", "@types/node@~6.0.96":
+"@types/node@^6.0.0", "@types/node@^6.0.46":
version "6.0.96"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.96.tgz#7bf0bf40d6ce51e93762cc47d010c8cc5ebb2179"
+"@types/node@~9.4.6":
+ version "9.4.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.6.tgz#d8176d864ee48753d053783e4e463aec86b8d82e"
+
"@types/parse5@^2.2.32":
version "2.2.34"
resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-2.2.34.tgz#e3870a10e82735a720f62d71dcd183ba78ef3a9d"
@@ -326,7 +347,7 @@
version "0.0.32"
resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5"
-"@types/react@^16.0.18", "@types/react@^16.0.20":
+"@types/react@^16.0.20":
version "16.0.34"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.34.tgz#7a8f795afd8a404a9c4af9539b24c75d3996914e"
@@ -334,11 +355,19 @@
version "2.53.43"
resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz#2de3d718819bc20165754c4a59afb7e9833f6707"
+"@types/strip-bom@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2"
+
+"@types/strip-json-comments@0.0.30":
+ version "0.0.30"
+ resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1"
+
"@webcomponents/webcomponentsjs@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.1.0.tgz#1392799c266fca142622a720176f688beb74d181"
-JSONStream@^1.0.4, JSONStream@~1.3.1:
+JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@~1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea"
dependencies:
@@ -422,6 +451,10 @@ address@1.0.3, address@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9"
+addressparser@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
+
adm-zip@0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736"
@@ -470,15 +503,15 @@ airbnb-js-shims@^1.4.1:
string.prototype.padend "^3.0.0"
string.prototype.padstart "^3.0.0"
-ajv-keywords@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
-
ajv-keywords@^2.0.0, ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
-ajv@^4.7.0, ajv@^4.9.1:
+ajv-keywords@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
+
+ajv@^4.9.1:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
dependencies:
@@ -494,6 +527,14 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.2.3, ajv@^5.3.0, ajv@~5.5
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
+ajv@^6.1.0:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e"
+ dependencies:
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@@ -510,6 +551,16 @@ amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+amqplib@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.2.tgz#d2d7313c7ffaa4d10bcf1e6252de4591b6cc7b63"
+ dependencies:
+ bitsyntax "~0.0.4"
+ bluebird "^3.4.6"
+ buffer-more-ints "0.0.2"
+ readable-stream "1.x >=1.1.9"
+ safe-buffer "^5.0.1"
+
angular2-template-loader@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz#c0d44e90fff0fac95e8b23f043acda7fd1c51d7c"
@@ -546,6 +597,10 @@ ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+ansi-regex@^0.2.0, ansi-regex@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
+
ansi-regex@^2.0.0, ansi-regex@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -554,6 +609,10 @@ ansi-regex@^3.0.0, ansi-regex@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ansi-styles@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -764,9 +823,9 @@ array.prototype.flatten@^1.2.0:
es-abstract "^1.10.0"
function-bind "^1.1.1"
-arraybuffer.slice@0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
+arraybuffer.slice@~0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
@@ -800,7 +859,7 @@ assert-plus@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-assert@^1.1.1:
+assert@^1.1.1, assert@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
dependencies:
@@ -814,7 +873,7 @@ ast-types-flow@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
-ast-types@0.10.1:
+ast-types@0.10.1, ast-types@0.x.x:
version "0.10.1"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd"
@@ -826,6 +885,12 @@ astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+astw@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917"
+ dependencies:
+ acorn "^4.0.3"
+
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
@@ -838,7 +903,7 @@ async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-async@2.6.0, async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.0, async@^2.4.1, async@^2.5.0:
+async@2.6.0, async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.0, async@^2.4.1:
version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies:
@@ -848,6 +913,12 @@ async@^1.4.0, async@^1.5.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+async@~2.1.2:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
+ dependencies:
+ lodash "^4.14.0"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -878,7 +949,7 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
-autoprefixer@^7.1.6, autoprefixer@^7.2.3, autoprefixer@^7.2.5:
+autoprefixer@^7.2.3:
version "7.2.5"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.5.tgz#04ccbd0c6a61131b6d13f53d371926092952d192"
dependencies:
@@ -889,6 +960,17 @@ autoprefixer@^7.1.6, autoprefixer@^7.2.3, autoprefixer@^7.2.5:
postcss "^6.0.16"
postcss-value-parser "^3.2.3"
+autoprefixer@^7.2.6:
+ version "7.2.6"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc"
+ dependencies:
+ browserslist "^2.11.3"
+ caniuse-lite "^1.0.30000805"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^6.0.17"
+ postcss-value-parser "^3.2.3"
+
aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
@@ -905,6 +987,12 @@ axe-core@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-2.6.1.tgz#28772c4f76966d373acda35b9a409299dc00d1b5"
+axios@^0.15.3:
+ version "0.15.3"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053"
+ dependencies:
+ follow-redirects "1.0.0"
+
axobject-query@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0"
@@ -932,7 +1020,7 @@ babel-cli@^6.26.0:
optionalDependencies:
chokidar "^1.6.1"
-babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
+babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
@@ -1163,13 +1251,6 @@ babel-jest@20.0.3, babel-jest@^20.0.3:
babel-plugin-istanbul "^4.0.0"
babel-preset-jest "^20.0.3"
-babel-jest@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e"
- dependencies:
- babel-plugin-istanbul "^4.0.0"
- babel-preset-jest "^21.2.0"
-
babel-jest@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.1.0.tgz#7fae6f655fffe77e818a8c2868c754a42463fdfd"
@@ -1177,6 +1258,13 @@ babel-jest@^22.1.0:
babel-plugin-istanbul "^4.1.5"
babel-preset-jest "^22.1.0"
+babel-jest@^22.2.2:
+ version "22.2.2"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.2.2.tgz#eda38dca284e32cc5257f96a9b51351975de4e04"
+ dependencies:
+ babel-plugin-istanbul "^4.1.5"
+ babel-preset-jest "^22.2.0"
+
babel-loader@7.1.2, babel-loader@^7.0.0, babel-loader@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126"
@@ -1229,14 +1317,14 @@ babel-plugin-jest-hoist@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767"
-babel-plugin-jest-hoist@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006"
-
babel-plugin-jest-hoist@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.1.0.tgz#c1281dd7887d77a1711dc760468c3b8285dde9ee"
+babel-plugin-jest-hoist@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.2.0.tgz#bd34f39d652406669713b8c89e23ef25c890b993"
+
babel-plugin-jsx-event-modifiers@^2.0.2:
version "2.0.5"
resolved "https://registry.yarnpkg.com/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.5.tgz#93e6ebb5d7553bb08f9fedbf7a0bee3af09a0472"
@@ -1249,10 +1337,6 @@ babel-plugin-jsx-v-model@^2.0.1:
html-tags "^2.0.0"
svg-tags "^1.0.0"
-babel-plugin-jsx-vue-functional@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jsx-vue-functional/-/babel-plugin-jsx-vue-functional-2.1.0.tgz#5630a0c86fe1904d28c30465e6bf1cf71235a239"
-
babel-plugin-macros@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.0.0.tgz#fd3aee135f7dec0b82898b7c8f1aed6fa75f9af9"
@@ -1799,14 +1883,7 @@ babel-plugin-transform-vue-jsx@^3.5.0:
dependencies:
esutils "^2.0.2"
-babel-polyfill@7.0.0-alpha.19:
- version "7.0.0-alpha.19"
- resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-7.0.0-alpha.19.tgz#546aabf80c92f4e9314176a64458a6258e5970de"
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.10.0"
-
-babel-polyfill@^6.26.0:
+babel-polyfill@^6.23.0, babel-polyfill@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
dependencies:
@@ -1937,20 +2014,20 @@ babel-preset-jest@^20.0.3:
dependencies:
babel-plugin-jest-hoist "^20.0.3"
-babel-preset-jest@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638"
- dependencies:
- babel-plugin-jest-hoist "^21.2.0"
- babel-plugin-syntax-object-rest-spread "^6.13.0"
-
-babel-preset-jest@^22.0.1, babel-preset-jest@^22.1.0:
+babel-preset-jest@^22.0.1:
version "22.1.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.1.0.tgz#ff4e704102f9642765e2254226050561d8942ec9"
dependencies:
babel-plugin-jest-hoist "^22.1.0"
babel-plugin-syntax-object-rest-spread "^6.13.0"
+babel-preset-jest@^22.1.0, babel-preset-jest@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.2.0.tgz#f77b43f06ef4d8547214b2e206cc76a25c3ba0e2"
+ dependencies:
+ babel-plugin-jest-hoist "^22.2.0"
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
+
babel-preset-minify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz#7db64afa75f16f6e06c0aa5f25195f6f36784d77"
@@ -2079,14 +2156,13 @@ babel-preset-stage-3@^6.24.1:
babel-plugin-transform-exponentiation-operator "^6.24.1"
babel-plugin-transform-object-rest-spread "^6.22.0"
-babel-preset-vue@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/babel-preset-vue/-/babel-preset-vue-1.2.1.tgz#b0de8977e0ce981fc6824cf0a537917a02a6fe87"
+babel-preset-vue@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-vue/-/babel-preset-vue-2.0.1.tgz#031f845944819f64f5ac4b20467b6cbe4b97ac68"
dependencies:
babel-helper-vue-jsx-merge-props "^2.0.2"
babel-plugin-jsx-event-modifiers "^2.0.2"
babel-plugin-jsx-v-model "^2.0.1"
- babel-plugin-jsx-vue-functional "^2.1.0"
babel-plugin-syntax-jsx "^6.18.0"
babel-plugin-transform-vue-jsx "^3.5.0"
@@ -2244,6 +2320,10 @@ beeper@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
+before-after-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.1.0.tgz#83165e15a59460d13702cb8febd6a1807896db5a"
+
better-assert@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
@@ -2262,12 +2342,24 @@ binary-extensions@^1.0.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
+bitsyntax@~0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.0.4.tgz#eb10cc6f82b8c490e3e85698f07e83d46e0cba82"
+ dependencies:
+ buffer-more-ints "0.0.2"
+
bl@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
dependencies:
readable-stream "^2.0.5"
+bl@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398"
+ dependencies:
+ readable-stream "~2.0.5"
+
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
@@ -2284,7 +2376,7 @@ blocking-proxy@^1.0.0:
dependencies:
minimist "^1.2.0"
-bluebird@^3.1.1, bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@~3.5.0:
+bluebird@^3.1.1, bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@~3.5.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
@@ -2442,11 +2534,22 @@ brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+browser-pack@^6.0.1:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.3.tgz#91ca96518583ef580ab063a309de62e407767a39"
+ dependencies:
+ JSONStream "^1.0.3"
+ combine-source-map "~0.8.0"
+ defined "^1.0.0"
+ safe-buffer "^5.1.1"
+ through2 "^2.0.0"
+ umd "^3.0.0"
+
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"
-browser-resolve@^1.11.2:
+browser-resolve@^1.11.0, browser-resolve@^1.11.2, browser-resolve@^1.7.0:
version "1.11.2"
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
dependencies:
@@ -2498,12 +2601,64 @@ browserify-sign@^4.0.0:
inherits "^2.0.1"
parse-asn1 "^5.0.0"
-browserify-zlib@^0.2.0:
+browserify-zlib@^0.2.0, browserify-zlib@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
dependencies:
pako "~1.0.5"
+browserify@^14.5.0:
+ version "14.5.0"
+ resolved "https://registry.yarnpkg.com/browserify/-/browserify-14.5.0.tgz#0bbbce521acd6e4d1d54d8e9365008efb85a9cc5"
+ dependencies:
+ JSONStream "^1.0.3"
+ assert "^1.4.0"
+ browser-pack "^6.0.1"
+ browser-resolve "^1.11.0"
+ browserify-zlib "~0.2.0"
+ buffer "^5.0.2"
+ cached-path-relative "^1.0.0"
+ concat-stream "~1.5.1"
+ console-browserify "^1.1.0"
+ constants-browserify "~1.0.0"
+ crypto-browserify "^3.0.0"
+ defined "^1.0.0"
+ deps-sort "^2.0.0"
+ domain-browser "~1.1.0"
+ duplexer2 "~0.1.2"
+ events "~1.1.0"
+ glob "^7.1.0"
+ has "^1.0.0"
+ htmlescape "^1.1.0"
+ https-browserify "^1.0.0"
+ inherits "~2.0.1"
+ insert-module-globals "^7.0.0"
+ labeled-stream-splicer "^2.0.0"
+ module-deps "^4.0.8"
+ os-browserify "~0.3.0"
+ parents "^1.0.1"
+ path-browserify "~0.0.0"
+ process "~0.11.0"
+ punycode "^1.3.2"
+ querystring-es3 "~0.2.0"
+ read-only-stream "^2.0.0"
+ readable-stream "^2.0.2"
+ resolve "^1.1.4"
+ shasum "^1.0.0"
+ shell-quote "^1.6.1"
+ stream-browserify "^2.0.0"
+ stream-http "^2.0.0"
+ string_decoder "~1.0.0"
+ subarg "^1.0.0"
+ syntax-error "^1.1.1"
+ through2 "^2.0.0"
+ timers-browserify "^1.0.1"
+ tty-browserify "~0.0.0"
+ url "~0.11.0"
+ util "~0.10.1"
+ vm-browserify "~0.0.1"
+ xtend "^4.0.0"
+
browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
version "1.7.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
@@ -2518,6 +2673,13 @@ browserslist@^2.1.2, browserslist@^2.11.1, browserslist@^2.5.1:
caniuse-lite "^1.0.30000789"
electron-to-chromium "^1.3.30"
+browserslist@^2.11.3:
+ version "2.11.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2"
+ dependencies:
+ caniuse-lite "^1.0.30000792"
+ electron-to-chromium "^1.3.30"
+
bser@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
@@ -2534,6 +2696,10 @@ buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+buffer-more-ints@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c"
+
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -2546,6 +2712,25 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
+buffer@^5.0.2:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.8.tgz#84daa52e7cf2fa8ce4195bc5cf0f7809e0930b24"
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+
+buildmail@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72"
+ dependencies:
+ addressparser "1.0.1"
+ libbase64 "0.1.0"
+ libmime "3.0.0"
+ libqp "1.1.0"
+ nodemailer-fetch "1.6.0"
+ nodemailer-shared "1.1.0"
+ punycode "1.4.1"
+
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -2642,6 +2827,19 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+cache-loader@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.0.tgz#cdc313ae53b3c13ce8ee0c9296cf16c736b15252"
+ dependencies:
+ async "^2.4.1"
+ loader-utils "^1.1.0"
+ mkdirp "^0.5.1"
+ schema-utils "^0.4.2"
+
+cached-path-relative@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7"
+
call-limit@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea"
@@ -2711,6 +2909,10 @@ caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000789, caniuse-lite@^1.0.300007
version "1.0.30000791"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000791.tgz#8e35745efd483a3e23bb7d350990326d2319fc16"
+caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805:
+ version "1.0.30000807"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000807.tgz#51ea478d07269e9dd4d8c639509df61d2516fa92"
+
capture-stack-trace@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
@@ -2742,6 +2944,16 @@ chain-function@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
+chalk@0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
+ dependencies:
+ ansi-styles "^1.1.0"
+ escape-string-regexp "^1.0.0"
+ has-ansi "^0.1.0"
+ strip-ansi "^0.3.0"
+ supports-color "^0.2.0"
+
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -2760,6 +2972,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
+chalk@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796"
+ dependencies:
+ ansi-styles "^3.2.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.2.0"
+
chalk@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
@@ -2796,10 +3016,11 @@ chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
-check-node-version@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-2.1.0.tgz#85565842cf79a09dfa8e266720575ee0aec1983d"
+check-node-version@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-3.2.0.tgz#783a4292dbf76d6b8294b23abece33682b4a7cce"
dependencies:
+ chalk "^2.3.0"
map-values "^1.0.1"
minimist "^1.2.0"
object-filter "^1.0.2"
@@ -2862,6 +3083,24 @@ chokidar@^2.0.0:
optionalDependencies:
fsevents "^1.0.0"
+chokidar@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.2.tgz#4dc65139eeb2714977735b6a35d06e97b494dfd7"
+ dependencies:
+ anymatch "^2.0.0"
+ async-each "^1.0.0"
+ braces "^2.3.0"
+ glob-parent "^3.1.0"
+ inherits "^2.0.1"
+ is-binary-path "^1.0.0"
+ is-glob "^4.0.0"
+ normalize-path "^2.1.1"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.0.0"
+ upath "^1.0.0"
+ optionalDependencies:
+ fsevents "^1.0.0"
+
chownr@^1.0.1, chownr@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
@@ -2889,6 +3128,10 @@ circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+circular-json@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.1.tgz#b8942a09e535863dc21b04417a91971e1d9cd91f"
+
clap@^1.0.9:
version "1.2.3"
resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
@@ -2908,7 +3151,7 @@ classnames@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
-clean-css@4.1.x:
+clean-css@4.1.x, clean-css@^4.1.9:
version "4.1.9"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301"
dependencies:
@@ -3016,6 +3259,10 @@ co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+co@~3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda"
+
coa@~1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
@@ -3034,9 +3281,9 @@ codecov@^3.0.0:
request "2.81.0"
urlgrey "0.4.4"
-codelyzer@^3.1.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-3.2.2.tgz#abbd4e5956c435677740846e5858c915f89679c3"
+codelyzer@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.1.0.tgz#3117754538d8f5ffa36dff91d340573a836cf373"
dependencies:
app-root-path "^2.0.1"
css-selector-tokenizer "^0.7.0"
@@ -3124,6 +3371,24 @@ combine-lists@^1.0.0:
dependencies:
lodash "^4.5.0"
+combine-source-map@~0.7.1:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e"
+ dependencies:
+ convert-source-map "~1.1.0"
+ inline-source-map "~0.6.0"
+ lodash.memoize "~3.0.3"
+ source-map "~0.5.3"
+
+combine-source-map@~0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b"
+ dependencies:
+ convert-source-map "~1.1.0"
+ inline-source-map "~0.6.0"
+ lodash.memoize "~3.0.3"
+ source-map "~0.5.3"
+
combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
@@ -3142,10 +3407,18 @@ commander@2.12.x, commander@~2.12.1:
version "2.12.2"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
-commander@^2.11.0, commander@^2.12.1, commander@^2.12.2, commander@^2.13.0, commander@^2.9.0:
+commander@2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d"
+
+commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.9.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+commander@^2.14.1:
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
+
common-tags@^1.3.1, common-tags@^1.4.0, common-tags@^1.7.2:
version "1.7.2"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771"
@@ -3167,10 +3440,6 @@ component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
-component-emitter@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
-
component-emitter@1.2.1, component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
@@ -3220,6 +3489,27 @@ concat-stream@1.6.0, concat-stream@^1.4.10, concat-stream@^1.5.0, concat-stream@
readable-stream "^2.2.2"
typedarray "^0.0.6"
+concat-stream@~1.5.0, concat-stream@~1.5.1:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "~2.0.0"
+ typedarray "~0.0.5"
+
+concurrently@^3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.1.tgz#ee8b60018bbe86b02df13e5249453c6ececd2521"
+ dependencies:
+ chalk "0.5.1"
+ commander "2.6.0"
+ date-fns "^1.23.0"
+ lodash "^4.5.1"
+ rx "2.3.24"
+ spawn-command "^0.0.2-1"
+ supports-color "^3.2.3"
+ tree-kill "^1.1.0"
+
config-chain@~1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
@@ -3326,7 +3616,7 @@ consolidate@^0.14.0:
dependencies:
bluebird "^3.1.1"
-constants-browserify@^1.0.0:
+constants-browserify@^1.0.0, constants-browserify@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
@@ -3346,46 +3636,46 @@ content-type@~1.0.1, content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-conventional-changelog-angular@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz#0a26a071f2c9fcfcf2b86ba0cfbf6e6301b75bfa"
+conventional-changelog-angular@^1.6.4:
+ version "1.6.4"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.4.tgz#47debaf92b75b0bd6b39fcba8f9c70dd97552be6"
dependencies:
compare-func "^1.3.1"
q "^1.4.1"
-conventional-changelog-atom@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz#12595ad5267a6937c34cf900281b1c65198a4c63"
+conventional-changelog-atom@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.2.tgz#2c7326a8f24686f51500a290ed897d47612be4c3"
dependencies:
q "^1.4.1"
-conventional-changelog-cli@^1.3.2:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.5.tgz#46c51496216b7406588883defa6fac589e9bb31e"
+conventional-changelog-cli@^1.3.13:
+ version "1.3.13"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.13.tgz#8cb5855bc3c684aa8f5dc96e848d1fa5a82eee1e"
dependencies:
add-stream "^1.0.0"
- conventional-changelog "^1.1.7"
+ conventional-changelog "^1.1.15"
lodash "^4.1.0"
meow "^3.7.0"
tempfile "^1.1.1"
-conventional-changelog-codemirror@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz#299a4f7147baf350e6c8158fc54954a291c5cc09"
+conventional-changelog-codemirror@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.2.tgz#65ef0ab738c40bdf953951edfdb0cb17302606aa"
dependencies:
q "^1.4.1"
-conventional-changelog-core@^1.9.3:
- version "1.9.5"
- resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz#5db7566dad7c0cb75daf47fbb2976f7bf9928c1d"
+conventional-changelog-core@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.3.tgz#30797b91d5f510188288d5ff54905e5cf4628e3c"
dependencies:
- conventional-changelog-writer "^2.0.3"
- conventional-commits-parser "^2.1.0"
+ conventional-changelog-writer "^3.0.2"
+ conventional-commits-parser "^2.1.3"
dateformat "^1.0.12"
get-pkg-repo "^1.0.0"
- git-raw-commits "^1.3.0"
+ git-raw-commits "^1.3.2"
git-remote-origin-url "^2.0.0"
- git-semver-tags "^1.2.3"
+ git-semver-tags "^1.3.2"
lodash "^4.0.0"
normalize-package-data "^2.3.5"
q "^1.4.1"
@@ -3393,21 +3683,21 @@ conventional-changelog-core@^1.9.3:
read-pkg-up "^1.0.1"
through2 "^2.0.0"
-conventional-changelog-ember@^0.2.9:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.10.tgz#dcd6e4cdc2e6c2b58653cf4d2cb1656a60421929"
+conventional-changelog-ember@^0.3.4:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.4.tgz#76240e769b2f5298e78e85cb4eda69ef2f1358d2"
dependencies:
q "^1.4.1"
-conventional-changelog-eslint@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz#2c2a11beb216f80649ba72834180293b687c0662"
+conventional-changelog-eslint@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.2.tgz#3f9e6b0b60f98042f6f4dfc85a611a50b5e79cf9"
dependencies:
q "^1.4.1"
-conventional-changelog-express@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz#838d9e1e6c9099703b150b9c19aa2d781742bd6c"
+conventional-changelog-express@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.2.tgz#f5af4770a31f147986db548b49f9952fc55e3eb6"
dependencies:
q "^1.4.1"
@@ -3423,19 +3713,23 @@ conventional-changelog-jscs@^0.1.0:
dependencies:
q "^1.4.1"
-conventional-changelog-jshint@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz#86139bb3ac99899f2b177e9617e09b37d99bcf3a"
+conventional-changelog-jshint@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.2.tgz#4d45d2601c944687abceabbc1789323719234cbe"
dependencies:
compare-func "^1.3.1"
q "^1.4.1"
-conventional-changelog-writer@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz#073b0c39f1cc8fc0fd9b1566e93833f51489c81c"
+conventional-changelog-preset-loader@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.4.tgz#5096165f2742a18dc0e33ff2ab9ee08dc9d77f08"
+
+conventional-changelog-writer@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.2.tgz#f3f934028379c0cab90aecfcaf009bf8a187ef14"
dependencies:
compare-func "^1.3.1"
- conventional-commits-filter "^1.1.1"
+ conventional-commits-filter "^1.1.3"
dateformat "^1.0.11"
handlebars "^4.0.2"
json-stringify-safe "^5.0.1"
@@ -3445,20 +3739,21 @@ conventional-changelog-writer@^2.0.3:
split "^1.0.0"
through2 "^2.0.0"
-conventional-changelog@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.7.tgz#9151a62b1d8edb2d82711dabf5b7cf71041f82b1"
- dependencies:
- conventional-changelog-angular "^1.5.2"
- conventional-changelog-atom "^0.1.2"
- conventional-changelog-codemirror "^0.2.1"
- conventional-changelog-core "^1.9.3"
- conventional-changelog-ember "^0.2.9"
- conventional-changelog-eslint "^0.2.1"
- conventional-changelog-express "^0.2.1"
+conventional-changelog@^1.1.15:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.15.tgz#a5c3d281efb40f61c7d21eeffb19e6f6a8429df0"
+ dependencies:
+ conventional-changelog-angular "^1.6.4"
+ conventional-changelog-atom "^0.2.2"
+ conventional-changelog-codemirror "^0.3.2"
+ conventional-changelog-core "^2.0.3"
+ conventional-changelog-ember "^0.3.4"
+ conventional-changelog-eslint "^1.0.2"
+ conventional-changelog-express "^0.3.2"
conventional-changelog-jquery "^0.1.0"
conventional-changelog-jscs "^0.1.0"
- conventional-changelog-jshint "^0.2.1"
+ conventional-changelog-jshint "^0.3.2"
+ conventional-changelog-preset-loader "^1.1.4"
conventional-commits-filter@^1.1.1:
version "1.1.1"
@@ -3467,9 +3762,16 @@ conventional-commits-filter@^1.1.1:
is-subset "^0.1.1"
modify-values "^1.0.0"
-conventional-commits-parser@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz#9b4b7c91124bf2a1a9a2cc1c72760d382cbbb229"
+conventional-commits-filter@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.3.tgz#5bf591bc4882fc8c9bd329e5a83ca1fa8721d9fb"
+ dependencies:
+ is-subset "^0.1.1"
+ modify-values "^1.0.0"
+
+conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.3.tgz#fbbfcfe4901ccbae63bb3834f982325e0b7c663f"
dependencies:
JSONStream "^1.0.4"
is-text-path "^1.0.0"
@@ -3479,15 +3781,15 @@ conventional-commits-parser@^2.1.0:
through2 "^2.0.0"
trim-off-newlines "^1.0.0"
-conventional-recommended-bump@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.1.0.tgz#964d4fcc70fb5259d41fa9b39d3df6afdb87d253"
+conventional-recommended-bump@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375"
dependencies:
concat-stream "^1.4.10"
conventional-commits-filter "^1.1.1"
- conventional-commits-parser "^2.1.0"
+ conventional-commits-parser "^2.1.1"
git-raw-commits "^1.3.0"
- git-semver-tags "^1.2.3"
+ git-semver-tags "^1.3.0"
meow "^3.3.0"
object-assign "^4.0.1"
@@ -3495,6 +3797,10 @@ convert-source-map@^1.4.0, convert-source-map@^1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+convert-source-map@~1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
+
cookie-parser@~1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.3.5.tgz#9d755570fb5d17890771227a02314d9be7cf8356"
@@ -3537,19 +3843,17 @@ copy-paste@^1.3.0:
optionalDependencies:
sync-exec "~0.6.x"
-copy-webpack-plugin@^4.1.1, copy-webpack-plugin@^4.2.0:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.3.1.tgz#19ba6370bf6f8e263cbd66185a2b79f2321a9302"
+copy-webpack-plugin@^4.4.0, copy-webpack-plugin@~4.4.1:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.4.1.tgz#1e8c366211db6dc2ddee40e5a3e4fc661dd149e8"
dependencies:
cacache "^10.0.1"
find-cache-dir "^1.0.0"
globby "^7.1.1"
is-glob "^4.0.0"
loader-utils "^0.2.15"
- lodash "^4.3.0"
minimatch "^3.0.4"
p-limit "^1.0.0"
- pify "^3.0.0"
serialize-javascript "^1.4.0"
core-js@^1.0.0:
@@ -3713,7 +4017,7 @@ cryptiles@3.x.x:
dependencies:
boom "5.x.x"
-crypto-browserify@^3.11.0:
+crypto-browserify@^3.0.0, crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
dependencies:
@@ -3770,25 +4074,6 @@ css-loader@0.28.7:
postcss-value-parser "^3.3.0"
source-list-map "^2.0.0"
-css-loader@^0.28.1:
- version "0.28.8"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.8.tgz#ff36381464dea18fe60f2601a060ba6445886bd5"
- dependencies:
- babel-code-frame "^6.26.0"
- css-selector-tokenizer "^0.7.0"
- cssnano "^3.10.0"
- icss-utils "^2.1.0"
- loader-utils "^1.0.2"
- lodash.camelcase "^4.3.0"
- object-assign "^4.1.1"
- postcss "^5.0.6"
- postcss-modules-extract-imports "^1.1.0"
- postcss-modules-local-by-default "^1.2.0"
- postcss-modules-scope "^1.1.0"
- postcss-modules-values "^1.3.0"
- postcss-value-parser "^3.3.0"
- source-list-map "^2.0.0"
-
css-loader@^0.28.9:
version "0.28.9"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.9.tgz#68064b85f4e271d7ce4c48a58300928e535d1c95"
@@ -3934,16 +4219,16 @@ damerau-levenshtein@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
-danger@^2.1.10:
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/danger/-/danger-2.1.10.tgz#97a8fcbf0dee72820460dcb6fc4008ef69605be4"
+danger@^3.1.6:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/danger/-/danger-3.1.6.tgz#3d9f3c063104a2cfec56acbf7e09cf3feb2d9abe"
dependencies:
- babel-polyfill "7.0.0-alpha.19"
+ "@octokit/rest" "^14.0.4"
+ babel-polyfill "^6.23.0"
chalk "^2.3.0"
- commander "^2.12.2"
+ commander "^2.13.0"
debug "^3.1.0"
get-stdin "^5.0.1"
- github "^13.0.1"
hyperlinker "^1.0.0"
jsome "^2.3.25"
json5 "^0.5.1"
@@ -3964,7 +4249,7 @@ danger@^2.1.10:
rfc6902 "^2.2.2"
supports-hyperlinks "^1.0.1"
vm2 patriksimek/vm2#custom_files
- voca "^1.3.1"
+ voca "^1.4.0"
dargs@^4.0.1:
version "4.1.0"
@@ -3978,10 +4263,18 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-date-fns@^1.27.2:
+data-uri-to-buffer@1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835"
+
+date-fns@^1.23.0, date-fns@^1.27.2:
version "1.29.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
+date-format@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8"
+
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
@@ -4007,30 +4300,24 @@ debug@*, debug@^3.0.0, debug@^3.0.1, debug@^3.1.0:
dependencies:
ms "2.0.0"
-debug@2, debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
+debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
-debug@2.2.0, debug@~2.2.0:
+debug@2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+debug@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
dependencies:
ms "0.7.1"
-debug@2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
- dependencies:
- ms "0.7.2"
-
-debug@2.6.8:
- version "2.6.8"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
- dependencies:
- ms "2.0.0"
-
debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
@@ -4100,6 +4387,14 @@ defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+degenerator@~1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095"
+ dependencies:
+ ast-types "0.x.x"
+ escodegen "1.x.x"
+ esprima "3.x.x"
+
del@^2.0.2, del@^2.2.0, del@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
@@ -4147,6 +4442,15 @@ depd@~1.1.0, depd@~1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+deps-sort@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5"
+ dependencies:
+ JSONStream "^1.0.3"
+ shasum "^1.0.0"
+ subarg "^1.0.0"
+ through2 "^2.0.0"
+
des.js@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
@@ -4187,6 +4491,13 @@ detect-port-alt@1.1.5:
address "^1.0.1"
debug "^2.6.0"
+detective@^4.0.0:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e"
+ dependencies:
+ acorn "^5.2.1"
+ defined "^1.0.0"
+
dezalgo@^1.0.0, dezalgo@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
@@ -4297,7 +4608,7 @@ dom5@^2.3.0:
clone "^2.1.0"
parse5 "^2.2.2"
-domain-browser@^1.1.1:
+domain-browser@^1.1.1, domain-browser@~1.1.0:
version "1.1.7"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
@@ -4363,9 +4674,9 @@ dot-prop@^4.1.0:
dependencies:
is-obj "^1.0.0"
-dotenv-expand@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.0.1.tgz#68fddc1561814e0a10964111057ff138ced7d7a8"
+dotenv-expand@4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275"
dotenv-webpack@^1.5.4:
version "1.5.4"
@@ -4377,13 +4688,17 @@ dotenv@4.0.0, dotenv@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
+double-ended-queue@^2.1.0-0:
+ version "2.1.0-0"
+ resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
dependencies:
readable-stream "~1.1.9"
-duplexer2@^0.1.4:
+duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
dependencies:
@@ -4484,44 +4799,44 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-engine.io-client@1.8.3:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab"
+engine.io-client@~3.1.0:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.4.tgz#4fcf1370b47163bd2ce9be2733972430350d4ea1"
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
- debug "2.3.3"
- engine.io-parser "1.3.2"
+ debug "~2.6.9"
+ engine.io-parser "~2.1.1"
has-cors "1.1.0"
indexof "0.0.1"
- parsejson "0.0.3"
parseqs "0.0.5"
parseuri "0.0.5"
- ws "1.1.2"
- xmlhttprequest-ssl "1.5.3"
+ ws "~3.3.1"
+ xmlhttprequest-ssl "~1.5.4"
yeast "0.1.2"
-engine.io-parser@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
+engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
dependencies:
after "0.8.2"
- arraybuffer.slice "0.0.6"
+ arraybuffer.slice "~0.0.7"
base64-arraybuffer "0.1.5"
blob "0.0.4"
- has-binary "0.1.7"
- wtf-8 "1.0.0"
+ has-binary2 "~1.0.2"
-engine.io@1.8.3:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4"
+engine.io@~3.1.0:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.4.tgz#3d0211b70a552ce841ffc7da8627b301a9a4162e"
dependencies:
accepts "1.3.3"
base64id "1.0.0"
cookie "0.3.1"
- debug "2.3.3"
- engine.io-parser "1.3.2"
- ws "1.1.2"
+ debug "~2.6.9"
+ engine.io-parser "~2.1.0"
+ ws "~3.3.1"
+ optionalDependencies:
+ uws "~0.14.4"
enhanced-resolve@^3.0.0, enhanced-resolve@^3.1.0, enhanced-resolve@^3.4.0:
version "3.4.1"
@@ -4574,9 +4889,9 @@ enzyme-adapter-utils@^1.3.0:
object.assign "^4.0.4"
prop-types "^15.6.0"
-enzyme-matchers@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-4.1.1.tgz#ce8c177f96f05e757a2c7b5ca4040450c3beb57c"
+enzyme-matchers@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-4.2.0.tgz#38333883258da90e5414b5ac07d388aecb75227f"
dependencies:
circular-json-es6 "^2.0.1"
deep-equal-ident "^1.1.1"
@@ -4748,11 +5063,11 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@^1.6.1, escodegen@^1.9.0:
+escodegen@1.x.x, escodegen@^1.6.1, escodegen@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852"
dependencies:
@@ -4839,9 +5154,9 @@ eslint-plugin-import@2.8.0, eslint-plugin-import@^2.8.0:
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
-eslint-plugin-jest@^21.7.0:
- version "21.7.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.7.0.tgz#651f1c6ce999af3ac59ab8bf8a376d742fd0fc23"
+eslint-plugin-jest@^21.12.1:
+ version "21.12.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.12.1.tgz#0a70b3e2be5172ab558f46bbff02ed11069266d6"
eslint-plugin-json@^1.2.0:
version "1.2.0"
@@ -4880,9 +5195,9 @@ eslint-plugin-prettier@^2.2.0:
fast-diff "^1.1.1"
jest-docblock "^21.0.0"
-eslint-plugin-prettier@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.5.0.tgz#39a91dd7528eaf19cd42c0ee3f2c1f684606a05f"
+eslint-plugin-prettier@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7"
dependencies:
fast-diff "^1.1.1"
jest-docblock "^21.0.0"
@@ -4896,9 +5211,9 @@ eslint-plugin-react@7.4.0:
jsx-ast-utils "^2.0.0"
prop-types "^15.5.10"
-eslint-plugin-react@^7.6.0:
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.6.0.tgz#351651188c74c5b2fecc2717e3936b7207baa728"
+eslint-plugin-react@^7.6.1:
+ version "7.6.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.6.1.tgz#5d0e908be599f0c02fbf4eef0c7ed6f29dff7633"
dependencies:
doctrine "^2.0.2"
has "^1.0.1"
@@ -4962,49 +5277,9 @@ eslint@4.10.0:
table "^4.0.1"
text-table "~0.2.0"
-eslint@^3.16.1:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
- dependencies:
- babel-code-frame "^6.16.0"
- chalk "^1.1.3"
- concat-stream "^1.5.2"
- debug "^2.1.1"
- doctrine "^2.0.0"
- escope "^3.6.0"
- espree "^3.4.0"
- esquery "^1.0.0"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- file-entry-cache "^2.0.0"
- glob "^7.0.3"
- globals "^9.14.0"
- ignore "^3.2.0"
- imurmurhash "^0.1.4"
- inquirer "^0.12.0"
- is-my-json-valid "^2.10.0"
- is-resolvable "^1.0.0"
- js-yaml "^3.5.1"
- json-stable-stringify "^1.0.0"
- levn "^0.3.0"
- lodash "^4.0.0"
- mkdirp "^0.5.0"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.1"
- pluralize "^1.2.1"
- progress "^1.1.8"
- require-uncached "^1.0.2"
- shelljs "^0.7.5"
- strip-bom "^3.0.0"
- strip-json-comments "~2.0.1"
- table "^3.7.8"
- text-table "~0.2.0"
- user-home "^2.0.0"
-
-eslint@^4.16.0:
- version "4.16.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.16.0.tgz#934ada9e98715e1d7bbfd6f6f0519ed2fab35cc1"
+eslint@^4.18.0:
+ version "4.18.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.0.tgz#ebd0ba795af6dc59aa5cee17938160af5950e051"
dependencies:
ajv "^5.3.0"
babel-code-frame "^6.22.0"
@@ -5044,21 +5319,21 @@ eslint@^4.16.0:
table "^4.0.1"
text-table "~0.2.0"
-espree@^3.4.0, espree@^3.4.3, espree@^3.5.1, espree@^3.5.2:
+espree@^3.4.3, espree@^3.5.1, espree@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca"
dependencies:
acorn "^5.2.1"
acorn-jsx "^3.0.0"
+esprima@3.x.x, esprima@^3.1.3, esprima@~3.1.0:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+
esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-esprima@^3.1.3, esprima@~3.1.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
esprima@^4.0.0, esprima@~4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
@@ -5119,11 +5394,11 @@ eventemitter3@1.x.x:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
-eventemitter3@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.0.0.tgz#fc29ecf233bd19fbd527bb4089bbf665dc90c1e3"
+eventemitter3@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.0.1.tgz#4ce66c3fc5b5a6b9f2245e359e1938f1ab10f960"
-events@^1.0.0, events@^1.1.1:
+events@^1.0.0, events@^1.1.1, events@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
@@ -5231,17 +5506,6 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b"
- dependencies:
- ansi-styles "^3.2.0"
- jest-diff "^21.2.1"
- jest-get-type "^21.2.0"
- jest-matcher-utils "^21.2.1"
- jest-message-util "^21.2.1"
- jest-regex-util "^21.2.0"
-
expect@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/expect/-/expect-22.1.0.tgz#f8f9b019ab275d859cbefed531fbaefe8972431d"
@@ -5253,12 +5517,16 @@ expect@^22.1.0:
jest-message-util "^22.1.0"
jest-regex-util "^22.1.0"
-exports-loader@^0.6.3:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886"
+expect@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-22.3.0.tgz#b1cb7db27a951ab6055f43937277152a9f668028"
dependencies:
- loader-utils "^1.0.2"
- source-map "0.5.x"
+ ansi-styles "^3.2.0"
+ jest-diff "^22.1.0"
+ jest-get-type "^22.1.0"
+ jest-matcher-utils "^22.2.0"
+ jest-message-util "^22.2.0"
+ jest-regex-util "^22.1.0"
express-session@~1.11.3:
version "1.11.3"
@@ -5379,6 +5647,10 @@ extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+faker@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f"
+
fancy-log@^1.1.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1"
@@ -5506,6 +5778,10 @@ file-loader@^1.1.5, file-loader@^1.1.6:
loader-utils "^1.0.2"
schema-utils "^0.3.0"
+file-uri-to-path@1:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -5660,6 +5936,12 @@ follow-redirects@0.0.7:
debug "^2.2.0"
stream-consume "^0.1.0"
+follow-redirects@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37"
+ dependencies:
+ debug "^2.2.0"
+
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
@@ -5688,6 +5970,14 @@ forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+form-data@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.11"
+
form-data@~2.1.1:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
@@ -5817,14 +6107,7 @@ fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-fsevents@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
- dependencies:
- nan "^2.3.0"
- node-pre-gyp "^0.6.36"
-
-fsevents@^1.0.0, fsevents@^1.1.1:
+fsevents@^1.0.0, fsevents@^1.1.1, fsevents@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
dependencies:
@@ -5855,6 +6138,13 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@~1.0.11:
mkdirp ">=0.5 0"
rimraf "2"
+ftp@~0.3.10:
+ version "0.3.10"
+ resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
+ dependencies:
+ readable-stream "1.1.x"
+ xregexp "2.0.0"
+
function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -5952,6 +6242,17 @@ get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+get-uri@2:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59"
+ dependencies:
+ data-uri-to-buffer "1"
+ debug "2"
+ extend "3"
+ file-uri-to-path "1"
+ ftp "~0.3.10"
+ readable-stream "2"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -5992,6 +6293,16 @@ git-raw-commits@^1.3.0:
split2 "^2.0.0"
through2 "^2.0.0"
+git-raw-commits@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.2.tgz#0766c14d33566ba0094869697e13b0eb06147c07"
+ dependencies:
+ dargs "^4.0.1"
+ lodash.template "^4.0.2"
+ meow "^3.3.0"
+ split2 "^2.0.0"
+ through2 "^2.0.0"
+
git-remote-origin-url@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f"
@@ -5999,9 +6310,9 @@ git-remote-origin-url@^2.0.0:
gitconfiglocal "^1.0.0"
pify "^2.3.0"
-git-semver-tags@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.3.tgz#188b453882bf9d7a23afd31baba537dab7388d5d"
+git-semver-tags@^1.3.0, git-semver-tags@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.2.tgz#94afa43c9070ae527a3ab86b978e59ae207803cc"
dependencies:
meow "^3.3.0"
semver "^5.0.1"
@@ -6028,18 +6339,6 @@ github@^11.0.0:
mime "^1.2.11"
netrc "^0.1.4"
-github@^13.0.1:
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/github/-/github-13.1.0.tgz#fc925950beebdff0cb0583197598b86f41bedaa4"
- dependencies:
- debug "^3.1.0"
- dotenv "^4.0.0"
- https-proxy-agent "^2.1.0"
- is-stream "^1.1.0"
- lodash "^4.17.4"
- proxy-from-env "^1.0.0"
- url-template "^2.0.8"
-
glamor@^2.20.40:
version "2.20.40"
resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05"
@@ -6050,9 +6349,9 @@ glamor@^2.20.40:
prop-types "^15.5.10"
through "^2.3.8"
-glamorous@^4.11.4:
- version "4.11.4"
- resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.11.4.tgz#61b333e1ec552abbe48e2fea48fea89fc0026149"
+glamorous@^4.11.6:
+ version "4.11.6"
+ resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.11.6.tgz#337d9ec370ef3fa7cd0cd8f9f1c058fa3c55a424"
dependencies:
brcast "^3.0.0"
fast-memoize "^2.2.7"
@@ -6109,7 +6408,7 @@ glob@^6.0.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -6155,7 +6454,7 @@ globals@^11.0.1, globals@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4"
-globals@^9.14.0, globals@^9.17.0, globals@^9.18.0:
+globals@^9.17.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -6324,6 +6623,12 @@ graphql@^0.12.3:
dependencies:
iterall "1.1.3"
+graphql@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.1.tgz#9b3db3d8e40d1827e4172404bfdd2e4e17a58b55"
+ dependencies:
+ iterall "^1.2.0"
+
grizzly@^2.0.0:
version "2.1.5"
resolved "https://registry.yarnpkg.com/grizzly/-/grizzly-2.1.5.tgz#d715be2039cb64c799b4c93a64ee1196d2795ea0"
@@ -6420,17 +6725,23 @@ har-validator@~5.0.3:
ajv "^5.1.0"
har-schema "^2.0.0"
+has-ansi@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
+ dependencies:
+ ansi-regex "^0.2.0"
+
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
dependencies:
ansi-regex "^2.0.0"
-has-binary@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
+has-binary2@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
dependencies:
- isarray "0.0.1"
+ isarray "2.0.1"
has-color@~0.1.0:
version "0.1.7"
@@ -6448,6 +6759,10 @@ has-flag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
has-gulplog@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
@@ -6489,7 +6804,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1:
+has@^1.0.0, has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
@@ -6541,6 +6856,13 @@ he@1.1.x, he@^1.1.0, he@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+hipchat-notifier@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e"
+ dependencies:
+ lodash "^4.0.0"
+ request "^2.0.0"
+
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -6668,6 +6990,10 @@ html-webpack-plugin@^2.29.0, html-webpack-plugin@^2.30.1:
pretty-error "^2.0.2"
toposort "^1.0.0"
+htmlescape@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
+
htmlparser2@3.8.x:
version "3.8.3"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
@@ -6726,6 +7052,14 @@ http-parser-js@>=0.4.0:
version "0.4.9"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1"
+http-proxy-agent@1:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a"
+ dependencies:
+ agent-base "2"
+ debug "2"
+ extend "3"
+
http-proxy-agent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz#46482a2f0523a4d6082551709f469cb3e4a85ff4"
@@ -6765,11 +7099,22 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
+httpntlm@1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2"
+ dependencies:
+ httpreq ">=0.4.22"
+ underscore "~1.7.0"
+
+httpreq@>=0.4.22:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f"
+
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-https-proxy-agent@^1.0.0:
+https-proxy-agent@1, https-proxy-agent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
dependencies:
@@ -6814,6 +7159,10 @@ iconv-lite@0.4.13:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
+iconv-lite@0.4.15:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
+
iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@^0.4.8, iconv-lite@~0.4.13:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
@@ -6904,6 +7253,14 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+inflection@~1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f"
+
+inflection@~1.3.0:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e"
+
inflight@^1.0.4, inflight@~1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -6936,6 +7293,12 @@ init-package-json@~1.10.1:
validate-npm-package-license "^3.0.1"
validate-npm-package-name "^3.0.0"
+inline-source-map@~0.6.0:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
+ dependencies:
+ source-map "~0.5.3"
+
inline-style-prefixer@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7"
@@ -6987,27 +7350,9 @@ inquirer@^0.11.0:
strip-ansi "^3.0.0"
through "^2.3.6"
-inquirer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
- dependencies:
- ansi-escapes "^1.1.0"
- ansi-regex "^2.0.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
- cli-width "^2.0.0"
- figures "^1.3.5"
- lodash "^4.3.0"
- readline2 "^1.0.1"
- run-async "^0.1.0"
- rx-lite "^3.1.2"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
-inquirer@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-4.0.2.tgz#cc678b4cbc0e183a3500cc63395831ec956ab0a3"
+inquirer@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.1.0.tgz#19da508931892328abbbdd4c477f1efc65abfd67"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
@@ -7018,8 +7363,7 @@ inquirer@^4.0.2:
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
- rx-lite "^4.0.8"
- rx-lite-aggregates "^4.0.8"
+ rxjs "^5.5.2"
string-width "^2.1.0"
strip-ansi "^4.0.0"
through "^2.3.6"
@@ -7028,6 +7372,19 @@ insert-css@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4"
+insert-module-globals@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3"
+ dependencies:
+ JSONStream "^1.0.3"
+ combine-source-map "~0.7.1"
+ concat-stream "~1.5.1"
+ is-buffer "^1.1.0"
+ lexical-scope "^1.2.0"
+ process "~0.11.0"
+ through2 "^2.0.0"
+ xtend "^4.0.0"
+
internal-ip@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
@@ -7048,7 +7405,11 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-ip@^1.1.0, ip@^1.1.4, ip@^1.1.5:
+ip@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590"
+
+ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
@@ -7105,7 +7466,7 @@ is-boolean-object@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93"
-is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5:
+is-buffer@^1.0.2, is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -7258,7 +7619,7 @@ is-installed-globally@^0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
-is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
+is-my-json-valid@^2.12.4:
version "2.17.1"
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
dependencies:
@@ -7431,7 +7792,7 @@ is-wsl@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
-isarray@0.0.1:
+isarray@0.0.1, isarray@~0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -7439,6 +7800,10 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+isarray@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
+
isbinaryfile@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
@@ -7544,13 +7909,17 @@ iterall@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9"
+iterall@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.0.tgz#434e9f41f0b99911ab9c3d49d95f0e079176a2a2"
+
jasmine-core@~2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
-jasmine-core@~2.9.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.1.tgz#b6bbc1d8e65250d56f5888461705ebeeeb88f22f"
+jasmine-core@~2.99.1:
+ version "2.99.1"
+ resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15"
jasmine-spec-reporter@~4.2.1:
version "4.2.1"
@@ -7574,15 +7943,9 @@ jest-changed-files@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8"
-jest-changed-files@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29"
- dependencies:
- throat "^4.0.0"
-
-jest-changed-files@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.1.4.tgz#1f7844bcb739dec07e5899a633c0cb6d5069834e"
+jest-changed-files@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e"
dependencies:
throat "^4.0.0"
@@ -7621,43 +7984,9 @@ jest-cli@^20.0.4:
worker-farm "^1.3.1"
yargs "^7.0.2"
-jest-cli@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00"
- dependencies:
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- is-ci "^1.0.10"
- istanbul-api "^1.1.1"
- istanbul-lib-coverage "^1.0.1"
- istanbul-lib-instrument "^1.4.2"
- istanbul-lib-source-maps "^1.1.0"
- jest-changed-files "^21.2.0"
- jest-config "^21.2.1"
- jest-environment-jsdom "^21.2.1"
- jest-haste-map "^21.2.0"
- jest-message-util "^21.2.1"
- jest-regex-util "^21.2.0"
- jest-resolve-dependencies "^21.2.0"
- jest-runner "^21.2.1"
- jest-runtime "^21.2.1"
- jest-snapshot "^21.2.1"
- jest-util "^21.2.1"
- micromatch "^2.3.11"
- node-notifier "^5.0.2"
- pify "^3.0.0"
- slash "^1.0.0"
- string-length "^2.0.0"
- strip-ansi "^4.0.0"
- which "^1.2.12"
- worker-farm "^1.3.1"
- yargs "^9.0.0"
-
-jest-cli@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.1.4.tgz#0fe9f3ac881b0cdc00227114c58583a2ebefcc04"
+jest-cli@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.3.0.tgz#3fd986f2674f4168c91965be56ab9917a82a45db"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.1"
@@ -7670,21 +7999,21 @@ jest-cli@^22.1.4:
istanbul-lib-coverage "^1.1.1"
istanbul-lib-instrument "^1.8.0"
istanbul-lib-source-maps "^1.2.1"
- jest-changed-files "^22.1.4"
- jest-config "^22.1.4"
- jest-environment-jsdom "^22.1.4"
+ jest-changed-files "^22.2.0"
+ jest-config "^22.3.0"
+ jest-environment-jsdom "^22.3.0"
jest-get-type "^22.1.0"
- jest-haste-map "^22.1.0"
- jest-message-util "^22.1.0"
+ jest-haste-map "^22.3.0"
+ jest-message-util "^22.2.0"
jest-regex-util "^22.1.0"
jest-resolve-dependencies "^22.1.0"
- jest-runner "^22.1.4"
- jest-runtime "^22.1.4"
- jest-snapshot "^22.1.2"
- jest-util "^22.1.4"
- jest-worker "^22.1.0"
+ jest-runner "^22.3.0"
+ jest-runtime "^22.3.0"
+ jest-snapshot "^22.2.0"
+ jest-util "^22.3.0"
+ jest-worker "^22.2.2"
micromatch "^2.3.11"
- node-notifier "^5.1.2"
+ node-notifier "^5.2.1"
realpath-native "^1.0.0"
rimraf "^2.5.4"
slash "^1.0.0"
@@ -7708,22 +8037,6 @@ jest-config@^20.0.4:
jest-validate "^20.0.3"
pretty-format "^20.0.3"
-jest-config@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480"
- dependencies:
- chalk "^2.0.1"
- glob "^7.1.1"
- jest-environment-jsdom "^21.2.1"
- jest-environment-node "^21.2.1"
- jest-get-type "^21.2.0"
- jest-jasmine2 "^21.2.1"
- jest-regex-util "^21.2.0"
- jest-resolve "^21.2.0"
- jest-util "^21.2.1"
- jest-validate "^21.2.1"
- pretty-format "^21.2.1"
-
jest-config@^22.0.1:
version "22.1.1"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.1.1.tgz#642ffc0c704ca66a598eae1f2a473d1f9096056d"
@@ -7740,20 +8053,20 @@ jest-config@^22.0.1:
jest-validate "^22.1.0"
pretty-format "^22.1.0"
-jest-config@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.1.4.tgz#075ffacce83c3e38cf85b1b9ba0d21bd3ee27ad0"
+jest-config@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.3.0.tgz#94c7149f123933a872ee24c1719687419c4a623c"
dependencies:
chalk "^2.0.1"
glob "^7.1.1"
- jest-environment-jsdom "^22.1.4"
- jest-environment-node "^22.1.4"
+ jest-environment-jsdom "^22.3.0"
+ jest-environment-node "^22.3.0"
jest-get-type "^22.1.0"
- jest-jasmine2 "^22.1.4"
+ jest-jasmine2 "^22.3.0"
jest-regex-util "^22.1.0"
- jest-resolve "^22.1.4"
- jest-util "^22.1.4"
- jest-validate "^22.1.2"
+ jest-resolve "^22.3.0"
+ jest-util "^22.3.0"
+ jest-validate "^22.2.2"
pretty-format "^22.1.0"
jest-diff@^20.0.3:
@@ -7765,15 +8078,6 @@ jest-diff@^20.0.3:
jest-matcher-utils "^20.0.3"
pretty-format "^20.0.3"
-jest-diff@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f"
- dependencies:
- chalk "^2.0.1"
- diff "^3.2.0"
- jest-get-type "^21.2.0"
- pretty-format "^21.2.1"
-
jest-diff@^22.0.6:
version "22.0.6"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.0.6.tgz#38c07187324564ecf6389a980a2f0e86e7e79890"
@@ -7802,7 +8106,7 @@ jest-docblock@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
-jest-docblock@^21.0.0, jest-docblock@^21.2.0:
+jest-docblock@^21.0.0:
version "21.2.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
@@ -7812,9 +8116,9 @@ jest-docblock@^22.0.3:
dependencies:
detect-newline "^2.1.0"
-jest-docblock@^22.1.0:
- version "22.1.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.1.0.tgz#3fe5986d5444cbcb149746eb4b07c57c5a464dfd"
+jest-docblock@^22.2.2:
+ version "22.2.2"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.2.2.tgz#617f13edb16ec64202002b3c336cd14ae36c0631"
dependencies:
detect-newline "^2.1.0"
@@ -7826,14 +8130,6 @@ jest-environment-jsdom@^20.0.3:
jest-util "^20.0.3"
jsdom "^9.12.0"
-jest-environment-jsdom@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4"
- dependencies:
- jest-mock "^21.2.0"
- jest-util "^21.2.1"
- jsdom "^9.12.0"
-
jest-environment-jsdom@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.1.0.tgz#d0b83359a1dd4dc7faa9be27895da1859692b9e8"
@@ -7842,12 +8138,12 @@ jest-environment-jsdom@^22.1.0:
jest-util "^22.1.0"
jsdom "^11.5.1"
-jest-environment-jsdom@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.1.4.tgz#704518ce8375f7ec5de048d1e9c4268b08a03e00"
+jest-environment-jsdom@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.3.0.tgz#c267a063e5dc16219fba0e07542d8aa2576a1c88"
dependencies:
- jest-mock "^22.1.0"
- jest-util "^22.1.4"
+ jest-mock "^22.2.0"
+ jest-util "^22.3.0"
jsdom "^11.5.1"
jest-environment-node@^20.0.3:
@@ -7857,13 +8153,6 @@ jest-environment-node@^20.0.3:
jest-mock "^20.0.3"
jest-util "^20.0.3"
-jest-environment-node@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8"
- dependencies:
- jest-mock "^21.2.0"
- jest-util "^21.2.1"
-
jest-environment-node@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.1.0.tgz#372d590c5229a349e882d9404808c4e99bd40f62"
@@ -7871,18 +8160,18 @@ jest-environment-node@^22.1.0:
jest-mock "^22.1.0"
jest-util "^22.1.0"
-jest-environment-node@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.1.4.tgz#0f2946e8f8686ce6c5d8fa280ce1cd8d58e869eb"
+jest-environment-node@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.3.0.tgz#97d34d9706a718d743075149d1950555c10338c0"
dependencies:
- jest-mock "^22.1.0"
- jest-util "^22.1.4"
+ jest-mock "^22.2.0"
+ jest-util "^22.3.0"
-jest-enzyme@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-4.1.1.tgz#db080b3ff2f93ab7161715d69801d1d5f187ed13"
+jest-enzyme@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-4.2.0.tgz#d284506b6d87e072bf6d2786584970bb42ea5969"
dependencies:
- enzyme-matchers "^4.1.1"
+ enzyme-matchers "^4.2.0"
enzyme-to-json "^3.3.0"
jest-get-type@^21.2.0:
@@ -7919,25 +8208,14 @@ jest-haste-map@^20.0.4:
sane "~1.6.0"
worker-farm "^1.3.1"
-jest-haste-map@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8"
+jest-haste-map@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.3.0.tgz#e7f048a88735bae07ca12de8785eb8bc522adeab"
dependencies:
fb-watchman "^2.0.0"
graceful-fs "^4.1.11"
- jest-docblock "^21.2.0"
- micromatch "^2.3.11"
- sane "^2.0.0"
- worker-farm "^1.3.1"
-
-jest-haste-map@^22.1.0:
- version "22.1.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.1.0.tgz#1174c6ff393f9818ebf1163710d8868b5370da2a"
- dependencies:
- fb-watchman "^2.0.0"
- graceful-fs "^4.1.11"
- jest-docblock "^22.1.0"
- jest-worker "^22.1.0"
+ jest-docblock "^22.2.2"
+ jest-worker "^22.2.2"
micromatch "^2.3.11"
sane "^2.0.0"
@@ -7966,19 +8244,6 @@ jest-jasmine2@^20.0.4:
once "^1.4.0"
p-map "^1.1.1"
-jest-jasmine2@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592"
- dependencies:
- chalk "^2.0.1"
- expect "^21.2.1"
- graceful-fs "^4.1.11"
- jest-diff "^21.2.1"
- jest-matcher-utils "^21.2.1"
- jest-message-util "^21.2.1"
- jest-snapshot "^21.2.1"
- p-cancelable "^0.3.0"
-
jest-jasmine2@^22.1.1:
version "22.1.1"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.1.1.tgz#990a13cd62803ae44bcb6e34909d3b0ebd2dcb13"
@@ -7995,20 +8260,20 @@ jest-jasmine2@^22.1.1:
jest-snapshot "^22.1.0"
source-map-support "^0.5.0"
-jest-jasmine2@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.1.4.tgz#cada0baf50a220c616a9575728b80d4ddedebe8b"
+jest-jasmine2@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.3.0.tgz#ea127dfbb04c6e03998ae0358225435e47520666"
dependencies:
callsites "^2.0.0"
chalk "^2.0.1"
co "^4.6.0"
- expect "^22.1.0"
+ expect "^22.3.0"
graceful-fs "^4.1.11"
is-generator-fn "^1.0.0"
jest-diff "^22.1.0"
- jest-matcher-utils "^22.1.0"
- jest-message-util "^22.1.0"
- jest-snapshot "^22.1.2"
+ jest-matcher-utils "^22.2.0"
+ jest-message-util "^22.2.0"
+ jest-snapshot "^22.2.0"
source-map-support "^0.5.0"
jest-leak-detector@^22.1.0:
@@ -8024,14 +8289,6 @@ jest-matcher-utils@^20.0.3:
chalk "^1.1.3"
pretty-format "^20.0.3"
-jest-matcher-utils@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64"
- dependencies:
- chalk "^2.0.1"
- jest-get-type "^21.2.0"
- pretty-format "^21.2.1"
-
jest-matcher-utils@^22.0.6:
version "22.0.6"
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.0.6.tgz#55675242b2af1de913f44e00aa4d68a38d349b07"
@@ -8048,6 +8305,14 @@ jest-matcher-utils@^22.1.0:
jest-get-type "^22.1.0"
pretty-format "^22.1.0"
+jest-matcher-utils@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.2.0.tgz#5390f823c18c748543d463825aa8e4df0db253ca"
+ dependencies:
+ chalk "^2.0.1"
+ jest-get-type "^22.1.0"
+ pretty-format "^22.1.0"
+
jest-matchers@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60"
@@ -8065,17 +8330,19 @@ jest-message-util@^20.0.3:
micromatch "^2.3.11"
slash "^1.0.0"
-jest-message-util@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe"
+jest-message-util@^22.1.0:
+ version "22.1.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.1.0.tgz#51ba0794cb6e579bfc4e9adfac452f9f1a0293fc"
dependencies:
+ "@babel/code-frame" "^7.0.0-beta.35"
chalk "^2.0.1"
micromatch "^2.3.11"
slash "^1.0.0"
+ stack-utils "^1.0.1"
-jest-message-util@^22.1.0:
- version "22.1.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.1.0.tgz#51ba0794cb6e579bfc4e9adfac452f9f1a0293fc"
+jest-message-util@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.2.0.tgz#84a6bb34186d8b9af7e0732fabbef63f7355f7b2"
dependencies:
"@babel/code-frame" "^7.0.0-beta.35"
chalk "^2.0.1"
@@ -8087,14 +8354,14 @@ jest-mock@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59"
-jest-mock@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f"
-
jest-mock@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.1.0.tgz#87ec21c0599325671c9a23ad0e05c86fb5879b61"
+jest-mock@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7"
+
jest-preset-angular@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/jest-preset-angular/-/jest-preset-angular-5.0.0.tgz#e0b0b67f94a5992f8c59e9a82c3790d5d60bb55d"
@@ -8106,10 +8373,6 @@ jest-regex-util@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762"
-jest-regex-util@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530"
-
jest-regex-util@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53"
@@ -8120,12 +8383,6 @@ jest-resolve-dependencies@^20.0.3:
dependencies:
jest-regex-util "^20.0.3"
-jest-resolve-dependencies@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09"
- dependencies:
- jest-regex-util "^21.2.0"
-
jest-resolve-dependencies@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31"
@@ -8140,14 +8397,6 @@ jest-resolve@^20.0.4:
is-builtin-module "^1.0.0"
resolve "^1.3.2"
-jest-resolve@^21.2.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6"
- dependencies:
- browser-resolve "^1.11.2"
- chalk "^2.0.1"
- is-builtin-module "^1.0.0"
-
jest-resolve@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.1.0.tgz#5f4307f48b93c1abdbeacc9ed80642ffcb246294"
@@ -8155,42 +8404,27 @@ jest-resolve@^22.1.0:
browser-resolve "^1.11.2"
chalk "^2.0.1"
-jest-resolve@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.1.4.tgz#72b9b371eaac48f84aad4ad732222ffe37692602"
+jest-resolve@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.3.0.tgz#648e797f708e8701071a0fa9fac652c577bb66d9"
dependencies:
browser-resolve "^1.11.2"
chalk "^2.0.1"
-jest-runner@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467"
- dependencies:
- jest-config "^21.2.1"
- jest-docblock "^21.2.0"
- jest-haste-map "^21.2.0"
- jest-jasmine2 "^21.2.1"
- jest-message-util "^21.2.1"
- jest-runtime "^21.2.1"
- jest-util "^21.2.1"
- pify "^3.0.0"
- throat "^4.0.0"
- worker-farm "^1.3.1"
-
-jest-runner@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.1.4.tgz#e039039110cb1b31febc0f99e349bf7c94304a2f"
+jest-runner@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.3.0.tgz#70393f62770be754e2d14f5ca3d896e408aa001a"
dependencies:
exit "^0.1.2"
- jest-config "^22.1.4"
- jest-docblock "^22.1.0"
- jest-haste-map "^22.1.0"
- jest-jasmine2 "^22.1.4"
+ jest-config "^22.3.0"
+ jest-docblock "^22.2.2"
+ jest-haste-map "^22.3.0"
+ jest-jasmine2 "^22.3.0"
jest-leak-detector "^22.1.0"
- jest-message-util "^22.1.0"
- jest-runtime "^22.1.4"
- jest-util "^22.1.4"
- jest-worker "^22.1.0"
+ jest-message-util "^22.2.0"
+ jest-runtime "^22.3.0"
+ jest-util "^22.3.0"
+ jest-worker "^22.2.2"
throat "^4.0.0"
jest-runtime@^20.0.4:
@@ -8213,44 +8447,22 @@ jest-runtime@^20.0.4:
strip-bom "3.0.0"
yargs "^7.0.2"
-jest-runtime@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e"
- dependencies:
- babel-core "^6.0.0"
- babel-jest "^21.2.0"
- babel-plugin-istanbul "^4.0.0"
- chalk "^2.0.1"
- convert-source-map "^1.4.0"
- graceful-fs "^4.1.11"
- jest-config "^21.2.1"
- jest-haste-map "^21.2.0"
- jest-regex-util "^21.2.0"
- jest-resolve "^21.2.0"
- jest-util "^21.2.1"
- json-stable-stringify "^1.0.1"
- micromatch "^2.3.11"
- slash "^1.0.0"
- strip-bom "3.0.0"
- write-file-atomic "^2.1.0"
- yargs "^9.0.0"
-
-jest-runtime@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.1.4.tgz#1474d9f5cda518b702e0b25a17d4ef3fc563a20c"
+jest-runtime@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.3.0.tgz#1883d6a4227c1f6af276ead3ed27654257d1ef8c"
dependencies:
babel-core "^6.0.0"
- babel-jest "^22.1.0"
+ babel-jest "^22.2.2"
babel-plugin-istanbul "^4.1.5"
chalk "^2.0.1"
convert-source-map "^1.4.0"
exit "^0.1.2"
graceful-fs "^4.1.11"
- jest-config "^22.1.4"
- jest-haste-map "^22.1.0"
+ jest-config "^22.3.0"
+ jest-haste-map "^22.3.0"
jest-regex-util "^22.1.0"
- jest-resolve "^22.1.4"
- jest-util "^22.1.4"
+ jest-resolve "^22.3.0"
+ jest-util "^22.3.0"
json-stable-stringify "^1.0.1"
micromatch "^2.3.11"
realpath-native "^1.0.0"
@@ -8281,17 +8493,6 @@ jest-snapshot@^20.0.3:
natural-compare "^1.4.0"
pretty-format "^20.0.3"
-jest-snapshot@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0"
- dependencies:
- chalk "^2.0.1"
- jest-diff "^21.2.1"
- jest-matcher-utils "^21.2.1"
- mkdirp "^0.5.1"
- natural-compare "^1.4.0"
- pretty-format "^21.2.1"
-
jest-snapshot@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.1.0.tgz#4a9b27a1974cff0c48ff0f86bbbefd1a6cc3c5f5"
@@ -8303,13 +8504,13 @@ jest-snapshot@^22.1.0:
natural-compare "^1.4.0"
pretty-format "^22.1.0"
-jest-snapshot@^22.1.2:
- version "22.1.2"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.1.2.tgz#b270cf6e3098f33aceeafda02b13eb0933dc6139"
+jest-snapshot@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.2.0.tgz#0c0ba152d296ef70fa198cc84977a2cc269ee4cf"
dependencies:
chalk "^2.0.1"
jest-diff "^22.1.0"
- jest-matcher-utils "^22.1.0"
+ jest-matcher-utils "^22.2.0"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
pretty-format "^22.1.0"
@@ -8332,18 +8533,6 @@ jest-util@^20.0.3:
leven "^2.1.0"
mkdirp "^0.5.1"
-jest-util@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78"
- dependencies:
- callsites "^2.0.0"
- chalk "^2.0.1"
- graceful-fs "^4.1.11"
- jest-message-util "^21.2.1"
- jest-mock "^21.2.0"
- jest-validate "^21.2.1"
- mkdirp "^0.5.1"
-
jest-util@^22.1.0:
version "22.1.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.1.0.tgz#2ce0ead08a00a38383c308d0bd3431a9f159cbaa"
@@ -8356,16 +8545,16 @@ jest-util@^22.1.0:
jest-validate "^22.1.0"
mkdirp "^0.5.1"
-jest-util@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.1.4.tgz#ac8cbd43ee654102f1941f3f0e9d1d789a8b6a9b"
+jest-util@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.3.0.tgz#d05bff567a3a86c0e9b3838d812f8290aa768097"
dependencies:
callsites "^2.0.0"
chalk "^2.0.1"
graceful-fs "^4.1.11"
is-ci "^1.0.10"
- jest-message-util "^22.1.0"
- jest-validate "^22.1.2"
+ jest-message-util "^22.2.0"
+ jest-validate "^22.2.2"
mkdirp "^0.5.1"
jest-validate@^20.0.3:
@@ -8377,7 +8566,7 @@ jest-validate@^20.0.3:
leven "^2.1.0"
pretty-format "^20.0.3"
-jest-validate@^21.1.0, jest-validate@^21.2.1:
+jest-validate@^21.1.0:
version "21.2.1"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7"
dependencies:
@@ -8395,9 +8584,9 @@ jest-validate@^22.1.0:
leven "^2.1.0"
pretty-format "^22.1.0"
-jest-validate@^22.1.2:
- version "22.1.2"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.1.2.tgz#c3b06bcba7bd9a850919fe336b5f2a8c3a239404"
+jest-validate@^22.2.2:
+ version "22.2.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.2.2.tgz#9cdce422c93cc28395e907ac6bbc929158d9a6ba"
dependencies:
chalk "^2.0.1"
jest-get-type "^22.1.0"
@@ -8425,9 +8614,9 @@ jest-worker@^22.0.3:
dependencies:
merge-stream "^1.0.1"
-jest-worker@^22.1.0:
- version "22.1.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.1.0.tgz#0987832fe58fbdc205357f4c19b992446368cafb"
+jest-worker@^22.2.2:
+ version "22.2.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390"
dependencies:
merge-stream "^1.0.1"
@@ -8435,23 +8624,18 @@ jest-zone-patch@^0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/jest-zone-patch/-/jest-zone-patch-0.0.8.tgz#90fa3b5b60e95ad3e624dd2c3eb59bb1dcabd371"
-jest@20.0.4, jest@^20.0.4:
+jest@20.0.4:
version "20.0.4"
resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac"
dependencies:
jest-cli "^20.0.4"
-jest@^21.2.1:
- version "21.2.1"
- resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1"
+jest@^22.3.0:
+ version "22.3.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-22.3.0.tgz#07434314d2e8662ea936552d950680b7e6551b0d"
dependencies:
- jest-cli "^21.2.1"
-
-jest@^22.1.4:
- version "22.1.4"
- resolved "https://registry.yarnpkg.com/jest/-/jest-22.1.4.tgz#9ec71373a38f40ff92a3e5e96ae85687c181bb72"
- dependencies:
- jest-cli "^22.1.4"
+ import-local "^1.0.0"
+ jest-cli "^22.3.0"
js-base64@^2.1.8, js-base64@^2.1.9:
version "2.4.0"
@@ -8461,7 +8645,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
+js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
dependencies:
@@ -8601,17 +8785,23 @@ json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
+json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
dependencies:
jsonify "~0.0.0"
-json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
+json-stable-stringify@~0.0.0:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45"
+ dependencies:
+ jsonify "~0.0.0"
+
+json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-json3@3.3.2, json3@^3.3.2:
+json3@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
@@ -8718,12 +8908,13 @@ karma-source-map-support@^1.2.0:
dependencies:
source-map-support "^0.4.1"
-karma@~1.7.0:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae"
+karma@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.0.tgz#a02698dd7f0f05ff5eb66ab8f65582490b512e58"
dependencies:
bluebird "^3.3.0"
body-parser "^1.16.1"
+ browserify "^14.5.0"
chokidar "^1.4.1"
colors "^1.1.0"
combine-lists "^1.0.0"
@@ -8736,8 +8927,8 @@ karma@~1.7.0:
graceful-fs "^4.1.2"
http-proxy "^1.13.0"
isbinaryfile "^3.0.0"
- lodash "^3.8.0"
- log4js "^0.6.31"
+ lodash "^4.17.4"
+ log4js "^2.3.9"
mime "^1.3.4"
minimatch "^3.0.2"
optimist "^0.6.1"
@@ -8745,9 +8936,9 @@ karma@~1.7.0:
range-parser "^1.2.0"
rimraf "^2.6.0"
safe-buffer "^5.0.1"
- socket.io "1.7.3"
- source-map "^0.5.3"
- tmp "0.0.31"
+ socket.io "2.0.4"
+ source-map "^0.6.1"
+ tmp "0.0.33"
useragent "^2.1.12"
keycode@^2.1.9:
@@ -8790,6 +8981,14 @@ klaw@^1.0.0:
optionalDependencies:
graceful-fs "^4.1.9"
+labeled-stream-splicer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59"
+ dependencies:
+ inherits "^2.0.1"
+ isarray "~0.0.1"
+ stream-splicer "^2.0.0"
+
latest-version@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b"
@@ -8834,17 +9033,17 @@ left-pad@^1.1.3, left-pad@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee"
-lerna@2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.6.0.tgz#865377717ca9e0daa5a2fbb00e364968d533650a"
+lerna@2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.9.0.tgz#303f70bc50b1c4541bdcf54eda13c36fe54401f3"
dependencies:
async "^1.5.0"
chalk "^2.1.0"
cmd-shim "^2.0.2"
columnify "^1.5.4"
command-join "^2.0.0"
- conventional-changelog-cli "^1.3.2"
- conventional-recommended-bump "^1.0.1"
+ conventional-changelog-cli "^1.3.13"
+ conventional-recommended-bump "^1.2.1"
dedent "^0.7.0"
execa "^0.8.0"
find-up "^2.1.0"
@@ -8857,7 +9056,7 @@ lerna@2.6.0:
hosted-git-info "^2.5.0"
inquirer "^3.2.2"
is-ci "^1.0.10"
- load-json-file "^3.0.0"
+ load-json-file "^4.0.0"
lodash "^4.17.4"
minimatch "^3.0.4"
npmlog "^4.1.2"
@@ -8865,7 +9064,7 @@ lerna@2.6.0:
package-json "^4.0.1"
path-exists "^3.0.0"
read-cmd-shim "^1.0.1"
- read-pkg "^2.0.0"
+ read-pkg "^3.0.0"
rimraf "^2.6.1"
safe-buffer "^5.1.1"
semver "^5.4.1"
@@ -8910,6 +9109,24 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lexical-scope@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4"
+ dependencies:
+ astw "^2.0.0"
+
+libbase64@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6"
+
+libmime@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6"
+ dependencies:
+ iconv-lite "0.4.15"
+ libbase64 "0.1.0"
+ libqp "1.1.0"
+
libnpx@9.7.1:
version "9.7.1"
resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-9.7.1.tgz#55300b5e119bd47b714be9704ca0696ffb18b025"
@@ -8923,6 +9140,10 @@ libnpx@9.7.1:
y18n "^3.2.1"
yargs "^8.0.2"
+libqp@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"
+
license-webpack-plugin@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.1.1.tgz#76b2cedccc78f139fd7877e576f756cfc141b8c2"
@@ -8941,9 +9162,9 @@ linkify-it@^2.0.0:
dependencies:
uc.micro "^1.0.1"
-lint-staged@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.1.0.tgz#28f600c10a6cbd249ceb003118a1552e53544a93"
+lint-staged@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.1.1.tgz#cd08c4d9b8ccc2d37198d1c47ce77d22be6cf324"
dependencies:
app-root-path "^2.0.0"
chalk "^2.1.0"
@@ -8963,7 +9184,7 @@ lint-staged@^6.1.0:
p-map "^1.1.1"
path-is-inside "^1.0.2"
pify "^3.0.0"
- staged-git-files "0.0.4"
+ staged-git-files "1.0.0"
stringify-object "^3.2.0"
listr-silent-renderer@^1.1.1:
@@ -9033,15 +9254,6 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
-load-json-file@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-3.0.0.tgz#7eb3735d983a7ed2262ade4ff769af5369c5c440"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^3.0.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
load-json-file@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -9077,7 +9289,7 @@ loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.
emojis-list "^2.0.0"
json5 "^0.5.0"
-loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@~0.2.2:
+loader-utils@^0.2.15, loader-utils@^0.2.16:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
dependencies:
@@ -9266,6 +9478,10 @@ lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+lodash.memoize@~3.0.3:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
+
lodash.mergewith@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
@@ -9356,14 +9572,18 @@ lodash@3.7.x:
version "3.7.0"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45"
-"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1, lodash@~4.17.4:
+"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.5.1, lodash@^4.6.1, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.8.0:
+lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
+lodash@^4.17.5:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@@ -9383,12 +9603,32 @@ log-update@^1.0.2:
ansi-escapes "^1.0.0"
cli-cursor "^1.0.2"
-log4js@^0.6.31:
- version "0.6.38"
- resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd"
+log4js@^2.3.9:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.5.2.tgz#234e9c688bc4aab3999bd4b149c85851a4e62faa"
+ dependencies:
+ circular-json "^0.5.1"
+ date-format "^1.2.0"
+ debug "^3.1.0"
+ semver "^5.3.0"
+ streamroller "^0.7.0"
+ optionalDependencies:
+ amqplib "^0.5.2"
+ axios "^0.15.3"
+ hipchat-notifier "^1.1.0"
+ loggly "^1.1.0"
+ mailgun-js "^0.7.0"
+ nodemailer "^2.5.0"
+ redis "^2.7.1"
+ slack-node "~0.2.0"
+
+loggly@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee"
dependencies:
- readable-stream "~1.0.2"
- semver "~4.3.3"
+ json-stringify-safe "5.0.x"
+ request "2.75.x"
+ timespan "2.3.x"
loglevel@^1.4.1:
version "1.6.1"
@@ -9434,6 +9674,10 @@ lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@~4.1.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
+lru-cache@~2.6.5:
+ version "2.6.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5"
+
macaddress@^0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
@@ -9448,16 +9692,41 @@ magic-string@^0.22.3:
dependencies:
vlq "^0.2.1"
+mailcomposer@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4"
+ dependencies:
+ buildmail "4.0.1"
+ libmime "3.0.0"
+
+mailgun-js@^0.7.0:
+ version "0.7.15"
+ resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.7.15.tgz#ee366a20dac64c3c15c03d6c1b3e0ed795252abb"
+ dependencies:
+ async "~2.1.2"
+ debug "~2.2.0"
+ form-data "~2.1.1"
+ inflection "~1.10.0"
+ is-stream "^1.1.0"
+ path-proxy "~1.0.0"
+ proxy-agent "~2.0.0"
+ q "~1.4.0"
+ tsscmp "~1.0.0"
+
make-dir@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
dependencies:
pify "^3.0.0"
-make-error@^1.1.1, make-error@^1.3.2:
+make-error@^1.1.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4"
+make-error@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535"
+
make-fetch-happen@^2.4.13:
version "2.6.0"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38"
@@ -9767,7 +10036,7 @@ mime-types@2.1.11:
dependencies:
mime-db "~1.23.0"
-mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
+mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
dependencies:
@@ -9886,6 +10155,26 @@ modify-values@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2"
+module-deps@^4.0.8:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd"
+ dependencies:
+ JSONStream "^1.0.3"
+ browser-resolve "^1.7.0"
+ cached-path-relative "^1.0.0"
+ concat-stream "~1.5.0"
+ defined "^1.0.0"
+ detective "^4.0.0"
+ duplexer2 "^0.1.2"
+ inherits "^2.0.1"
+ parents "^1.0.0"
+ readable-stream "^2.0.2"
+ resolve "^1.1.3"
+ stream-combiner2 "^1.1.1"
+ subarg "^1.0.0"
+ through2 "^2.0.0"
+ xtend "^4.0.0"
+
moment@^2.20.1, moment@^2.6.0:
version "2.20.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
@@ -10017,6 +10306,10 @@ nested-object-assign@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/nested-object-assign/-/nested-object-assign-1.0.2.tgz#9a84ef51b5c11298b5476d6c65b26458c9eae82b"
+netmask@~1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
+
netrc@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444"
@@ -10122,7 +10415,7 @@ node-modules-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8"
-node-notifier@^5.0.2, node-notifier@^5.1.2:
+node-notifier@^5.0.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff"
dependencies:
@@ -10131,7 +10424,16 @@ node-notifier@^5.0.2, node-notifier@^5.1.2:
shellwords "^0.1.0"
which "^1.2.12"
-node-pre-gyp@^0.6.36, node-pre-gyp@^0.6.39:
+node-notifier@^5.1.2, node-notifier@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
+ dependencies:
+ growly "^1.3.0"
+ semver "^5.4.1"
+ shellwords "^0.1.1"
+ which "^1.3.0"
+
+node-pre-gyp@^0.6.39:
version "0.6.39"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
dependencies:
@@ -10175,15 +10477,68 @@ node-status-codes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
+node-uuid@~1.4.7:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
+
node-version@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.1.0.tgz#f437d7ba407e65e2c4eaef8887b1718ba523d4f0"
-nodemon@^1.12.1, nodemon@^1.14.11:
- version "1.14.11"
- resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.14.11.tgz#cc0009dd8d82f126f3aba50ace7e753827a8cebc"
+nodemailer-direct-transport@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86"
dependencies:
- chokidar "^2.0.0"
+ nodemailer-shared "1.1.0"
+ smtp-connection "2.12.0"
+
+nodemailer-fetch@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4"
+
+nodemailer-shared@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0"
+ dependencies:
+ nodemailer-fetch "1.6.0"
+
+nodemailer-smtp-pool@2.8.2:
+ version "2.8.2"
+ resolved "https://registry.yarnpkg.com/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72"
+ dependencies:
+ nodemailer-shared "1.1.0"
+ nodemailer-wellknown "0.1.10"
+ smtp-connection "2.12.0"
+
+nodemailer-smtp-transport@2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77"
+ dependencies:
+ nodemailer-shared "1.1.0"
+ nodemailer-wellknown "0.1.10"
+ smtp-connection "2.12.0"
+
+nodemailer-wellknown@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5"
+
+nodemailer@^2.5.0:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9"
+ dependencies:
+ libmime "3.0.0"
+ mailcomposer "4.0.1"
+ nodemailer-direct-transport "3.3.2"
+ nodemailer-shared "1.1.0"
+ nodemailer-smtp-pool "2.8.2"
+ nodemailer-smtp-transport "2.7.2"
+ socks "1.1.9"
+
+nodemon@^1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.15.0.tgz#ddec01eeb9c33d53dfbf7eddb2fa32f723474c1e"
+ dependencies:
+ chokidar "^2.0.2"
debug "^3.1.0"
ignore-by-default "^1.0.1"
minimatch "^3.0.4"
@@ -10474,10 +10829,6 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-object-assign@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
-
object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -10664,7 +11015,7 @@ original@>=0.0.5:
dependencies:
url-parse "1.0.x"
-os-browserify@^0.3.0:
+os-browserify@^0.3.0, os-browserify@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
@@ -10712,10 +11063,6 @@ output-file-sync@^1.1.2:
mkdirp "^0.5.1"
object-assign "^4.1.0"
-p-cancelable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
-
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -10740,6 +11087,30 @@ p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+pac-proxy-agent@1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d"
+ dependencies:
+ agent-base "2"
+ debug "2"
+ extend "3"
+ get-uri "2"
+ http-proxy-agent "1"
+ https-proxy-agent "1"
+ pac-resolver "~2.0.0"
+ raw-body "2"
+ socks-proxy-agent "2"
+
+pac-resolver@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd"
+ dependencies:
+ co "~3.0.6"
+ degenerator "~1.0.2"
+ ip "1.0.1"
+ netmask "~1.0.4"
+ thunkify "~2.1.1"
+
package-json@^2.0.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"
@@ -10802,6 +11173,12 @@ param-case@2.1.x:
dependencies:
no-case "^2.2.0"
+parents@^1.0.0, parents@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
+ dependencies:
+ path-platform "~0.11.15"
+
parse-asn1@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
@@ -10816,7 +11193,7 @@ parse-diff@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/parse-diff/-/parse-diff-0.4.0.tgz#9ce35bcce8fc0b7c58f46d71113394fc0b4982dd"
-parse-entities@^1.0.2:
+parse-entities@^1.0.2, parse-entities@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.1.1.tgz#8112d88471319f27abae4d64964b122fe4e1b890"
dependencies:
@@ -10902,12 +11279,6 @@ parse5@^3.0.1, parse5@^3.0.2:
dependencies:
"@types/node" "*"
-parsejson@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
- dependencies:
- better-assert "~1.0.0"
-
parseqs@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
@@ -10928,7 +11299,7 @@ pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
-path-browserify@0.0.0:
+path-browserify@0.0.0, path-browserify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
@@ -10962,6 +11333,16 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+path-platform@~0.11.15:
+ version "0.11.15"
+ resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
+
+path-proxy@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e"
+ dependencies:
+ inflection "~1.3.0"
+
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
@@ -11107,10 +11488,6 @@ plur@^2.1.2:
dependencies:
irregular-plurals "^1.0.0"
-pluralize@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
-
pluralize@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
@@ -11270,7 +11647,7 @@ postcss-loader@2.0.8:
postcss-load-config "^1.2.0"
schema-utils "^0.3.0"
-postcss-loader@^2.0.10, postcss-loader@^2.0.8:
+postcss-loader@^2.0.10:
version "2.0.10"
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.10.tgz#090db0540140bd56a7a7f717c41bc29aeef4c674"
dependencies:
@@ -11279,6 +11656,15 @@ postcss-loader@^2.0.10, postcss-loader@^2.0.8:
postcss-load-config "^1.2.0"
schema-utils "^0.3.0"
+postcss-loader@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.0.tgz#038c2d6d59753fef4667827fd3ae03f5dc5e6a7a"
+ dependencies:
+ loader-utils "^1.1.0"
+ postcss "^6.0.0"
+ postcss-load-config "^1.2.0"
+ schema-utils "^0.4.0"
+
postcss-merge-idents@^2.1.5:
version "2.1.7"
resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
@@ -11340,7 +11726,7 @@ postcss-minify-selectors@^2.0.4:
postcss "^5.0.14"
postcss-selector-parser "^2.0.0"
-postcss-modules-extract-imports@^1.0.0, postcss-modules-extract-imports@^1.1.0:
+postcss-modules-extract-imports@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb"
dependencies:
@@ -11480,6 +11866,14 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13, postcss@^6.0.16, postcss@^6.0.8
source-map "^0.6.1"
supports-color "^5.1.0"
+postcss@^6.0.17:
+ version "6.0.17"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5"
+ dependencies:
+ chalk "^2.3.0"
+ source-map "^0.6.1"
+ supports-color "^5.1.0"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -11547,7 +11941,7 @@ process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-process@^0.11.1, process@^0.11.10:
+process@^0.11.1, process@^0.11.10, process@~0.11.0:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
@@ -11555,10 +11949,6 @@ process@~0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
@@ -11649,6 +12039,19 @@ proxy-addr@~2.0.2:
forwarded "~0.1.2"
ipaddr.js "1.5.2"
+proxy-agent@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499"
+ dependencies:
+ agent-base "2"
+ debug "2"
+ extend "3"
+ http-proxy-agent "1"
+ https-proxy-agent "1"
+ lru-cache "~2.6.5"
+ pac-proxy-agent "1"
+ socks-proxy-agent "2"
+
proxy-from-env@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
@@ -11709,7 +12112,7 @@ punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-punycode@^1.2.4, punycode@^1.4.1:
+punycode@1.4.1, punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
@@ -11717,9 +12120,22 @@ punycode@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
-puppeteer@^0.13.0:
- version "0.13.0"
- resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-0.13.0.tgz#2e6956205f2c640964c2107f620ae1eef8bde8fd"
+puppeteer@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-0.13.0.tgz#2e6956205f2c640964c2107f620ae1eef8bde8fd"
+ dependencies:
+ debug "^2.6.8"
+ extract-zip "^1.6.5"
+ https-proxy-agent "^2.1.0"
+ mime "^1.3.4"
+ progress "^2.0.0"
+ proxy-from-env "^1.0.0"
+ rimraf "^2.6.1"
+ ws "^3.0.0"
+
+puppeteer@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.1.0.tgz#97fbc2fbbf9ab659e7e202a68ac1ba54b8bc0a25"
dependencies:
debug "^2.6.8"
extract-zip "^1.6.5"
@@ -11730,7 +12146,7 @@ puppeteer@^0.13.0:
rimraf "^2.6.1"
ws "^3.0.0"
-q@1.4.1:
+q@1.4.1, q@~1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
@@ -11750,6 +12166,10 @@ qs@6.5.1, qs@^6.5.1, qs@~6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+qs@~6.2.0:
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
+
qs@~6.3.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
@@ -11765,7 +12185,7 @@ query-string@^4.1.0:
object-assign "^4.1.0"
strict-uri-encode "^1.0.0"
-querystring-es3@^0.2.0:
+querystring-es3@^0.2.0, querystring-es3@~0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -11839,7 +12259,7 @@ range-parser@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175"
-raw-body@2.3.2:
+raw-body@2, raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
dependencies:
@@ -11860,7 +12280,7 @@ raw-loader@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
-rc@^1.0.1, rc@^1.1.0, rc@^1.1.6, rc@^1.1.7:
+rc@^1.0.1, rc@^1.1.0, rc@^1.1.6:
version "1.2.3"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.3.tgz#51575a900f8dd68381c710b4712c2154c3e2035b"
dependencies:
@@ -11869,6 +12289,15 @@ rc@^1.0.1, rc@^1.1.0, rc@^1.1.6, rc@^1.1.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+rc@^1.1.7:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3"
+ dependencies:
+ deep-extend "~0.4.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
react-addons-create-fragment@^15.5.3:
version "15.6.2"
resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.2.tgz#a394de7c2c7becd6b5475ba1b97ac472ce7c74f8"
@@ -11909,9 +12338,9 @@ react-color@^2.11.4:
reactcss "^1.2.0"
tinycolor2 "^1.4.1"
-react-datetime@^2.12.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.12.0.tgz#9226a11730b7be1273c12f018a4d5613496e831c"
+react-datetime@^2.14.0:
+ version "2.14.0"
+ resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.14.0.tgz#c7859c5b765275d7980f1cca27c03a727ff9ccef"
dependencies:
create-react-class "^15.5.2"
object-assign "^3.0.0"
@@ -11977,9 +12406,9 @@ react-error-overlay@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4"
-react-fuzzy@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.1.tgz#295c2a4079ad39402e05605d9d7accd2db8527b6"
+react-fuzzy@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.2.tgz#fc13bf6f0b785e5fefe908724efebec4935eaefe"
dependencies:
babel-runtime "^6.23.0"
classnames "^2.2.5"
@@ -12009,9 +12438,9 @@ react-inspector@^2.2.2:
babel-runtime "^6.26.0"
is-dom "^1.0.9"
-react-modal@^3.1.11:
- version "3.1.11"
- resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.1.11.tgz#95c8223fcee7013258ad2d149c38c9f870c89958"
+react-modal@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.2.1.tgz#fa8f76aed55b67c22dcf1a1c15b05c8d11f18afe"
dependencies:
exenv "^1.2.0"
prop-types "^15.5.10"
@@ -12023,7 +12452,7 @@ react-native-compat@^1.0.0:
dependencies:
prop-types "^15.5.10"
-react-native-iphone-x-helper@^1.0.1:
+react-native-iphone-x-helper@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.0.2.tgz#7dbca530930f7c1ce8633cc8fd13ba94102992e1"
@@ -12106,9 +12535,9 @@ react-reconciler@^0.7.0:
object-assign "^4.1.1"
prop-types "^15.6.0"
-react-scripts@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.0.tgz#0c94b2b2e14cff2dad8919397901b5edebeba511"
+react-scripts@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.1.tgz#279d449f7311fed910506987a1ade014027788a8"
dependencies:
autoprefixer "7.1.6"
babel-core "6.26.0"
@@ -12121,7 +12550,7 @@ react-scripts@^1.1.0:
chalk "1.1.3"
css-loader "0.28.7"
dotenv "4.0.0"
- dotenv-expand "4.0.1"
+ dotenv-expand "4.2.0"
eslint "4.10.0"
eslint-config-react-app "^2.1.0"
eslint-loader "1.9.0"
@@ -12148,14 +12577,12 @@ react-scripts@^1.1.0:
webpack-manifest-plugin "1.3.2"
whatwg-fetch "2.0.3"
optionalDependencies:
- fsevents "1.1.2"
+ fsevents "^1.1.3"
-react-split-pane@^0.1.74:
- version "0.1.74"
- resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.74.tgz#cf79fc98b51ab0763fdc778749b810a102b036ca"
+react-split-pane@^0.1.77:
+ version "0.1.77"
+ resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.77.tgz#f0c8cd18d076bbac900248dcf6dbcec02d5340db"
dependencies:
- "@types/inline-style-prefixer" "^3.0.0"
- "@types/react" "^16.0.18"
inline-style-prefixer "^3.0.6"
prop-types "^15.5.10"
react-style-proptype "^3.0.0"
@@ -12259,6 +12686,12 @@ read-installed@~4.0.3:
optionalDependencies:
graceful-fs "^4.1.2"
+read-only-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
+ dependencies:
+ readable-stream "^2.0.2"
+
"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@~2.0.9:
version "2.0.12"
resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.12.tgz#68ea45f98b3741cb6e10ae3bbd42a605026a6951"
@@ -12331,7 +12764,7 @@ read@1, read@~1.0.1, read@~1.0.7:
dependencies:
mute-stream "~0.0.4"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@~2.3.2:
+"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
@@ -12343,7 +12776,7 @@ read@1, read@~1.0.1, read@~1.0.7:
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
-readable-stream@1.0, readable-stream@~1.0.2:
+readable-stream@1.0:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
@@ -12361,7 +12794,7 @@ readable-stream@1.1:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@~1.1.10, readable-stream@~1.1.8, readable-stream@~1.1.9:
+readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@~1.1.10, readable-stream@~1.1.8, readable-stream@~1.1.9:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
dependencies:
@@ -12370,7 +12803,7 @@ readable-stream@~1.1.10, readable-stream@~1.1.8, readable-stream@~1.1.9:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@~2.0.6:
+readable-stream@~2.0.0, readable-stream@~2.0.5, readable-stream@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
dependencies:
@@ -12461,6 +12894,22 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
+redis-commands@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b"
+
+redis-parser@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
+
+redis@^2.7.1:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
+ dependencies:
+ double-ended-queue "^2.1.0-0"
+ redis-commands "^1.2.0"
+ redis-parser "^2.6.0"
+
reduce-css-calc@^1.2.6:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
@@ -12492,7 +12941,7 @@ regenerate@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
-regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5:
+regenerator-runtime@^0.10.5:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
@@ -12563,26 +13012,13 @@ relateurl@0.2.x:
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-remark-cli@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-4.0.0.tgz#bb84c14ffeb6f5b658eff4dfbb77cdd7775bab73"
+remark-cli@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-5.0.0.tgz#9feefd06474f3d0ff132df21b5334c546df12ab6"
dependencies:
markdown-extensions "^1.1.0"
- remark "^8.0.0"
- unified-args "^4.0.0"
-
-remark-lint-code-eslint@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/remark-lint-code-eslint/-/remark-lint-code-eslint-2.0.0.tgz#6fb394f0863431cd7aff0da4de097812021e7d8b"
- dependencies:
- eslint "^3.16.1"
-
-remark-lint-code@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/remark-lint-code/-/remark-lint-code-2.0.0.tgz#03e0c2e90aeedbe875a8795feacf57988b7d957c"
- dependencies:
- unified-lint-rule "^1.0.0"
- unist-util-visit "^1.0.0"
+ remark "^9.0.0"
+ unified-args "^5.0.0"
remark-lint-final-newline@^1.0.0:
version "1.0.1"
@@ -12734,9 +13170,9 @@ remark-message-control@^4.0.0:
unist-util-visit "^1.0.0"
vfile-location "^2.0.0"
-remark-parse@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-4.0.0.tgz#99f1f049afac80382366e2e0d0bd55429dd45d8b"
+remark-parse@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95"
dependencies:
collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0"
@@ -12744,7 +13180,7 @@ remark-parse@^4.0.0:
is-whitespace-character "^1.0.0"
is-word-character "^1.0.0"
markdown-escapes "^1.0.0"
- parse-entities "^1.0.2"
+ parse-entities "^1.1.0"
repeat-string "^1.5.4"
state-toggle "^1.0.0"
trim "0.0.1"
@@ -12775,9 +13211,9 @@ remark-preset-lint-recommended@^3.0.1:
remark-lint-no-unused-definitions "^1.0.0"
remark-lint-ordered-list-marker-style "^1.0.0"
-remark-stringify@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-4.0.0.tgz#4431884c0418f112da44991b4e356cfe37facd87"
+remark-stringify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba"
dependencies:
ccount "^1.0.0"
is-alphanumeric "^1.0.0"
@@ -12794,12 +13230,12 @@ remark-stringify@^4.0.0:
unherit "^1.0.4"
xtend "^4.0.1"
-remark@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/remark/-/remark-8.0.0.tgz#287b6df2fe1190e263c1d15e486d3fa835594d6d"
+remark@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60"
dependencies:
- remark-parse "^4.0.0"
- remark-stringify "^4.0.0"
+ remark-parse "^5.0.0"
+ remark-stringify "^5.0.0"
unified "^6.0.0"
remove-trailing-separator@^1.0.1:
@@ -12856,7 +13292,7 @@ request-promise-native@^1.0.3:
stealthy-require "^1.1.0"
tough-cookie ">=2.3.3"
-request@2, request@^2.74.0, request@^2.78.0, request@^2.79.0, request@^2.81.0, request@^2.83.0:
+request@2, request@^2.0.0, request@^2.74.0, request@^2.78.0, request@^2.79.0, request@^2.81.0, request@^2.83.0:
version "2.83.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
dependencies:
@@ -12883,6 +13319,32 @@ request@2, request@^2.74.0, request@^2.78.0, request@^2.79.0, request@^2.81.0, r
tunnel-agent "^0.6.0"
uuid "^3.1.0"
+request@2.75.x:
+ version "2.75.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ bl "~1.1.2"
+ caseless "~0.11.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~2.0.0"
+ har-validator "~2.0.6"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ node-uuid "~1.4.7"
+ oauth-sign "~0.8.1"
+ qs "~6.2.0"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "~0.4.1"
+
request@2.81.0, request@~2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
@@ -12935,6 +13397,15 @@ request@~2.79.0:
tunnel-agent "~0.4.1"
uuid "^3.0.0"
+requestretry@^1.2.2:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/requestretry/-/requestretry-1.13.0.tgz#213ec1006eeb750e8b8ce54176283d15a8d55d94"
+ dependencies:
+ extend "^3.0.0"
+ lodash "^4.15.0"
+ request "^2.74.0"
+ when "^3.7.7"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -12951,7 +13422,7 @@ require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
-require-uncached@^1.0.2, require-uncached@^1.0.3:
+require-uncached@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
dependencies:
@@ -12995,7 +13466,7 @@ resolve@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0:
+resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
dependencies:
@@ -13104,7 +13575,11 @@ rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-rxjs@^5.4.2, rxjs@^5.5.6:
+rx@2.3.24:
+ version "2.3.24"
+ resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7"
+
+rxjs@^5.4.2, rxjs@^5.5.2, rxjs@^5.5.6:
version "5.5.6"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02"
dependencies:
@@ -13119,8 +13594,8 @@ safe-buffer@~5.0.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
sane@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/sane/-/sane-2.2.0.tgz#d6d2e2fcab00e3d283c93b912b7c3a20846f1d56"
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-2.3.0.tgz#3f3df584abf69e63d4bb74f0f8c42468e4d7d46b"
dependencies:
anymatch "^1.3.0"
exec-sh "^0.2.0"
@@ -13191,7 +13666,7 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
-schema-utils@^0.4.2, schema-utils@^0.4.3:
+schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e"
dependencies:
@@ -13246,18 +13721,20 @@ semver-dsl@^1.0.1:
dependencies:
semver "^5.3.0"
-"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@5.x, "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
+semver-intersect@^1.1.2:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.3.0.tgz#d0d727d17d8abd2ff699fce6ae6ab83073d51b36"
+ dependencies:
+ semver "^5.0.0"
+
+"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@5.x, "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
-semver@~4.3.3:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-
semver@~5.0.1:
version "5.0.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
@@ -13305,7 +13782,7 @@ serialize-javascript@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005"
-serve-favicon@^2.4.3, serve-favicon@^2.4.5:
+serve-favicon@^2.4.5:
version "2.4.5"
resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.5.tgz#49d9a46863153a9240691c893d2b0e7d85d6d436"
dependencies:
@@ -13420,6 +13897,13 @@ sha.js@^2.4.0, sha.js@^2.4.8:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+sha.js@~2.4.4:
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
sha@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae"
@@ -13442,6 +13926,13 @@ shallowequal@^0.2.2:
dependencies:
lodash.keys "^3.1.2"
+shasum@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f"
+ dependencies:
+ json-stable-stringify "~0.0.0"
+ sha.js "~2.4.4"
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -13465,14 +13956,6 @@ shelljs@0.3.x:
version "0.3.0"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
-shelljs@^0.7.5:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
shelljs@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1"
@@ -13485,7 +13968,7 @@ shellsubstitute@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shellsubstitute/-/shellsubstitute-1.2.0.tgz#e4f702a50c518b0f6fe98451890d705af29b6b70"
-shellwords@^0.1.0:
+shellwords@^0.1.0, shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
@@ -13507,6 +13990,12 @@ simple-plist@^0.2.1:
bplist-parser "0.1.1"
plist "2.0.1"
+slack-node@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30"
+ dependencies:
+ requestretry "^1.2.2"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -13529,10 +14018,17 @@ slide@^1.1.3, slide@^1.1.5, slide@~1.1.3, slide@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
-smart-buffer@^1.0.13:
+smart-buffer@^1.0.13, smart-buffer@^1.0.4:
version "1.1.15"
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
+smtp-connection@2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1"
+ dependencies:
+ httpntlm "1.6.1"
+ nodemailer-shared "1.1.0"
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -13572,49 +14068,46 @@ sntp@2.x.x:
dependencies:
hoek "4.x.x"
-socket.io-adapter@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
- dependencies:
- debug "2.3.3"
- socket.io-parser "2.3.1"
+socket.io-adapter@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
-socket.io-client@1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377"
+socket.io-client@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e"
dependencies:
backo2 "1.0.2"
+ base64-arraybuffer "0.1.5"
component-bind "1.0.0"
component-emitter "1.2.1"
- debug "2.3.3"
- engine.io-client "1.8.3"
- has-binary "0.1.7"
+ debug "~2.6.4"
+ engine.io-client "~3.1.0"
+ has-cors "1.1.0"
indexof "0.0.1"
object-component "0.0.3"
+ parseqs "0.0.5"
parseuri "0.0.5"
- socket.io-parser "2.3.1"
+ socket.io-parser "~3.1.1"
to-array "0.1.4"
-socket.io-parser@2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
+socket.io-parser@~3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.2.tgz#dbc2282151fc4faebbe40aeedc0772eba619f7f2"
dependencies:
- component-emitter "1.1.2"
- debug "2.2.0"
- isarray "0.0.1"
- json3 "3.3.2"
+ component-emitter "1.2.1"
+ debug "~2.6.4"
+ has-binary2 "~1.0.2"
+ isarray "2.0.1"
-socket.io@1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b"
+socket.io@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014"
dependencies:
- debug "2.3.3"
- engine.io "1.8.3"
- has-binary "0.1.7"
- object-assign "4.1.0"
- socket.io-adapter "0.5.0"
- socket.io-client "1.7.3"
- socket.io-parser "2.3.1"
+ debug "~2.6.6"
+ engine.io "~3.1.0"
+ socket.io-adapter "~1.1.0"
+ socket.io-client "2.0.4"
+ socket.io-parser "~3.1.1"
sockjs-client@1.1.4:
version "1.1.4"
@@ -13641,6 +14134,14 @@ sockjs@0.3.19:
faye-websocket "^0.10.0"
uuid "^3.0.1"
+socks-proxy-agent@2:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3"
+ dependencies:
+ agent-base "2"
+ extend "3"
+ socks "~1.1.5"
+
socks-proxy-agent@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659"
@@ -13648,7 +14149,14 @@ socks-proxy-agent@^3.0.1:
agent-base "^4.1.0"
socks "^1.1.10"
-socks@^1.1.10:
+socks@1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691"
+ dependencies:
+ ip "^1.1.2"
+ smart-buffer "^1.0.4"
+
+socks@^1.1.10, socks@~1.1.5:
version "1.1.10"
resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
dependencies:
@@ -13686,14 +14194,6 @@ source-list-map@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
-source-map-loader@^0.2.0:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521"
- dependencies:
- async "^2.5.0"
- loader-utils "~0.2.2"
- source-map "~0.6.1"
-
source-map-resolve@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
@@ -13704,7 +14204,7 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.4.0, source-map-support@^0.4.1, source-map-support@^0.4.15, source-map-support@^0.4.2, source-map-support@~0.4.0:
+source-map-support@^0.4.1, source-map-support@^0.4.15, source-map-support@^0.4.2, source-map-support@~0.4.0:
version "0.4.18"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
dependencies:
@@ -13726,7 +14226,7 @@ source-map@0.1.x:
dependencies:
amdefine ">=0.0.4"
-source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.6:
+source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -13744,6 +14244,10 @@ sparkles@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
+spawn-command@^0.0.2-1:
+ version "0.0.2-1"
+ resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0"
+
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -13847,9 +14351,9 @@ stacktrace-parser@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz#01397922e5f62ecf30845522c95c4fe1d25e7d4e"
-staged-git-files@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35"
+staged-git-files@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.0.0.tgz#cdb847837c1fcc52c08a872d4883cc0877668a80"
state-toggle@^1.0.0:
version "1.0.0"
@@ -13884,7 +14388,7 @@ stealthy-require@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
-stream-browserify@^2.0.1:
+stream-browserify@^2.0.0, stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
dependencies:
@@ -13895,6 +14399,13 @@ stream-buffers@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
+stream-combiner2@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
+ dependencies:
+ duplexer2 "~0.1.0"
+ readable-stream "^2.0.2"
+
stream-combiner@~0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
@@ -13918,6 +14429,16 @@ stream-each@^1.1.0:
end-of-stream "^1.1.0"
stream-shift "^1.0.0"
+stream-http@^2.0.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10"
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.3"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
stream-http@^2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad"
@@ -13939,12 +14460,28 @@ stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+stream-splicer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83"
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.2"
+
stream-to-observable@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10"
dependencies:
any-observable "^0.2.0"
+streamroller@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b"
+ dependencies:
+ date-format "^1.2.0"
+ debug "^3.1.0"
+ mkdirp "^0.5.1"
+ readable-stream "^2.3.0"
+
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -13993,7 +14530,7 @@ string.prototype.padstart@^3.0.0:
es-abstract "^1.4.3"
function-bind "^1.0.2"
-string_decoder@^1.0.0, string_decoder@~1.0.3:
+string_decoder@^1.0.0, string_decoder@~1.0.0, string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
@@ -14030,6 +14567,12 @@ strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
+ dependencies:
+ ansi-regex "^0.2.1"
+
strip-ansi@^4.0.0, strip-ansi@~4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@@ -14089,15 +14632,16 @@ style-loader@0.19.0:
loader-utils "^1.0.2"
schema-utils "^0.3.0"
-style-loader@^0.13.1:
- version "0.13.2"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz#74533384cf698c7104c7951150b49717adc2f3bb"
+style-loader@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85"
dependencies:
loader-utils "^1.0.2"
+ schema-utils "^0.3.0"
-style-loader@^0.20.1:
- version "0.20.1"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.1.tgz#33ac2bf4d5c65a8906bc586ad253334c246998d0"
+style-loader@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.2.tgz#851b373c187890331776e9cde359eea9c95ecd00"
dependencies:
loader-utils "^1.1.0"
schema-utils "^0.4.3"
@@ -14127,6 +14671,10 @@ subarg@^1.0.0:
dependencies:
minimist "^1.1.0"
+supports-color@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -14149,6 +14697,12 @@ supports-color@^5.0.0, supports-color@^5.1.0:
dependencies:
has-flag "^2.0.0"
+supports-color@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"
+ dependencies:
+ has-flag "^3.0.0"
+
supports-hyperlinks@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7"
@@ -14222,7 +14776,7 @@ symbol-tree@^3.2.1:
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
-symlink-dir@^1.1.1:
+symlink-dir@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/symlink-dir/-/symlink-dir-1.1.2.tgz#eb367da33401e9c6e95b1ca87efd921cef369852"
dependencies:
@@ -14237,16 +14791,11 @@ sync-exec@~0.6.x:
version "0.6.2"
resolved "https://registry.yarnpkg.com/sync-exec/-/sync-exec-0.6.2.tgz#717d22cc53f0ce1def5594362f3a89a2ebb91105"
-table@^3.7.8:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+syntax-error@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.3.0.tgz#1ed9266c4d40be75dc55bf9bb1cb77062bb96ca1"
dependencies:
- ajv "^4.7.0"
- ajv-keywords "^1.0.0"
- chalk "^1.1.1"
- lodash "^4.0.0"
- slice-ansi "0.0.4"
- string-width "^2.0.0"
+ acorn "^4.0.3"
table@^4.0.1:
version "4.0.2"
@@ -14386,6 +14935,10 @@ through@2, "through@>=2.2.7 <3", through@X.X.X, through@^2.3.4, through@^2.3.6,
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+thunkify@~2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
+
thunky@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e"
@@ -14406,12 +14959,22 @@ timed-out@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+timers-browserify@^1.0.1:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
+ dependencies:
+ process "~0.11.0"
+
timers-browserify@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6"
dependencies:
setimmediate "^1.0.4"
+timespan@2.3.x:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929"
+
tinycolor2@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
@@ -14426,13 +14989,7 @@ tmp@0.0.30:
dependencies:
os-tmpdir "~1.0.1"
-tmp@0.0.31:
- version "0.0.31"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
- dependencies:
- os-tmpdir "~1.0.1"
-
-tmp@0.0.x, tmp@^0.0.33:
+tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
@@ -14565,6 +15122,21 @@ ts-jest@^22.0.0:
source-map-support "^0.5.0"
yargs "^10.0.3"
+ts-jest@^22.0.4:
+ version "22.0.4"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-22.0.4.tgz#be5e8d7d2cf3f3ef97d877a6a0562508c3f64515"
+ dependencies:
+ babel-core "^6.24.1"
+ babel-plugin-istanbul "^4.1.4"
+ babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
+ babel-preset-jest "^22.0.1"
+ cpx "^1.5.0"
+ fs-extra "4.0.3"
+ jest-config "^22.0.1"
+ pkg-dir "^2.0.0"
+ source-map-support "^0.5.0"
+ yargs "^11.0.0"
+
ts-loader@^2.2.2:
version "2.3.7"
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.3.7.tgz#a9028ced473bee12f28a75f9c5b139979d33f2fc"
@@ -14574,25 +15146,27 @@ ts-loader@^2.2.2:
loader-utils "^1.0.2"
semver "^5.0.1"
-ts-node@~3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69"
+ts-node@~4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-4.1.0.tgz#36d9529c7b90bb993306c408cd07f7743de20712"
dependencies:
arrify "^1.0.0"
- chalk "^2.0.0"
+ chalk "^2.3.0"
diff "^3.1.0"
make-error "^1.1.1"
minimist "^1.2.0"
mkdirp "^0.5.1"
- source-map-support "^0.4.0"
- tsconfig "^6.0.0"
+ source-map-support "^0.5.0"
+ tsconfig "^7.0.0"
v8flags "^3.0.0"
yn "^2.0.0"
-tsconfig@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032"
+tsconfig@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7"
dependencies:
+ "@types/strip-bom" "^3.0.0"
+ "@types/strip-json-comments" "0.0.30"
strip-bom "^3.0.0"
strip-json-comments "^2.0.0"
@@ -14609,9 +15183,9 @@ tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.1.tgz#6946af2d1d651a7b1863b531d6e5afa41aa44eac"
-tslint-config-prettier@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.6.0.tgz#fec1ee8fb07e8f033c63fed6b135af997f31962a"
+tslint-config-prettier@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.8.0.tgz#707c25b01b5984c60a4e971400b0485077ca21f6"
tslint-plugin-prettier@^1.3.0:
version "1.3.0"
@@ -14637,7 +15211,7 @@ tslint@~5.9.1:
tslib "^1.8.0"
tsutils "^2.12.1"
-tsscmp@1.0.5:
+tsscmp@1.0.5, tsscmp@~1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
@@ -14651,6 +15225,10 @@ tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+tty-browserify@~0.0.0:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -14678,7 +15256,7 @@ type-is@~1.6.15, type-is@~1.6.6:
media-typer "0.3.0"
mime-types "~2.1.15"
-typedarray@^0.0.6:
+typedarray@^0.0.6, typedarray@~0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -14686,9 +15264,9 @@ typescript@2.5.3:
version "2.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
-typescript@^2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.1.tgz#bb3682c2c791ac90e7c6210b26478a8da085c359"
+typescript@^2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
typescript@~2.6.2:
version "2.6.2"
@@ -14737,9 +15315,9 @@ uglifyjs-webpack-plugin@^0.4.6:
uglify-js "^2.8.29"
webpack-sources "^1.0.1"
-uglifyjs-webpack-plugin@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.6.tgz#f4ba8449edcf17835c18ba6ae99b9d610857fb19"
+uglifyjs-webpack-plugin@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.8.tgz#1302fb9471a7daf3d0a5174da6d65f0f415e75ad"
dependencies:
cacache "^10.0.1"
find-cache-dir "^1.0.0"
@@ -14750,9 +15328,9 @@ uglifyjs-webpack-plugin@^1.1.5:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
-uglifyjs-webpack-plugin@^1.1.7:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.8.tgz#1302fb9471a7daf3d0a5174da6d65f0f415e75ad"
+uglifyjs-webpack-plugin@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.0.tgz#f706fa4c655000a086b4a97c7d835ed0f6e9b0ef"
dependencies:
cacache "^10.0.1"
find-cache-dir "^1.0.0"
@@ -14791,6 +15369,10 @@ umask@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
+umd@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e"
+
undefsafe@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.1.tgz#03b2f2a16c94556e14b2edef326cd66aaf82707a"
@@ -14809,6 +15391,10 @@ underscore@~1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
+underscore@~1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
+
unherit@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.0.tgz#6b9aaedfbf73df1756ad9e316dd981885840cd7d"
@@ -14816,23 +15402,24 @@ unherit@^1.0.4:
inherits "^2.0.1"
xtend "^4.0.1"
-unified-args@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-4.0.0.tgz#8d9b9b8ad347beb37f430562a62c4d361b42220f"
+unified-args@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-5.1.0.tgz#1889200e072998a662e6e84d817d6f4b5f448dd1"
dependencies:
camelcase "^4.0.0"
chalk "^2.0.0"
chokidar "^1.5.1"
+ json5 "^0.5.1"
minimist "^1.2.0"
text-table "^0.2.0"
- unified-engine "^4.0.0"
+ unified-engine "^5.1.0"
-unified-engine@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-4.0.1.tgz#9692aa97fd5c4ec36889779e12514bef8e863fc3"
+unified-engine@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-5.1.0.tgz#30db83bcc76c821f773bb5a8a491aa0e2471e3d1"
dependencies:
concat-stream "^1.5.1"
- debug "^2.2.0"
+ debug "^3.1.0"
fault "^1.0.0"
fn-name "^2.0.1"
glob "^7.0.3"
@@ -14842,9 +15429,10 @@ unified-engine@^4.0.0:
is-object "^1.0.1"
js-yaml "^3.6.1"
load-plugin "^2.0.0"
- parse-json "^2.2.0"
+ parse-json "^4.0.0"
to-vfile "^2.0.0"
trough "^1.0.0"
+ unist-util-inspect "^4.1.2"
vfile-reporter "^4.0.0"
vfile-statistics "^1.1.0"
x-is-function "^1.0.4"
@@ -14914,6 +15502,12 @@ unist-util-generated@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.1.tgz#99f16c78959ac854dee7c615c291924c8bf4de7f"
+unist-util-inspect@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-4.1.2.tgz#440520d0c7911f1a41eb5f568ef9b2efc3c29363"
+ dependencies:
+ is-empty "^1.0.0"
+
unist-util-is@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.1.tgz#0c312629e3f960c66e931e812d3d80e77010947b"
@@ -14973,7 +15567,7 @@ unzip-response@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
-upath@^1.0.2:
+upath@^1.0.0, upath@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.2.tgz#80aaae5395abc5fd402933ae2f58694f0860204c"
dependencies:
@@ -15066,7 +15660,7 @@ url-template@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21"
-url@^0.11.0:
+url@^0.11.0, url@~0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
dependencies:
@@ -15089,12 +15683,6 @@ user-home@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
-user-home@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
- dependencies:
- os-homedir "^1.0.0"
-
useragent@^2.1.12:
version "2.2.1"
resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e"
@@ -15117,7 +15705,7 @@ util.promisify@^1.0.0:
define-properties "^1.1.2"
object.getownpropertydescriptors "^2.0.3"
-util@0.10.3, util@^0.10.3:
+util@0.10.3, util@^0.10.3, util@~0.10.1:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
dependencies:
@@ -15147,13 +15735,17 @@ uuid@^2.0.1, uuid@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@~3.1.0:
+uuid@^3.0.0, uuid@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+
+uuid@^3.0.1, uuid@^3.1.0, uuid@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
-uuid@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+uws@~0.14.4:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/uws/-/uws-0.14.5.tgz#67aaf33c46b2a587a5f6666d00f7691328f149dc"
v8flags@^2.1.1:
version "2.1.1"
@@ -15262,7 +15854,7 @@ vlq@^0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26"
-vm-browserify@0.0.4:
+vm-browserify@0.0.4, vm-browserify@~0.0.1:
version "0.0.4"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
dependencies:
@@ -15272,7 +15864,7 @@ vm2@patriksimek/vm2#custom_files:
version "3.5.0"
resolved "https://codeload.github.com/patriksimek/vm2/tar.gz/7e82f90ac705fc44fad044147cb0df09b4c79a57"
-voca@^1.3.1:
+voca@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/voca/-/voca-1.4.0.tgz#e15ac58b38290b72acc0c330366b6cc7984924d7"
@@ -15427,7 +16019,7 @@ webpack-core@^0.6.8:
source-list-map "~0.1.7"
source-map "~0.4.1"
-webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.10.2, webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.0, webpack-dev-middleware@^1.12.2, webpack-dev-middleware@~1.12.0:
+webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.2, webpack-dev-middleware@~1.12.0:
version "1.12.2"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e"
dependencies:
@@ -15533,7 +16125,7 @@ webpack-dev-server@~2.11.0:
webpack-dev-middleware "1.12.2"
yargs "6.6.0"
-webpack-hot-middleware@^2.18.0, webpack-hot-middleware@^2.20.0, webpack-hot-middleware@^2.21.0:
+webpack-hot-middleware@^2.21.0:
version "2.21.0"
resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz#7b3c113a7a4b301c91e0749573c7aab28b414b52"
dependencies:
@@ -15595,14 +16187,14 @@ webpack@3.8.1:
webpack-sources "^1.0.1"
yargs "^8.0.2"
-"webpack@^2.5.1 || ^3.0.0", webpack@^3.10.0, webpack@^3.6.0, webpack@^3.8.1, webpack@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725"
+webpack@^3.11.0, webpack@~3.11.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
- ajv "^5.1.5"
- ajv-keywords "^2.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
async "^2.1.2"
enhanced-resolve "^3.4.0"
escope "^3.6.0"
@@ -15662,6 +16254,10 @@ whatwg-url@^6.3.0:
tr46 "^1.0.0"
webidl-conversions "^4.0.1"
+when@^3.7.7:
+ version "3.7.8"
+ resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"
+
when@~3.6.x:
version "3.6.4"
resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e"
@@ -15678,7 +16274,7 @@ which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-which@1, which@^1.2.1, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9:
+which@1, which@^1.2.1, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
@@ -15818,13 +16414,6 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-ws@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f"
- dependencies:
- options ">=0.0.5"
- ultron "1.0.x"
-
ws@^1.0.1, ws@^1.1.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
@@ -15839,7 +16428,7 @@ ws@^2.0.3:
safe-buffer "~5.0.1"
ultron "~1.1.0"
-ws@^3.0.0, ws@^3.3.3:
+ws@^3.0.0, ws@^3.3.3, ws@~3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
dependencies:
@@ -15847,10 +16436,6 @@ ws@^3.0.0, ws@^3.3.3:
safe-buffer "~5.1.0"
ultron "~1.1.0"
-wtf-8@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
-
x-is-function@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/x-is-function/-/x-is-function-1.0.4.tgz#5d294dc3d268cbdd062580e0c5df77a391d1fa1e"
@@ -15923,14 +16508,18 @@ xmldom@0.1.x:
version "0.1.27"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
-xmlhttprequest-ssl@1.5.3:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
+xmlhttprequest-ssl@~1.5.4:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
xpipe@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf"
+xregexp@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
+
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -15980,6 +16569,12 @@ yargs-parser@^8.1.0:
dependencies:
camelcase "^4.1.0"
+yargs-parser@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
+ dependencies:
+ camelcase "^4.1.0"
+
yargs@3.29.0:
version "3.29.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c"
@@ -16010,8 +16605,8 @@ yargs@6.6.0, yargs@^6.6.0:
yargs-parser "^4.2.0"
yargs@^10.0.3:
- version "10.1.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.1.tgz#5fe1ea306985a099b33492001fa19a1e61efe285"
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
dependencies:
cliui "^4.0.0"
decamelize "^1.1.1"
@@ -16026,6 +16621,23 @@ yargs@^10.0.3:
y18n "^3.2.1"
yargs-parser "^8.1.0"
+yargs@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^9.0.2"
+
yargs@^4.8.0:
version "4.8.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0"