@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.
- package/dist/cjs/automigrate/fixes/eslint-plugin.js +129 -0
- package/dist/cjs/automigrate/fixes/index.js +5 -1
- package/dist/cjs/automigrate/fixes/mainjsFramework.js +89 -0
- package/dist/cjs/automigrate/fixes/webpack5.js +9 -5
- package/dist/cjs/automigrate/helpers/getEslintInfo.js +28 -0
- package/dist/cjs/automigrate/index.js +14 -8
- package/dist/cjs/extract.js +3 -0
- package/dist/cjs/frameworks/web-components/js/Button.js +1 -1
- package/dist/cjs/frameworks/web-components/ts/Button.ts +1 -1
- package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
- package/dist/cjs/generators/REACT_SCRIPTS/index.js +1 -1
- package/dist/cjs/generators/baseGenerator.js +3 -1
- package/dist/cjs/initiate.js +9 -6
- package/dist/cjs/repro-generators/configs.js +6 -1
- package/dist/cjs/upgrade.js +3 -1
- package/dist/cjs/versions.json +57 -55
- package/dist/esm/automigrate/fixes/eslint-plugin.js +129 -0
- package/dist/esm/automigrate/fixes/index.js +5 -1
- package/dist/esm/automigrate/fixes/mainjsFramework.js +89 -0
- package/dist/esm/automigrate/fixes/webpack5.js +9 -5
- package/dist/esm/automigrate/helpers/getEslintInfo.js +28 -0
- package/dist/esm/automigrate/index.js +14 -8
- package/dist/esm/extract.js +3 -0
- package/dist/esm/frameworks/web-components/js/Button.js +1 -1
- package/dist/esm/frameworks/web-components/ts/Button.ts +1 -1
- package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
- package/dist/esm/generators/REACT_SCRIPTS/index.js +1 -1
- package/dist/esm/generators/baseGenerator.js +3 -1
- package/dist/esm/initiate.js +9 -6
- package/dist/esm/repro-generators/configs.js +6 -1
- package/dist/esm/upgrade.js +3 -1
- package/dist/esm/versions.json +57 -55
- package/dist/modern/automigrate/fixes/eslint-plugin.js +129 -0
- package/dist/modern/automigrate/fixes/index.js +5 -1
- package/dist/modern/automigrate/fixes/mainjsFramework.js +89 -0
- package/dist/modern/automigrate/fixes/webpack5.js +9 -5
- package/dist/modern/automigrate/helpers/getEslintInfo.js +28 -0
- package/dist/modern/automigrate/index.js +14 -8
- package/dist/modern/extract.js +3 -0
- package/dist/modern/frameworks/web-components/js/Button.js +1 -1
- package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/index.js +1 -1
- package/dist/modern/generators/REACT_SCRIPTS/index.js +1 -1
- package/dist/modern/generators/baseGenerator.js +3 -1
- package/dist/modern/initiate.js +9 -6
- package/dist/modern/repro-generators/configs.js +6 -1
- package/dist/modern/upgrade.js +3 -1
- package/dist/modern/versions.json +57 -55
- package/dist/ts3.4/automigrate/fixes/eslint-plugin.d.ts +15 -0
- package/dist/ts3.4/automigrate/fixes/mainjsFramework.d.ts +8 -0
- package/dist/ts3.4/automigrate/helpers/getEslintInfo.d.ts +2 -0
- package/dist/ts3.4/automigrate/index.d.ts +1 -1
- package/dist/ts3.4/repro-generators/configs.d.ts +1 -0
- package/dist/ts3.9/automigrate/fixes/eslint-plugin.d.ts +15 -0
- package/dist/ts3.9/automigrate/fixes/mainjsFramework.d.ts +8 -0
- package/dist/ts3.9/automigrate/helpers/getEslintInfo.d.ts +2 -0
- package/dist/ts3.9/automigrate/index.d.ts +1 -1
- package/dist/ts3.9/repro-generators/configs.d.ts +1 -0
- package/package.json +7 -7
- 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(
|
|
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$
|
|
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$
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
|
72
|
+
logger.info(`If you change your mind, run '${_chalk.default.cyan('npx sb@next automigrate')}'`);
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
}
|
package/dist/cjs/extract.js
CHANGED
|
@@ -14,7 +14,7 @@ configure(() => {
|
|
|
14
14
|
require('./stories');
|
|
15
15
|
}, module);
|
|
16
16
|
|
|
17
|
-
// Refer to https://github.com/storybookjs/
|
|
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
|
|
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
|
package/dist/cjs/initiate.js
CHANGED
|
@@ -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 ?
|
|
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(
|
|
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 :
|
|
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
|
-
|
|
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
|
|
package/dist/cjs/upgrade.js
CHANGED
|
@@ -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
|
|
package/dist/cjs/versions.json
CHANGED
|
@@ -1,57 +1,59 @@
|
|
|
1
1
|
{
|
|
2
|
-
"@storybook/addon-a11y": "6.4.0-
|
|
3
|
-
"@storybook/addon-actions": "6.4.0-
|
|
4
|
-
"@storybook/addon-backgrounds": "6.4.0-
|
|
5
|
-
"@storybook/addon-controls": "6.4.0-
|
|
6
|
-
"@storybook/addon-docs": "6.4.0-
|
|
7
|
-
"@storybook/addon-essentials": "6.4.0-
|
|
8
|
-
"@storybook/addon-
|
|
9
|
-
"@storybook/addon-
|
|
10
|
-
"@storybook/addon-
|
|
11
|
-
"@storybook/addon-storyshots
|
|
12
|
-
"@storybook/addon-
|
|
13
|
-
"@storybook/addon-
|
|
14
|
-
"@storybook/addon-
|
|
15
|
-
"@storybook/
|
|
16
|
-
"@storybook/
|
|
17
|
-
"@storybook/
|
|
18
|
-
"@storybook/
|
|
19
|
-
"@storybook/
|
|
20
|
-
"@storybook/builder-
|
|
21
|
-
"@storybook/
|
|
22
|
-
"@storybook/channel-
|
|
23
|
-
"@storybook/
|
|
24
|
-
"@storybook/
|
|
25
|
-
"@storybook/
|
|
26
|
-
"@storybook/client-
|
|
27
|
-
"@storybook/
|
|
28
|
-
"@storybook/
|
|
29
|
-
"@storybook/
|
|
30
|
-
"@storybook/core
|
|
31
|
-
"@storybook/core-
|
|
32
|
-
"@storybook/core-
|
|
33
|
-
"@storybook/core-
|
|
34
|
-
"@storybook/
|
|
35
|
-
"@storybook/
|
|
36
|
-
"@storybook/
|
|
37
|
-
"@storybook/
|
|
38
|
-
"@storybook/
|
|
39
|
-
"@storybook/
|
|
40
|
-
"@storybook/
|
|
41
|
-
"@storybook/
|
|
42
|
-
"@storybook/
|
|
43
|
-
"@storybook/
|
|
44
|
-
"@storybook/
|
|
45
|
-
"@storybook/
|
|
46
|
-
"@storybook/
|
|
47
|
-
"@storybook/
|
|
48
|
-
"@storybook/
|
|
49
|
-
"@storybook/
|
|
50
|
-
"@storybook/
|
|
51
|
-
"@storybook/
|
|
52
|
-
"@storybook/
|
|
53
|
-
"@storybook/
|
|
54
|
-
"@storybook/
|
|
55
|
-
"@storybook/
|
|
56
|
-
"@storybook/
|
|
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
|
}
|