@storybook/core-server 6.5.9 → 7.0.0-alpha.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 (142) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/build-dev.js +55 -140
  3. package/dist/cjs/build-static.js +45 -75
  4. package/dist/cjs/dev-server.js +10 -7
  5. package/dist/cjs/presets/babel-cache-preset.js +2 -4
  6. package/dist/cjs/presets/common-preset.js +31 -23
  7. package/dist/cjs/standalone.js +9 -1
  8. package/dist/cjs/utils/StoryIndexGenerator.js +16 -4
  9. package/dist/cjs/utils/{get-manager-builder.js → get-builders.js} +28 -27
  10. package/dist/esm/build-dev.js +53 -130
  11. package/dist/esm/build-static.js +40 -64
  12. package/dist/esm/dev-server.js +10 -6
  13. package/dist/esm/presets/babel-cache-preset.js +1 -2
  14. package/dist/esm/presets/common-preset.js +23 -22
  15. package/dist/esm/standalone.js +8 -1
  16. package/dist/esm/utils/StoryIndexGenerator.js +17 -5
  17. package/dist/esm/utils/get-builders.js +31 -0
  18. package/dist/types/build-dev.d.ts +2 -0
  19. package/dist/{ts3.9 → types}/build-static.d.ts +0 -1
  20. package/dist/{ts3.9 → types}/dev-server.d.ts +1 -1
  21. package/dist/{ts3.9 → types}/index.d.ts +0 -0
  22. package/dist/types/presets/babel-cache-preset.d.ts +1 -0
  23. package/dist/{ts3.4 → types}/presets/common-preset.d.ts +29 -31
  24. package/dist/{ts3.9 → types}/standalone.d.ts +0 -0
  25. package/dist/{ts3.9 → types}/utils/StoryIndexGenerator.d.ts +4 -1
  26. package/dist/{ts3.9 → types}/utils/__mockdata__/E.stories.d.ts +0 -0
  27. package/dist/{ts3.9 → types}/utils/__mockdata__/deeply/nested/single/File.stories.d.ts +0 -0
  28. package/dist/{ts3.9 → types}/utils/__mockdata__/src/B.stories.d.ts +0 -0
  29. package/dist/{ts3.9 → types}/utils/__mockdata__/src/NoMeta.stories.d.ts +0 -0
  30. package/dist/{ts3.9 → types}/utils/__mockdata__/src/nested/Button.d.ts +0 -0
  31. package/dist/{ts3.9 → types}/utils/__mockdata__/src/nested/Button.stories.d.ts +0 -0
  32. package/dist/{ts3.9 → types}/utils/__mockdata__/src/second-nested/G.stories.d.ts +0 -0
  33. package/dist/{ts3.9 → types}/utils/copy-all-static-files.d.ts +0 -0
  34. package/dist/types/utils/get-builders.d.ts +2 -0
  35. package/dist/{ts3.9 → types}/utils/get-server-channel.d.ts +0 -0
  36. package/dist/{ts3.9 → types}/utils/metadata.d.ts +0 -0
  37. package/dist/{ts3.9 → types}/utils/middleware.d.ts +0 -0
  38. package/dist/{ts3.9 → types}/utils/open-in-browser.d.ts +0 -0
  39. package/dist/{ts3.9 → types}/utils/output-startup-information.d.ts +0 -0
  40. package/dist/{ts3.4 → types}/utils/output-stats.d.ts +3 -3
  41. package/dist/{ts3.9 → types}/utils/release-notes.d.ts +0 -0
  42. package/dist/{ts3.9 → types}/utils/server-address.d.ts +0 -0
  43. package/dist/{ts3.9 → types}/utils/server-init.d.ts +0 -0
  44. package/dist/{ts3.9 → types}/utils/server-statics.d.ts +0 -0
  45. package/dist/{ts3.9 → types}/utils/stories-json.d.ts +0 -0
  46. package/dist/{ts3.9 → types}/utils/update-check.d.ts +0 -0
  47. package/dist/{ts3.9 → types}/utils/watch-story-specifiers.d.ts +0 -0
  48. package/package.json +14 -23
  49. package/dist/cjs/cli/dev.js +0 -63
  50. package/dist/cjs/cli/index.js +0 -31
  51. package/dist/cjs/cli/prod.js +0 -43
  52. package/dist/cjs/cli/utils.js +0 -63
  53. package/dist/cjs/utils/get-preview-builder.js +0 -47
  54. package/dist/esm/cli/dev.js +0 -44
  55. package/dist/esm/cli/index.js +0 -2
  56. package/dist/esm/cli/prod.js +0 -26
  57. package/dist/esm/cli/utils.js +0 -48
  58. package/dist/esm/utils/get-manager-builder.js +0 -26
  59. package/dist/esm/utils/get-preview-builder.js +0 -28
  60. package/dist/modern/build-dev.js +0 -232
  61. package/dist/modern/build-static.js +0 -237
  62. package/dist/modern/cli/dev.js +0 -44
  63. package/dist/modern/cli/index.js +0 -2
  64. package/dist/modern/cli/prod.js +0 -26
  65. package/dist/modern/cli/utils.js +0 -48
  66. package/dist/modern/dev-server.js +0 -200
  67. package/dist/modern/index.js +0 -4
  68. package/dist/modern/presets/babel-cache-preset.js +0 -18
  69. package/dist/modern/presets/common-preset.js +0 -124
  70. package/dist/modern/standalone.js +0 -30
  71. package/dist/modern/utils/StoryIndexGenerator.js +0 -222
  72. package/dist/modern/utils/__mockdata__/E.stories.js +0 -5
  73. package/dist/modern/utils/__mockdata__/deeply/nested/single/File.stories.js +0 -4
  74. package/dist/modern/utils/__mockdata__/preview.js +0 -1
  75. package/dist/modern/utils/__mockdata__/src/A.stories.js +0 -5
  76. package/dist/modern/utils/__mockdata__/src/B.stories.js +0 -5
  77. package/dist/modern/utils/__mockdata__/src/C.js +0 -1
  78. package/dist/modern/utils/__mockdata__/src/D.stories.js +0 -5
  79. package/dist/modern/utils/__mockdata__/src/NoMeta.stories.js +0 -4
  80. package/dist/modern/utils/__mockdata__/src/first-nested/deeply/F.stories.js +0 -5
  81. package/dist/modern/utils/__mockdata__/src/nested/Button.js +0 -1
  82. package/dist/modern/utils/__mockdata__/src/nested/Button.stories.js +0 -5
  83. package/dist/modern/utils/__mockdata__/src/second-nested/G.stories.js +0 -5
  84. package/dist/modern/utils/copy-all-static-files.js +0 -62
  85. package/dist/modern/utils/get-manager-builder.js +0 -26
  86. package/dist/modern/utils/get-preview-builder.js +0 -28
  87. package/dist/modern/utils/get-server-channel.js +0 -39
  88. package/dist/modern/utils/metadata.js +0 -14
  89. package/dist/modern/utils/middleware.js +0 -27
  90. package/dist/modern/utils/open-in-browser.js +0 -26
  91. package/dist/modern/utils/output-startup-information.js +0 -54
  92. package/dist/modern/utils/output-stats.js +0 -37
  93. package/dist/modern/utils/release-notes.js +0 -63
  94. package/dist/modern/utils/server-address.js +0 -20
  95. package/dist/modern/utils/server-init.js +0 -29
  96. package/dist/modern/utils/server-statics.js +0 -97
  97. package/dist/modern/utils/stories-json.js +0 -42
  98. package/dist/modern/utils/update-check.js +0 -65
  99. package/dist/modern/utils/watch-story-specifiers.js +0 -99
  100. package/dist/ts3.4/build-dev.d.ts +0 -3
  101. package/dist/ts3.4/build-static.d.ts +0 -3
  102. package/dist/ts3.4/cli/dev.d.ts +0 -6
  103. package/dist/ts3.4/cli/index.d.ts +0 -2
  104. package/dist/ts3.4/cli/prod.d.ts +0 -7
  105. package/dist/ts3.4/cli/utils.d.ts +0 -5
  106. package/dist/ts3.4/dev-server.d.ts +0 -24
  107. package/dist/ts3.4/index.d.ts +0 -4
  108. package/dist/ts3.4/presets/babel-cache-preset.d.ts +0 -2
  109. package/dist/ts3.4/standalone.d.ts +0 -2
  110. package/dist/ts3.4/utils/StoryIndexGenerator.d.ts +0 -27
  111. package/dist/ts3.4/utils/__mockdata__/E.stories.d.ts +0 -5
  112. package/dist/ts3.4/utils/__mockdata__/deeply/nested/single/File.stories.d.ts +0 -5
  113. package/dist/ts3.4/utils/__mockdata__/src/B.stories.d.ts +0 -5
  114. package/dist/ts3.4/utils/__mockdata__/src/NoMeta.stories.d.ts +0 -1
  115. package/dist/ts3.4/utils/__mockdata__/src/nested/Button.d.ts +0 -1
  116. package/dist/ts3.4/utils/__mockdata__/src/nested/Button.stories.d.ts +0 -5
  117. package/dist/ts3.4/utils/__mockdata__/src/second-nested/G.stories.d.ts +0 -5
  118. package/dist/ts3.4/utils/copy-all-static-files.d.ts +0 -2
  119. package/dist/ts3.4/utils/get-manager-builder.d.ts +0 -2
  120. package/dist/ts3.4/utils/get-preview-builder.d.ts +0 -2
  121. package/dist/ts3.4/utils/get-server-channel.d.ts +0 -9
  122. package/dist/ts3.4/utils/metadata.d.ts +0 -3
  123. package/dist/ts3.4/utils/middleware.d.ts +0 -1
  124. package/dist/ts3.4/utils/open-in-browser.d.ts +0 -1
  125. package/dist/ts3.4/utils/output-startup-information.d.ts +0 -16
  126. package/dist/ts3.4/utils/release-notes.d.ts +0 -8
  127. package/dist/ts3.4/utils/server-address.d.ts +0 -8
  128. package/dist/ts3.4/utils/server-init.d.ts +0 -10
  129. package/dist/ts3.4/utils/server-statics.d.ts +0 -8
  130. package/dist/ts3.4/utils/stories-json.d.ts +0 -13
  131. package/dist/ts3.4/utils/update-check.d.ts +0 -3
  132. package/dist/ts3.4/utils/watch-story-specifiers.d.ts +0 -5
  133. package/dist/ts3.9/build-dev.d.ts +0 -3
  134. package/dist/ts3.9/cli/dev.d.ts +0 -6
  135. package/dist/ts3.9/cli/index.d.ts +0 -2
  136. package/dist/ts3.9/cli/prod.d.ts +0 -7
  137. package/dist/ts3.9/cli/utils.d.ts +0 -5
  138. package/dist/ts3.9/presets/babel-cache-preset.d.ts +0 -2
  139. package/dist/ts3.9/presets/common-preset.d.ts +0 -31
  140. package/dist/ts3.9/utils/get-manager-builder.d.ts +0 -2
  141. package/dist/ts3.9/utils/get-preview-builder.d.ts +0 -2
  142. package/dist/ts3.9/utils/output-stats.d.ts +0 -3
package/README.md CHANGED
@@ -12,7 +12,6 @@ It contains:
12
12
 
13
13
  The "preview" (aka iframe) side is implemented in pluggable builders:
14
14
 
15
- - `@storybook/builder-webpack4`
16
15
  - `@storybook/builder-webpack5`
17
16
 
18
17
  These builders abstract both the webpack dependencies as well as the various core configurations and loader/plugin dependencies provided out of the box with Storybook.
@@ -5,28 +5,21 @@ require("core-js/modules/es.symbol.description.js");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.buildDev = buildDev;
9
8
  exports.buildDevStandalone = buildDevStandalone;
10
9
 
11
10
  require("core-js/modules/es.promise.js");
12
11
 
13
- var _nodeLogger = require("@storybook/node-logger");
14
-
15
- var _prompts = _interopRequireDefault(require("prompts"));
16
-
17
12
  var _coreCommon = require("@storybook/core-common");
18
13
 
19
- var _telemetry = require("@storybook/telemetry");
20
-
21
- var _tsDedent = _interopRequireDefault(require("ts-dedent"));
14
+ var _prompts = _interopRequireDefault(require("prompts"));
22
15
 
23
16
  var _global = _interopRequireDefault(require("global"));
24
17
 
25
- var _path = _interopRequireDefault(require("path"));
18
+ var _path = require("path");
26
19
 
27
- var _devServer = require("./dev-server");
20
+ var _nodeLogger = require("@storybook/node-logger");
28
21
 
29
- var _cli = require("./cli");
22
+ var _devServer = require("./dev-server");
30
23
 
31
24
  var _releaseNotes = require("./utils/release-notes");
32
25
 
@@ -38,9 +31,7 @@ var _updateCheck = require("./utils/update-check");
38
31
 
39
32
  var _serverAddress = require("./utils/server-address");
40
33
 
41
- var _getPreviewBuilder = require("./utils/get-preview-builder");
42
-
43
- var _getManagerBuilder = require("./utils/get-manager-builder");
34
+ var _getBuilders = require("./utils/get-builders");
44
35
 
45
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
37
 
@@ -66,9 +57,7 @@ async function buildDevStandalone(options) {
66
57
  var packageJson = options.packageJson,
67
58
  versionUpdates = options.versionUpdates,
68
59
  releaseNotes = options.releaseNotes;
69
- var version = packageJson.version,
70
- _packageJson$name = packageJson.name,
71
- name = _packageJson$name === void 0 ? '' : _packageJson$name; // updateInfo and releaseNotesData are cached, so this is typically pretty fast
60
+ var version = packageJson.version; // updateInfo and releaseNotesData are cached, so this is typically pretty fast
72
61
 
73
62
  var _await$Promise$all = await Promise.all([(0, _serverAddress.getServerPort)(options.port), versionUpdates ? (0, _updateCheck.updateCheck)(version) : Promise.resolve({
74
63
  success: false,
@@ -98,15 +87,39 @@ async function buildDevStandalone(options) {
98
87
  options.versionCheck = versionCheck;
99
88
  options.releaseNotesData = releaseNotesData;
100
89
  options.configType = 'DEVELOPMENT';
101
- options.configDir = _path.default.resolve(options.configDir);
102
- options.outputDir = options.smokeTest ? (0, _coreCommon.resolvePathInStorybookCache)('public') : _path.default.resolve(options.outputDir || (0, _coreCommon.resolvePathInStorybookCache)('public'));
90
+ options.configDir = (0, _path.resolve)(options.configDir);
91
+ options.outputDir = options.smokeTest ? (0, _coreCommon.resolvePathInStorybookCache)('public') : (0, _path.resolve)(options.outputDir || (0, _coreCommon.resolvePathInStorybookCache)('public'));
103
92
  options.serverChannelUrl = (0, _serverAddress.getServerChannelUrl)(port, options);
104
93
  /* eslint-enable no-param-reassign */
105
94
 
106
- var previewBuilder = await (0, _getPreviewBuilder.getPreviewBuilder)(options.configDir);
107
- var managerBuilder = await (0, _getManagerBuilder.getManagerBuilder)(options.configDir);
95
+ var _loadMainConfig = (0, _coreCommon.loadMainConfig)(options),
96
+ framework = _loadMainConfig.framework;
97
+
98
+ var corePresets = [];
99
+ var frameworkName = typeof framework === 'string' ? framework : framework === null || framework === void 0 ? void 0 : framework.name;
100
+
101
+ if (frameworkName) {
102
+ corePresets.push((0, _path.join)(frameworkName, 'preset'));
103
+ } else {
104
+ _nodeLogger.logger.warn(`you have not specified a framework in your ${options.configDir}/main.js`);
105
+ }
106
+
107
+ _nodeLogger.logger.info('=> Loading presets');
108
+
108
109
  var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
109
- corePresets: [require.resolve('./presets/common-preset'), ...managerBuilder.corePresets, ...previewBuilder.corePresets, require.resolve('./presets/babel-cache-preset')],
110
+ corePresets: corePresets,
111
+ overridePresets: []
112
+ }, options));
113
+
114
+ var _await$getBuilders = await (0, _getBuilders.getBuilders)(_objectSpread(_objectSpread({}, options), {}, {
115
+ presets: presets
116
+ })),
117
+ _await$getBuilders2 = _slicedToArray(_await$getBuilders, 2),
118
+ previewBuilder = _await$getBuilders2[0],
119
+ managerBuilder = _await$getBuilders2[1];
120
+
121
+ presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
122
+ corePresets: [require.resolve('./presets/common-preset'), ...managerBuilder.corePresets, ...previewBuilder.corePresets, ...corePresets, require.resolve('./presets/babel-cache-preset')],
110
123
  overridePresets: previewBuilder.overridePresets
111
124
  }, options));
112
125
  var features = await presets.apply('features');
@@ -134,131 +147,33 @@ async function buildDevStandalone(options) {
134
147
  }
135
148
 
136
149
  if (options.smokeTest) {
137
- // @ts-ignore
138
- var managerWarnings = managerStats && managerStats.toJson().warnings || [];
139
- if (managerWarnings.length > 0) _nodeLogger.logger.warn(`manager: ${JSON.stringify(managerWarnings, null, 2)}`); // I'm a little reticent to import webpack types in this file :shrug:
140
- // @ts-ignore
141
-
142
- var previewWarnings = previewStats && previewStats.toJson().warnings || [];
143
- if (previewWarnings.length > 0) _nodeLogger.logger.warn(`preview: ${JSON.stringify(previewWarnings, null, 2)}`);
144
- process.exit(managerWarnings.length > 0 || previewWarnings.length > 0 && !options.ignorePreview ? 1 : 0);
150
+ var warnings = []; // @ts-ignore
151
+
152
+ warnings.push(...(managerStats && managerStats.toJson().warnings || [])); // @ts-ignore
153
+
154
+ warnings.push(...(managerStats && previewStats.toJson().warnings || []));
155
+ var problems = warnings.filter(function (warning) {
156
+ return !warning.message.includes(`export 'useInsertionEffect'`);
157
+ }).filter(function (warning) {
158
+ return !warning.message.includes(`compilation but it's unused`);
159
+ }).filter(function (warning) {
160
+ return !warning.message.includes(`Conflicting values for 'process.env.NODE_ENV'`);
161
+ });
162
+ console.log(problems.map(function (p) {
163
+ return p.stack;
164
+ }));
165
+ process.exit(problems.length > 0 ? 1 : 0);
145
166
  return;
146
- } // Get package name and capitalize it e.g. @storybook/react -> React
147
-
167
+ }
148
168
 
149
- var packageName = name.split('@storybook/').length > 1 ? name.split('@storybook/')[1] : name;
150
- var frameworkName = packageName.charAt(0).toUpperCase() + packageName.slice(1);
169
+ var name = frameworkName.split('@storybook/').length > 1 ? frameworkName.split('@storybook/')[1] : frameworkName;
151
170
  (0, _outputStartupInformation.outputStartupInformation)({
152
171
  updateInfo: versionCheck,
153
172
  version: version,
154
- name: frameworkName,
173
+ name: name,
155
174
  address: address,
156
175
  networkAddress: networkAddress,
157
176
  managerTotalTime: managerTotalTime,
158
177
  previewTotalTime: previewTotalTime
159
178
  });
160
- }
161
-
162
- async function buildDev(loadOptions) {
163
- var cliOptions = await (0, _cli.getDevCli)(loadOptions.packageJson);
164
-
165
- var options = _objectSpread(_objectSpread(_objectSpread({}, cliOptions), loadOptions), {}, {
166
- configDir: loadOptions.configDir || cliOptions.configDir || './.storybook',
167
- configType: 'DEVELOPMENT',
168
- ignorePreview: !!cliOptions.previewUrl && !cliOptions.forceBuildPreview,
169
- docsMode: !!cliOptions.docs,
170
- cache: _coreCommon.cache
171
- });
172
-
173
- try {
174
- await buildDevStandalone(options);
175
- } catch (error) {
176
- var _error$compilation;
177
-
178
- // this is a weird bugfix, somehow 'node-pre-gyp' is polluting the npmLog header
179
- _nodeLogger.instance.heading = '';
180
-
181
- if (error instanceof Error) {
182
- if (error.error) {
183
- _nodeLogger.logger.error(error.error);
184
- } else if (error.stats && error.stats.compilation.errors) {
185
- error.stats.compilation.errors.forEach(function (e) {
186
- return _nodeLogger.logger.plain(e);
187
- });
188
- } else {
189
- _nodeLogger.logger.error(error);
190
- }
191
- } else if ((_error$compilation = error.compilation) !== null && _error$compilation !== void 0 && _error$compilation.errors) {
192
- error.compilation.errors.forEach(function (e) {
193
- return _nodeLogger.logger.plain(e);
194
- });
195
- }
196
-
197
- _nodeLogger.logger.line();
198
-
199
- _nodeLogger.logger.warn(error.close ? (0, _tsDedent.default)`
200
- FATAL broken build!, will close the process,
201
- Fix the error below and restart storybook.
202
- ` : (0, _tsDedent.default)`
203
- Broken build, fix the error above.
204
- You may need to refresh the browser.
205
- `);
206
-
207
- _nodeLogger.logger.line();
208
-
209
- var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
210
- corePresets: [require.resolve('./presets/common-preset')],
211
- overridePresets: []
212
- }, options));
213
- var core = await presets.apply('core');
214
-
215
- if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
216
- var enableCrashReports;
217
-
218
- if (core.enableCrashReports !== undefined) {
219
- enableCrashReports = core.enableCrashReports;
220
- } else {
221
- var valueFromCache = await _coreCommon.cache.get('enableCrashreports');
222
-
223
- if (valueFromCache !== undefined) {
224
- enableCrashReports = valueFromCache;
225
- } else {
226
- var valueFromPrompt = await promptCrashReports(options);
227
-
228
- if (valueFromPrompt !== undefined) {
229
- enableCrashReports = valueFromPrompt;
230
- }
231
- }
232
- }
233
-
234
- await (0, _telemetry.telemetry)('error-dev', {
235
- error: error
236
- }, {
237
- immediate: true,
238
- configDir: options.configDir,
239
- enableCrashReports: enableCrashReports
240
- });
241
- }
242
-
243
- process.exit(1);
244
- }
245
- }
246
-
247
- var promptCrashReports = async function ({
248
- packageJson: packageJson
249
- }) {
250
- if (process.env.CI) {
251
- return undefined;
252
- }
253
-
254
- var _await$prompts2 = await (0, _prompts.default)({
255
- type: 'confirm',
256
- name: 'enableCrashReports',
257
- message: `Would you like to send crash reports to Storybook?`,
258
- initial: true
259
- }),
260
- enableCrashReports = _await$prompts2.enableCrashReports;
261
-
262
- await _coreCommon.cache.set('enableCrashreports', enableCrashReports);
263
- return enableCrashReports;
264
- };
179
+ }
@@ -5,7 +5,6 @@ require("core-js/modules/es.symbol.description.js");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.buildStatic = buildStatic;
9
8
  exports.buildStaticStandalone = buildStaticStandalone;
10
9
 
11
10
  require("core-js/modules/es.promise.js");
@@ -16,7 +15,7 @@ var _cpy = _interopRequireDefault(require("cpy"));
16
15
 
17
16
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
18
17
 
19
- var _path = _interopRequireDefault(require("path"));
18
+ var _path = _interopRequireWildcard(require("path"));
20
19
 
21
20
  var _tsDedent = _interopRequireDefault(require("ts-dedent"));
22
21
 
@@ -28,15 +27,11 @@ var _telemetry = require("@storybook/telemetry");
28
27
 
29
28
  var _coreCommon = require("@storybook/core-common");
30
29
 
31
- var _cli = require("./cli");
32
-
33
30
  var _outputStats = require("./utils/output-stats");
34
31
 
35
32
  var _copyAllStaticFiles = require("./utils/copy-all-static-files");
36
33
 
37
- var _getPreviewBuilder = require("./utils/get-preview-builder");
38
-
39
- var _getManagerBuilder = require("./utils/get-manager-builder");
34
+ var _getBuilders = require("./utils/get-builders");
40
35
 
41
36
  var _storiesJson = require("./utils/stories-json");
42
37
 
@@ -44,14 +39,8 @@ var _metadata = require("./utils/metadata");
44
39
 
45
40
  var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
46
41
 
47
- var _excluded = ["packageJson"];
48
-
49
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
43
 
51
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
52
-
53
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
54
-
55
44
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
56
45
 
57
46
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -64,18 +53,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
64
53
 
65
54
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
66
55
 
67
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
68
-
69
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
70
-
71
56
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
72
57
 
73
58
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
74
59
 
75
60
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
76
61
 
62
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
63
+
64
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
65
+
77
66
  async function buildStaticStandalone(options) {
78
- var _options$staticDir, _core$builder;
67
+ var _options$staticDir;
79
68
 
80
69
  /* eslint-disable no-param-reassign */
81
70
  options.configType = 'PRODUCTION';
@@ -102,10 +91,40 @@ async function buildStaticStandalone(options) {
102
91
 
103
92
  await _fsExtra.default.emptyDir(options.outputDir);
104
93
  await (0, _cpy.default)(defaultFavIcon, options.outputDir);
105
- var previewBuilder = await (0, _getPreviewBuilder.getPreviewBuilder)(options.configDir);
106
- var managerBuilder = await (0, _getManagerBuilder.getManagerBuilder)(options.configDir);
94
+
95
+ var _await$import = await Promise.resolve().then(function () {
96
+ return _interopRequireWildcard(require('@storybook/manager-webpack5/prebuilt-manager'));
97
+ }),
98
+ getPrebuiltDir = _await$import.getPrebuiltDir;
99
+
100
+ var _loadMainConfig = (0, _coreCommon.loadMainConfig)(options),
101
+ framework = _loadMainConfig.framework;
102
+
103
+ var corePresets = [];
104
+ var frameworkName = typeof framework === 'string' ? framework : framework === null || framework === void 0 ? void 0 : framework.name;
105
+
106
+ if (frameworkName) {
107
+ corePresets.push((0, _path.join)(frameworkName, 'preset'));
108
+ } else {
109
+ _nodeLogger.logger.warn(`you have not specified a framework in your ${options.configDir}/main.js`);
110
+ }
111
+
112
+ _nodeLogger.logger.info('=> Loading presets');
113
+
107
114
  var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
108
- corePresets: [require.resolve('./presets/common-preset'), ...managerBuilder.corePresets, ...previewBuilder.corePresets, require.resolve('./presets/babel-cache-preset')],
115
+ corePresets: [require.resolve('./presets/common-preset'), ...corePresets],
116
+ overridePresets: []
117
+ }, options));
118
+
119
+ var _await$getBuilders = await (0, _getBuilders.getBuilders)(_objectSpread(_objectSpread({}, options), {}, {
120
+ presets: presets
121
+ })),
122
+ _await$getBuilders2 = _slicedToArray(_await$getBuilders, 2),
123
+ previewBuilder = _await$getBuilders2[0],
124
+ managerBuilder = _await$getBuilders2[1];
125
+
126
+ presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
127
+ corePresets: [require.resolve('./presets/common-preset'), ...managerBuilder.corePresets, ...previewBuilder.corePresets, ...corePresets, require.resolve('./presets/babel-cache-preset')],
109
128
  overridePresets: previewBuilder.overridePresets
110
129
  }, options));
111
130
  var staticDirs = await presets.apply('staticDirs');
@@ -133,14 +152,16 @@ async function buildStaticStandalone(options) {
133
152
  var extractTasks = [];
134
153
  var initializedStoryIndexGenerator = Promise.resolve(undefined);
135
154
 
136
- if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
155
+ if ((features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) && !options.ignorePreview) {
137
156
  var workingDir = process.cwd();
138
157
  var directories = {
139
158
  configDir: options.configDir,
140
159
  workingDir: workingDir
141
160
  };
142
161
  var normalizedStories = (0, _coreCommon.normalizeStories)(await presets.apply('stories'), directories);
162
+ var storyIndexers = await presets.apply('storyIndexers', []);
143
163
  var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
164
+ storyIndexers: storyIndexers,
144
165
  storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
145
166
  storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
146
167
  }));
@@ -185,16 +206,6 @@ async function buildStaticStandalone(options) {
185
206
  (0, _coreCommon.logConfig)('Manager webpack config', await managerBuilder.getConfig(fullOptions));
186
207
  }
187
208
 
188
- var builderName = typeof (core === null || core === void 0 ? void 0 : core.builder) === 'string' ? core.builder : core === null || core === void 0 ? void 0 : (_core$builder = core.builder) === null || _core$builder === void 0 ? void 0 : _core$builder.name;
189
-
190
- var _ref = builderName === 'webpack5' ? // eslint-disable-next-line import/no-extraneous-dependencies
191
- await Promise.resolve().then(function () {
192
- return _interopRequireWildcard(require('@storybook/manager-webpack5/prebuilt-manager'));
193
- }) : await Promise.resolve().then(function () {
194
- return _interopRequireWildcard(require('@storybook/manager-webpack4/prebuilt-manager'));
195
- }),
196
- getPrebuiltDir = _ref.getPrebuiltDir;
197
-
198
209
  var prebuiltDir = await getPrebuiltDir(fullOptions);
199
210
  var startTime = process.hrtime(); // When using the prebuilt manager, we straight up copy it into the outputDir instead of building it
200
211
 
@@ -216,10 +227,10 @@ async function buildStaticStandalone(options) {
216
227
  });
217
228
 
218
229
  var _await$Promise$all = await Promise.all([manager.catch(async function (err) {
219
- await previewBuilder.bail();
230
+ await (previewBuilder === null || previewBuilder === void 0 ? void 0 : previewBuilder.bail());
220
231
  throw err;
221
232
  }), preview.catch(async function (err) {
222
- await managerBuilder.bail();
233
+ await (managerBuilder === null || managerBuilder === void 0 ? void 0 : managerBuilder.bail());
223
234
  throw err;
224
235
  }), ...extractTasks]),
225
236
  _await$Promise$all2 = _slicedToArray(_await$Promise$all, 2),
@@ -232,45 +243,4 @@ async function buildStaticStandalone(options) {
232
243
  }
233
244
 
234
245
  _nodeLogger.logger.info(`=> Output directory: ${options.outputDir}`);
235
- }
236
-
237
- async function buildStatic(_ref2) {
238
- var packageJson = _ref2.packageJson,
239
- loadOptions = _objectWithoutProperties(_ref2, _excluded);
240
-
241
- var cliOptions = (0, _cli.getProdCli)(packageJson);
242
-
243
- var options = _objectSpread(_objectSpread(_objectSpread({}, cliOptions), loadOptions), {}, {
244
- packageJson: packageJson,
245
- configDir: loadOptions.configDir || cliOptions.configDir || './.storybook',
246
- outputDir: loadOptions.outputDir || cliOptions.outputDir || './storybook-static',
247
- ignorePreview: (!!loadOptions.ignorePreview || !!cliOptions.previewUrl) && !cliOptions.forceBuildPreview,
248
- docsMode: !!cliOptions.docs,
249
- configType: 'PRODUCTION',
250
- cache: _coreCommon.cache
251
- });
252
-
253
- try {
254
- await buildStaticStandalone(options);
255
- } catch (error) {
256
- _nodeLogger.logger.error(error);
257
-
258
- var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
259
- corePresets: [require.resolve('./presets/common-preset')],
260
- overridePresets: []
261
- }, options));
262
- var core = await presets.apply('core');
263
-
264
- if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
265
- await (0, _telemetry.telemetry)('error-build', {
266
- error: error
267
- }, {
268
- immediate: true,
269
- configDir: options.configDir,
270
- enableCrashReports: options.enableCrashReports
271
- });
272
- }
273
-
274
- process.exit(1);
275
- }
276
246
  }
@@ -34,9 +34,7 @@ var _getServerChannel = require("./utils/get-server-channel");
34
34
 
35
35
  var _openInBrowser = require("./utils/open-in-browser");
36
36
 
37
- var _getPreviewBuilder = require("./utils/get-preview-builder");
38
-
39
- var _getManagerBuilder = require("./utils/get-manager-builder");
37
+ var _getBuilders = require("./utils/get-builders");
40
38
 
41
39
  var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
42
40
 
@@ -88,7 +86,9 @@ async function storybookDevServer(options) {
88
86
  workingDir: workingDir
89
87
  };
90
88
  var normalizedStories = (0, _coreCommon.normalizeStories)(await options.presets.apply('stories'), directories);
89
+ var storyIndexers = await options.presets.apply('storyIndexers', []);
91
90
  var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
91
+ storyIndexers: storyIndexers,
92
92
  workingDir: workingDir,
93
93
  storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
94
94
  storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
@@ -183,8 +183,11 @@ async function storybookDevServer(options) {
183
183
  return error ? reject(error) : resolve();
184
184
  });
185
185
  });
186
- var previewBuilder = await (0, _getPreviewBuilder.getPreviewBuilder)(options.configDir);
187
- var managerBuilder = await (0, _getManagerBuilder.getManagerBuilder)(options.configDir);
186
+
187
+ var _await$getBuilders = await (0, _getBuilders.getBuilders)(options),
188
+ _await$getBuilders2 = _slicedToArray(_await$getBuilders, 2),
189
+ previewBuilder = _await$getBuilders2[0],
190
+ managerBuilder = _await$getBuilders2[1];
188
191
 
189
192
  if (options.debugWebpack) {
190
193
  (0, _coreCommon.logConfig)('Preview webpack config', await previewBuilder.getConfig(options));
@@ -205,7 +208,7 @@ async function storybookDevServer(options) {
205
208
  });
206
209
 
207
210
  var _await$Promise$all = await Promise.all([preview.catch(async function (err) {
208
- await managerBuilder.bail();
211
+ await (managerBuilder === null || managerBuilder === void 0 ? void 0 : managerBuilder.bail());
209
212
  throw err;
210
213
  }), manager // TODO #13083 Restore this when compiling the preview is fast enough
211
214
  // .then((result) => {
@@ -213,7 +216,7 @@ async function storybookDevServer(options) {
213
216
  // return result;
214
217
  // })
215
218
  .catch(async function (err) {
216
- await previewBuilder.bail();
219
+ await (previewBuilder === null || previewBuilder === void 0 ? void 0 : previewBuilder.bail());
217
220
  throw err;
218
221
  })]),
219
222
  _await$Promise$all2 = _slicedToArray(_await$Promise$all, 2),
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.managerBabel = exports.babel = void 0;
6
+ exports.babel = void 0;
7
7
 
8
8
  var _coreCommon = require("@storybook/core-common");
9
9
 
@@ -23,6 +23,4 @@ var extend = function (babelConfig) {
23
23
  };
24
24
 
25
25
  var babel = extend;
26
- exports.babel = babel;
27
- var managerBabel = extend;
28
- exports.managerBabel = managerBabel;
26
+ exports.babel = babel;
@@ -3,12 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.typescript = exports.previewMainTemplate = exports.previewHead = exports.previewEntries = exports.previewBody = exports.managerMainTemplate = exports.logLevel = exports.features = exports.env = exports.core = exports.config = exports.babel = void 0;
6
+ exports.typescript = exports.storyIndexers = exports.previewMainTemplate = exports.previewHead = exports.previewEntries = exports.previewBody = exports.managerMainTemplate = exports.logLevel = exports.features = exports.env = exports.core = exports.config = exports.babel = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
10
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
+
10
12
  var _coreCommon = require("@storybook/core-common");
11
13
 
14
+ var _csfTools = require("@storybook/csf-tools");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
12
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
19
 
14
20
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -16,18 +22,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
22
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
23
 
18
24
  var babel = async function (_, options) {
19
- var _options$features;
20
-
21
- var configDir = options.configDir,
22
- presets = options.presets;
23
-
24
- if ((_options$features = options.features) !== null && _options$features !== void 0 && _options$features.babelModeV7) {
25
- return presets.apply('babelDefault', {}, options);
26
- }
27
-
28
- return (0, _coreCommon.loadCustomBabelConfig)(configDir, function () {
29
- return presets.apply('babelDefault', (0, _coreCommon.getStorybookBabelConfig)(), options);
30
- });
25
+ var presets = options.presets;
26
+ return presets.apply('babelDefault', {}, options);
31
27
  };
32
28
 
33
29
  exports.babel = babel;
@@ -78,8 +74,7 @@ var managerMainTemplate = function () {
78
74
 
79
75
  exports.managerMainTemplate = managerMainTemplate;
80
76
 
81
- var previewEntries = function (entries = [], options) {
82
- if (!options.modern) entries.push(require.resolve('@storybook/core-client/dist/esm/globals/polyfills'));
77
+ var previewEntries = function (entries = []) {
83
78
  entries.push(require.resolve('@storybook/core-client/dist/esm/globals/globals'));
84
79
  return entries;
85
80
  };
@@ -150,18 +145,31 @@ exports.config = config;
150
145
  var features = async function (existing) {
151
146
  return _objectSpread(_objectSpread({}, existing), {}, {
152
147
  postcss: true,
153
- emotionAlias: false,
154
- // TODO remove in 7.0, this no longer does anything
155
148
  warnOnLegacyHierarchySeparator: true,
156
149
  buildStoriesJson: false,
157
- storyStoreV7: false,
158
- modernInlineRender: false,
159
- breakingChangesV7: false,
150
+ storyStoreV7: true,
151
+ breakingChangesV7: true,
160
152
  interactionsDebugger: false,
161
- babelModeV7: false,
162
- argTypeTargetsV7: false,
153
+ babelModeV7: true,
154
+ argTypeTargetsV7: true,
163
155
  previewMdx2: false
164
156
  });
165
157
  };
166
158
 
167
- exports.features = features;
159
+ exports.features = features;
160
+
161
+ var storyIndexers = async function (indexers) {
162
+ var csfIndexer = async function (fileName, opts) {
163
+ var code = (await _fsExtra.default.readFile(fileName, 'utf-8')).toString();
164
+ return (0, _csfTools.loadCsf)(code, _objectSpread(_objectSpread({}, opts), {}, {
165
+ fileName: fileName
166
+ })).parse();
167
+ };
168
+
169
+ return [{
170
+ test: /(stories|story)\.[tj]sx?$/,
171
+ indexer: csfIndexer
172
+ }, ...(indexers || [])];
173
+ };
174
+
175
+ exports.storyIndexers = storyIndexers;
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
10
+ var _readPkgUp = require("read-pkg-up");
11
+
10
12
  var _buildStatic = require("./build-static");
11
13
 
12
14
  var _buildDev = require("./build-dev");
@@ -21,8 +23,14 @@ async function build(options = {}, frameworkOptions = {}) {
21
23
  var _options$mode = options.mode,
22
24
  mode = _options$mode === void 0 ? 'dev' : _options$mode;
23
25
 
26
+ var _readUpSync = (0, _readPkgUp.sync)({
27
+ cwd: __dirname
28
+ }),
29
+ packageJson = _readUpSync.packageJson;
30
+
24
31
  var commonOptions = _objectSpread(_objectSpread(_objectSpread({}, options), frameworkOptions), {}, {
25
- frameworkPresets: [...(options.frameworkPresets || []), ...(frameworkOptions.frameworkPresets || [])]
32
+ frameworkPresets: [...(options.frameworkPresets || []), ...(frameworkOptions.frameworkPresets || [])],
33
+ packageJson: packageJson
26
34
  });
27
35
 
28
36
  if (mode === 'dev') {