@storybook/cli 6.4.0-beta.8 → 6.4.0-rc.2

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 (59) hide show
  1. package/dist/cjs/automigrate/fixes/eslint-plugin.js +129 -0
  2. package/dist/cjs/automigrate/fixes/index.js +5 -1
  3. package/dist/cjs/automigrate/fixes/mainjsFramework.js +89 -0
  4. package/dist/cjs/automigrate/fixes/webpack5.js +9 -5
  5. package/dist/cjs/automigrate/helpers/getEslintInfo.js +28 -0
  6. package/dist/cjs/automigrate/index.js +14 -8
  7. package/dist/cjs/extract.js +3 -0
  8. package/dist/cjs/frameworks/web-components/js/Button.js +1 -1
  9. package/dist/cjs/frameworks/web-components/ts/Button.ts +1 -1
  10. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
  11. package/dist/cjs/generators/REACT_SCRIPTS/index.js +1 -1
  12. package/dist/cjs/generators/baseGenerator.js +3 -1
  13. package/dist/cjs/initiate.js +9 -6
  14. package/dist/cjs/repro-generators/configs.js +6 -1
  15. package/dist/cjs/upgrade.js +3 -1
  16. package/dist/cjs/versions.json +57 -55
  17. package/dist/esm/automigrate/fixes/eslint-plugin.js +129 -0
  18. package/dist/esm/automigrate/fixes/index.js +5 -1
  19. package/dist/esm/automigrate/fixes/mainjsFramework.js +89 -0
  20. package/dist/esm/automigrate/fixes/webpack5.js +9 -5
  21. package/dist/esm/automigrate/helpers/getEslintInfo.js +28 -0
  22. package/dist/esm/automigrate/index.js +14 -8
  23. package/dist/esm/extract.js +3 -0
  24. package/dist/esm/frameworks/web-components/js/Button.js +1 -1
  25. package/dist/esm/frameworks/web-components/ts/Button.ts +1 -1
  26. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
  27. package/dist/esm/generators/REACT_SCRIPTS/index.js +1 -1
  28. package/dist/esm/generators/baseGenerator.js +3 -1
  29. package/dist/esm/initiate.js +9 -6
  30. package/dist/esm/repro-generators/configs.js +6 -1
  31. package/dist/esm/upgrade.js +3 -1
  32. package/dist/esm/versions.json +57 -55
  33. package/dist/modern/automigrate/fixes/eslint-plugin.js +129 -0
  34. package/dist/modern/automigrate/fixes/index.js +5 -1
  35. package/dist/modern/automigrate/fixes/mainjsFramework.js +89 -0
  36. package/dist/modern/automigrate/fixes/webpack5.js +9 -5
  37. package/dist/modern/automigrate/helpers/getEslintInfo.js +28 -0
  38. package/dist/modern/automigrate/index.js +14 -8
  39. package/dist/modern/extract.js +3 -0
  40. package/dist/modern/frameworks/web-components/js/Button.js +1 -1
  41. package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
  42. package/dist/modern/generators/REACT_SCRIPTS/index.js +1 -1
  43. package/dist/modern/generators/baseGenerator.js +3 -1
  44. package/dist/modern/initiate.js +9 -6
  45. package/dist/modern/repro-generators/configs.js +6 -1
  46. package/dist/modern/upgrade.js +3 -1
  47. package/dist/modern/versions.json +57 -55
  48. package/dist/ts3.4/automigrate/fixes/eslint-plugin.d.ts +15 -0
  49. package/dist/ts3.4/automigrate/fixes/mainjsFramework.d.ts +8 -0
  50. package/dist/ts3.4/automigrate/helpers/getEslintInfo.d.ts +2 -0
  51. package/dist/ts3.4/automigrate/index.d.ts +1 -1
  52. package/dist/ts3.4/repro-generators/configs.d.ts +1 -0
  53. package/dist/ts3.9/automigrate/fixes/eslint-plugin.d.ts +15 -0
  54. package/dist/ts3.9/automigrate/fixes/mainjsFramework.d.ts +8 -0
  55. package/dist/ts3.9/automigrate/helpers/getEslintInfo.d.ts +2 -0
  56. package/dist/ts3.9/automigrate/index.d.ts +1 -1
  57. package/dist/ts3.9/repro-generators/configs.d.ts +1 -0
  58. package/package.json +7 -7
  59. package/story.js +0 -10
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.eslintPlugin = 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 _getEslintInfo = require("../helpers/getEslintInfo");
17
+
18
+ var _getStorybookInfo = require("../helpers/getStorybookInfo");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const logger = console;
23
+
24
+ /**
25
+ * Does the user not have eslint-plugin-storybook installed?
26
+ *
27
+ * If so:
28
+ * - Install it, and if possible configure it
29
+ */
30
+ const eslintPlugin = {
31
+ id: 'eslintPlugin',
32
+
33
+ async check({
34
+ packageManager
35
+ }) {
36
+ const packageJson = packageManager.retrievePackageJson();
37
+ const {
38
+ dependencies,
39
+ devDependencies
40
+ } = packageJson;
41
+ const eslintPluginStorybook = dependencies['eslint-plugin-storybook'] || devDependencies['eslint-plugin-storybook'];
42
+ const eslintDependency = dependencies.eslint || devDependencies.eslint;
43
+
44
+ if (eslintPluginStorybook || !eslintDependency) {
45
+ return null;
46
+ }
47
+
48
+ const config = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
49
+ const {
50
+ mainConfig
51
+ } = config;
52
+
53
+ if (!mainConfig) {
54
+ logger.warn('Unable to find storybook main.js config, skipping');
55
+ return null;
56
+ }
57
+
58
+ let eslintFile;
59
+ let unsupportedExtension;
60
+
61
+ try {
62
+ eslintFile = (0, _getEslintInfo.findEslintFile)();
63
+ } catch (err) {
64
+ unsupportedExtension = err.message;
65
+ }
66
+
67
+ if (!eslintFile && !unsupportedExtension) {
68
+ logger.warn('Unable to find .eslintrc config file, skipping');
69
+ return null;
70
+ } // If in the future the eslint plugin has a framework option, using main to extract the framework field will be very useful
71
+
72
+
73
+ const main = await (0, _csfTools.readConfig)(mainConfig);
74
+ return {
75
+ eslintFile,
76
+ main,
77
+ unsupportedExtension
78
+ };
79
+ },
80
+
81
+ prompt() {
82
+ return (0, _tsDedent.default)`
83
+ We've detected you are not using our eslint-plugin.
84
+
85
+ In order to have the best experience with Storybook and follow best practices, we advise you to install eslint-plugin-storybook.
86
+
87
+ More info: ${_chalk.default.yellow('https://github.com/storybookjs/eslint-plugin-storybook#readme')}
88
+ `;
89
+ },
90
+
91
+ async run({
92
+ result: {
93
+ eslintFile,
94
+ unsupportedExtension
95
+ },
96
+ packageManager,
97
+ dryRun
98
+ }) {
99
+ const deps = [`eslint-plugin-storybook`];
100
+ logger.info(`✅ Adding dependencies: ${deps}`);
101
+ if (!dryRun) packageManager.addDependencies({
102
+ installAsDevDependencies: true
103
+ }, deps);
104
+
105
+ if (!dryRun && unsupportedExtension) {
106
+ throw new Error((0, _tsDedent.default)`
107
+ ⚠️ The plugin was successfuly installed but failed to configure.
108
+
109
+ Found an .eslintrc config file with an unsupported automigration format: ${unsupportedExtension}.
110
+ Supported formats for automigration are: ${_getEslintInfo.SUPPORTED_ESLINT_EXTENSIONS.join(', ')}.
111
+
112
+ Please refer to https://github.com/storybookjs/eslint-plugin-storybook#usage to finish setting up the plugin manually.
113
+ `);
114
+ }
115
+
116
+ const eslint = await (0, _csfTools.readConfig)(eslintFile);
117
+ logger.info(`✅ Configuring eslint rules in ${eslint.fileName}`);
118
+
119
+ if (!dryRun) {
120
+ logger.info(`✅ Adding Storybook to extends list`);
121
+ const extendsConfig = eslint.getFieldValue(['extends']) || [];
122
+ const existingConfigValue = Array.isArray(extendsConfig) ? extendsConfig : [extendsConfig];
123
+ eslint.setFieldValue(['extends'], [...existingConfigValue, 'plugin:storybook/recommended']);
124
+ await (0, _csfTools.writeConfig)(eslint);
125
+ }
126
+ }
127
+
128
+ };
129
+ exports.eslintPlugin = eslintPlugin;
@@ -14,6 +14,10 @@ var _webpack = require("./webpack5");
14
14
 
15
15
  var _angular = require("./angular12");
16
16
 
17
+ var _mainjsFramework = require("./mainjsFramework");
18
+
19
+ var _eslintPlugin = require("./eslint-plugin");
20
+
17
21
  var _types = require("../types");
18
22
 
19
23
  Object.keys(_types).forEach(function (key) {
@@ -27,5 +31,5 @@ Object.keys(_types).forEach(function (key) {
27
31
  }
28
32
  });
29
33
  });
30
- const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12];
34
+ const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin];
31
35
  exports.fixes = fixes;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mainjsFramework = 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 _semver = _interopRequireDefault(require("@storybook/semver"));
15
+
16
+ var _csfTools = require("@storybook/csf-tools");
17
+
18
+ var _getStorybookInfo = require("../helpers/getStorybookInfo");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const logger = console;
23
+ const mainjsFramework = {
24
+ id: 'mainjsFramework',
25
+
26
+ async check({
27
+ packageManager
28
+ }) {
29
+ var _semver$coerce;
30
+
31
+ const packageJson = packageManager.retrievePackageJson();
32
+ const {
33
+ mainConfig,
34
+ framework,
35
+ version: storybookVersion
36
+ } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
37
+ const storybookCoerced = storybookVersion && ((_semver$coerce = _semver.default.coerce(storybookVersion)) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version);
38
+
39
+ if (!storybookCoerced) {
40
+ logger.warn((0, _tsDedent.default)`
41
+ ❌ Unable to determine storybook version, skipping ${_chalk.default.cyan('mainjsFramework')} fix.
42
+ 🤔 Are you running automigrate from your project directory?
43
+ `);
44
+ return null;
45
+ }
46
+
47
+ const main = await (0, _csfTools.readConfig)(mainConfig);
48
+ const currentFramework = main.getFieldValue(['framework']);
49
+ const features = main.getFieldValue(['features']);
50
+ if (currentFramework) return null;
51
+ return features !== null && features !== void 0 && features.breakingChangesV7 || features !== null && features !== void 0 && features.storyStoreV7 || _semver.default.gte(storybookCoerced, '7.0.0') ? {
52
+ main,
53
+ framework: `@storybook/${framework}`
54
+ } : null;
55
+ },
56
+
57
+ prompt({
58
+ framework
59
+ }) {
60
+ const frameworkFormatted = _chalk.default.cyan(`framework: '${framework}'`);
61
+
62
+ return (0, _tsDedent.default)`
63
+ We've detected that your main.js configuration file does not specify the
64
+ 'framework' field, which is a requirement in SB7.0 and above. We can add one
65
+ for you automatically:
66
+
67
+ ${frameworkFormatted}
68
+
69
+ More info: ${_chalk.default.yellow('https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field')}
70
+ `;
71
+ },
72
+
73
+ async run({
74
+ result: {
75
+ main,
76
+ framework
77
+ },
78
+ dryRun
79
+ }) {
80
+ logger.info(`✅ Setting 'framework' to '${framework}' in main.js`);
81
+
82
+ if (!dryRun) {
83
+ main.setFieldValue(['framework'], framework);
84
+ await (0, _csfTools.writeConfig)(main);
85
+ }
86
+ }
87
+
88
+ };
89
+ exports.mainjsFramework = mainjsFramework;
@@ -35,15 +35,19 @@ const webpack5 = {
35
35
  id: 'webpack5',
36
36
 
37
37
  async checkWebpack5Builder(packageJson) {
38
+ var _semver$coerce;
39
+
38
40
  const {
39
41
  mainConfig,
40
42
  version: storybookVersion
41
43
  } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
42
-
43
- const storybookCoerced = _semver.default.coerce(storybookVersion).version;
44
+ const storybookCoerced = storybookVersion && ((_semver$coerce = _semver.default.coerce(storybookVersion)) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version);
44
45
 
45
46
  if (!storybookCoerced) {
46
- logger.warn(`Unable to determine storybook version, skipping webpack5 fix.`);
47
+ logger.warn((0, _tsDedent.default)`
48
+ ❌ Unable to determine storybook version, skipping ${_chalk.default.cyan('webpack5')} fix.
49
+ 🤔 Are you running automigrate from your project directory?
50
+ `);
47
51
  return null;
48
52
  }
49
53
 
@@ -86,7 +90,7 @@ const webpack5 = {
86
90
  async check({
87
91
  packageManager
88
92
  }) {
89
- var _semver$coerce;
93
+ var _semver$coerce2;
90
94
 
91
95
  const packageJson = packageManager.retrievePackageJson();
92
96
  const {
@@ -94,7 +98,7 @@ const webpack5 = {
94
98
  devDependencies
95
99
  } = packageJson;
96
100
  const webpackVersion = dependencies.webpack || devDependencies.webpack;
97
- const webpackCoerced = (_semver$coerce = _semver.default.coerce(webpackVersion)) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version;
101
+ const webpackCoerced = (_semver$coerce2 = _semver.default.coerce(webpackVersion)) === null || _semver$coerce2 === void 0 ? void 0 : _semver$coerce2.version;
98
102
  if (!webpackCoerced || _semver.default.lt(webpackCoerced, '5.0.0') || _semver.default.gte(webpackCoerced, '6.0.0')) return null;
99
103
  const builderInfo = await this.checkWebpack5Builder(packageJson);
100
104
  return builderInfo ? Object.assign({
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findEslintFile = exports.SUPPORTED_ESLINT_EXTENSIONS = void 0;
7
+
8
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const SUPPORTED_ESLINT_EXTENSIONS = ['js', 'cjs'];
13
+ exports.SUPPORTED_ESLINT_EXTENSIONS = SUPPORTED_ESLINT_EXTENSIONS;
14
+ const UNSUPPORTED_ESLINT_EXTENSIONS = ['yaml', 'yml', 'json'];
15
+
16
+ const findEslintFile = () => {
17
+ const filePrefix = '.eslintrc';
18
+ const unsupportedExtension = UNSUPPORTED_ESLINT_EXTENSIONS.find(ext => _fsExtra.default.existsSync(`${filePrefix}.${ext}`));
19
+
20
+ if (unsupportedExtension) {
21
+ throw new Error(unsupportedExtension);
22
+ }
23
+
24
+ const extension = SUPPORTED_ESLINT_EXTENSIONS.find(ext => _fsExtra.default.existsSync(`${filePrefix}.${ext}`));
25
+ return extension ? `${filePrefix}.${extension}` : null;
26
+ };
27
+
28
+ exports.findEslintFile = findEslintFile;
@@ -26,7 +26,7 @@ const automigrate = async ({
26
26
  fixId,
27
27
  dryRun,
28
28
  yes
29
- }) => {
29
+ } = {}) => {
30
30
  const packageManager = _jsPackageManager.JsPackageManagerFactory.getPackageManager();
31
31
 
32
32
  const filtered = fixId ? _fixes.fixes.filter(f => f.id === fixId) : _fixes.fixes;
@@ -54,16 +54,22 @@ const automigrate = async ({
54
54
  }]);
55
55
 
56
56
  if (runAnswer.fix) {
57
- await f.run({
58
- result,
59
- packageManager,
60
- dryRun
61
- });
62
- logger.info(`✅ fixed ${_chalk.default.cyan(f.id)}`);
57
+ try {
58
+ await f.run({
59
+ result,
60
+ packageManager,
61
+ dryRun
62
+ });
63
+ logger.info(`✅ fixed ${_chalk.default.cyan(f.id)}`);
64
+ } catch (error) {
65
+ logger.info(`❌ error in ${_chalk.default.cyan(f.id)}:`);
66
+ logger.info(error.message);
67
+ logger.info();
68
+ }
63
69
  } else {
64
70
  logger.info(`Skipping the ${_chalk.default.cyan(f.id)} fix.`);
65
71
  logger.info();
66
- logger.info(`If you change your mind, run '${_chalk.default.cyan('npx sb@next fix')}'`);
72
+ logger.info(`If you change your mind, run '${_chalk.default.cyan('npx sb@next automigrate')}'`);
67
73
  }
68
74
  }
69
75
  }
@@ -37,6 +37,9 @@ const read = async url => {
37
37
  };
38
38
 
39
39
  const useLocation = async input => {
40
+ // check for input's existence
41
+ await (0, _fsExtra.stat)(_path.default.resolve(input));
42
+
40
43
  if (input.match(/^http/)) {
41
44
  return [input, async () => {}];
42
45
  }
@@ -1,5 +1,5 @@
1
1
  import { html } from 'lit-html';
2
- import { styleMap } from 'lit-html/directives/style-map';
2
+ import { styleMap } from 'lit-html/directives/style-map.js';
3
3
  import './button.css';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { html } from 'lit-html';
2
- import { styleMap } from 'lit-html/directives/style-map';
2
+ import { styleMap } from 'lit-html/directives/style-map.js';
3
3
  import './button.css';
4
4
 
5
5
  export interface ButtonProps {
@@ -14,7 +14,7 @@ configure(() => {
14
14
  require('./stories');
15
15
  }, module);
16
16
 
17
- // Refer to https://github.com/storybookjs/storybook/tree/master/app/react-native#start-command-parameters
17
+ // Refer to https://github.com/storybookjs/react-native/tree/master/app/react-native#getstorybookui-options
18
18
  // To find allowed options for getStorybookUI
19
19
  const StorybookUIRoot = getStorybookUI({});
20
20
 
@@ -37,7 +37,7 @@ const generator = async (packageManager, npmOptions, options) => {
37
37
  } : {};
38
38
  const craVersion = (_semver$coerce = _semver.default.coerce(packageManager.retrievePackageJson().dependencies['react-scripts'])) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version;
39
39
 
40
- const isCra5 = _semver.default.gte(craVersion, '5.0.0');
40
+ const isCra5 = craVersion && _semver.default.gte(craVersion, '5.0.0');
41
41
 
42
42
  const updatedOptions = isCra5 ? Object.assign({}, options, {
43
43
  builder: _project_types.CoreBuilder.Webpack5
@@ -76,7 +76,8 @@ async function baseGenerator(packageManager, npmOptions, {
76
76
  const isNewFolder = !files.some(fname => fname.startsWith('.babel') || fname.startsWith('babel') || fname === 'package.json');
77
77
  const packageJson = packageManager.retrievePackageJson();
78
78
  const installedDependencies = new Set(Object.keys(packageJson.dependencies));
79
- const packages = [`@storybook/${framework}`, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
79
+ const frameworkPackage = `@storybook/${framework}`;
80
+ const packages = [frameworkPackage, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
80
81
  const versionedPackages = await packageManager.getVersionedPackages(...packages);
81
82
  const mainOptions = builder !== _project_types.CoreBuilder.Webpack4 ? Object.assign({
82
83
  core: {
@@ -84,6 +85,7 @@ async function baseGenerator(packageManager, npmOptions, {
84
85
  }
85
86
  }, extraMain) : extraMain;
86
87
  (0, _configure.configure)(framework, Object.assign({
88
+ framework: frameworkPackage,
87
89
  addons: [...addons, ...stripVersions(extraAddons)],
88
90
  extensions,
89
91
  commonJs: options.commonJs
@@ -65,6 +65,8 @@ var _SERVER = _interopRequireDefault(require("./generators/SERVER"));
65
65
 
66
66
  var _jsPackageManager = require("./js-package-manager");
67
67
 
68
+ var _automigrate = require("./automigrate");
69
+
68
70
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
69
71
 
70
72
  const logger = console;
@@ -242,7 +244,7 @@ const projectTypeInquirer = async options => {
242
244
  return Promise.resolve();
243
245
  };
244
246
 
245
- function initiate(options, pkg) {
247
+ async function initiate(options, pkg) {
246
248
  const welcomeMessage = 'sb init - the simplest way to add a Storybook to your project.';
247
249
  logger.log(_chalk.default.inverse(`\n ${welcomeMessage} \n`)); // Update notify code.
248
250
 
@@ -253,18 +255,18 @@ function initiate(options, pkg) {
253
255
  }).notify();
254
256
  let projectType;
255
257
  const projectTypeProvided = options.type;
256
- const infoText = projectTypeProvided ? 'Installing Storybook for user specified project type' : 'Detecting project type';
258
+ const infoText = projectTypeProvided ? `Installing Storybook for user specified project type: ${projectTypeProvided}` : 'Detecting project type';
257
259
  const done = (0, _helpers.commandLog)(infoText);
258
260
  const packageJson = (0, _jsPackageManager.readPackageJson)();
259
261
  const isEsm = packageJson && packageJson.type === 'module';
260
262
 
261
263
  try {
262
264
  if (projectTypeProvided) {
263
- if (_project_types.installableProjectTypes.includes(options.type)) {
265
+ if (_project_types.installableProjectTypes.includes(projectTypeProvided)) {
264
266
  const storybookInstalled = (0, _detect.isStorybookInstalled)(packageJson, options.force);
265
- projectType = storybookInstalled ? _project_types.ProjectType.ALREADY_HAS_STORYBOOK : options.type.toUpperCase();
267
+ projectType = storybookInstalled ? _project_types.ProjectType.ALREADY_HAS_STORYBOOK : projectTypeProvided.toUpperCase();
266
268
  } else {
267
- done(`The provided project type was not recognized by Storybook.`);
269
+ done(`The provided project type was not recognized by Storybook: ${projectTypeProvided}`);
268
270
  logger.log(`\nThe project types currently supported by Storybook are:\n`);
269
271
 
270
272
  _project_types.installableProjectTypes.sort().forEach(framework => (0, _helpers.paddedLog)(`- ${framework}`));
@@ -281,7 +283,8 @@ function initiate(options, pkg) {
281
283
  }
282
284
 
283
285
  done();
284
- return installStorybook(projectType, Object.assign({}, options, isEsm ? {
286
+ await installStorybook(projectType, Object.assign({}, options, isEsm ? {
285
287
  commonJs: true
286
288
  } : undefined));
289
+ return (0, _automigrate.automigrate)();
287
290
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.svelte = exports.sfcVue = exports.preact = exports.html = exports.vue3 = exports.vue = exports.web_components_lit2 = exports.web_components_typescript = exports.web_components = exports.angular = exports.angular11 = exports.angular10 = exports.react_in_yarn_workspace = exports.webpack_react = exports.react_typescript = exports.react = exports.cra_typescript = exports.cra = void 0;
6
+ exports.svelte = exports.sfcVue = exports.preact = exports.html = exports.vue3 = exports.vue = exports.web_components_lit2 = exports.web_components_typescript = exports.web_components = exports.angular = exports.angular12 = exports.angular11 = exports.angular10 = exports.react_in_yarn_workspace = exports.webpack_react = exports.react_typescript = exports.react = exports.cra_typescript = exports.cra = 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
@@ -74,6 +74,11 @@ const angular11 = Object.assign({}, baseAngular, {
74
74
  version: 'v11-lts'
75
75
  });
76
76
  exports.angular11 = angular11;
77
+ const angular12 = Object.assign({}, baseAngular, {
78
+ name: 'angular12',
79
+ version: 'v12-lts'
80
+ });
81
+ exports.angular12 = angular12;
77
82
  const angular = baseAngular; // #endregion
78
83
  // #region web components
79
84
 
@@ -59,6 +59,8 @@ const checkVersionConsistency = () => {
59
59
  _nodeLogger.logger.warn('No storybook core packages found.');
60
60
 
61
61
  _nodeLogger.logger.warn(`'npm ls | grep storybook' can show if multiple versions are installed.`);
62
+
63
+ return;
62
64
  }
63
65
 
64
66
  storybookPackages.sort((a, b) => _semver.default.rcompare(a.version, b.version));
@@ -131,7 +133,7 @@ const upgrade = async ({
131
133
  flags.push('--target');
132
134
  flags.push(prerelease ? 'greatest' : 'latest');
133
135
  flags = addExtraFlags(EXTRA_FLAGS, flags, packageManager.retrievePackageJson());
134
- const check = (0, _crossSpawn.sync)('npx', ['npm-check-updates', '/storybook/', ...flags], {
136
+ const check = (0, _crossSpawn.sync)('npx', ['npm-check-updates@latest', '/storybook/', ...flags], {
135
137
  stdio: 'pipe'
136
138
  }).output.toString();
137
139
 
@@ -1,57 +1,59 @@
1
1
  {
2
- "@storybook/addon-a11y": "6.4.0-beta.8",
3
- "@storybook/addon-actions": "6.4.0-beta.8",
4
- "@storybook/addon-backgrounds": "6.4.0-beta.8",
5
- "@storybook/addon-controls": "6.4.0-beta.8",
6
- "@storybook/addon-docs": "6.4.0-beta.8",
7
- "@storybook/addon-essentials": "6.4.0-beta.8",
8
- "@storybook/addon-jest": "6.4.0-beta.8",
9
- "@storybook/addon-links": "6.4.0-beta.8",
10
- "@storybook/addon-storyshots": "6.4.0-beta.8",
11
- "@storybook/addon-storyshots-puppeteer": "6.4.0-beta.8",
12
- "@storybook/addon-storysource": "6.4.0-beta.8",
13
- "@storybook/addon-toolbars": "6.4.0-beta.8",
14
- "@storybook/addon-viewport": "6.4.0-beta.8",
15
- "@storybook/addons": "6.4.0-beta.8",
16
- "@storybook/angular": "6.4.0-beta.8",
17
- "@storybook/api": "6.4.0-beta.8",
18
- "@storybook/aurelia": "6.4.0-beta.8",
19
- "@storybook/builder-webpack4": "6.4.0-beta.8",
20
- "@storybook/builder-webpack5": "6.4.0-beta.8",
21
- "@storybook/channel-postmessage": "6.4.0-beta.8",
22
- "@storybook/channel-websocket": "6.4.0-beta.8",
23
- "@storybook/channels": "6.4.0-beta.8",
24
- "@storybook/cli": "6.4.0-beta.8",
25
- "@storybook/client-api": "6.4.0-beta.8",
26
- "@storybook/client-logger": "6.4.0-beta.8",
27
- "@storybook/codemod": "6.4.0-beta.8",
28
- "@storybook/components": "6.4.0-beta.8",
29
- "@storybook/core": "6.4.0-beta.8",
30
- "@storybook/core-client": "6.4.0-beta.8",
31
- "@storybook/core-common": "6.4.0-beta.8",
32
- "@storybook/core-events": "6.4.0-beta.8",
33
- "@storybook/core-server": "6.4.0-beta.8",
34
- "@storybook/csf-tools": "6.4.0-beta.8",
35
- "@storybook/ember": "6.4.0-beta.8",
36
- "@storybook/html": "6.4.0-beta.8",
37
- "@storybook/manager-webpack4": "6.4.0-beta.8",
38
- "@storybook/manager-webpack5": "6.4.0-beta.8",
39
- "@storybook/marionette": "6.4.0-beta.8",
40
- "@storybook/marko": "6.4.0-beta.8",
41
- "@storybook/mithril": "6.4.0-beta.8",
42
- "@storybook/node-logger": "6.4.0-beta.8",
43
- "@storybook/postinstall": "6.4.0-beta.8",
44
- "@storybook/preact": "6.4.0-beta.8",
45
- "@storybook/rax": "6.4.0-beta.8",
46
- "@storybook/react": "6.4.0-beta.8",
47
- "@storybook/riot": "6.4.0-beta.8",
48
- "@storybook/router": "6.4.0-beta.8",
49
- "@storybook/server": "6.4.0-beta.8",
50
- "@storybook/source-loader": "6.4.0-beta.8",
51
- "@storybook/svelte": "6.4.0-beta.8",
52
- "@storybook/theming": "6.4.0-beta.8",
53
- "@storybook/ui": "6.4.0-beta.8",
54
- "@storybook/vue": "6.4.0-beta.8",
55
- "@storybook/vue3": "6.4.0-beta.8",
56
- "@storybook/web-components": "6.4.0-beta.8"
2
+ "@storybook/addon-a11y": "6.4.0-rc.2",
3
+ "@storybook/addon-actions": "6.4.0-rc.2",
4
+ "@storybook/addon-backgrounds": "6.4.0-rc.2",
5
+ "@storybook/addon-controls": "6.4.0-rc.2",
6
+ "@storybook/addon-docs": "6.4.0-rc.2",
7
+ "@storybook/addon-essentials": "6.4.0-rc.2",
8
+ "@storybook/addon-interactions": "6.4.0-rc.2",
9
+ "@storybook/addon-jest": "6.4.0-rc.2",
10
+ "@storybook/addon-links": "6.4.0-rc.2",
11
+ "@storybook/addon-storyshots": "6.4.0-rc.2",
12
+ "@storybook/addon-storyshots-puppeteer": "6.4.0-rc.2",
13
+ "@storybook/addon-storysource": "6.4.0-rc.2",
14
+ "@storybook/addon-toolbars": "6.4.0-rc.2",
15
+ "@storybook/addon-viewport": "6.4.0-rc.2",
16
+ "@storybook/addons": "6.4.0-rc.2",
17
+ "@storybook/angular": "6.4.0-rc.2",
18
+ "@storybook/api": "6.4.0-rc.2",
19
+ "@storybook/aurelia": "6.4.0-rc.2",
20
+ "@storybook/builder-webpack4": "6.4.0-rc.2",
21
+ "@storybook/builder-webpack5": "6.4.0-rc.2",
22
+ "@storybook/channel-postmessage": "6.4.0-rc.2",
23
+ "@storybook/channel-websocket": "6.4.0-rc.2",
24
+ "@storybook/channels": "6.4.0-rc.2",
25
+ "@storybook/cli": "6.4.0-rc.2",
26
+ "@storybook/client-api": "6.4.0-rc.2",
27
+ "@storybook/client-logger": "6.4.0-rc.2",
28
+ "@storybook/codemod": "6.4.0-rc.2",
29
+ "@storybook/components": "6.4.0-rc.2",
30
+ "@storybook/core": "6.4.0-rc.2",
31
+ "@storybook/core-client": "6.4.0-rc.2",
32
+ "@storybook/core-common": "6.4.0-rc.2",
33
+ "@storybook/core-events": "6.4.0-rc.2",
34
+ "@storybook/core-server": "6.4.0-rc.2",
35
+ "@storybook/csf-tools": "6.4.0-rc.2",
36
+ "@storybook/ember": "6.4.0-rc.2",
37
+ "@storybook/html": "6.4.0-rc.2",
38
+ "@storybook/instrumenter": "6.4.0-rc.2",
39
+ "@storybook/manager-webpack4": "6.4.0-rc.2",
40
+ "@storybook/manager-webpack5": "6.4.0-rc.2",
41
+ "@storybook/marionette": "6.4.0-rc.2",
42
+ "@storybook/marko": "6.4.0-rc.2",
43
+ "@storybook/mithril": "6.4.0-rc.2",
44
+ "@storybook/node-logger": "6.4.0-rc.2",
45
+ "@storybook/postinstall": "6.4.0-rc.2",
46
+ "@storybook/preact": "6.4.0-rc.2",
47
+ "@storybook/rax": "6.4.0-rc.2",
48
+ "@storybook/react": "6.4.0-rc.2",
49
+ "@storybook/riot": "6.4.0-rc.2",
50
+ "@storybook/router": "6.4.0-rc.2",
51
+ "@storybook/server": "6.4.0-rc.2",
52
+ "@storybook/source-loader": "6.4.0-rc.2",
53
+ "@storybook/svelte": "6.4.0-rc.2",
54
+ "@storybook/theming": "6.4.0-rc.2",
55
+ "@storybook/ui": "6.4.0-rc.2",
56
+ "@storybook/vue": "6.4.0-rc.2",
57
+ "@storybook/vue3": "6.4.0-rc.2",
58
+ "@storybook/web-components": "6.4.0-rc.2"
57
59
  }