diff --git a/.babelrc.js b/.babelrc.js
index c479bb74c977..b404943ae4f9 100644
--- a/.babelrc.js
+++ b/.babelrc.js
@@ -1,5 +1,9 @@
module.exports = {
- presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-flow'],
+ presets: [
+ ['@babel/preset-env', { shippedProposals: true }],
+ '@babel/preset-react',
+ '@babel/preset-flow',
+ ],
plugins: [
['emotion', { sourceMap: true, autoLabel: true }],
'babel-plugin-add-react-displayname',
@@ -7,6 +11,7 @@ module.exports = {
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-proposal-object-rest-spread',
'@babel/plugin-proposal-class-properties',
+ '@babel/plugin-proposal-object-rest-spread',
'@babel/plugin-proposal-export-default-from',
[
'@babel/plugin-transform-runtime',
@@ -23,7 +28,7 @@ module.exports = {
overrides: [
{
test: './examples/vue-kitchen-sink',
- presets: ['@babel/preset-env', 'babel-preset-vue'],
+ presets: [['@babel/preset-env', { shippedProposals: true }], 'babel-preset-vue'],
},
{
test: [
diff --git a/.eslintignore b/.eslintignore
index 73f2bb84a21b..e8aacb9b8fa0 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,4 +1,5 @@
dist
+lib/**/dll
build
coverage
node_modules
diff --git a/.eslintrc.js b/.eslintrc.js
index 35e07c5ff1e0..7b90952baf36 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -82,6 +82,12 @@ module.exports = {
],
},
overrides: [
+ {
+ files: ['**/__tests__/**', '**/*.test.js/**', '**/*.spec.js/**'],
+ rules: {
+ 'import/no-extraneous-dependencies': ignore,
+ },
+ },
{
files: ['**/react-native*/**', '**/REACT_NATIVE*/**', '**/crna*/**'],
rules: { 'jsx-a11y/accessible-emoji': ignore },
diff --git a/.gitignore b/.gitignore
index a1bdccd96d11..0ed76d9dcdc0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@ integration/__image_snapshots__/__diff_output__
.jest-test-results.json
/examples/cra-kitchen-sink/src/__image_snapshots__/__diff_output__/
lib/*.jar
+lib/**/dll
diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Bootstrap.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Bootstrap.kt
index f18d4aaf8682..f609d196a3ea 100644
--- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Bootstrap.kt
+++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Bootstrap.kt
@@ -17,6 +17,7 @@ object OpenSourceProjects_Storybook_Bootstrap : BuildType({
addons/storyshots/*/dist/** => dist.zip/addons/storyshots
app/*/dist/** => dist.zip/app
lib/*/dist/** => dist.zip/lib
+ lib/core/dll/** => dist.zip/lib/core/dll
""".trimIndent()
vcs {
diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Examples.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Examples.kt
index 53ee4bd40753..2fe164bb30e9 100644
--- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Examples.kt
+++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Examples.kt
@@ -12,10 +12,10 @@ object OpenSourceProjects_Storybook_Examples : BuildType({
name = "Examples"
artifactRules = """
-${StorybookApp.values().map { it.artifactPath }.joinToString("\n")}
-examples/official-storybook/storybook-static => official.zip
-examples/official-storybook/image-snapshots/__image_snapshots__ => image-snapshots
-""".trimIndent()
+ ${StorybookApp.values().map { it.artifactPath }.joinToString("\n")}
+ examples/official-storybook/storybook-static => official.zip
+ examples/official-storybook/image-snapshots/__image_snapshots__ => image-snapshots
+ """.trimIndent()
vcs {
root(OpenSourceProjects_Storybook.vcsRoots.OpenSourceProjects_Storybook_HttpsGithubComStorybooksStorybookRefsHeadsMaster)
diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/StorybookApp.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/StorybookApp.kt
index 93a9b13b25d7..3f043631ceea 100644
--- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/StorybookApp.kt
+++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/StorybookApp.kt
@@ -82,7 +82,9 @@ enum class StorybookApp(val appName: String, val exampleDir: String, val merged:
}
artifacts {
- artifactRules = "dist.zip!**"
+ artifactRules = """
+ dist.zip!**
+ """.trimIndent()
}
}
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 558573fbe631..31ad0b367065 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,23 @@
+## 4.1.0-alpha.9 (November 29, 2018)
+
+### Features
+
+* UI: Accessible success/fail colors ([#4843](https://github.com/storybooks/storybook/pull/4843))
+* React-native: add option to set keyboarVerticalOffset ([#4862](https://github.com/storybooks/storybook/pull/4862))
+* Addon-CSSResources: new adddon to dynamically add/remove css ([#4622](https://github.com/storybooks/storybook/pull/4622))
+
+### Bug Fixes
+
+* Core: Add try, catch for history API for IE11 ([#4870](https://github.com/storybooks/storybook/pull/4870))
+* Core: Don't copy index.html on build-storybook ([#4856](https://github.com/storybooks/storybook/pull/4856))
+* React-native: properly set initial story out of Async Storage. ([#4872](https://github.com/storybooks/storybook/pull/4872))
+* React-native: show webpack-related build issues ([#4883](https://github.com/storybooks/storybook/pull/4883))
+* Addon-info: fix docgen description display ([#4685](https://github.com/storybooks/storybook/pull/4685))
+
+### Dependency Upgrades
+
+* Bump svelte to 2.15.3, addresses !4478 ([#4842](https://github.com/storybooks/storybook/pull/4842))
+
## 4.1.0-alpha.8 (November 25, 2018)
### Features
diff --git a/addons/a11y/package.json b/addons/a11y/package.json
index b7f851190b75..2782a8972944 100644
--- a/addons/a11y/package.json
+++ b/addons/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "a11y addon for storybook",
"keywords": [
"a11y",
@@ -29,10 +29,10 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/client-logger": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/client-logger": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"axe-core": "^3.1.2",
"global": "^4.3.2",
"prop-types": "^15.6.2"
diff --git a/addons/actions/package.json b/addons/actions/package.json
index e310a3b7a6ee..f0184b80591f 100644
--- a/addons/actions/package.json
+++ b/addons/actions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Action Logger addon for storybook",
"keywords": [
"storybook"
@@ -26,9 +26,9 @@
"@emotion/core": "^0.13.1",
"@emotion/provider": "^0.11.2",
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"fast-deep-equal": "^2.0.1",
"global": "^4.3.2",
"lodash": "^4.17.11",
diff --git a/addons/backgrounds/package.json b/addons/backgrounds/package.json
index 1ee8e398334a..8b1190a3f51c 100644
--- a/addons/backgrounds/package.json
+++ b/addons/backgrounds/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A storybook addon to show different backgrounds for your preview",
"keywords": [
"addon",
@@ -28,9 +28,10 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "eventemitter3": "^3.1.0",
"global": "^4.3.2",
"prop-types": "^15.6.2",
"util-deprecate": "^1.0.2"
diff --git a/addons/backgrounds/src/__tests__/BackgroundPanel.js b/addons/backgrounds/src/__tests__/BackgroundPanel.js
index e43c82d46bd4..f41ae7d4eecd 100644
--- a/addons/backgrounds/src/__tests__/BackgroundPanel.js
+++ b/addons/backgrounds/src/__tests__/BackgroundPanel.js
@@ -1,6 +1,6 @@
import React from 'react';
import { shallow, mount } from 'enzyme';
-import EventEmitter from 'events';
+import EventEmitter from 'eventemitter3';
import Panel from '../Panel';
import Events from '../constants';
diff --git a/addons/centered/package.json b/addons/centered/package.json
index 32e0b9da2258..ea7c23d1d4eb 100644
--- a/addons/centered/package.json
+++ b/addons/centered/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-centered",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook decorator to center components",
"keywords": [
"addon",
diff --git a/addons/cssresources/package.json b/addons/cssresources/package.json
index 2bf8bd19dc01..90149c3de515 100644
--- a/addons/cssresources/package.json
+++ b/addons/cssresources/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-cssresources",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A storybook addon to switch between css resources at runtime for your story",
"keywords": [
"addon",
@@ -9,6 +9,9 @@
"storybook"
],
"homepage": "https://storybook.js.org",
+ "publishConfig": {
+ "access": "public"
+ },
"bugs": {
"url": "https://github.com/storybooks/storybook/issues"
},
@@ -25,9 +28,9 @@
},
"dependencies": {
"@emotion/styled": "0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"global": "^4.3.2",
"prop-types": "^15.6.2",
"react-syntax-highlighter": "^10.0.0",
diff --git a/addons/events/package.json b/addons/events/package.json
index e2eed24aeb8a..8bcdaa5b9eca 100644
--- a/addons/events/package.json
+++ b/addons/events/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-events",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Add events to your Storybook stories.",
"keywords": [
"addon",
@@ -27,8 +27,8 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"format-json": "^1.0.3",
"prop-types": "^15.6.2",
"react-lifecycles-compat": "^3.0.4",
diff --git a/addons/google-analytics/package.json b/addons/google-analytics/package.json
index 459b49eeda7e..d0c08ab0234c 100644
--- a/addons/google-analytics/package.json
+++ b/addons/google-analytics/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-google-analytics",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook addon for google analytics",
"keywords": [
"addon",
@@ -24,7 +24,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"global": "^4.3.2",
"react-ga": "^2.5.3"
}
diff --git a/addons/graphql/package.json b/addons/graphql/package.json
index 9fc2e3b67d18..c8ab934a9f49 100644
--- a/addons/graphql/package.json
+++ b/addons/graphql/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-graphql",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook addon to display the GraphiQL IDE",
"keywords": [
"addon",
diff --git a/addons/info/package.json b/addons/info/package.json
index dac813e401d1..2a4b652bc34f 100644
--- a/addons/info/package.json
+++ b/addons/info/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-info",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A Storybook addon to show additional information for your stories.",
"keywords": [
"addon",
@@ -25,9 +25,9 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/client-logger": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/client-logger": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
"core-js": "2.5.7",
"global": "^4.3.2",
"marksy": "^6.1.0",
diff --git a/addons/jest/package.json b/addons/jest/package.json
index 09d790290ca7..31cfb453aaa5 100644
--- a/addons/jest/package.json
+++ b/addons/jest/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
@@ -31,8 +31,8 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
"global": "^4.3.2",
"prop-types": "^15.6.2",
"upath": "^1.1.0",
diff --git a/addons/knobs/package.json b/addons/knobs/package.json
index 6dacc2a26f93..3210d28763c9 100644
--- a/addons/knobs/package.json
+++ b/addons/knobs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-knobs",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook Addon Prop Editor Component",
"keywords": [
"addon",
@@ -25,9 +25,9 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"copy-to-clipboard": "^3.0.8",
"escape-html": "^1.0.3",
"fast-deep-equal": "^2.0.1",
diff --git a/addons/links/package.json b/addons/links/package.json
index 5ccd5644540d..476bdf6442a6 100644
--- a/addons/links/package.json
+++ b/addons/links/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Story Links addon for storybook",
"keywords": [
"addon",
@@ -24,9 +24,9 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"global": "^4.3.2",
"prop-types": "^15.6.2"
},
diff --git a/addons/notes/package.json b/addons/notes/package.json
index 462c23e5d232..3dbb8fcb6eef 100644
--- a/addons/notes/package.json
+++ b/addons/notes/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-notes",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Write notes for your Storybook stories.",
"keywords": [
"addon",
@@ -26,9 +26,9 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"markdown-to-jsx": "^6.7.4",
"prop-types": "^15.6.2"
},
diff --git a/addons/ondevice-backgrounds/package.json b/addons/ondevice-backgrounds/package.json
index d59f8ed2238f..f48de7a2daf0 100644
--- a/addons/ondevice-backgrounds/package.json
+++ b/addons/ondevice-backgrounds/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-ondevice-backgrounds",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A storybook addon to show different backgrounds for your preview",
"keywords": [
"addon",
@@ -26,7 +26,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"prop-types": "^15.6.2"
},
"peerDependencies": {
diff --git a/addons/ondevice-knobs/package.json b/addons/ondevice-knobs/package.json
index f255b159045d..176a895f3fd2 100644
--- a/addons/ondevice-knobs/package.json
+++ b/addons/ondevice-knobs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-ondevice-knobs",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Display storybook story knobs on your deviced.",
"keywords": [
"addon",
@@ -23,7 +23,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"deep-equal": "^1.0.1",
"prop-types": "^15.6.2",
"react-native-color-picker": "^0.4.0",
@@ -32,7 +32,7 @@
"react-native-switch": "^1.5.0"
},
"peerDependencies": {
- "@storybook/addon-knobs": "4.1.0-alpha.8",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
"react": "*",
"react-native": "*"
}
diff --git a/addons/ondevice-notes/package.json b/addons/ondevice-notes/package.json
index 01611f967167..7b1c7bb51fde 100644
--- a/addons/ondevice-notes/package.json
+++ b/addons/ondevice-notes/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-ondevice-notes",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Write notes for your Storybook stories.",
"keywords": [
"addon",
@@ -21,7 +21,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"prop-types": "^15.6.2",
"react-native-simple-markdown": "^1.1.0"
},
diff --git a/addons/options/README.md b/addons/options/README.md
index e678f0eb9dfd..4de59b4ac8db 100644
--- a/addons/options/README.md
+++ b/addons/options/README.md
@@ -137,7 +137,7 @@ To install type definitions: `npm install -D @types/storybook__addon-options`
Make sure you also have the type definitions installed for the following libs:
- - node
- - react
+- node
+- react
You can install them using `npm install -D @types/node @types/react`, assuming you are using Typescript >2.0.
diff --git a/addons/options/package.json b/addons/options/package.json
index 2446436aee16..7698db65c715 100644
--- a/addons/options/package.json
+++ b/addons/options/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-options",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Options addon for storybook",
"keywords": [
"addon",
@@ -23,7 +23,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"util-deprecate": "^1.0.2"
},
"peerDependencies": {
diff --git a/addons/storyshots/storyshots-core/package.json b/addons/storyshots/storyshots-core/package.json
index e05e79c91271..a90b42b7ef2b 100644
--- a/addons/storyshots/storyshots-core/package.json
+++ b/addons/storyshots/storyshots-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "StoryShots is a Jest Snapshot Testing Addon for Storybook.",
"keywords": [
"addon",
@@ -28,17 +28,17 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
"glob": "^7.1.3",
"global": "^4.3.2",
"jest-specific-snapshot": "^1.0.0",
"read-pkg-up": "^4.0.0"
},
"devDependencies": {
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/react": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/react": "4.1.0-alpha.9",
"enzyme-to-json": "^3.3.4",
"react": "^16.6.0"
}
diff --git a/addons/storyshots/storyshots-puppeteer/package.json b/addons/storyshots/storyshots-puppeteer/package.json
index 3a43d102c91a..1afc7d1f0f84 100644
--- a/addons/storyshots/storyshots-puppeteer/package.json
+++ b/addons/storyshots/storyshots-puppeteer/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots-puppeteer",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Image snappshots addition to StoryShots base on puppeteer",
"keywords": [
"addon",
@@ -25,11 +25,11 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/node-logger": "4.1.0-alpha.8",
+ "@storybook/node-logger": "4.1.0-alpha.9",
"jest-image-snapshot": "^2.6.0",
"puppeteer": "^1.9.0"
},
"peerDependencies": {
- "@storybook/addon-storyshots": "4.1.0-alpha.8"
+ "@storybook/addon-storyshots": "4.1.0-alpha.9"
}
}
diff --git a/addons/storysource/package.json b/addons/storysource/package.json
index 49fd232c2be1..937a861df27b 100644
--- a/addons/storysource/package.json
+++ b/addons/storysource/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Stories addon for storybook",
"keywords": [
"addon",
@@ -25,8 +25,8 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
"estraverse": "^4.2.0",
"loader-utils": "^1.1.0",
"prettier": "^1.14.3",
diff --git a/addons/viewport/package.json b/addons/viewport/package.json
index 48911270a143..43bd38a6f94d 100644
--- a/addons/viewport/package.json
+++ b/addons/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook addon to change the viewport size to mobile",
"keywords": [
"addon",
@@ -24,9 +24,9 @@
},
"dependencies": {
"@emotion/styled": "^0.10.6",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"global": "^4.3.2",
"prop-types": "^15.6.2",
"util-deprecate": "^1.0.2"
diff --git a/app/angular/package.json b/app/angular/package.json
index b48a79edf600..d6735803d31e 100644
--- a/app/angular/package.json
+++ b/app/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Angular: Develop Angular Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -29,8 +29,8 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
- "@storybook/node-logger": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
+ "@storybook/node-logger": "4.1.0-alpha.9",
"angular2-template-loader": "^0.6.2",
"core-js": "^2.5.7",
"fork-ts-checker-webpack-plugin": "^0.4.14",
diff --git a/app/ember/package.json b/app/ember/package.json
index 71af9744c257..c6ade3f2c895 100644
--- a/app/ember/package.json
+++ b/app/ember/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/ember",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybooks/storybook/tree/master/app/ember",
"publishConfig": {
@@ -27,7 +27,7 @@
"dependencies": {
"@babel/runtime": "^7.1.2",
"@ember/test-helpers": "^1.0.0",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"react": "^16.6.0",
diff --git a/app/html/package.json b/app/html/package.json
index ca6b4de8c18e..eb3d4a164532 100644
--- a/app/html/package.json
+++ b/app/html/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/html",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -28,7 +28,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"html-loader": "^0.5.5",
diff --git a/app/marko/package.json b/app/marko/package.json
index 95758035eb8f..0de392162515 100644
--- a/app/marko/package.json
+++ b/app/marko/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/marko",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Marko: Develop Marko Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -29,7 +29,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"marko-loader": "^1.3.3",
diff --git a/app/mithril/package.json b/app/mithril/package.json
index e41849df12e1..2f6ce9a131da 100644
--- a/app/mithril/package.json
+++ b/app/mithril/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/mithril",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Mithril: Develop Mithril Component in isolation.",
"keywords": [
"storybook"
@@ -30,7 +30,7 @@
"dependencies": {
"@babel/plugin-transform-react-jsx": "^7.0.0",
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"react": "^16.6.0",
diff --git a/app/polymer/package.json b/app/polymer/package.json
index 8d4601bc0342..6cf6a52200a4 100644
--- a/app/polymer/package.json
+++ b/app/polymer/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/polymer",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Polymer: Develop Polymer components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -29,7 +29,7 @@
"dependencies": {
"@babel/polyfill": "^7.0.0",
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"@webcomponents/webcomponentsjs": "^1.2.0",
"common-tags": "^1.8.0",
"global": "^4.3.2",
diff --git a/app/react-native/package.json b/app/react-native/package.json
index cc25c4f8ce25..46cc5fd81b99 100644
--- a/app/react-native/package.json
+++ b/app/react-native/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react-native",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A better way to develop React Native Components for your app",
"keywords": [
"react",
@@ -28,12 +28,12 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/channel-websocket": "4.1.0-alpha.8",
- "@storybook/channels": "4.1.0-alpha.8",
- "@storybook/core": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
- "@storybook/ui": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/channel-websocket": "4.1.0-alpha.9",
+ "@storybook/channels": "4.1.0-alpha.9",
+ "@storybook/core": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "@storybook/ui": "4.1.0-alpha.9",
"babel-loader": "^8.0.4",
"babel-plugin-macros": "^2.4.2",
"babel-plugin-syntax-async-functions": "^6.13.0",
diff --git a/app/react/package.json b/app/react/package.json
index bac12d10e43b..c1fa81378938 100644
--- a/app/react/package.json
+++ b/app/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -33,8 +33,8 @@
"@babel/preset-react": "^7.0.0",
"@babel/runtime": "^7.1.2",
"@emotion/styled": "^0.10.6",
- "@storybook/core": "4.1.0-alpha.8",
- "@storybook/node-logger": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
+ "@storybook/node-logger": "4.1.0-alpha.9",
"@svgr/webpack": "^4.0.3",
"babel-plugin-named-asset-import": "^0.2.3",
"babel-plugin-react-docgen": "^2.0.0",
diff --git a/app/riot/package.json b/app/riot/package.json
index afcddfc52344..acccd27113e6 100644
--- a/app/riot/package.json
+++ b/app/riot/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/riot",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for riot.js: View riot snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -28,7 +28,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"raw-loader": "^0.5.1",
diff --git a/app/svelte/package.json b/app/svelte/package.json
index bc35ec6322ca..4ca2b0e8e7e2 100644
--- a/app/svelte/package.json
+++ b/app/svelte/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/svelte",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -28,7 +28,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"react": "^16.6.0",
diff --git a/app/vue/package.json b/app/vue/package.json
index 1feec061edeb..09908c51d7eb 100644
--- a/app/vue/package.json
+++ b/app/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/vue",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -29,7 +29,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@storybook/core": "4.1.0-alpha.8",
+ "@storybook/core": "4.1.0-alpha.9",
"common-tags": "^1.8.0",
"global": "^4.3.2",
"react": "^16.6.0",
diff --git a/docs/src/pages/configurations/typescript-config/index.md b/docs/src/pages/configurations/typescript-config/index.md
index d30d947d4188..744baf84241d 100644
--- a/docs/src/pages/configurations/typescript-config/index.md
+++ b/docs/src/pages/configurations/typescript-config/index.md
@@ -82,6 +82,7 @@ When using latest create-react-app (CRA 2.0), Babel 7 has native TypeScript supp
```bash
yarn add -D @types/storybook__react # typings
```
+
### Setting up TypeScript to work with Storybook
We first have to use the [custom Webpack config in full control mode, extending default configs](/configurations/custom-webpack-config/#full-control-mode--default) by creating a `webpack.config.js` file in our Storybook configuration directory (by default, it’s `.storybook`):
@@ -92,14 +93,16 @@ module.exports = (baseConfig, env, config) => {
test: /\.(ts|tsx)$/,
loader: require.resolve('babel-loader'),
options: {
- presets: [['react-app', { flow: false, typescript: true }]]
- }
+ presets: [['react-app', { flow: false, typescript: true }]],
+ },
});
config.resolve.extensions.push('.ts', '.tsx');
return config;
};
```
+
### `tsconfig.json`
+
The default `tsconfig.json` that comes with CRA works great. If your stories are outside the `src` folder, for example the `stories` folder in root, then `rootDirs": ["src", "stories"]` needs to be added to be added to `compilerOptions` so it knows what folders to compile. Make sure `jsx` is set to preserve. Should be unchanged.
## Import tsx stories
@@ -109,9 +112,12 @@ Change `config.ts` inside the Storybook config directory (by default, it’s `.s
```js
// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.tsx$/);
-configure(() => {
- req.keys().forEach(filename => req(filename));
-}, module);
+
+function loadStories() {
+ req.keys().forEach(req);
+}
+
+configure(loadStories, module);
```
## Using TypeScript with the TSDocgen addon
@@ -224,12 +230,12 @@ This is an example `jest.config.js` file for jest:
```js
module.exports = {
- transform: {
- ".(ts|tsx)": "ts-jest",
- },
- testPathIgnorePatterns: ["/node_modules/", "/lib/"],
- testRegex: "(/test/.*|\\.(test|spec))\\.(ts|tsx|js)$",
- moduleFileExtensions: ["ts", "tsx", "js", "json"],
+ transform: {
+ '.(ts|tsx)': 'ts-jest',
+ },
+ testPathIgnorePatterns: ['/node_modules/', '/lib/'],
+ testRegex: '(/test/.*|\\.(test|spec))\\.(ts|tsx|js)$',
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'json'],
};
```
diff --git a/examples/angular-cli/package.json b/examples/angular-cli/package.json
index bd9196246faf..5a95725f3558 100644
--- a/examples/angular-cli/package.json
+++ b/examples/angular-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-cli",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"license": "MIT",
"scripts": {
@@ -33,18 +33,18 @@
"@angular-devkit/build-angular": "^0.10.3",
"@angular/cli": "^7.0.3",
"@angular/compiler-cli": "^7.0.1",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-jest": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/angular": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-jest": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/angular": "4.1.0-alpha.9",
"@types/core-js": "^2.5.0",
"@types/jest": "^23.3.9",
"@types/node": "~10.12.1",
diff --git a/examples/cra-kitchen-sink/package.json b/examples/cra-kitchen-sink/package.json
index f3dd96dda4f7..1781cfa85df1 100644
--- a/examples/cra-kitchen-sink/package.json
+++ b/examples/cra-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "cra-kitchen-sink",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build": "react-scripts build",
@@ -19,21 +19,21 @@
},
"devDependencies": {
"@emotion/snapshot-serializer": "^0.8.2",
- "@storybook/addon-a11y": "4.1.0-alpha.8",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-events": "4.1.0-alpha.8",
- "@storybook/addon-info": "4.1.0-alpha.8",
- "@storybook/addon-jest": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/client-logger": "4.1.0-alpha.8",
- "@storybook/react": "4.1.0-alpha.8",
+ "@storybook/addon-a11y": "4.1.0-alpha.9",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-events": "4.1.0-alpha.9",
+ "@storybook/addon-info": "4.1.0-alpha.9",
+ "@storybook/addon-jest": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/client-logger": "4.1.0-alpha.9",
+ "@storybook/react": "4.1.0-alpha.9",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.6.0",
"enzyme-to-json": "^3.3.4",
diff --git a/examples/ember-cli/package.json b/examples/ember-cli/package.json
index c7e5e37d985d..cd2a4ef99cee 100644
--- a/examples/ember-cli/package.json
+++ b/examples/ember-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "ember-example",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build": "ember build",
@@ -11,18 +11,18 @@
},
"devDependencies": {
"@babel/core": "^7.1.2",
- "@storybook/addon-a11y": "4.1.0-alpha.8",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/ember": "4.1.0-alpha.8",
+ "@storybook/addon-a11y": "4.1.0-alpha.9",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/ember": "4.1.0-alpha.9",
"babel-loader": "^8",
"broccoli-asset-rev": "^3.0.0",
"cross-env": "^5.2.0",
diff --git a/examples/html-kitchen-sink/package.json b/examples/html-kitchen-sink/package.json
index d9d62612a06c..f13cdc4e66f9 100644
--- a/examples/html-kitchen-sink/package.json
+++ b/examples/html-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "html-kitchen-sink",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"description": "",
"keywords": [],
@@ -13,23 +13,23 @@
"storybook": "start-storybook -p 9006"
},
"devDependencies": {
- "@storybook/addon-a11y": "4.1.0-alpha.8",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-events": "4.1.0-alpha.8",
- "@storybook/addon-jest": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/core": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
- "@storybook/html": "4.1.0-alpha.8",
+ "@storybook/addon-a11y": "4.1.0-alpha.9",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-events": "4.1.0-alpha.9",
+ "@storybook/addon-jest": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/core": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "@storybook/html": "4.1.0-alpha.9",
"eventemitter3": "^3.1.0",
"format-json": "^1.0.3",
"global": "^4.3.2",
diff --git a/examples/marko-cli/package.json b/examples/marko-cli/package.json
index d20d9715f33e..5a5635461d3a 100644
--- a/examples/marko-cli/package.json
+++ b/examples/marko-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "marko-cli",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"description": "Demo of how to build an app using marko-starter",
"repository": {
@@ -22,12 +22,12 @@
"marko-starter": "^2.0.4"
},
"devDependencies": {
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/marko": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/marko": "4.1.0-alpha.9",
"prettier": "^1.14.3",
"webpack": "^4.23.1"
}
diff --git a/examples/mithril-kitchen-sink/package.json b/examples/mithril-kitchen-sink/package.json
index 802ed57b3eeb..6681f3f48628 100644
--- a/examples/mithril-kitchen-sink/package.json
+++ b/examples/mithril-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "mithril-example",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build-storybook": "build-storybook",
@@ -10,18 +10,18 @@
"mithril": "^1.1.6"
},
"devDependencies": {
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/mithril": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/mithril": "4.1.0-alpha.9",
"webpack": "^4.23.1"
}
}
diff --git a/examples/official-storybook/package.json b/examples/official-storybook/package.json
index 1e2fce24ac57..da53952ed16d 100644
--- a/examples/official-storybook/package.json
+++ b/examples/official-storybook/package.json
@@ -1,6 +1,6 @@
{
"name": "official-storybook",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build-storybook": "build-storybook -c ./ -s built-storybooks",
@@ -16,28 +16,28 @@
"@emotion/provider": "^0.11.2",
"@emotion/snapshot-serializer": "^0.8.2",
"@emotion/styled": "^0.10.6",
- "@storybook/addon-a11y": "4.1.0-alpha.8",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-cssresources": "4.1.0-alpha.8",
- "@storybook/addon-events": "4.1.0-alpha.8",
- "@storybook/addon-graphql": "4.1.0-alpha.8",
- "@storybook/addon-info": "4.1.0-alpha.8",
- "@storybook/addon-jest": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storyshots-puppeteer": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
- "@storybook/node-logger": "4.1.0-alpha.8",
- "@storybook/react": "4.1.0-alpha.8",
+ "@storybook/addon-a11y": "4.1.0-alpha.9",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-cssresources": "4.1.0-alpha.9",
+ "@storybook/addon-events": "4.1.0-alpha.9",
+ "@storybook/addon-graphql": "4.1.0-alpha.9",
+ "@storybook/addon-info": "4.1.0-alpha.9",
+ "@storybook/addon-jest": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots-puppeteer": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "@storybook/node-logger": "4.1.0-alpha.9",
+ "@storybook/react": "4.1.0-alpha.9",
"cors": "^2.8.4",
"cross-env": "^5.2.0",
"enzyme-to-json": "^3.3.4",
diff --git a/examples/polymer-cli/package.json b/examples/polymer-cli/package.json
index 4a0366f7bb2f..600dc5fcff25 100644
--- a/examples/polymer-cli/package.json
+++ b/examples/polymer-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "polymer-cli",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build-storybook": "build-storybook",
@@ -9,15 +9,15 @@
},
"dependencies": {
"@polymer/polymer": "^2.6.0",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/polymer": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/polymer": "4.1.0-alpha.9",
"@webcomponents/webcomponentsjs": "^1.2.0",
"global": "^4.3.2",
"lit-html": "^0.12.0",
diff --git a/examples/riot-kitchen-sink/package.json b/examples/riot-kitchen-sink/package.json
index 5577b7fdaf2a..1c5cde341ce1 100644
--- a/examples/riot-kitchen-sink/package.json
+++ b/examples/riot-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "riot-example",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
@@ -15,18 +15,18 @@
},
"devDependencies": {
"@babel/core": "^7.1.2",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/riot": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/riot": "4.1.0-alpha.9",
"babel-loader": "^8.0.4",
"cross-env": "^5.2.0",
"file-loader": "^2.0.0",
diff --git a/examples/svelte-kitchen-sink/package.json b/examples/svelte-kitchen-sink/package.json
index e63dae7f1e3a..8372c1c4978e 100644
--- a/examples/svelte-kitchen-sink/package.json
+++ b/examples/svelte-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "svelte-example",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build-storybook": "build-storybook -s public",
@@ -10,17 +10,17 @@
"global": "^4.3.2"
},
"devDependencies": {
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/svelte": "4.1.0-alpha.8"
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/svelte": "4.1.0-alpha.9"
}
}
diff --git a/examples/vue-kitchen-sink/package.json b/examples/vue-kitchen-sink/package.json
index 19d2804e82b8..e79c2d5e94cc 100644
--- a/examples/vue-kitchen-sink/package.json
+++ b/examples/vue-kitchen-sink/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-example",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"scripts": {
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
@@ -14,18 +14,18 @@
},
"devDependencies": {
"@babel/core": "^7.1.2",
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-backgrounds": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addon-storysource": "4.1.0-alpha.8",
- "@storybook/addon-viewport": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/vue": "4.1.0-alpha.8",
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-backgrounds": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addon-storysource": "4.1.0-alpha.9",
+ "@storybook/addon-viewport": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/vue": "4.1.0-alpha.9",
"babel-core": "^7.0.0-bridge.0",
"babel-loader": "^8.0.4",
"cross-env": "^5.2.0",
diff --git a/lerna.json b/lerna.json
index d8022ada9a7c..cb1e98e0857e 100644
--- a/lerna.json
+++ b/lerna.json
@@ -10,5 +10,5 @@
"npmClient": "yarn",
"useWorkspaces": true,
"registry": "https://registry.npmjs.org",
- "version": "4.1.0-alpha.8"
+ "version": "4.1.0-alpha.9"
}
diff --git a/lib/addons/package.json b/lib/addons/package.json
index 9385c90175db..696c30134296 100644
--- a/lib/addons/package.json
+++ b/lib/addons/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addons",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook addons store",
"keywords": [
"storybook"
@@ -23,7 +23,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/channels": "4.1.0-alpha.8",
+ "@storybook/channels": "4.1.0-alpha.9",
"global": "^4.3.2",
"util-deprecate": "^1.0.2"
}
diff --git a/lib/channel-postmessage/package.json b/lib/channel-postmessage/package.json
index f7ce41da1915..107acf7d9856 100644
--- a/lib/channel-postmessage/package.json
+++ b/lib/channel-postmessage/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channel-postmessage",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "",
"keywords": [
"storybook"
@@ -23,7 +23,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/channels": "4.1.0-alpha.8",
+ "@storybook/channels": "4.1.0-alpha.9",
"global": "^4.3.2",
"telejson": "^1.0.0"
}
diff --git a/lib/channel-websocket/package.json b/lib/channel-websocket/package.json
index 024ddf4b73dc..a81a09da0506 100644
--- a/lib/channel-websocket/package.json
+++ b/lib/channel-websocket/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channel-websocket",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "",
"keywords": [
"storybook"
@@ -23,7 +23,7 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/channels": "4.1.0-alpha.8",
+ "@storybook/channels": "4.1.0-alpha.9",
"global": "^4.3.2",
"json-fn": "^1.1.1"
}
diff --git a/lib/channels/package.json b/lib/channels/package.json
index 614cf7fbab1a..98cd9e03583e 100644
--- a/lib/channels/package.json
+++ b/lib/channels/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "",
"keywords": [
"storybook"
diff --git a/lib/cli/package.json b/lib/cli/package.json
index f2db16bcd03e..cbd3ab4b0292 100644
--- a/lib/cli/package.json
+++ b/lib/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
"keywords": [
"cli",
@@ -34,7 +34,7 @@
"@babel/preset-env": "^7.1.0",
"@babel/register": "^7.0.0",
"@babel/runtime": "^7.1.2",
- "@storybook/codemod": "4.1.0-alpha.8",
+ "@storybook/codemod": "4.1.0-alpha.9",
"chalk": "^2.4.1",
"child-process-promise": "^2.2.1",
"commander": "^2.19.0",
@@ -48,29 +48,29 @@
"update-notifier": "^2.5.0"
},
"devDependencies": {
- "@storybook/addon-actions": "4.1.0-alpha.8",
- "@storybook/addon-centered": "4.1.0-alpha.8",
- "@storybook/addon-graphql": "4.1.0-alpha.8",
- "@storybook/addon-info": "4.1.0-alpha.8",
- "@storybook/addon-knobs": "4.1.0-alpha.8",
- "@storybook/addon-links": "4.1.0-alpha.8",
- "@storybook/addon-notes": "4.1.0-alpha.8",
- "@storybook/addon-options": "4.1.0-alpha.8",
- "@storybook/addon-storyshots": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/angular": "4.1.0-alpha.8",
- "@storybook/channel-postmessage": "4.1.0-alpha.8",
- "@storybook/channel-websocket": "4.1.0-alpha.8",
- "@storybook/channels": "4.1.0-alpha.8",
- "@storybook/ember": "4.1.0-alpha.8",
- "@storybook/html": "4.1.0-alpha.8",
- "@storybook/marko": "4.1.0-alpha.8",
- "@storybook/mithril": "4.1.0-alpha.8",
- "@storybook/polymer": "4.1.0-alpha.8",
- "@storybook/react": "4.1.0-alpha.8",
- "@storybook/react-native": "4.1.0-alpha.8",
- "@storybook/riot": "4.1.0-alpha.8",
- "@storybook/ui": "4.1.0-alpha.8",
- "@storybook/vue": "4.1.0-alpha.8"
+ "@storybook/addon-actions": "4.1.0-alpha.9",
+ "@storybook/addon-centered": "4.1.0-alpha.9",
+ "@storybook/addon-graphql": "4.1.0-alpha.9",
+ "@storybook/addon-info": "4.1.0-alpha.9",
+ "@storybook/addon-knobs": "4.1.0-alpha.9",
+ "@storybook/addon-links": "4.1.0-alpha.9",
+ "@storybook/addon-notes": "4.1.0-alpha.9",
+ "@storybook/addon-options": "4.1.0-alpha.9",
+ "@storybook/addon-storyshots": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/angular": "4.1.0-alpha.9",
+ "@storybook/channel-postmessage": "4.1.0-alpha.9",
+ "@storybook/channel-websocket": "4.1.0-alpha.9",
+ "@storybook/channels": "4.1.0-alpha.9",
+ "@storybook/ember": "4.1.0-alpha.9",
+ "@storybook/html": "4.1.0-alpha.9",
+ "@storybook/marko": "4.1.0-alpha.9",
+ "@storybook/mithril": "4.1.0-alpha.9",
+ "@storybook/polymer": "4.1.0-alpha.9",
+ "@storybook/react": "4.1.0-alpha.9",
+ "@storybook/react-native": "4.1.0-alpha.9",
+ "@storybook/riot": "4.1.0-alpha.9",
+ "@storybook/ui": "4.1.0-alpha.9",
+ "@storybook/vue": "4.1.0-alpha.9"
}
}
diff --git a/lib/client-logger/package.json b/lib/client-logger/package.json
index b6665735b99f..723bf159700f 100644
--- a/lib/client-logger/package.json
+++ b/lib/client-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "",
"keywords": [
"storybook"
diff --git a/lib/codemod/package.json b/lib/codemod/package.json
index c7d311dcaa63..4367c58b4976 100644
--- a/lib/codemod/package.json
+++ b/lib/codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "A collection of codemod scripts written with JSCodeshift",
"keywords": [
"storybook"
diff --git a/lib/components/package.json b/lib/components/package.json
index 1b166505d037..c3f1223d160a 100644
--- a/lib/components/package.json
+++ b/lib/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/components",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Core Storybook Components",
"keywords": [
"storybook"
@@ -29,8 +29,8 @@
"@emotion/provider": "^0.11.2",
"@emotion/styled": "^0.10.6",
"@reach/router": "^1.1.1",
- "@storybook/core-events": "4.1.0-alpha.8",
- "@storybook/addons": "4.1.0-alpha.8",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "@storybook/addons": "4.1.0-alpha.9",
"global": "^4.3.2",
"immer": "^1.5.0",
"js-beautify": "^1.8.6",
diff --git a/lib/core-events/package.json b/lib/core-events/package.json
index d20b5d2ea8b0..04fe43bfb319 100644
--- a/lib/core-events/package.json
+++ b/lib/core-events/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Event names used in storybook core",
"keywords": [
"storybook"
diff --git a/lib/core/package.json b/lib/core/package.json
index e45c65c372b1..2b70c87b10d1 100644
--- a/lib/core/package.json
+++ b/lib/core/package.json
@@ -1,14 +1,11 @@
{
"name": "@storybook/core",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybooks/storybook/tree/master/lib/core",
- "publishConfig": {
- "access": "public"
- },
"bugs": {
"url": "https://github.com/storybooks/storybook/issues"
},
@@ -30,13 +27,12 @@
"@emotion/core": "^0.13.1",
"@emotion/provider": "^0.11.2",
"@emotion/styled": "^0.10.6",
- "@ndelangen/html-webpack-harddisk-plugin": "^0.2.0",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/channel-postmessage": "4.1.0-alpha.8",
- "@storybook/client-logger": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
- "@storybook/node-logger": "4.1.0-alpha.8",
- "@storybook/ui": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/channel-postmessage": "4.1.0-alpha.9",
+ "@storybook/client-logger": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
+ "@storybook/node-logger": "4.1.0-alpha.9",
+ "@storybook/ui": "4.1.0-alpha.9",
"airbnb-js-shims": "^1 || ^2",
"autoprefixer": "^9.3.1",
"babel-plugin-macros": "^2.4.2",
@@ -53,10 +49,12 @@
"detect-port": "^1.2.3",
"dotenv-webpack": "^1.5.7",
"ejs": "^2.6.1",
+ "eventemitter3": "^3.1.0",
"express": "^4.16.3",
"file-loader": "^2.0.0",
"file-system-cache": "^1.0.5",
"find-cache-dir": "^2.0.0",
+ "fs-extra": "^7.0.1",
"global": "^4.3.2",
"html-webpack-plugin": "^4.0.0-beta.2",
"inquirer": "^6.2.0",
@@ -97,5 +95,8 @@
"babel-loader": "^7.0.0 || ^8.0.0",
"react": ">=16.3.0",
"react-dom": ">=16.3.0"
+ },
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/lib/core/src/client/preview/story_store.js b/lib/core/src/client/preview/story_store.js
index bc616b669a46..d367114d770f 100644
--- a/lib/core/src/client/preview/story_store.js
+++ b/lib/core/src/client/preview/story_store.js
@@ -1,6 +1,6 @@
/* eslint no-underscore-dangle: 0 */
import { window, history } from 'global';
-import { EventEmitter } from 'events';
+import EventEmitter from 'eventemitter3';
import qs from 'qs';
import mergeWith from 'lodash.mergewith';
import Events from '@storybook/core-events';
diff --git a/lib/core/src/server/build-dev.js b/lib/core/src/server/build-dev.js
index 3956fc8e0725..ea9d878f5222 100644
--- a/lib/core/src/server/build-dev.js
+++ b/lib/core/src/server/build-dev.js
@@ -3,7 +3,7 @@ import https from 'https';
import ip from 'ip';
import favicon from 'serve-favicon';
import path from 'path';
-import fs from 'fs';
+import fs from 'fs-extra';
import chalk from 'chalk';
import { logger, colors } from '@storybook/node-logger';
import fetch from 'node-fetch';
@@ -21,12 +21,21 @@ import { getDevCli } from './cli';
const defaultFavIcon = require.resolve('./public/favicon.ico');
+const cacheDir = findCacheDir({ name: 'storybook' });
const cache = Cache({
- basePath: findCacheDir({ name: 'storybook' }),
+ basePath: cacheDir,
ns: 'storybook', // Optional. A grouping namespace for items.
});
-function getServer(app, options) {
+const writeStats = async (name, stats) => {
+ await fs.writeFile(
+ path.join(cacheDir, `${name}-stats.json`),
+ JSON.stringify(stats.toJson(), null, 2),
+ 'utf8'
+ );
+};
+
+async function getServer(app, options) {
if (!options.https) {
return app;
}
@@ -42,37 +51,40 @@ function getServer(app, options) {
}
const sslOptions = {
- ca: (options.sslCa || []).map(ca => fs.readFileSync(ca, 'utf-8')),
- cert: fs.readFileSync(options.sslCert, 'utf-8'),
- key: fs.readFileSync(options.sslKey, 'utf-8'),
+ ca: await Promise.all((options.sslCa || []).map(ca => fs.readFile(ca, 'utf-8'))),
+ cert: await fs.readFile(options.sslCert, 'utf-8'),
+ key: await fs.readFile(options.sslKey, 'utf-8'),
};
return https.createServer(sslOptions, app);
}
-function applyStatic(app, options) {
+async function applyStatic(app, options) {
const { staticDir } = options;
+
let hasCustomFavicon = false;
- if (staticDir) {
- staticDir.forEach(dir => {
- const staticPath = path.resolve(dir);
+ if (staticDir && staticDir.length) {
+ await Promise.all(
+ staticDir.map(async dir => {
+ const staticPath = path.resolve(dir);
- if (!fs.existsSync(staticPath)) {
- logger.error(`Error: no such directory to load static files: ${staticPath}`);
- process.exit(-1);
- }
+ if (await !fs.exists(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 }));
+ logger.info(`=> Loading static files from: ${staticPath} .`);
+ app.use(express.static(staticPath, { index: false }));
- const faviconPath = path.resolve(staticPath, 'favicon.ico');
+ const faviconPath = path.resolve(staticPath, 'favicon.ico');
- if (fs.existsSync(faviconPath)) {
- hasCustomFavicon = true;
- app.use(favicon(faviconPath));
- }
- });
+ if (await fs.exists(faviconPath)) {
+ hasCustomFavicon = true;
+ app.use(favicon(faviconPath));
+ }
+ })
+ );
}
if (!hasCustomFavicon) {
@@ -137,9 +149,9 @@ export async function buildDevStandalone(options) {
}
const app = express();
- const server = getServer(app, options);
+ const server = await getServer(app, options);
- applyStatic(app, options);
+ await applyStatic(app, options);
const storybookMiddleware = await storybook(options);
@@ -148,7 +160,7 @@ export async function buildDevStandalone(options) {
const serverListening = listenToServer(server, listenAddr);
const [
- { iframeStats, managerStats, managerTotalTime, iframeTotalTime },
+ { previewStats, managerStats, managerTotalTime, previewTotalTime },
updateInfo,
] = await Promise.all([
webpackValid,
@@ -214,7 +226,7 @@ export async function buildDevStandalone(options) {
${colors.green(`Storybook ${chalk.bold(options.packageJson.version)} started`)}
${chalk.gray(stripIndents`
${chalk.underline(prettyTime(managerTotalTime))} for manager and ${chalk.underline(
- prettyTime(iframeTotalTime)
+ prettyTime(previewTotalTime)
)} for preview`)}
${serveMessage.toString()}${updateMessage ? `\n\n${updateMessage}` : ''}
@@ -224,7 +236,11 @@ export async function buildDevStandalone(options) {
);
if (options.smokeTest) {
- process.exit(iframeStats.toJson().warnings.length ? 1 : 0);
+ await writeStats('preview', previewStats);
+ await writeStats('manager', managerStats);
+ logger.info(`stats written to => ${chalk.cyan(path.join(cacheDir, '[name].json'))}`);
+
+ process.exit(previewStats.toJson().warnings.length ? 1 : 0);
process.exit(managerStats.toJson().warnings.length ? 1 : 0);
} else if (!options.ci) {
opn(address).catch(() => {
diff --git a/lib/core/src/server/build-static.js b/lib/core/src/server/build-static.js
index c656cee0e91d..d89080b58972 100644
--- a/lib/core/src/server/build-static.js
+++ b/lib/core/src/server/build-static.js
@@ -1,4 +1,4 @@
-import fs from 'fs';
+import fs from 'fs-extra';
import path from 'path';
import webpack from 'webpack';
import shelljs from 'shelljs';
@@ -9,23 +9,50 @@ import { getProdCli } from './cli';
import loadConfig from './config';
import loadManagerConfig from './manager/manager-config';
-const defaultFavIcon = require.resolve('./public/favicon.ico');
-
export async function buildStaticStandalone(options) {
- const { staticDir, watch, configDir, packageJson } = options;
+ const { staticDir, configDir, packageJson, watch } = options;
const configType = 'PRODUCTION';
const outputDir = path.join(process.cwd(), options.outputDir);
+ const dllPath = path.join(__dirname, '../../dll/*');
+ const defaultFavIcon = require.resolve('./public/favicon.ico');
// create output directory if not exists
shelljs.mkdir('-p', outputDir);
+ shelljs.mkdir('-p', path.join(outputDir, 'sb_dll'));
+
// clear the static dir
shelljs.rm('-rf', path.join(outputDir, 'static'));
shelljs.cp(defaultFavIcon, outputDir);
- logger.info('building manager..');
+ logger.info('clean outputDir..');
+ shelljs.rm('-rf', path.join(outputDir, 'static'));
+
+ shelljs.cp(defaultFavIcon, outputDir);
+
+ // copy all static files
+ if (staticDir && staticDir.length) {
+ await Promise.all(
+ staticDir.map(async dir => {
+ const staticPath = path.resolve(dir);
+
+ if (await !fs.exists(staticPath)) {
+ logger.error(`Error: no such directory to load static files: ${staticPath}`);
+ process.exit(-1);
+ }
+ shelljs.cp('-r', `${dir}/!(index.html)`, outputDir);
+ })
+ );
+ logger.info(`=> Copying static files from: ${staticDir.join(', ')}`);
+ }
+
+ logger.info(`=> Copying prebuild dll's..`);
+ shelljs.cp('-r', dllPath, path.join(outputDir, 'sb_dll'));
+
+ logger.info('=> Building manager..');
const managerStartTime = process.hrtime();
+ logger.info('=> Loading manager config..');
const managerConfig = await loadManagerConfig({
configType,
outputDir,
@@ -33,23 +60,40 @@ export async function buildStaticStandalone(options) {
corePresets: [require.resolve('./manager/manager-preset.js')],
});
- await new Promise((res, rej) => {
- webpack(managerConfig).run((err, stats) => {
- const managerTotalTime = process.hrtime(managerStartTime);
- logger.trace({ message: 'manager built', time: managerTotalTime });
+ logger.info('=> Compiling manager..');
+ await new Promise((resolve, reject) => {
+ webpack(managerConfig).run((error, stats) => {
+ if (error || !stats || stats.hasErrors()) {
+ logger.error('=> Failed to build the manager');
+
+ if (error) {
+ logger.error(error.message);
+ }
- if (stats.hasErrors()) {
- rej(stats);
- } else {
- res(stats);
+ if (stats && (stats.hasErrors() || stats.hasWarnings())) {
+ const { warnings, errors } = stats.toJson();
+
+ errors.forEach(e => logger.error(e));
+ warnings.forEach(e => logger.error(e));
+ }
+
+ process.exitCode = 1;
+ reject(error || stats);
+ return;
}
+
+ logger.trace({ message: '=> manager built', time: process.hrtime(managerStartTime) });
+ stats.toJson().warnings.forEach(e => logger.warn(e));
+
+ resolve(stats);
});
});
- // 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 = await loadConfig({
+ logger.info('=> Building preview..');
+ const previewStartTime = process.hrtime();
+
+ logger.info('=> Loading preview config..');
+ const previewConfig = await loadConfig({
configType,
outputDir,
packageJson,
@@ -58,56 +102,60 @@ export async function buildStaticStandalone(options) {
...options,
});
- // config.output.path = path.resolve(outputDir);
-
- // copy all static files
- if (staticDir) {
- 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}/!(index.html)`, outputDir);
+ if (watch) {
+ logger.info('=> Compiling preview in watch mode..');
+ await new Promise(() => {
+ webpack(previewConfig).watch(
+ {
+ aggregateTimeout: 1,
+ },
+ (error, stats) => {
+ if (!error) {
+ // eslint-disable-next-line no-console
+ console.log(stats.toString({ colors: true }));
+ } else {
+ logger.error(error.message);
+ }
+ }
+ );
+ });
+ } else {
+ logger.info('=> Compiling preview..');
+ await new Promise((resolve, reject) => {
+ webpack(previewConfig).run((error, stats) => {
+ if (error || !stats || stats.hasErrors()) {
+ logger.error('=> Failed to build the preview');
+ process.exitCode = 1;
+
+ if (error) {
+ logger.error(error.message);
+ return reject(error);
+ }
+
+ if (stats && (stats.hasErrors() || stats.hasWarnings())) {
+ const { warnings, errors } = stats.toJson();
+
+ errors.forEach(e => logger.error(e));
+ warnings.forEach(e => logger.error(e));
+ return reject(stats);
+ }
+ }
+
+ logger.trace({ message: '=> Preview built', time: process.hrtime(previewStartTime) });
+ stats.toJson().warnings.forEach(e => logger.warn(e));
+
+ return resolve(stats);
+ });
});
}
- // compile all resources with webpack and write them to the disk.
- return new Promise((resolve, reject) => {
- const previewStartTime = process.hrtime();
-
- 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;
- return reject(err);
- }
-
- const previewTotalTime = process.hrtime(previewStartTime);
- logger.trace({ message: 'preview built', time: previewTotalTime });
-
- return resolve(stats);
- };
-
- logger.info('building preview..');
- const compiler = webpack(config);
-
- if (watch) {
- compiler.watch({}, webpackCb);
- } else {
- compiler.run(webpackCb);
- }
- });
+ logger.info(`=> Output directory: ${outputDir}`);
}
-export async function buildStatic({ packageJson, ...loadOptions }) {
+export function buildStatic({ packageJson, ...loadOptions }) {
const cliOptions = getProdCli(packageJson);
- await buildStaticStandalone({
+ return buildStaticStandalone({
...cliOptions,
...loadOptions,
packageJson,
diff --git a/lib/core/src/server/dev-server.js b/lib/core/src/server/dev-server.js
index 10766dfb4ebc..7fd664eded1c 100644
--- a/lib/core/src/server/dev-server.js
+++ b/lib/core/src/server/dev-server.js
@@ -13,52 +13,59 @@ import loadManagerConfig from './manager/manager-config';
let webpackResolve = () => {};
let webpackReject = () => {};
+const dllPath = path.join(__dirname, '../../dll');
+
export const webpackValid = new Promise((resolve, reject) => {
webpackResolve = resolve;
webpackReject = reject;
});
+const cache = {};
+
export default async function(options) {
const configDir = path.resolve(options.configDir);
const outputDir = path.resolve(options.outputDir || path.join(__dirname, '..', 'public'));
const configType = 'DEVELOPMENT';
- const managerStartTime = process.hrtime();
+ const startTime = process.hrtime();
let managerTotalTime;
+ let previewTotalTime;
- const managerConfig = await loadManagerConfig({
+ const managerPromise = loadManagerConfig({
configType,
outputDir,
configDir,
+ cache,
corePresets: [require.resolve('./manager/manager-preset.js')],
- });
+ }).then(
+ config =>
+ new Promise((resolve, reject) => {
+ webpack(config).watch(
+ {
+ aggregateTimeout: 1,
+ ignored: /node_modules/,
+ },
+ (err, stats) => {
+ managerTotalTime = process.hrtime(startTime);
+ if (err || stats.hasErrors()) {
+ reject(stats);
+ } else {
+ resolve(stats);
+ }
+ }
+ );
+ })
+ );
const iframeConfig = await loadConfig({
configType,
outputDir,
+ cache,
corePresets: [require.resolve('./preview/preview-preset.js')],
overridePresets: [require.resolve('./preview/custom-webpack-preset.js')],
...options,
});
- const managerPromise = new Promise((res, rej) => {
- webpack(managerConfig).watch(
- {
- aggregateTimeout: 1,
- ignored: /node_modules/,
- },
- (err, stats) => {
- managerTotalTime = process.hrtime(managerStartTime);
-
- if (err || stats.hasErrors()) {
- rej(stats);
- } else {
- res(stats);
- }
- }
- );
- });
-
const middlewareFn = getMiddleware(configDir);
// remove the leading '/'
@@ -67,8 +74,6 @@ export default async function(options) {
publicPath = publicPath.slice(1);
}
- const iframeStartTime = process.hrtime();
- let iframeTotalTime;
const iframeCompiler = webpack(iframeConfig);
const devMiddlewareOptions = {
publicPath: iframeConfig.output.publicPath,
@@ -92,30 +97,40 @@ export default async function(options) {
// custom middleware
middlewareFn(router);
- const iframePromise = new Promise((res, rej) => {
+ const previewPromise = new Promise((resolve, reject) => {
webpackDevMiddlewareInstance.waitUntilValid(stats => {
- iframeTotalTime = process.hrtime(iframeStartTime);
+ previewTotalTime = process.hrtime(startTime);
- if (stats.hasErrors()) {
- rej(stats);
+ if (!stats) {
+ reject(new Error('no stats after building iframe'));
+ } else if (stats.hasErrors()) {
+ reject(stats);
} else {
- res(stats);
+ resolve(stats);
}
});
});
- Promise.all([managerPromise, iframePromise])
- .then(([managerStats, iframeStats]) => {
+ Promise.all([managerPromise, previewPromise])
+ .then(([managerStats, previewStats]) => {
router.get('/', (request, response) => {
response.set('Content-Type', 'text/html');
response.sendFile(path.join(`${outputDir}/index.html`));
});
+ router.get(/\/sb_dll\/(.+\.js)$/, (request, response) => {
+ response.set('Content-Type', 'text/javascript');
+ response.sendFile(path.join(`${dllPath}/${request.params[0]}`));
+ });
+ router.get(/\/sb_dll\/(.+\.LICENCE)$/, (request, response) => {
+ response.set('Content-Type', 'text/html');
+ response.sendFile(path.join(`${dllPath}/${request.params[0]}`));
+ });
router.get(/(.+\.js)$/, (request, response) => {
- response.set('Content-Type', 'text/javascript ');
+ response.set('Content-Type', 'text/javascript');
response.sendFile(path.join(`${outputDir}/${request.params[0]}`));
});
- webpackResolve({ iframeStats, managerStats, managerTotalTime, iframeTotalTime });
+ webpackResolve({ previewStats, managerStats, managerTotalTime, previewTotalTime });
})
.catch(e => webpackReject(e));
diff --git a/lib/core/src/server/manager/manager-preset.js b/lib/core/src/server/manager/manager-preset.js
index 91956f8b1531..51123ec73b9d 100644
--- a/lib/core/src/server/manager/manager-preset.js
+++ b/lib/core/src/server/manager/manager-preset.js
@@ -7,7 +7,7 @@ export async function managerWebpack(_, options) {
export async function managerEntries(_, options) {
const { presets } = options;
- const entries = [require.resolve('../common/polyfills')];
+ const entries = [];
const installedAddons = await presets.apply('addons', [], options);
diff --git a/lib/core/src/server/manager/manager-webpack.config.js b/lib/core/src/server/manager/manager-webpack.config.js
index 297b459990e1..d70913b2b01b 100644
--- a/lib/core/src/server/manager/manager-webpack.config.js
+++ b/lib/core/src/server/manager/manager-webpack.config.js
@@ -1,14 +1,20 @@
+import path from 'path';
import webpack from 'webpack';
import Dotenv from 'dotenv-webpack';
import HtmlWebpackPlugin from 'html-webpack-plugin';
-import HtmlWebpackHarddiskPlugin from '@ndelangen/html-webpack-harddisk-plugin';
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
+import findCacheDir from 'find-cache-dir';
+
import { version } from '../../../package.json';
import { getManagerHeadHtml } from '../utils/template';
import { loadEnv, getBabelRuntimePath } from '../config/utils';
-export default ({ configDir, entries, outputDir, configType }) => {
+const coreDirName = path.dirname(require.resolve('@storybook/core/package.json'));
+const context = path.join(coreDirName, '../../node_modules');
+const cacheDir = findCacheDir({ name: 'storybook' });
+
+export default ({ configDir, configType, entries, outputDir, cache }) => {
const { raw, stringified } = loadEnv();
const isProd = configType === 'PRODUCTION';
@@ -23,7 +29,12 @@ export default ({ configDir, entries, outputDir, configType }) => {
filename: '[name].[chunkhash].bundle.js',
publicPath: '',
},
+ cache,
plugins: [
+ new webpack.DllReferencePlugin({
+ context,
+ manifest: path.join(__dirname, '../../../dll/storybook_ui-manifest.json'),
+ }),
new HtmlWebpackPlugin({
filename: `index.html`,
chunksSortMode: 'none',
@@ -34,11 +45,11 @@ export default ({ configDir, entries, outputDir, configType }) => {
files,
options,
version,
+ dlls: ['/sb_dll/storybook_ui_dll.js'],
headHtmlSnippet: getManagerHeadHtml(configDir, process.env),
}),
template: require.resolve(`../templates/index.ejs`),
}),
- new HtmlWebpackHarddiskPlugin(),
new webpack.DefinePlugin({ 'process.env': stringified }),
new CaseSensitivePathsPlugin(),
new Dotenv({ silent: true }),
@@ -52,6 +63,7 @@ export default ({ configDir, entries, outputDir, configType }) => {
'react-dom': require.resolve('react-dom'),
},
},
+ recordsPath: path.join(cacheDir, 'records.json'),
optimization: {
splitChunks: {
chunks: 'all',
diff --git a/lib/core/src/server/preview/iframe-webpack.config.js b/lib/core/src/server/preview/iframe-webpack.config.js
index 56d154b4341b..30ae9cc9cec8 100644
--- a/lib/core/src/server/preview/iframe-webpack.config.js
+++ b/lib/core/src/server/preview/iframe-webpack.config.js
@@ -49,6 +49,7 @@ export default ({
options,
version: packageJson.version,
headHtmlSnippet: getPreviewHeadHtml(configDir, process.env),
+ dlls: [],
bodyHtmlSnippet: getPreviewBodyHtml(),
}),
template: require.resolve(`../templates/index.ejs`),
diff --git a/lib/core/src/server/templates/index.ejs b/lib/core/src/server/templates/index.ejs
index 16dd0158f3dc..514b7be4e6e6 100644
--- a/lib/core/src/server/templates/index.ejs
+++ b/lib/core/src/server/templates/index.ejs
@@ -36,6 +36,10 @@
<% } %>
+<% dlls.forEach(file => { %>
+
+<% }); %>
+
<% files.js.forEach(file => { %>
<% }); %>
diff --git a/lib/node-logger/package.json b/lib/node-logger/package.json
index effc9d6e9250..32c7a7281f27 100644
--- a/lib/node-logger/package.json
+++ b/lib/node-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "",
"keywords": [
"storybook"
diff --git a/lib/ui/package.json b/lib/ui/package.json
index 12f01aec7baf..a813da4d47dd 100644
--- a/lib/ui/package.json
+++ b/lib/ui/package.json
@@ -1,14 +1,11 @@
{
"name": "@storybook/ui",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"description": "Core Storybook UI",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybooks/storybook/tree/master/lib/ui",
- "publishConfig": {
- "access": "public"
- },
"bugs": {
"url": "https://github.com/storybooks/storybook/issues"
},
@@ -20,23 +17,22 @@
"main": "dist/index.js",
"jsnext:main": "src/index.js",
"scripts": {
- "prepare": "node ../../scripts/prepare.js",
- "publish-storybook": "bash ./.scripts/publish_storybook.sh",
- "storybook": "start-storybook -p 9010"
+ "createDlls": "node -r esm ./scripts/createDlls.js",
+ "prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
"@emotion/core": "^0.13.1",
"@emotion/provider": "^0.11.2",
"@emotion/styled": "^0.10.6",
"@reach/router": "^1.1.1",
- "@storybook/addons": "4.1.0-alpha.8",
- "@storybook/client-logger": "4.1.0-alpha.8",
- "@storybook/components": "4.1.0-alpha.8",
- "@storybook/core-events": "4.1.0-alpha.8",
+ "@storybook/addons": "4.1.0-alpha.9",
+ "@storybook/client-logger": "4.1.0-alpha.9",
+ "@storybook/components": "4.1.0-alpha.9",
+ "@storybook/core-events": "4.1.0-alpha.9",
"emotion": "^9.2.8",
- "events": "^3.0.0",
+ "eventemitter3": "^3.1.0",
"fast-deep-equal": "^2.0.1",
- "fuse.js": "^3.2.1",
+ "fuse.js": "^3.3.0",
"global": "^4.3.2",
"history": "^4.7.2",
"keycode": "^2.2.0",
@@ -54,8 +50,15 @@
"react-resize-detector": "^3.1.1",
"to-camel-case": "^1.0.0"
},
+ "devDependencies": {
+ "webpack": "^4.23.1",
+ "terser-webpack-plugin": "^1.1.0"
+ },
"peerDependencies": {
"react": "*",
"react-dom": "*"
+ },
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/lib/ui/scripts/createDlls.js b/lib/ui/scripts/createDlls.js
new file mode 100644
index 000000000000..427b4c0870ba
--- /dev/null
+++ b/lib/ui/scripts/createDlls.js
@@ -0,0 +1,52 @@
+import path from 'path';
+import webpack from 'webpack';
+
+import config from './webpackDllsConfig';
+
+const resolveLocal = dir => path.join(__dirname, dir);
+const webpackAsPromised = c =>
+ new Promise((res, rej) => {
+ webpack(c).run((err, stats) => {
+ if (err || stats.hasErrors() || stats.hasWarnings()) {
+ rej(stats);
+ return;
+ }
+ res(stats);
+ });
+ });
+
+const run = () =>
+ webpackAsPromised(
+ config({
+ entry: {
+ storybook_ui: [
+ 'core-js/fn/array/iterator',
+ 'airbnb-js-shims',
+ 'core-js/es6/symbol',
+ 'react',
+ 'prop-types',
+ 'react-dom',
+ '@storybook/components',
+ '@storybook/addons',
+ '@storybook/core-events',
+ '@emotion/styled',
+ '@emotion/provider',
+ '@emotion/core',
+ resolveLocal('../dist/index.js'),
+ ],
+ },
+ })
+ );
+
+run().then(
+ s => {
+ // eslint-disable-next-line no-console
+ console.log('success: ', s.toString());
+ process.exitCode = 0;
+ },
+ s => {
+ // eslint-disable-next-line no-console
+ console.error('failed: ', s.toString());
+ process.exitCode = 1;
+ }
+);
diff --git a/lib/ui/scripts/webpackDllsConfig.js b/lib/ui/scripts/webpackDllsConfig.js
new file mode 100644
index 000000000000..1e472c18b0d6
--- /dev/null
+++ b/lib/ui/scripts/webpackDllsConfig.js
@@ -0,0 +1,52 @@
+import path from 'path';
+import webpack from 'webpack';
+import TerserPlugin from 'terser-webpack-plugin';
+
+const resolveLocal = dir => path.join(__dirname, dir);
+
+const r = resolveLocal('../../../node_modules');
+const out = resolveLocal('../../core/dll');
+
+export default ({ entry, provided = [] }) => ({
+ name: 'storybook-ui',
+ mode: 'production',
+
+ entry,
+ output: {
+ path: out,
+ filename: '[name]_dll.js',
+ library: '[name]_dll',
+ },
+ externals: provided,
+
+ resolve: {
+ extensions: ['.mjs', '.js', '.jsx', '.json'],
+ modules: [path.join(__dirname, '../../../node_modules')],
+ },
+
+ plugins: [
+ new webpack.ProgressPlugin(),
+ new webpack.DllPlugin({
+ context: r,
+ path: `${out}/[name]-manifest.json`,
+ name: '[name]_dll',
+ }),
+ ],
+ optimization: {
+ concatenateModules: true,
+ portableRecords: true,
+ moduleIds: 'hashed',
+ minimizer: [
+ new TerserPlugin({
+ extractComments: {
+ condition: /^\**!|@preserve|@license|@cc_on/i,
+ filename: file => file.replace('.js', '.LICENCE'),
+ banner: licenseFile => `License information can be found in ${licenseFile}`,
+ },
+ }),
+ ],
+ },
+ performance: {
+ hints: false,
+ },
+});
diff --git a/package.json b/package.json
index ca56d16ca4cf..c815427b6af2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/root",
- "version": "4.1.0-alpha.8",
+ "version": "4.1.0-alpha.9",
"private": true,
"repository": {
"type": "git",
@@ -70,10 +70,10 @@
"babel-eslint": "^10.0.1",
"babel-jest": "^23.6.0",
"babel-loader": "^8.0.4",
+ "babel-plugin-dynamic-import-node": "^2.2.0",
"babel-plugin-emotion": "^9.2.11",
"babel-plugin-macros": "^2.4.2",
"babel-plugin-require-context-hook": "^1.0.0",
- "babel-plugin-dynamic-import-node": "^2.2.0",
"babel-preset-vue": "^2.0.2",
"chalk": "^2.4.1",
"codecov": "^3.1.0",
@@ -94,6 +94,7 @@
"eslint-plugin-prettier": "^3.0.0",
"eslint-plugin-react": "^7.10.0",
"eslint-teamcity": "^2.1.0",
+ "esm": "^3.0.84",
"github-release-from-changelog": "^1.3.2",
"glob": "^7.1.3",
"husky": "^1.1.1",
@@ -126,7 +127,8 @@
"tslint": "~5.11.0",
"tslint-config-prettier": "^1.15.0",
"tslint-plugin-prettier": "^2.0.1",
- "typescript": "^3.1.6"
+ "typescript": "^3.1.6",
+ "uglifyjs-webpack-plugin": "^2.0.1"
},
"husky": {
"hooks": {
diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js
index 0f40276abbc8..b968eff9def3 100755
--- a/scripts/bootstrap.js
+++ b/scripts/bootstrap.js
@@ -73,7 +73,7 @@ const tasks = {
},
}),
core: createTask({
- name: `Core & Examples ${chalk.gray('(core)')}`,
+ name: `Core, Dll & Examples ${chalk.gray('(core)')}`,
defaultValue: true,
option: '--core',
command: () => {
@@ -81,6 +81,17 @@ const tasks = {
spawn('yarn install');
log.info(prefix, 'prepare');
spawn('lerna run prepare -- --silent');
+ log.info(prefix, 'dll');
+ spawn('lerna run createDlls --scope "@storybook/ui"');
+ },
+ }),
+ dll: createTask({
+ name: `Generate DLL ${chalk.gray('(dll)')}`,
+ defaultValue: false,
+ option: '--dll',
+ command: () => {
+ log.info(prefix, 'dll');
+ spawn('lerna run createDlls --scope "@storybook/ui"');
},
}),
docs: createTask({
diff --git a/scripts/compile-js.js b/scripts/compile-js.js
index 78230420170b..1ebba2962c76 100644
--- a/scripts/compile-js.js
+++ b/scripts/compile-js.js
@@ -10,7 +10,7 @@ function getCommand(watch) {
'--ignore **/__mocks__/,**/tests/*,**/__tests__/,**/**.test.js,**/stories/,**/**.story.js,**/**.stories.js,**/__snapshots__',
'./src --out-dir ./dist',
'--copy-files',
- `--config-file ${path.resolve(__dirname, '../.babelrc')}`,
+ `--config-file ${path.resolve(__dirname, '../.babelrc.js')}`,
];
if (watch) {
diff --git a/yarn.lock b/yarn.lock
index 83a908189585..5abecf327d4d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1964,13 +1964,6 @@
call-me-maybe "^1.0.1"
glob-to-regexp "^0.3.0"
-"@ndelangen/html-webpack-harddisk-plugin@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@ndelangen/html-webpack-harddisk-plugin/-/html-webpack-harddisk-plugin-0.2.0.tgz#d2eb570597c83c1aa93d1f2fcb3d874a5855de07"
- integrity sha512-55Mo2b5WtIT0l653y6ocu7C6QzznbasEnlixGzA26WK8Fj81wuEY3xf5N5bNAvDVfrwTLIPTXdEUGgPdrPLszw==
- dependencies:
- mkdirp "^0.5.1"
-
"@ngrx/store@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-6.1.2.tgz#20fb5ab4d79571b804a348093aa11a167fe2946f"
@@ -5984,6 +5977,26 @@ cacache@^11.0.1, cacache@^11.0.2:
unique-filename "^1.1.0"
y18n "^4.0.0"
+cacache@^11.2.0:
+ version "11.3.1"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f"
+ integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==
+ dependencies:
+ bluebird "^3.5.1"
+ chownr "^1.0.1"
+ figgy-pudding "^3.1.0"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ lru-cache "^4.1.3"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.2"
+ ssri "^6.0.0"
+ unique-filename "^1.1.0"
+ y18n "^4.0.0"
+
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -9392,6 +9405,11 @@ eslint@^5.8.0:
table "^5.0.2"
text-table "^0.2.0"
+esm@^3.0.84:
+ version "3.0.84"
+ resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63"
+ integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw==
+
espree@^3.4.3:
version "3.5.4"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
@@ -10481,6 +10499,15 @@ fs-extra@^5.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-minipass@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
@@ -22762,7 +22789,7 @@ uglify-es@^3.1.9, uglify-es@^3.3.4:
commander "~2.13.0"
source-map "~0.6.1"
-uglify-js@3.4.x, uglify-js@^3.1.4, uglify-js@^3.4.0:
+uglify-js@3.4.x, uglify-js@^3.0.0, uglify-js@^3.1.4, uglify-js@^3.4.0:
version "3.4.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
@@ -22784,6 +22811,20 @@ uglifyjs-webpack-plugin@^1.2.4:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
+uglifyjs-webpack-plugin@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.0.1.tgz#f346af53ed496ce72fef462517d417f62bec3010"
+ integrity sha512-1HhCHkOB6wRCcv7htcz1QRPVbWPEY074RP9vzt/X0LF4xXm9l4YGd0qja7z88abDixQlnVwBjXsTBs+Xsn/eeQ==
+ dependencies:
+ cacache "^11.2.0"
+ find-cache-dir "^2.0.0"
+ schema-utils "^1.0.0"
+ serialize-javascript "^1.4.0"
+ source-map "^0.6.1"
+ uglify-js "^3.0.0"
+ webpack-sources "^1.1.0"
+ worker-farm "^1.5.2"
+
uid-number@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"