@storybook/cli 6.5.0-alpha.50 → 6.5.0-alpha.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cjs/add.js +2 -2
  2. package/dist/cjs/automigrate/fixes/builder-vite.js +123 -0
  3. package/dist/cjs/automigrate/fixes/index.js +3 -1
  4. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  5. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  6. package/dist/cjs/generators/baseGenerator.js +20 -1
  7. package/dist/cjs/project_types.js +1 -0
  8. package/dist/cjs/repro-generators/configs.js +12 -1
  9. package/dist/cjs/repro-generators/scripts.js +21 -0
  10. package/dist/cjs/versions.js +56 -56
  11. package/dist/esm/add.js +2 -2
  12. package/dist/esm/automigrate/fixes/builder-vite.js +123 -0
  13. package/dist/esm/automigrate/fixes/index.js +3 -1
  14. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  15. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  16. package/dist/esm/generators/baseGenerator.js +20 -1
  17. package/dist/esm/project_types.js +1 -0
  18. package/dist/esm/repro-generators/configs.js +12 -1
  19. package/dist/esm/repro-generators/scripts.js +21 -0
  20. package/dist/esm/versions.js +56 -56
  21. package/dist/modern/add.js +2 -2
  22. package/dist/modern/automigrate/fixes/builder-vite.js +123 -0
  23. package/dist/modern/automigrate/fixes/index.js +3 -1
  24. package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  25. package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  26. package/dist/modern/generators/baseGenerator.js +20 -1
  27. package/dist/modern/project_types.js +1 -0
  28. package/dist/modern/repro-generators/configs.js +12 -1
  29. package/dist/modern/repro-generators/scripts.js +21 -0
  30. package/dist/modern/versions.js +56 -56
  31. package/dist/ts3.4/automigrate/fixes/builder-vite.d.ts +19 -0
  32. package/dist/ts3.4/project_types.d.ts +2 -1
  33. package/dist/ts3.4/repro-generators/configs.d.ts +4 -0
  34. package/dist/ts3.9/automigrate/fixes/builder-vite.d.ts +19 -0
  35. package/dist/ts3.9/project_types.d.ts +2 -1
  36. package/dist/ts3.9/repro-generators/configs.d.ts +5 -1
  37. package/package.json +7 -7
package/dist/cjs/add.js CHANGED
@@ -77,14 +77,14 @@ const installAddon = (packageManager, addonName, isOfficialAddon) => {
77
77
 
78
78
  const addStorybookAddonToFile = (addonName, addonsFile, isOfficialAddon) => {
79
79
  const addonNameNoTag = addonName.split('@')[0];
80
- const alreadyRegistered = addonsFile.find(line => line.includes(`${addonNameNoTag}/register`));
80
+ const alreadyRegistered = addonsFile.find(line => line.includes(`${addonNameNoTag}/manager`));
81
81
 
82
82
  if (alreadyRegistered) {
83
83
  return addonsFile;
84
84
  }
85
85
 
86
86
  const latestImportIndex = addonsFile.reduce((prev, curr, currIndex) => curr.startsWith('import') && curr.includes('register') ? currIndex : prev, -1);
87
- return [...addonsFile.slice(0, latestImportIndex + 1), `import '${getPackageName(addonNameNoTag, isOfficialAddon)}/register';`, ...addonsFile.slice(latestImportIndex + 1)];
87
+ return [...addonsFile.slice(0, latestImportIndex + 1), `import '${getPackageName(addonNameNoTag, isOfficialAddon)}/manager';`, ...addonsFile.slice(latestImportIndex + 1)];
88
88
  };
89
89
 
90
90
  exports.addStorybookAddonToFile = addStorybookAddonToFile;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.builderVite = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _chalk = _interopRequireDefault(require("chalk"));
11
+
12
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
13
+
14
+ var _csfTools = require("@storybook/csf-tools");
15
+
16
+ var _getStorybookInfo = require("../helpers/getStorybookInfo");
17
+
18
+ var _jsPackageManager = require("../../js-package-manager");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const logger = console;
23
+
24
+ /**
25
+ * Is the user using 'storybook-builder-vite' in their project?
26
+ *
27
+ * If so, prompt them to upgrade to '@storybook/builder-vite'.
28
+ *
29
+ * - Add '@storybook/builder-vite' as dev dependency
30
+ * - Remove 'storybook-builder-vite' dependency
31
+ * - Add core.builder = '@storybook/builder-vite' to main.js
32
+ */
33
+ const builderVite = {
34
+ id: 'builder-vite',
35
+
36
+ async check({
37
+ packageManager
38
+ }) {
39
+ const packageJson = packageManager.retrievePackageJson();
40
+ const {
41
+ mainConfig
42
+ } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
43
+
44
+ if (!mainConfig) {
45
+ logger.warn('Unable to find storybook main.js config');
46
+ return null;
47
+ }
48
+
49
+ const main = await (0, _csfTools.readConfig)(mainConfig);
50
+ const builder = main.getFieldValue(['core', 'builder']);
51
+ const builderName = typeof builder === 'string' ? builder : builder === null || builder === void 0 ? void 0 : builder.name;
52
+
53
+ if (builderName !== 'storybook-builder-vite') {
54
+ logger.info(`Not using community vite builder, skipping`);
55
+ return null;
56
+ }
57
+
58
+ return {
59
+ builder,
60
+ main,
61
+ packageJson
62
+ };
63
+ },
64
+
65
+ prompt({
66
+ builder
67
+ }) {
68
+ const builderFormatted = _chalk.default.cyan(JSON.stringify(builder, null, 2));
69
+
70
+ return (0, _tsDedent.default)`
71
+ We've detected you're using the community vite builder: ${builderFormatted}
72
+
73
+ 'storybook-builder-vite' is deprecated and now located at ${_chalk.default.cyan('@storybook/builder-vite')}.
74
+
75
+ We can upgrade your project to use the new builder automatically.
76
+
77
+ More info: ${_chalk.default.yellow('https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-renamed')}
78
+ `;
79
+ },
80
+
81
+ async run({
82
+ result: {
83
+ builder,
84
+ main,
85
+ packageJson
86
+ },
87
+ packageManager,
88
+ dryRun
89
+ }) {
90
+ const {
91
+ dependencies = {},
92
+ devDependencies = {}
93
+ } = packageJson;
94
+ logger.info(`Removing existing 'storybook-builder-vite' dependency`);
95
+
96
+ if (!dryRun) {
97
+ delete dependencies['storybook-builder-vite'];
98
+ delete devDependencies['storybook-builder-vite'];
99
+ (0, _jsPackageManager.writePackageJson)(packageJson);
100
+ }
101
+
102
+ logger.info(`Adding '@storybook/builder-vite' as dev dependency`);
103
+
104
+ if (!dryRun) {
105
+ packageManager.addDependencies({
106
+ installAsDevDependencies: true
107
+ }, ['@storybook/builder-vite']);
108
+ }
109
+
110
+ logger.info(`Updating main.js to use vite builder`);
111
+
112
+ if (!dryRun) {
113
+ const updatedBuilder = typeof builder === 'string' ? '@storybook/builder-vite' : {
114
+ name: '@storybook/builder-vite',
115
+ options: builder.options
116
+ };
117
+ main.setFieldValue(['core', 'builder'], updatedBuilder);
118
+ await (0, _csfTools.writeConfig)(main);
119
+ }
120
+ }
121
+
122
+ };
123
+ exports.builderVite = builderVite;
@@ -18,6 +18,8 @@ var _mainjsFramework = require("./mainjsFramework");
18
18
 
19
19
  var _eslintPlugin = require("./eslint-plugin");
20
20
 
21
+ var _builderVite = require("./builder-vite");
22
+
21
23
  var _types = require("../types");
22
24
 
23
25
  Object.keys(_types).forEach(function (key) {
@@ -31,5 +33,5 @@ Object.keys(_types).forEach(function (key) {
31
33
  }
32
34
  });
33
35
  });
34
- const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin];
36
+ const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin, _builderVite.builderVite];
35
37
  exports.fixes = fixes;
@@ -1,3 +1,3 @@
1
- import '@storybook/addon-actions/register';
2
- import '@storybook/addon-links/register';
3
- import '@storybook/addon-knobs/register';
1
+ import '@storybook/addon-actions/manager';
2
+ import '@storybook/addon-links/manager';
3
+ import '@storybook/addon-knobs/manager';
@@ -1,2 +1,2 @@
1
- import '@storybook/addon-ondevice-actions/register';
2
- import '@storybook/addon-ondevice-knobs/register';
1
+ import '@storybook/addon-ondevice-actions/manager';
2
+ import '@storybook/addon-ondevice-knobs/manager';
@@ -9,6 +9,8 @@ require("core-js/modules/es.promise.js");
9
9
 
10
10
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
11
 
12
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
13
+
12
14
  var _coreCommon = require("@storybook/core-common");
13
15
 
14
16
  var _project_types = require("../project_types");
@@ -44,6 +46,9 @@ const builderDependencies = builder => {
44
46
  case _project_types.CoreBuilder.Webpack5:
45
47
  return ['@storybook/builder-webpack5', '@storybook/manager-webpack5'];
46
48
 
49
+ case _project_types.CoreBuilder.Vite:
50
+ return ['@storybook/builder-vite'];
51
+
47
52
  default:
48
53
  return [builder];
49
54
  }
@@ -87,9 +92,11 @@ async function baseGenerator(packageManager, npmOptions, {
87
92
  const frameworkPackage = `@storybook/${framework}`;
88
93
  const packages = [frameworkPackage, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
89
94
  const versionedPackages = await packageManager.getVersionedPackages(...packages);
95
+ const coreBuilders = [_project_types.CoreBuilder.Webpack4, _project_types.CoreBuilder.Webpack5, _project_types.CoreBuilder.Vite];
96
+ const expandedBuilder = coreBuilders.includes(builder) ? `@storybook/builder-${builder}` : builder;
90
97
  const mainOptions = builder !== _project_types.CoreBuilder.Webpack4 ? Object.assign({
91
98
  core: {
92
- builder
99
+ builder: expandedBuilder
93
100
  }
94
101
  }, extraMain) : extraMain;
95
102
  (0, _configure.configure)(framework, Object.assign({
@@ -101,6 +108,18 @@ async function baseGenerator(packageManager, npmOptions, {
101
108
 
102
109
  if (addComponents) {
103
110
  (0, _helpers.copyComponents)(framework, language);
111
+ } // FIXME: temporary workaround for https://github.com/storybookjs/storybook/issues/17516
112
+
113
+
114
+ if (expandedBuilder === '@storybook/builder-vite') {
115
+ const previewHead = (0, _tsDedent.default)`
116
+ <script>
117
+ window.global = window;
118
+ </script>
119
+ `;
120
+ await _fsExtra.default.writeFile(`.storybook/preview-head.html`, previewHead, {
121
+ encoding: 'utf8'
122
+ });
104
123
  }
105
124
 
106
125
  const babelDependencies = addBabel ? await (0, _helpers.getBabelDependencies)(packageManager, packageJson) : [];
@@ -59,6 +59,7 @@ exports.CoreBuilder = CoreBuilder;
59
59
  (function (CoreBuilder) {
60
60
  CoreBuilder["Webpack4"] = "webpack4";
61
61
  CoreBuilder["Webpack5"] = "webpack5";
62
+ CoreBuilder["Vite"] = "vite";
62
63
  })(CoreBuilder || (exports.CoreBuilder = CoreBuilder = {}));
63
64
 
64
65
  let SupportedLanguage;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.webpack_react = exports.web_components_typescript = exports.web_components_lit2 = exports.web_components = exports.vue3 = exports.vue = exports.svelte = exports.sfcVue = exports.react_typescript = exports.react_in_yarn_workspace = exports.react = exports.preact = exports.html = exports.cra_typescript = exports.cra = exports.angular130 = exports.angular13 = exports.angular12 = exports.angular11 = exports.angular10 = exports.angular = void 0;
6
+ exports.webpack_react = exports.web_components_typescript = exports.web_components_lit2 = exports.web_components = exports.vue3 = exports.vue = exports.svelte = exports.sfcVue = exports.react_typescript = exports.react_in_yarn_workspace = exports.react = exports.preact = exports.html = exports.cra_typescript = exports.cra = exports.angular_modern_inline_rendering = exports.angular130 = exports.angular13 = exports.angular12 = exports.angular11 = exports.angular10 = exports.angular = void 0;
7
7
 
8
8
  const fromDeps = (...args) => ['mkdir {{appName}}', 'cd {{appName}}', // Create `yarn.lock` to force Yarn to consider adding deps in this directory
9
9
  // and not look for a yarn workspace in parent directory
@@ -89,6 +89,17 @@ const angular13 = Object.assign({}, baseAngular, {
89
89
  version: '13.1.x'
90
90
  });
91
91
  exports.angular13 = angular13;
92
+ const angular_modern_inline_rendering = Object.assign({}, baseAngular, {
93
+ name: 'angular_modern_inline_rendering',
94
+ additionalDeps: ['jest', '@storybook/test-runner'],
95
+ mainOverrides: {
96
+ features: {
97
+ storyStoreV7: true,
98
+ modernInlineRender: true
99
+ }
100
+ }
101
+ });
102
+ exports.angular_modern_inline_rendering = angular_modern_inline_rendering;
92
103
  const angular = baseAngular; // #endregion
93
104
  // #region web components
94
105
 
@@ -17,6 +17,8 @@ var _chalk = _interopRequireDefault(require("chalk"));
17
17
 
18
18
  var _configs = require("./configs");
19
19
 
20
+ var _versions = _interopRequireDefault(require("../versions"));
21
+
20
22
  const _excluded = ["name", "version"];
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -60,6 +62,20 @@ const exec = async (command, options = {}, {
60
62
 
61
63
  exports.exec = exec;
62
64
 
65
+ const addPackageResolutions = async ({
66
+ cwd
67
+ }) => {
68
+ logger.info(`🔢 Adding package resolutions:`);
69
+
70
+ const packageJsonPath = _path.default.join(cwd, 'package.json');
71
+
72
+ const packageJson = await (0, _fsExtra.readJSON)(packageJsonPath);
73
+ packageJson.resolutions = _versions.default;
74
+ await (0, _fsExtra.writeJSON)(packageJsonPath, packageJson, {
75
+ spaces: 2
76
+ });
77
+ };
78
+
63
79
  const installYarn2 = async ({
64
80
  cwd,
65
81
  pnp,
@@ -212,6 +228,11 @@ const createAndInit = async (cwd, _ref, {
212
228
  await doTask(generate, Object.assign({}, options, {
213
229
  cwd: options.creationPath
214
230
  }));
231
+
232
+ if (e2e) {
233
+ await doTask(addPackageResolutions, options);
234
+ }
235
+
215
236
  await doTask(installYarn2, options);
216
237
  await doTask(configureYarn2ForE2E, options, e2e);
217
238
  await doTask(addTypescript, options, !!options.typescript);
@@ -6,61 +6,61 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  // auto generated file, do not edit
8
8
  var _default = {
9
- "@storybook/addon-a11y": "6.5.0-alpha.50",
10
- "@storybook/addon-actions": "6.5.0-alpha.50",
11
- "@storybook/addon-backgrounds": "6.5.0-alpha.50",
12
- "@storybook/addon-controls": "6.5.0-alpha.50",
13
- "@storybook/addon-docs": "6.5.0-alpha.50",
14
- "@storybook/addon-essentials": "6.5.0-alpha.50",
15
- "@storybook/addon-interactions": "6.5.0-alpha.50",
16
- "@storybook/addon-jest": "6.5.0-alpha.50",
17
- "@storybook/addon-links": "6.5.0-alpha.50",
18
- "@storybook/addon-measure": "6.5.0-alpha.50",
19
- "@storybook/addon-outline": "6.5.0-alpha.50",
20
- "@storybook/addon-storyshots": "6.5.0-alpha.50",
21
- "@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.50",
22
- "@storybook/addon-storysource": "6.5.0-alpha.50",
23
- "@storybook/addon-toolbars": "6.5.0-alpha.50",
24
- "@storybook/addon-viewport": "6.5.0-alpha.50",
25
- "@storybook/addons": "6.5.0-alpha.50",
26
- "@storybook/angular": "6.5.0-alpha.50",
27
- "@storybook/api": "6.5.0-alpha.50",
28
- "@storybook/builder-webpack4": "6.5.0-alpha.50",
29
- "@storybook/builder-webpack5": "6.5.0-alpha.50",
30
- "@storybook/channel-postmessage": "6.5.0-alpha.50",
31
- "@storybook/channel-websocket": "6.5.0-alpha.50",
32
- "@storybook/channels": "6.5.0-alpha.50",
33
- "@storybook/cli": "6.5.0-alpha.50",
34
- "@storybook/client-api": "6.5.0-alpha.50",
35
- "@storybook/client-logger": "6.5.0-alpha.50",
36
- "@storybook/codemod": "6.5.0-alpha.50",
37
- "@storybook/components": "6.5.0-alpha.50",
38
- "@storybook/core": "6.5.0-alpha.50",
39
- "@storybook/core-client": "6.5.0-alpha.50",
40
- "@storybook/core-common": "6.5.0-alpha.50",
41
- "@storybook/core-events": "6.5.0-alpha.50",
42
- "@storybook/core-server": "6.5.0-alpha.50",
43
- "@storybook/csf-tools": "6.5.0-alpha.50",
44
- "@storybook/docs-tools": "6.5.0-alpha.50",
45
- "@storybook/ember": "6.5.0-alpha.50",
46
- "@storybook/html": "6.5.0-alpha.50",
47
- "@storybook/instrumenter": "6.5.0-alpha.50",
48
- "@storybook/manager-webpack4": "6.5.0-alpha.50",
49
- "@storybook/manager-webpack5": "6.5.0-alpha.50",
50
- "@storybook/node-logger": "6.5.0-alpha.50",
51
- "@storybook/postinstall": "6.5.0-alpha.50",
52
- "@storybook/preact": "6.5.0-alpha.50",
53
- "@storybook/preview-web": "6.5.0-alpha.50",
54
- "@storybook/react": "6.5.0-alpha.50",
55
- "@storybook/router": "6.5.0-alpha.50",
56
- "@storybook/server": "6.5.0-alpha.50",
57
- "@storybook/source-loader": "6.5.0-alpha.50",
58
- "@storybook/store": "6.5.0-alpha.50",
59
- "@storybook/svelte": "6.5.0-alpha.50",
60
- "@storybook/theming": "6.5.0-alpha.50",
61
- "@storybook/ui": "6.5.0-alpha.50",
62
- "@storybook/vue": "6.5.0-alpha.50",
63
- "@storybook/vue3": "6.5.0-alpha.50",
64
- "@storybook/web-components": "6.5.0-alpha.50"
9
+ "@storybook/addon-a11y": "6.5.0-alpha.53",
10
+ "@storybook/addon-actions": "6.5.0-alpha.53",
11
+ "@storybook/addon-backgrounds": "6.5.0-alpha.53",
12
+ "@storybook/addon-controls": "6.5.0-alpha.53",
13
+ "@storybook/addon-docs": "6.5.0-alpha.53",
14
+ "@storybook/addon-essentials": "6.5.0-alpha.53",
15
+ "@storybook/addon-interactions": "6.5.0-alpha.53",
16
+ "@storybook/addon-jest": "6.5.0-alpha.53",
17
+ "@storybook/addon-links": "6.5.0-alpha.53",
18
+ "@storybook/addon-measure": "6.5.0-alpha.53",
19
+ "@storybook/addon-outline": "6.5.0-alpha.53",
20
+ "@storybook/addon-storyshots": "6.5.0-alpha.53",
21
+ "@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.53",
22
+ "@storybook/addon-storysource": "6.5.0-alpha.53",
23
+ "@storybook/addon-toolbars": "6.5.0-alpha.53",
24
+ "@storybook/addon-viewport": "6.5.0-alpha.53",
25
+ "@storybook/addons": "6.5.0-alpha.53",
26
+ "@storybook/angular": "6.5.0-alpha.53",
27
+ "@storybook/api": "6.5.0-alpha.53",
28
+ "@storybook/builder-webpack4": "6.5.0-alpha.53",
29
+ "@storybook/builder-webpack5": "6.5.0-alpha.53",
30
+ "@storybook/channel-postmessage": "6.5.0-alpha.53",
31
+ "@storybook/channel-websocket": "6.5.0-alpha.53",
32
+ "@storybook/channels": "6.5.0-alpha.53",
33
+ "@storybook/cli": "6.5.0-alpha.53",
34
+ "@storybook/client-api": "6.5.0-alpha.53",
35
+ "@storybook/client-logger": "6.5.0-alpha.53",
36
+ "@storybook/codemod": "6.5.0-alpha.53",
37
+ "@storybook/components": "6.5.0-alpha.53",
38
+ "@storybook/core": "6.5.0-alpha.53",
39
+ "@storybook/core-client": "6.5.0-alpha.53",
40
+ "@storybook/core-common": "6.5.0-alpha.53",
41
+ "@storybook/core-events": "6.5.0-alpha.53",
42
+ "@storybook/core-server": "6.5.0-alpha.53",
43
+ "@storybook/csf-tools": "6.5.0-alpha.53",
44
+ "@storybook/docs-tools": "6.5.0-alpha.53",
45
+ "@storybook/ember": "6.5.0-alpha.53",
46
+ "@storybook/html": "6.5.0-alpha.53",
47
+ "@storybook/instrumenter": "6.5.0-alpha.53",
48
+ "@storybook/manager-webpack4": "6.5.0-alpha.53",
49
+ "@storybook/manager-webpack5": "6.5.0-alpha.53",
50
+ "@storybook/node-logger": "6.5.0-alpha.53",
51
+ "@storybook/postinstall": "6.5.0-alpha.53",
52
+ "@storybook/preact": "6.5.0-alpha.53",
53
+ "@storybook/preview-web": "6.5.0-alpha.53",
54
+ "@storybook/react": "6.5.0-alpha.53",
55
+ "@storybook/router": "6.5.0-alpha.53",
56
+ "@storybook/server": "6.5.0-alpha.53",
57
+ "@storybook/source-loader": "6.5.0-alpha.53",
58
+ "@storybook/store": "6.5.0-alpha.53",
59
+ "@storybook/svelte": "6.5.0-alpha.53",
60
+ "@storybook/theming": "6.5.0-alpha.53",
61
+ "@storybook/ui": "6.5.0-alpha.53",
62
+ "@storybook/vue": "6.5.0-alpha.53",
63
+ "@storybook/vue3": "6.5.0-alpha.53",
64
+ "@storybook/web-components": "6.5.0-alpha.53"
65
65
  };
66
66
  exports.default = _default;
package/dist/esm/add.js CHANGED
@@ -77,14 +77,14 @@ const installAddon = (packageManager, addonName, isOfficialAddon) => {
77
77
 
78
78
  const addStorybookAddonToFile = (addonName, addonsFile, isOfficialAddon) => {
79
79
  const addonNameNoTag = addonName.split('@')[0];
80
- const alreadyRegistered = addonsFile.find(line => line.includes(`${addonNameNoTag}/register`));
80
+ const alreadyRegistered = addonsFile.find(line => line.includes(`${addonNameNoTag}/manager`));
81
81
 
82
82
  if (alreadyRegistered) {
83
83
  return addonsFile;
84
84
  }
85
85
 
86
86
  const latestImportIndex = addonsFile.reduce((prev, curr, currIndex) => curr.startsWith('import') && curr.includes('register') ? currIndex : prev, -1);
87
- return [...addonsFile.slice(0, latestImportIndex + 1), `import '${getPackageName(addonNameNoTag, isOfficialAddon)}/register';`, ...addonsFile.slice(latestImportIndex + 1)];
87
+ return [...addonsFile.slice(0, latestImportIndex + 1), `import '${getPackageName(addonNameNoTag, isOfficialAddon)}/manager';`, ...addonsFile.slice(latestImportIndex + 1)];
88
88
  };
89
89
 
90
90
  exports.addStorybookAddonToFile = addStorybookAddonToFile;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.builderVite = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _chalk = _interopRequireDefault(require("chalk"));
11
+
12
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
13
+
14
+ var _csfTools = require("@storybook/csf-tools");
15
+
16
+ var _getStorybookInfo = require("../helpers/getStorybookInfo");
17
+
18
+ var _jsPackageManager = require("../../js-package-manager");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const logger = console;
23
+
24
+ /**
25
+ * Is the user using 'storybook-builder-vite' in their project?
26
+ *
27
+ * If so, prompt them to upgrade to '@storybook/builder-vite'.
28
+ *
29
+ * - Add '@storybook/builder-vite' as dev dependency
30
+ * - Remove 'storybook-builder-vite' dependency
31
+ * - Add core.builder = '@storybook/builder-vite' to main.js
32
+ */
33
+ const builderVite = {
34
+ id: 'builder-vite',
35
+
36
+ async check({
37
+ packageManager
38
+ }) {
39
+ const packageJson = packageManager.retrievePackageJson();
40
+ const {
41
+ mainConfig
42
+ } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
43
+
44
+ if (!mainConfig) {
45
+ logger.warn('Unable to find storybook main.js config');
46
+ return null;
47
+ }
48
+
49
+ const main = await (0, _csfTools.readConfig)(mainConfig);
50
+ const builder = main.getFieldValue(['core', 'builder']);
51
+ const builderName = typeof builder === 'string' ? builder : builder === null || builder === void 0 ? void 0 : builder.name;
52
+
53
+ if (builderName !== 'storybook-builder-vite') {
54
+ logger.info(`Not using community vite builder, skipping`);
55
+ return null;
56
+ }
57
+
58
+ return {
59
+ builder,
60
+ main,
61
+ packageJson
62
+ };
63
+ },
64
+
65
+ prompt({
66
+ builder
67
+ }) {
68
+ const builderFormatted = _chalk.default.cyan(JSON.stringify(builder, null, 2));
69
+
70
+ return (0, _tsDedent.default)`
71
+ We've detected you're using the community vite builder: ${builderFormatted}
72
+
73
+ 'storybook-builder-vite' is deprecated and now located at ${_chalk.default.cyan('@storybook/builder-vite')}.
74
+
75
+ We can upgrade your project to use the new builder automatically.
76
+
77
+ More info: ${_chalk.default.yellow('https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-renamed')}
78
+ `;
79
+ },
80
+
81
+ async run({
82
+ result: {
83
+ builder,
84
+ main,
85
+ packageJson
86
+ },
87
+ packageManager,
88
+ dryRun
89
+ }) {
90
+ const {
91
+ dependencies = {},
92
+ devDependencies = {}
93
+ } = packageJson;
94
+ logger.info(`Removing existing 'storybook-builder-vite' dependency`);
95
+
96
+ if (!dryRun) {
97
+ delete dependencies['storybook-builder-vite'];
98
+ delete devDependencies['storybook-builder-vite'];
99
+ (0, _jsPackageManager.writePackageJson)(packageJson);
100
+ }
101
+
102
+ logger.info(`Adding '@storybook/builder-vite' as dev dependency`);
103
+
104
+ if (!dryRun) {
105
+ packageManager.addDependencies({
106
+ installAsDevDependencies: true
107
+ }, ['@storybook/builder-vite']);
108
+ }
109
+
110
+ logger.info(`Updating main.js to use vite builder`);
111
+
112
+ if (!dryRun) {
113
+ const updatedBuilder = typeof builder === 'string' ? '@storybook/builder-vite' : {
114
+ name: '@storybook/builder-vite',
115
+ options: builder.options
116
+ };
117
+ main.setFieldValue(['core', 'builder'], updatedBuilder);
118
+ await (0, _csfTools.writeConfig)(main);
119
+ }
120
+ }
121
+
122
+ };
123
+ exports.builderVite = builderVite;
@@ -18,6 +18,8 @@ var _mainjsFramework = require("./mainjsFramework");
18
18
 
19
19
  var _eslintPlugin = require("./eslint-plugin");
20
20
 
21
+ var _builderVite = require("./builder-vite");
22
+
21
23
  var _types = require("../types");
22
24
 
23
25
  Object.keys(_types).forEach(function (key) {
@@ -31,5 +33,5 @@ Object.keys(_types).forEach(function (key) {
31
33
  }
32
34
  });
33
35
  });
34
- const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin];
36
+ const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin, _builderVite.builderVite];
35
37
  exports.fixes = fixes;
@@ -1,3 +1,3 @@
1
- import '@storybook/addon-actions/register';
2
- import '@storybook/addon-links/register';
3
- import '@storybook/addon-knobs/register';
1
+ import '@storybook/addon-actions/manager';
2
+ import '@storybook/addon-links/manager';
3
+ import '@storybook/addon-knobs/manager';
@@ -1,2 +1,2 @@
1
- import '@storybook/addon-ondevice-actions/register';
2
- import '@storybook/addon-ondevice-knobs/register';
1
+ import '@storybook/addon-ondevice-actions/manager';
2
+ import '@storybook/addon-ondevice-knobs/manager';
@@ -9,6 +9,8 @@ require("core-js/modules/es.promise.js");
9
9
 
10
10
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
11
 
12
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
13
+
12
14
  var _coreCommon = require("@storybook/core-common");
13
15
 
14
16
  var _project_types = require("../project_types");
@@ -44,6 +46,9 @@ const builderDependencies = builder => {
44
46
  case _project_types.CoreBuilder.Webpack5:
45
47
  return ['@storybook/builder-webpack5', '@storybook/manager-webpack5'];
46
48
 
49
+ case _project_types.CoreBuilder.Vite:
50
+ return ['@storybook/builder-vite'];
51
+
47
52
  default:
48
53
  return [builder];
49
54
  }
@@ -87,9 +92,11 @@ async function baseGenerator(packageManager, npmOptions, {
87
92
  const frameworkPackage = `@storybook/${framework}`;
88
93
  const packages = [frameworkPackage, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
89
94
  const versionedPackages = await packageManager.getVersionedPackages(...packages);
95
+ const coreBuilders = [_project_types.CoreBuilder.Webpack4, _project_types.CoreBuilder.Webpack5, _project_types.CoreBuilder.Vite];
96
+ const expandedBuilder = coreBuilders.includes(builder) ? `@storybook/builder-${builder}` : builder;
90
97
  const mainOptions = builder !== _project_types.CoreBuilder.Webpack4 ? Object.assign({
91
98
  core: {
92
- builder
99
+ builder: expandedBuilder
93
100
  }
94
101
  }, extraMain) : extraMain;
95
102
  (0, _configure.configure)(framework, Object.assign({
@@ -101,6 +108,18 @@ async function baseGenerator(packageManager, npmOptions, {
101
108
 
102
109
  if (addComponents) {
103
110
  (0, _helpers.copyComponents)(framework, language);
111
+ } // FIXME: temporary workaround for https://github.com/storybookjs/storybook/issues/17516
112
+
113
+
114
+ if (expandedBuilder === '@storybook/builder-vite') {
115
+ const previewHead = (0, _tsDedent.default)`
116
+ <script>
117
+ window.global = window;
118
+ </script>
119
+ `;
120
+ await _fsExtra.default.writeFile(`.storybook/preview-head.html`, previewHead, {
121
+ encoding: 'utf8'
122
+ });
104
123
  }
105
124
 
106
125
  const babelDependencies = addBabel ? await (0, _helpers.getBabelDependencies)(packageManager, packageJson) : [];
@@ -59,6 +59,7 @@ exports.CoreBuilder = CoreBuilder;
59
59
  (function (CoreBuilder) {
60
60
  CoreBuilder["Webpack4"] = "webpack4";
61
61
  CoreBuilder["Webpack5"] = "webpack5";
62
+ CoreBuilder["Vite"] = "vite";
62
63
  })(CoreBuilder || (exports.CoreBuilder = CoreBuilder = {}));
63
64
 
64
65
  let SupportedLanguage;