@storybook/core-server 6.5.9 → 7.0.0-alpha.10

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 (151) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/build-dev.js +55 -140
  3. package/dist/cjs/build-static.js +53 -85
  4. package/dist/cjs/dev-server.js +11 -8
  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 +238 -42
  9. package/dist/cjs/utils/{get-manager-builder.js → get-builders.js} +28 -27
  10. package/dist/cjs/utils/open-in-browser.js +3 -1
  11. package/dist/cjs/utils/stories-json.js +60 -8
  12. package/dist/cjs/utils/watch-story-specifiers.js +5 -2
  13. package/dist/esm/build-dev.js +53 -130
  14. package/dist/esm/build-static.js +49 -74
  15. package/dist/esm/dev-server.js +11 -7
  16. package/dist/esm/index.js +2 -0
  17. package/dist/esm/presets/babel-cache-preset.js +1 -2
  18. package/dist/esm/presets/common-preset.js +23 -22
  19. package/dist/esm/standalone.js +8 -1
  20. package/dist/esm/utils/StoryIndexGenerator.js +238 -41
  21. package/dist/esm/utils/get-builders.js +31 -0
  22. package/dist/esm/utils/open-in-browser.js +5 -3
  23. package/dist/esm/utils/stories-json.js +55 -6
  24. package/dist/esm/utils/watch-story-specifiers.js +4 -2
  25. package/dist/types/build-dev.d.ts +2 -0
  26. package/dist/{ts3.9 → types}/build-static.d.ts +3 -2
  27. package/dist/{ts3.9 → types}/dev-server.d.ts +1 -1
  28. package/dist/{ts3.9 → types}/index.d.ts +1 -0
  29. package/dist/types/presets/babel-cache-preset.d.ts +1 -0
  30. package/dist/{ts3.4 → types}/presets/common-preset.d.ts +29 -31
  31. package/dist/{ts3.9 → types}/standalone.d.ts +0 -0
  32. package/dist/types/utils/StoryIndexGenerator.d.ts +45 -0
  33. package/dist/{ts3.9 → types}/utils/__mockdata__/E.stories.d.ts +0 -0
  34. package/dist/{ts3.9 → types}/utils/__mockdata__/deeply/nested/single/File.stories.d.ts +0 -0
  35. package/dist/{ts3.9 → types}/utils/__mockdata__/src/B.stories.d.ts +0 -0
  36. package/dist/{ts3.9 → types}/utils/__mockdata__/src/NoMeta.stories.d.ts +0 -0
  37. package/dist/{ts3.9 → types}/utils/__mockdata__/src/nested/Button.d.ts +0 -0
  38. package/dist/{ts3.9 → types}/utils/__mockdata__/src/nested/Button.stories.d.ts +0 -0
  39. package/dist/{ts3.9 → types}/utils/__mockdata__/src/second-nested/G.stories.d.ts +0 -0
  40. package/dist/{ts3.9 → types}/utils/copy-all-static-files.d.ts +0 -0
  41. package/dist/types/utils/get-builders.d.ts +2 -0
  42. package/dist/{ts3.9 → types}/utils/get-server-channel.d.ts +0 -0
  43. package/dist/{ts3.9 → types}/utils/metadata.d.ts +0 -0
  44. package/dist/{ts3.9 → types}/utils/middleware.d.ts +0 -0
  45. package/dist/{ts3.9 → types}/utils/open-in-browser.d.ts +0 -0
  46. package/dist/{ts3.9 → types}/utils/output-startup-information.d.ts +0 -0
  47. package/dist/{ts3.4 → types}/utils/output-stats.d.ts +3 -3
  48. package/dist/{ts3.9 → types}/utils/release-notes.d.ts +0 -0
  49. package/dist/{ts3.9 → types}/utils/server-address.d.ts +0 -0
  50. package/dist/{ts3.9 → types}/utils/server-init.d.ts +0 -0
  51. package/dist/{ts3.9 → types}/utils/server-statics.d.ts +0 -0
  52. package/dist/{ts3.9 → types}/utils/stories-json.d.ts +3 -1
  53. package/dist/{ts3.9 → types}/utils/update-check.d.ts +0 -0
  54. package/dist/{ts3.9 → types}/utils/watch-story-specifiers.d.ts +0 -0
  55. package/package.json +18 -28
  56. package/dist/cjs/cli/dev.js +0 -63
  57. package/dist/cjs/cli/index.js +0 -31
  58. package/dist/cjs/cli/prod.js +0 -43
  59. package/dist/cjs/cli/utils.js +0 -63
  60. package/dist/cjs/utils/get-preview-builder.js +0 -47
  61. package/dist/esm/cli/dev.js +0 -44
  62. package/dist/esm/cli/index.js +0 -2
  63. package/dist/esm/cli/prod.js +0 -26
  64. package/dist/esm/cli/utils.js +0 -48
  65. package/dist/esm/utils/get-manager-builder.js +0 -26
  66. package/dist/esm/utils/get-preview-builder.js +0 -28
  67. package/dist/modern/build-dev.js +0 -232
  68. package/dist/modern/build-static.js +0 -237
  69. package/dist/modern/cli/dev.js +0 -44
  70. package/dist/modern/cli/index.js +0 -2
  71. package/dist/modern/cli/prod.js +0 -26
  72. package/dist/modern/cli/utils.js +0 -48
  73. package/dist/modern/dev-server.js +0 -200
  74. package/dist/modern/index.js +0 -4
  75. package/dist/modern/presets/babel-cache-preset.js +0 -18
  76. package/dist/modern/presets/common-preset.js +0 -124
  77. package/dist/modern/standalone.js +0 -30
  78. package/dist/modern/utils/StoryIndexGenerator.js +0 -222
  79. package/dist/modern/utils/__mockdata__/E.stories.js +0 -5
  80. package/dist/modern/utils/__mockdata__/deeply/nested/single/File.stories.js +0 -4
  81. package/dist/modern/utils/__mockdata__/preview.js +0 -1
  82. package/dist/modern/utils/__mockdata__/src/A.stories.js +0 -5
  83. package/dist/modern/utils/__mockdata__/src/B.stories.js +0 -5
  84. package/dist/modern/utils/__mockdata__/src/C.js +0 -1
  85. package/dist/modern/utils/__mockdata__/src/D.stories.js +0 -5
  86. package/dist/modern/utils/__mockdata__/src/NoMeta.stories.js +0 -4
  87. package/dist/modern/utils/__mockdata__/src/first-nested/deeply/F.stories.js +0 -5
  88. package/dist/modern/utils/__mockdata__/src/nested/Button.js +0 -1
  89. package/dist/modern/utils/__mockdata__/src/nested/Button.stories.js +0 -5
  90. package/dist/modern/utils/__mockdata__/src/second-nested/G.stories.js +0 -5
  91. package/dist/modern/utils/copy-all-static-files.js +0 -62
  92. package/dist/modern/utils/get-manager-builder.js +0 -26
  93. package/dist/modern/utils/get-preview-builder.js +0 -28
  94. package/dist/modern/utils/get-server-channel.js +0 -39
  95. package/dist/modern/utils/metadata.js +0 -14
  96. package/dist/modern/utils/middleware.js +0 -27
  97. package/dist/modern/utils/open-in-browser.js +0 -26
  98. package/dist/modern/utils/output-startup-information.js +0 -54
  99. package/dist/modern/utils/output-stats.js +0 -37
  100. package/dist/modern/utils/release-notes.js +0 -63
  101. package/dist/modern/utils/server-address.js +0 -20
  102. package/dist/modern/utils/server-init.js +0 -29
  103. package/dist/modern/utils/server-statics.js +0 -97
  104. package/dist/modern/utils/stories-json.js +0 -42
  105. package/dist/modern/utils/update-check.js +0 -65
  106. package/dist/modern/utils/watch-story-specifiers.js +0 -99
  107. package/dist/ts3.4/build-dev.d.ts +0 -3
  108. package/dist/ts3.4/build-static.d.ts +0 -3
  109. package/dist/ts3.4/cli/dev.d.ts +0 -6
  110. package/dist/ts3.4/cli/index.d.ts +0 -2
  111. package/dist/ts3.4/cli/prod.d.ts +0 -7
  112. package/dist/ts3.4/cli/utils.d.ts +0 -5
  113. package/dist/ts3.4/dev-server.d.ts +0 -24
  114. package/dist/ts3.4/index.d.ts +0 -4
  115. package/dist/ts3.4/presets/babel-cache-preset.d.ts +0 -2
  116. package/dist/ts3.4/standalone.d.ts +0 -2
  117. package/dist/ts3.4/utils/StoryIndexGenerator.d.ts +0 -27
  118. package/dist/ts3.4/utils/__mockdata__/E.stories.d.ts +0 -5
  119. package/dist/ts3.4/utils/__mockdata__/deeply/nested/single/File.stories.d.ts +0 -5
  120. package/dist/ts3.4/utils/__mockdata__/src/B.stories.d.ts +0 -5
  121. package/dist/ts3.4/utils/__mockdata__/src/NoMeta.stories.d.ts +0 -1
  122. package/dist/ts3.4/utils/__mockdata__/src/nested/Button.d.ts +0 -1
  123. package/dist/ts3.4/utils/__mockdata__/src/nested/Button.stories.d.ts +0 -5
  124. package/dist/ts3.4/utils/__mockdata__/src/second-nested/G.stories.d.ts +0 -5
  125. package/dist/ts3.4/utils/copy-all-static-files.d.ts +0 -2
  126. package/dist/ts3.4/utils/get-manager-builder.d.ts +0 -2
  127. package/dist/ts3.4/utils/get-preview-builder.d.ts +0 -2
  128. package/dist/ts3.4/utils/get-server-channel.d.ts +0 -9
  129. package/dist/ts3.4/utils/metadata.d.ts +0 -3
  130. package/dist/ts3.4/utils/middleware.d.ts +0 -1
  131. package/dist/ts3.4/utils/open-in-browser.d.ts +0 -1
  132. package/dist/ts3.4/utils/output-startup-information.d.ts +0 -16
  133. package/dist/ts3.4/utils/release-notes.d.ts +0 -8
  134. package/dist/ts3.4/utils/server-address.d.ts +0 -8
  135. package/dist/ts3.4/utils/server-init.d.ts +0 -10
  136. package/dist/ts3.4/utils/server-statics.d.ts +0 -8
  137. package/dist/ts3.4/utils/stories-json.d.ts +0 -13
  138. package/dist/ts3.4/utils/update-check.d.ts +0 -3
  139. package/dist/ts3.4/utils/watch-story-specifiers.d.ts +0 -5
  140. package/dist/ts3.9/build-dev.d.ts +0 -3
  141. package/dist/ts3.9/cli/dev.d.ts +0 -6
  142. package/dist/ts3.9/cli/index.d.ts +0 -2
  143. package/dist/ts3.9/cli/prod.d.ts +0 -7
  144. package/dist/ts3.9/cli/utils.d.ts +0 -5
  145. package/dist/ts3.9/presets/babel-cache-preset.d.ts +0 -2
  146. package/dist/ts3.9/presets/common-preset.d.ts +0 -31
  147. package/dist/ts3.9/utils/StoryIndexGenerator.d.ts +0 -27
  148. package/dist/ts3.9/utils/get-manager-builder.d.ts +0 -2
  149. package/dist/ts3.9/utils/get-preview-builder.d.ts +0 -2
  150. package/dist/ts3.9/utils/output-stats.d.ts +0 -3
  151. package/typings.d.ts +0 -14
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,18 +5,15 @@ 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");
12
11
 
13
12
  var _chalk = _interopRequireDefault(require("chalk"));
14
13
 
15
- var _cpy = _interopRequireDefault(require("cpy"));
16
-
17
14
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
18
15
 
19
- var _path = _interopRequireDefault(require("path"));
16
+ var _path = _interopRequireWildcard(require("path"));
20
17
 
21
18
  var _tsDedent = _interopRequireDefault(require("ts-dedent"));
22
19
 
@@ -28,15 +25,11 @@ var _telemetry = require("@storybook/telemetry");
28
25
 
29
26
  var _coreCommon = require("@storybook/core-common");
30
27
 
31
- var _cli = require("./cli");
32
-
33
28
  var _outputStats = require("./utils/output-stats");
34
29
 
35
30
  var _copyAllStaticFiles = require("./utils/copy-all-static-files");
36
31
 
37
- var _getPreviewBuilder = require("./utils/get-preview-builder");
38
-
39
- var _getManagerBuilder = require("./utils/get-manager-builder");
32
+ var _getBuilders = require("./utils/get-builders");
40
33
 
41
34
  var _storiesJson = require("./utils/stories-json");
42
35
 
@@ -44,14 +37,8 @@ var _metadata = require("./utils/metadata");
44
37
 
45
38
  var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
46
39
 
47
- var _excluded = ["packageJson"];
48
-
49
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
41
 
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
42
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
56
43
 
57
44
  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 +51,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
64
51
 
65
52
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
66
53
 
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
54
  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
55
 
73
56
  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
57
 
75
58
  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
59
 
60
+ 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); }
61
+
62
+ 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; }
63
+
77
64
  async function buildStaticStandalone(options) {
78
- var _options$staticDir, _core$builder;
65
+ var _options$staticDir;
79
66
 
80
67
  /* eslint-disable no-param-reassign */
81
68
  options.configType = 'PRODUCTION';
@@ -101,12 +88,42 @@ async function buildStaticStandalone(options) {
101
88
  }
102
89
 
103
90
  await _fsExtra.default.emptyDir(options.outputDir);
104
- 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);
91
+ await _fsExtra.default.copyFile(defaultFavIcon, _path.default.join(options.outputDir, _path.default.basename(defaultFavIcon)));
92
+
93
+ var _await$import = await Promise.resolve().then(function () {
94
+ return _interopRequireWildcard(require('@storybook/manager-webpack5/prebuilt-manager'));
95
+ }),
96
+ getPrebuiltDir = _await$import.getPrebuiltDir;
97
+
98
+ var _loadMainConfig = (0, _coreCommon.loadMainConfig)(options),
99
+ framework = _loadMainConfig.framework;
100
+
101
+ var corePresets = [];
102
+ var frameworkName = typeof framework === 'string' ? framework : framework === null || framework === void 0 ? void 0 : framework.name;
103
+
104
+ if (frameworkName) {
105
+ corePresets.push((0, _path.join)(frameworkName, 'preset'));
106
+ } else {
107
+ _nodeLogger.logger.warn(`you have not specified a framework in your ${options.configDir}/main.js`);
108
+ }
109
+
110
+ _nodeLogger.logger.info('=> Loading presets');
111
+
107
112
  var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
108
- corePresets: [require.resolve('./presets/common-preset'), ...managerBuilder.corePresets, ...previewBuilder.corePresets, require.resolve('./presets/babel-cache-preset')],
109
- overridePresets: previewBuilder.overridePresets
113
+ corePresets: [require.resolve('./presets/common-preset'), ...corePresets],
114
+ overridePresets: []
115
+ }, options));
116
+
117
+ var _await$getBuilders = await (0, _getBuilders.getBuilders)(_objectSpread(_objectSpread({}, options), {}, {
118
+ presets: presets
119
+ })),
120
+ _await$getBuilders2 = _slicedToArray(_await$getBuilders, 2),
121
+ previewBuilder = _await$getBuilders2[0],
122
+ managerBuilder = _await$getBuilders2[1];
123
+
124
+ presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
125
+ corePresets: [require.resolve('./presets/common-preset'), ...(managerBuilder.corePresets || []), ...(previewBuilder.corePresets || []), ...corePresets, require.resolve('./presets/babel-cache-preset')],
126
+ overridePresets: previewBuilder.overridePresets || []
110
127
  }, options));
111
128
  var staticDirs = await presets.apply('staticDirs');
112
129
 
@@ -133,21 +150,24 @@ async function buildStaticStandalone(options) {
133
150
  var extractTasks = [];
134
151
  var initializedStoryIndexGenerator = Promise.resolve(undefined);
135
152
 
136
- if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
153
+ if ((features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) && !options.ignorePreview) {
137
154
  var workingDir = process.cwd();
138
155
  var directories = {
139
156
  configDir: options.configDir,
140
157
  workingDir: workingDir
141
158
  };
142
159
  var normalizedStories = (0, _coreCommon.normalizeStories)(await presets.apply('stories'), directories);
160
+ var storyIndexers = await presets.apply('storyIndexers', []);
143
161
  var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
162
+ storyIndexers: storyIndexers,
144
163
  storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
145
- storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
164
+ storyStoreV7: !!(features !== null && features !== void 0 && features.storyStoreV7)
146
165
  }));
147
166
  initializedStoryIndexGenerator = generator.initialize().then(function () {
148
167
  return generator;
149
168
  });
150
- extractTasks.push((0, _storiesJson.extractStoriesJson)(_path.default.join(options.outputDir, 'stories.json'), initializedStoryIndexGenerator));
169
+ extractTasks.push((0, _storiesJson.extractStoriesJson)(_path.default.join(options.outputDir, 'stories.json'), initializedStoryIndexGenerator, _storiesJson.convertToIndexV3));
170
+ extractTasks.push((0, _storiesJson.extractStoriesJson)(_path.default.join(options.outputDir, 'index.json'), initializedStoryIndexGenerator));
151
171
  }
152
172
 
153
173
  var core = await presets.apply('core');
@@ -161,7 +181,7 @@ async function buildStaticStandalone(options) {
161
181
  var storyIndex = await generator.getIndex();
162
182
  var payload = storyIndex ? {
163
183
  storyIndex: {
164
- storyCount: Object.keys(storyIndex.stories).length,
184
+ storyCount: Object.keys(storyIndex.entries).length,
165
185
  version: storyIndex.v
166
186
  }
167
187
  } : undefined;
@@ -185,22 +205,11 @@ async function buildStaticStandalone(options) {
185
205
  (0, _coreCommon.logConfig)('Manager webpack config', await managerBuilder.getConfig(fullOptions));
186
206
  }
187
207
 
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
208
  var prebuiltDir = await getPrebuiltDir(fullOptions);
199
209
  var startTime = process.hrtime(); // When using the prebuilt manager, we straight up copy it into the outputDir instead of building it
200
210
 
201
- var manager = prebuiltDir ? (0, _cpy.default)('**', options.outputDir, {
202
- cwd: prebuiltDir,
203
- parents: true
211
+ var manager = prebuiltDir ? _fsExtra.default.copy(prebuiltDir, options.outputDir, {
212
+ dereference: true
204
213
  }).then(function () {}) : managerBuilder.build({
205
214
  startTime: startTime,
206
215
  options: fullOptions
@@ -216,10 +225,10 @@ async function buildStaticStandalone(options) {
216
225
  });
217
226
 
218
227
  var _await$Promise$all = await Promise.all([manager.catch(async function (err) {
219
- await previewBuilder.bail();
228
+ await (previewBuilder === null || previewBuilder === void 0 ? void 0 : previewBuilder.bail());
220
229
  throw err;
221
230
  }), preview.catch(async function (err) {
222
- await managerBuilder.bail();
231
+ await (managerBuilder === null || managerBuilder === void 0 ? void 0 : managerBuilder.bail());
223
232
  throw err;
224
233
  }), ...extractTasks]),
225
234
  _await$Promise$all2 = _slicedToArray(_await$Promise$all, 2),
@@ -232,45 +241,4 @@ async function buildStaticStandalone(options) {
232
241
  }
233
242
 
234
243
  _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
244
  }
@@ -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
@@ -121,7 +121,7 @@ async function storybookDevServer(options) {
121
121
  var storyIndex = await generator.getIndex();
122
122
  var payload = storyIndex ? {
123
123
  storyIndex: {
124
- storyCount: Object.keys(storyIndex.stories).length,
124
+ storyCount: Object.keys(storyIndex.entries).length,
125
125
  version: storyIndex.v
126
126
  }
127
127
  } : undefined;
@@ -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;