@storybook/core-server 7.0.0-alpha.60 → 7.0.0-alpha.62

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.
@@ -133,9 +133,14 @@ async function buildStaticStandalone(options) {
133
133
  if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
134
134
  effects.push(initializedStoryIndexGenerator.then(async function (generator) {
135
135
  var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
136
- var payload = storyIndex ? {
137
- storyIndex: (0, _summarizeIndex.summarizeIndex)(storyIndex)
138
- } : undefined;
136
+ var payload = {
137
+ precedingUpgrade: await (0, _telemetry.getPrecedingUpgrade)()
138
+ };
139
+ if (storyIndex) {
140
+ Object.assign(payload, {
141
+ storyIndex: (0, _summarizeIndex.summarizeIndex)(storyIndex)
142
+ });
143
+ }
139
144
  await (0, _telemetry.telemetry)('build', payload, {
140
145
  configDir: options.configDir
141
146
  });
@@ -3,45 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.router = exports.DEBOUNCE = void 0;
7
6
  exports.storybookDevServer = storybookDevServer;
8
- var _express = _interopRequireWildcard(require("express"));
7
+ var _express = _interopRequireDefault(require("express"));
9
8
  var _compression = _interopRequireDefault(require("compression"));
10
9
  var _coreCommon = require("@storybook/core-common");
11
- var _telemetry = require("@storybook/telemetry");
12
10
  var _middleware = require("./utils/middleware");
13
11
  var _serverAddress = require("./utils/server-address");
14
12
  var _serverInit = require("./utils/server-init");
15
13
  var _serverStatics = require("./utils/server-statics");
16
- var _storiesJson = require("./utils/stories-json");
17
- var _metadata = require("./utils/metadata");
18
14
  var _getServerChannel = require("./utils/get-server-channel");
19
15
  var _openInBrowser = require("./utils/open-in-browser");
20
16
  var _getBuilders = require("./utils/get-builders");
21
- var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
22
- var _summarizeIndex = require("./utils/summarizeIndex");
17
+ var _getStoryIndexGenerator = require("./utils/getStoryIndexGenerator");
18
+ var _doTelemetry = require("./utils/doTelemetry");
19
+ var _router = require("./utils/router");
20
+ var _getAccessControlMiddleware = require("./utils/getAccessControlMiddleware");
23
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
- 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); }
25
- 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; }
26
- 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; }
27
- 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; }
28
- 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; }
29
22
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
30
23
  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."); }
31
24
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
32
25
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
26
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
34
27
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
- // @ts-expect-error (Converted from ts-ignore)
36
- var router = new _express.Router();
37
- exports.router = router;
38
- var DEBOUNCE = 100;
39
- exports.DEBOUNCE = DEBOUNCE;
40
- var versionStatus = function (versionCheck) {
41
- if (versionCheck.error) return 'error';
42
- if (versionCheck.cached) return 'cached';
43
- return 'success';
44
- };
45
28
  async function storybookDevServer(options) {
46
29
  var _core$builder;
47
30
  var app = (0, _express.default)();
@@ -53,35 +36,20 @@ async function storybookDevServer(options) {
53
36
  var serverChannel = (0, _getServerChannel.getServerChannel)(server);
54
37
 
55
38
  // try get index generator, if failed, send telemetry without storyCount, then rethrow the error
56
- var initializedStoryIndexGenerator = getStoryIndexGenerator(features, options, serverChannel);
57
- doTelemetry(core, initializedStoryIndexGenerator, options);
39
+ var initializedStoryIndexGenerator = (0, _getStoryIndexGenerator.getStoryIndexGenerator)(features, options, serverChannel);
40
+ (0, _doTelemetry.doTelemetry)(core, initializedStoryIndexGenerator, options);
58
41
  app.use((0, _compression.default)({
59
42
  level: 1
60
43
  }));
61
44
  if (typeof options.extendServer === 'function') {
62
45
  options.extendServer(server);
63
46
  }
64
- app.use(function (req, res, next) {
65
- res.header('Access-Control-Allow-Origin', '*');
66
- res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
67
- // These headers are required to enable SharedArrayBuffer
68
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
69
- next();
70
- });
71
- if (core !== null && core !== void 0 && core.crossOriginIsolated) {
72
- app.use(function (req, res, next) {
73
- // These headers are required to enable SharedArrayBuffer
74
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
75
- res.header('Cross-Origin-Opener-Policy', 'same-origin');
76
- res.header('Cross-Origin-Embedder-Policy', 'require-corp');
77
- next();
78
- });
79
- }
47
+ app.use((0, _getAccessControlMiddleware.getAccessControlMiddleware)(core === null || core === void 0 ? void 0 : core.crossOriginIsolated));
80
48
 
81
49
  // User's own static files
82
- var usingStatics = (0, _serverStatics.useStatics)(router, options);
83
- (0, _middleware.getMiddleware)(options.configDir)(router);
84
- app.use(router);
50
+ var usingStatics = (0, _serverStatics.useStatics)(_router.router, options);
51
+ (0, _middleware.getMiddleware)(options.configDir)(_router.router);
52
+ app.use(_router.router);
85
53
  var port = options.port,
86
54
  host = options.host;
87
55
  var proto = options.https ? 'https' : 'http';
@@ -108,21 +76,16 @@ async function storybookDevServer(options) {
108
76
  var managerResult = await managerBuilder.start({
109
77
  startTime: process.hrtime(),
110
78
  options: options,
111
- router: router,
79
+ router: _router.router,
112
80
  server: server,
113
81
  channel: serverChannel
114
82
  });
115
- Promise.all([initializedStoryIndexGenerator, listening, usingStatics]).then(async function () {
116
- if (!options.ci && !options.smokeTest && options.open) {
117
- (0, _openInBrowser.openInBrowser)(host ? networkAddress : address);
118
- }
119
- });
120
- var previewResult;
83
+ var previewStarted = Promise.resolve();
121
84
  if (!options.ignorePreview) {
122
- previewResult = await previewBuilder.start({
85
+ previewStarted = previewBuilder.start({
123
86
  startTime: process.hrtime(),
124
87
  options: options,
125
- router: router,
88
+ router: _router.router,
126
89
  server: server,
127
90
  channel: serverChannel
128
91
  }).catch(async function (e) {
@@ -137,61 +100,23 @@ async function storybookDevServer(options) {
137
100
  throw e;
138
101
  });
139
102
  }
103
+
104
+ // this is a preview route, the builder has to be started before we can serve it
105
+ // this handler keeps request to that route pending until the builder is ready to serve it, preventing a 404
106
+ _router.router.get('/iframe.html', function (req, res, next) {
107
+ previewStarted.then(function () {
108
+ return next();
109
+ });
110
+ });
111
+ Promise.all([initializedStoryIndexGenerator, listening, usingStatics]).then(async function () {
112
+ if (!options.ci && !options.smokeTest && options.open) {
113
+ (0, _openInBrowser.openInBrowser)(host ? networkAddress : address);
114
+ }
115
+ });
140
116
  return {
141
- previewResult: previewResult,
117
+ previewResult: await previewStarted,
142
118
  managerResult: managerResult,
143
119
  address: address,
144
120
  networkAddress: networkAddress
145
121
  };
146
- }
147
- async function doTelemetry(core, initializedStoryIndexGenerator, options) {
148
- if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
149
- initializedStoryIndexGenerator.then(async function (generator) {
150
- var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
151
- var versionCheck = options.versionCheck,
152
- versionUpdates = options.versionUpdates;
153
- var payload = storyIndex ? {
154
- versionStatus: versionUpdates ? versionStatus(versionCheck) : 'disabled',
155
- storyIndex: (0, _summarizeIndex.summarizeIndex)(storyIndex)
156
- } : undefined;
157
- (0, _telemetry.telemetry)('dev', payload, {
158
- configDir: options.configDir
159
- });
160
- });
161
- }
162
- if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
163
- (0, _metadata.useStorybookMetadata)(router, options.configDir);
164
- }
165
- }
166
- async function getStoryIndexGenerator(features, options, serverChannel) {
167
- var initializedStoryIndexGenerator = Promise.resolve(undefined);
168
- if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
169
- var workingDir = process.cwd();
170
- var directories = {
171
- configDir: options.configDir,
172
- workingDir: workingDir
173
- };
174
- var stories = options.presets.apply('stories');
175
- var storyIndexers = options.presets.apply('storyIndexers', []);
176
- var docsOptions = options.presets.apply('docs', {});
177
- var normalizedStories = (0, _coreCommon.normalizeStories)(await stories, directories);
178
- var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
179
- storyIndexers: await storyIndexers,
180
- docs: await docsOptions,
181
- workingDir: workingDir,
182
- storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
183
- storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
184
- }));
185
- initializedStoryIndexGenerator = generator.initialize().then(function () {
186
- return generator;
187
- });
188
- (0, _storiesJson.useStoriesJson)({
189
- router: router,
190
- initializedStoryIndexGenerator: initializedStoryIndexGenerator,
191
- normalizedStories: normalizedStories,
192
- serverChannel: serverChannel,
193
- workingDir: workingDir
194
- });
195
- }
196
- return initializedStoryIndexGenerator;
197
122
  }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEBOUNCE = void 0;
7
+ var DEBOUNCE = 100;
8
+ exports.DEBOUNCE = DEBOUNCE;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.doTelemetry = doTelemetry;
7
+ var _telemetry = require("@storybook/telemetry");
8
+ var _metadata = require("./metadata");
9
+ var _summarizeIndex = require("./summarizeIndex");
10
+ var _router = require("./router");
11
+ var _versionStatus = require("./versionStatus");
12
+ async function doTelemetry(core, initializedStoryIndexGenerator, options) {
13
+ if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
14
+ initializedStoryIndexGenerator.then(async function (generator) {
15
+ var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
16
+ var versionCheck = options.versionCheck,
17
+ versionUpdates = options.versionUpdates;
18
+ var payload = {
19
+ precedingUpgrade: await (0, _telemetry.getPrecedingUpgrade)()
20
+ };
21
+ if (storyIndex) {
22
+ Object.assign(payload, {
23
+ versionStatus: versionUpdates ? (0, _versionStatus.versionStatus)(versionCheck) : 'disabled',
24
+ storyIndex: (0, _summarizeIndex.summarizeIndex)(storyIndex)
25
+ });
26
+ }
27
+ (0, _telemetry.telemetry)('dev', payload, {
28
+ configDir: options.configDir
29
+ });
30
+ });
31
+ }
32
+ if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
33
+ (0, _metadata.useStorybookMetadata)(_router.router, options.configDir);
34
+ }
35
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAccessControlMiddleware = getAccessControlMiddleware;
7
+ function getAccessControlMiddleware(crossOriginIsolated) {
8
+ return function (req, res, next) {
9
+ res.header('Access-Control-Allow-Origin', '*');
10
+ res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
11
+ // These headers are required to enable SharedArrayBuffer
12
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
13
+ if (crossOriginIsolated) {
14
+ // These headers are required to enable SharedArrayBuffer
15
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
16
+ res.header('Cross-Origin-Opener-Policy', 'same-origin');
17
+ res.header('Cross-Origin-Embedder-Policy', 'require-corp');
18
+ }
19
+ next();
20
+ };
21
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getStoryIndexGenerator = getStoryIndexGenerator;
7
+ var _coreCommon = require("@storybook/core-common");
8
+ var _storiesJson = require("./stories-json");
9
+ var _StoryIndexGenerator = require("./StoryIndexGenerator");
10
+ var _router = require("./router");
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ async function getStoryIndexGenerator(features, options, serverChannel) {
15
+ var initializedStoryIndexGenerator = Promise.resolve(undefined);
16
+ if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
17
+ var workingDir = process.cwd();
18
+ var directories = {
19
+ configDir: options.configDir,
20
+ workingDir: workingDir
21
+ };
22
+ var stories = options.presets.apply('stories');
23
+ var storyIndexers = options.presets.apply('storyIndexers', []);
24
+ var docsOptions = options.presets.apply('docs', {});
25
+ var normalizedStories = (0, _coreCommon.normalizeStories)(await stories, directories);
26
+ var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
27
+ storyIndexers: await storyIndexers,
28
+ docs: await docsOptions,
29
+ workingDir: workingDir,
30
+ storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
31
+ storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
32
+ }));
33
+ initializedStoryIndexGenerator = generator.initialize().then(function () {
34
+ return generator;
35
+ });
36
+ (0, _storiesJson.useStoriesJson)({
37
+ router: _router.router,
38
+ initializedStoryIndexGenerator: initializedStoryIndexGenerator,
39
+ normalizedStories: normalizedStories,
40
+ serverChannel: serverChannel,
41
+ workingDir: workingDir
42
+ });
43
+ }
44
+ return initializedStoryIndexGenerator;
45
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.router = void 0;
7
+ var _express = require("express");
8
+ // @ts-expect-error (Converted from ts-ignore)
9
+
10
+ var router = new _express.Router();
11
+ exports.router = router;
@@ -14,7 +14,7 @@ var _path = _interopRequireDefault(require("path"));
14
14
  var _serveFavicon = _interopRequireDefault(require("serve-favicon"));
15
15
  var _tsDedent = require("ts-dedent");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- var defaultFavIcon = require.resolve('@storybook/core-server/public/favicon.ico');
17
+ var defaultFavIcon = require.resolve('@storybook/core-server/public/favicon.svg');
18
18
  async function useStatics(router, options) {
19
19
  var hasCustomFavicon = false;
20
20
  var staticDirs = await options.presets.apply('staticDirs');
@@ -47,7 +47,7 @@ async function useStatics(router, options) {
47
47
  index: false
48
48
  }));
49
49
  if (!hasCustomFavicon && targetEndpoint === '/') {
50
- var faviconPath = _path.default.join(staticPath, 'favicon.ico');
50
+ var faviconPath = _path.default.join(staticPath, 'favicon.svg');
51
51
  if (await (0, _fsExtra.pathExists)(faviconPath)) {
52
52
  hasCustomFavicon = true;
53
53
  router.use((0, _serveFavicon.default)(faviconPath));
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.versionStatus = void 0;
7
+ var versionStatus = function (versionCheck) {
8
+ if (versionCheck.error) return 'error';
9
+ if (versionCheck.cached) return 'cached';
10
+ return 'success';
11
+ };
12
+ exports.versionStatus = versionStatus;
@@ -25,14 +25,14 @@ var promptCrashReports = async function () {
25
25
  await _coreCommon.cache.set('enableCrashReports', enableCrashReports);
26
26
  return enableCrashReports;
27
27
  };
28
- async function shouldSendError({
28
+ async function getErrorLevel({
29
29
  cliOptions: cliOptions,
30
30
  presetOptions: presetOptions
31
31
  }) {
32
- if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return false;
32
+ if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return 'none';
33
33
 
34
34
  // If we are running init or similar, we just have to go with true here
35
- if (!presetOptions) return true;
35
+ if (!presetOptions) return 'full';
36
36
 
37
37
  // should we load the preset?
38
38
  var presets = await (0, _coreCommon.loadAllPresets)(_objectSpread({
@@ -43,15 +43,15 @@ async function shouldSendError({
43
43
  // If the user has chosen to enable/disable crash reports in main.js
44
44
  // or disabled telemetry, we can return that
45
45
  var core = await presets.apply('core');
46
- if ((core === null || core === void 0 ? void 0 : core.enableCrashReports) !== undefined) return core.enableCrashReports;
47
- if (core !== null && core !== void 0 && core.disableTelemetry) return false;
46
+ if ((core === null || core === void 0 ? void 0 : core.enableCrashReports) !== undefined) return core.enableCrashReports ? 'full' : 'error';
47
+ if (core !== null && core !== void 0 && core.disableTelemetry) return 'none';
48
48
 
49
49
  // Deal with typo, remove in future version (7.1?)
50
50
  var valueFromCache = (await _coreCommon.cache.get('enableCrashReports')) ?? (await _coreCommon.cache.get('enableCrashreports'));
51
- if (valueFromCache !== undefined) return valueFromCache;
51
+ if (valueFromCache !== undefined) return valueFromCache ? 'full' : 'error';
52
52
  var valueFromPrompt = await promptCrashReports();
53
- if (valueFromPrompt !== undefined) return valueFromPrompt;
54
- return true;
53
+ if (valueFromPrompt !== undefined) return valueFromPrompt ? 'full' : 'error';
54
+ return 'full';
55
55
  }
56
56
  async function withTelemetry(eventType, options, run) {
57
57
  (0, _telemetry.telemetry)('boot', {
@@ -63,15 +63,18 @@ async function withTelemetry(eventType, options, run) {
63
63
  await run();
64
64
  } catch (error) {
65
65
  try {
66
- if (await shouldSendError(options)) {
66
+ var errorLevel = await getErrorLevel(options);
67
+ if (errorLevel !== 'none') {
67
68
  var _options$cliOptions, _options$presetOption;
69
+ var precedingUpgrade = await (0, _telemetry.getPrecedingUpgrade)();
68
70
  await (0, _telemetry.telemetry)('error', {
69
71
  eventType: eventType,
70
- error: error
72
+ precedingUpgrade: precedingUpgrade,
73
+ error: errorLevel === 'full' ? error : undefined
71
74
  }, {
72
75
  immediate: true,
73
76
  configDir: ((_options$cliOptions = options.cliOptions) === null || _options$cliOptions === void 0 ? void 0 : _options$cliOptions.configDir) || ((_options$presetOption = options.presetOptions) === null || _options$presetOption === void 0 ? void 0 : _options$presetOption.configDir),
74
- enableCrashReports: true
77
+ enableCrashReports: errorLevel === 'full'
75
78
  });
76
79
  }
77
80
  } catch (err) {
@@ -13,7 +13,7 @@ import { dirname, isAbsolute, join, resolve } from 'path';
13
13
  import { dedent } from 'ts-dedent';
14
14
  import global from 'global';
15
15
  import { logger } from '@storybook/node-logger';
16
- import { telemetry } from '@storybook/telemetry';
16
+ import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry';
17
17
  import { loadAllPresets, loadMainConfig, logConfig, normalizeStories, resolveAddonName } from '@storybook/core-common';
18
18
  import { outputStats } from './utils/output-stats';
19
19
  import { copyAllStaticFiles, copyAllStaticFilesRelativeToMain } from './utils/copy-all-static-files';
@@ -126,9 +126,14 @@ export async function buildStaticStandalone(options) {
126
126
  if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
127
127
  effects.push(initializedStoryIndexGenerator.then(async function (generator) {
128
128
  var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
129
- var payload = storyIndex ? {
130
- storyIndex: summarizeIndex(storyIndex)
131
- } : undefined;
129
+ var payload = {
130
+ precedingUpgrade: await getPrecedingUpgrade()
131
+ };
132
+ if (storyIndex) {
133
+ Object.assign(payload, {
134
+ storyIndex: summarizeIndex(storyIndex)
135
+ });
136
+ }
132
137
  await telemetry('build', payload, {
133
138
  configDir: options.configDir
134
139
  });
@@ -1,36 +1,23 @@
1
- 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; }
2
- 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; }
3
- 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; }
4
1
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
2
  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."); }
6
3
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
5
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
9
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
- import express, { Router } from 'express';
7
+ import express from 'express';
11
8
  import compression from 'compression';
12
- import { normalizeStories, logConfig } from '@storybook/core-common';
13
- import { telemetry } from '@storybook/telemetry';
9
+ import { logConfig } from '@storybook/core-common';
14
10
  import { getMiddleware } from './utils/middleware';
15
11
  import { getServerAddresses } from './utils/server-address';
16
12
  import { getServer } from './utils/server-init';
17
13
  import { useStatics } from './utils/server-statics';
18
- import { useStoriesJson } from './utils/stories-json';
19
- import { useStorybookMetadata } from './utils/metadata';
20
14
  import { getServerChannel } from './utils/get-server-channel';
21
15
  import { openInBrowser } from './utils/open-in-browser';
22
16
  import { getManagerBuilder, getPreviewBuilder } from './utils/get-builders';
23
- import { StoryIndexGenerator } from './utils/StoryIndexGenerator';
24
- import { summarizeIndex } from './utils/summarizeIndex';
25
-
26
- // @ts-expect-error (Converted from ts-ignore)
27
- export var router = new Router();
28
- export var DEBOUNCE = 100;
29
- var versionStatus = function (versionCheck) {
30
- if (versionCheck.error) return 'error';
31
- if (versionCheck.cached) return 'cached';
32
- return 'success';
33
- };
17
+ import { getStoryIndexGenerator } from './utils/getStoryIndexGenerator';
18
+ import { doTelemetry } from './utils/doTelemetry';
19
+ import { router } from './utils/router';
20
+ import { getAccessControlMiddleware } from './utils/getAccessControlMiddleware';
34
21
  export async function storybookDevServer(options) {
35
22
  var _core$builder;
36
23
  var app = express();
@@ -50,22 +37,7 @@ export async function storybookDevServer(options) {
50
37
  if (typeof options.extendServer === 'function') {
51
38
  options.extendServer(server);
52
39
  }
53
- app.use(function (req, res, next) {
54
- res.header('Access-Control-Allow-Origin', '*');
55
- res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
56
- // These headers are required to enable SharedArrayBuffer
57
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
58
- next();
59
- });
60
- if (core !== null && core !== void 0 && core.crossOriginIsolated) {
61
- app.use(function (req, res, next) {
62
- // These headers are required to enable SharedArrayBuffer
63
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
64
- res.header('Cross-Origin-Opener-Policy', 'same-origin');
65
- res.header('Cross-Origin-Embedder-Policy', 'require-corp');
66
- next();
67
- });
68
- }
40
+ app.use(getAccessControlMiddleware(core === null || core === void 0 ? void 0 : core.crossOriginIsolated));
69
41
 
70
42
  // User's own static files
71
43
  var usingStatics = useStatics(router, options);
@@ -101,14 +73,9 @@ export async function storybookDevServer(options) {
101
73
  server: server,
102
74
  channel: serverChannel
103
75
  });
104
- Promise.all([initializedStoryIndexGenerator, listening, usingStatics]).then(async function () {
105
- if (!options.ci && !options.smokeTest && options.open) {
106
- openInBrowser(host ? networkAddress : address);
107
- }
108
- });
109
- var previewResult;
76
+ var previewStarted = Promise.resolve();
110
77
  if (!options.ignorePreview) {
111
- previewResult = await previewBuilder.start({
78
+ previewStarted = previewBuilder.start({
112
79
  startTime: process.hrtime(),
113
80
  options: options,
114
81
  router: router,
@@ -126,61 +93,23 @@ export async function storybookDevServer(options) {
126
93
  throw e;
127
94
  });
128
95
  }
96
+
97
+ // this is a preview route, the builder has to be started before we can serve it
98
+ // this handler keeps request to that route pending until the builder is ready to serve it, preventing a 404
99
+ router.get('/iframe.html', function (req, res, next) {
100
+ previewStarted.then(function () {
101
+ return next();
102
+ });
103
+ });
104
+ Promise.all([initializedStoryIndexGenerator, listening, usingStatics]).then(async function () {
105
+ if (!options.ci && !options.smokeTest && options.open) {
106
+ openInBrowser(host ? networkAddress : address);
107
+ }
108
+ });
129
109
  return {
130
- previewResult: previewResult,
110
+ previewResult: await previewStarted,
131
111
  managerResult: managerResult,
132
112
  address: address,
133
113
  networkAddress: networkAddress
134
114
  };
135
- }
136
- async function doTelemetry(core, initializedStoryIndexGenerator, options) {
137
- if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
138
- initializedStoryIndexGenerator.then(async function (generator) {
139
- var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
140
- var versionCheck = options.versionCheck,
141
- versionUpdates = options.versionUpdates;
142
- var payload = storyIndex ? {
143
- versionStatus: versionUpdates ? versionStatus(versionCheck) : 'disabled',
144
- storyIndex: summarizeIndex(storyIndex)
145
- } : undefined;
146
- telemetry('dev', payload, {
147
- configDir: options.configDir
148
- });
149
- });
150
- }
151
- if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
152
- useStorybookMetadata(router, options.configDir);
153
- }
154
- }
155
- async function getStoryIndexGenerator(features, options, serverChannel) {
156
- var initializedStoryIndexGenerator = Promise.resolve(undefined);
157
- if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
158
- var workingDir = process.cwd();
159
- var directories = {
160
- configDir: options.configDir,
161
- workingDir: workingDir
162
- };
163
- var stories = options.presets.apply('stories');
164
- var storyIndexers = options.presets.apply('storyIndexers', []);
165
- var docsOptions = options.presets.apply('docs', {});
166
- var normalizedStories = normalizeStories(await stories, directories);
167
- var generator = new StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
168
- storyIndexers: await storyIndexers,
169
- docs: await docsOptions,
170
- workingDir: workingDir,
171
- storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
172
- storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
173
- }));
174
- initializedStoryIndexGenerator = generator.initialize().then(function () {
175
- return generator;
176
- });
177
- useStoriesJson({
178
- router: router,
179
- initializedStoryIndexGenerator: initializedStoryIndexGenerator,
180
- normalizedStories: normalizedStories,
181
- serverChannel: serverChannel,
182
- workingDir: workingDir
183
- });
184
- }
185
- return initializedStoryIndexGenerator;
186
115
  }
@@ -0,0 +1 @@
1
+ export var DEBOUNCE = 100;
@@ -0,0 +1,29 @@
1
+ import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry';
2
+ import { useStorybookMetadata } from './metadata';
3
+ import { summarizeIndex } from './summarizeIndex';
4
+ import { router } from './router';
5
+ import { versionStatus } from './versionStatus';
6
+ export async function doTelemetry(core, initializedStoryIndexGenerator, options) {
7
+ if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
8
+ initializedStoryIndexGenerator.then(async function (generator) {
9
+ var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
10
+ var versionCheck = options.versionCheck,
11
+ versionUpdates = options.versionUpdates;
12
+ var payload = {
13
+ precedingUpgrade: await getPrecedingUpgrade()
14
+ };
15
+ if (storyIndex) {
16
+ Object.assign(payload, {
17
+ versionStatus: versionUpdates ? versionStatus(versionCheck) : 'disabled',
18
+ storyIndex: summarizeIndex(storyIndex)
19
+ });
20
+ }
21
+ telemetry('dev', payload, {
22
+ configDir: options.configDir
23
+ });
24
+ });
25
+ }
26
+ if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
27
+ useStorybookMetadata(router, options.configDir);
28
+ }
29
+ }
@@ -0,0 +1,15 @@
1
+ export function getAccessControlMiddleware(crossOriginIsolated) {
2
+ return function (req, res, next) {
3
+ res.header('Access-Control-Allow-Origin', '*');
4
+ res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
5
+ // These headers are required to enable SharedArrayBuffer
6
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
7
+ if (crossOriginIsolated) {
8
+ // These headers are required to enable SharedArrayBuffer
9
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
10
+ res.header('Cross-Origin-Opener-Policy', 'same-origin');
11
+ res.header('Cross-Origin-Embedder-Policy', 'require-corp');
12
+ }
13
+ next();
14
+ };
15
+ }
@@ -0,0 +1,39 @@
1
+ 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; }
2
+ 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; }
3
+ 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; }
4
+ import { normalizeStories } from '@storybook/core-common';
5
+ import { useStoriesJson } from './stories-json';
6
+ import { StoryIndexGenerator } from './StoryIndexGenerator';
7
+ import { router } from './router';
8
+ export async function getStoryIndexGenerator(features, options, serverChannel) {
9
+ var initializedStoryIndexGenerator = Promise.resolve(undefined);
10
+ if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
11
+ var workingDir = process.cwd();
12
+ var directories = {
13
+ configDir: options.configDir,
14
+ workingDir: workingDir
15
+ };
16
+ var stories = options.presets.apply('stories');
17
+ var storyIndexers = options.presets.apply('storyIndexers', []);
18
+ var docsOptions = options.presets.apply('docs', {});
19
+ var normalizedStories = normalizeStories(await stories, directories);
20
+ var generator = new StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
21
+ storyIndexers: await storyIndexers,
22
+ docs: await docsOptions,
23
+ workingDir: workingDir,
24
+ storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
25
+ storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
26
+ }));
27
+ initializedStoryIndexGenerator = generator.initialize().then(function () {
28
+ return generator;
29
+ });
30
+ useStoriesJson({
31
+ router: router,
32
+ initializedStoryIndexGenerator: initializedStoryIndexGenerator,
33
+ normalizedStories: normalizedStories,
34
+ serverChannel: serverChannel,
35
+ workingDir: workingDir
36
+ });
37
+ }
38
+ return initializedStoryIndexGenerator;
39
+ }
@@ -0,0 +1,5 @@
1
+ import { Router } from 'express';
2
+
3
+ // @ts-expect-error (Converted from ts-ignore)
4
+
5
+ export var router = new Router();
@@ -6,7 +6,7 @@ import { pathExists } from 'fs-extra';
6
6
  import path from 'path';
7
7
  import favicon from 'serve-favicon';
8
8
  import { dedent } from 'ts-dedent';
9
- var defaultFavIcon = require.resolve('@storybook/core-server/public/favicon.ico');
9
+ var defaultFavIcon = require.resolve('@storybook/core-server/public/favicon.svg');
10
10
  export async function useStatics(router, options) {
11
11
  var hasCustomFavicon = false;
12
12
  var staticDirs = await options.presets.apply('staticDirs');
@@ -39,7 +39,7 @@ export async function useStatics(router, options) {
39
39
  index: false
40
40
  }));
41
41
  if (!hasCustomFavicon && targetEndpoint === '/') {
42
- var faviconPath = path.join(staticPath, 'favicon.ico');
42
+ var faviconPath = path.join(staticPath, 'favicon.svg');
43
43
  if (await pathExists(faviconPath)) {
44
44
  hasCustomFavicon = true;
45
45
  router.use(favicon(faviconPath));
@@ -0,0 +1,5 @@
1
+ export var versionStatus = function (versionCheck) {
2
+ if (versionCheck.error) return 'error';
3
+ if (versionCheck.cached) return 'cached';
4
+ return 'success';
5
+ };
@@ -3,7 +3,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
3
3
  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; }
4
4
  import prompts from 'prompts';
5
5
  import { loadAllPresets, cache } from '@storybook/core-common';
6
- import { telemetry } from '@storybook/telemetry';
6
+ import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry';
7
7
  var promptCrashReports = async function () {
8
8
  if (process.env.CI && process.env.NODE_ENV !== 'test') {
9
9
  return undefined;
@@ -18,14 +18,14 @@ var promptCrashReports = async function () {
18
18
  await cache.set('enableCrashReports', enableCrashReports);
19
19
  return enableCrashReports;
20
20
  };
21
- async function shouldSendError({
21
+ async function getErrorLevel({
22
22
  cliOptions: cliOptions,
23
23
  presetOptions: presetOptions
24
24
  }) {
25
- if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return false;
25
+ if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return 'none';
26
26
 
27
27
  // If we are running init or similar, we just have to go with true here
28
- if (!presetOptions) return true;
28
+ if (!presetOptions) return 'full';
29
29
 
30
30
  // should we load the preset?
31
31
  var presets = await loadAllPresets(_objectSpread({
@@ -36,15 +36,15 @@ async function shouldSendError({
36
36
  // If the user has chosen to enable/disable crash reports in main.js
37
37
  // or disabled telemetry, we can return that
38
38
  var core = await presets.apply('core');
39
- if ((core === null || core === void 0 ? void 0 : core.enableCrashReports) !== undefined) return core.enableCrashReports;
40
- if (core !== null && core !== void 0 && core.disableTelemetry) return false;
39
+ if ((core === null || core === void 0 ? void 0 : core.enableCrashReports) !== undefined) return core.enableCrashReports ? 'full' : 'error';
40
+ if (core !== null && core !== void 0 && core.disableTelemetry) return 'none';
41
41
 
42
42
  // Deal with typo, remove in future version (7.1?)
43
43
  var valueFromCache = (await cache.get('enableCrashReports')) ?? (await cache.get('enableCrashreports'));
44
- if (valueFromCache !== undefined) return valueFromCache;
44
+ if (valueFromCache !== undefined) return valueFromCache ? 'full' : 'error';
45
45
  var valueFromPrompt = await promptCrashReports();
46
- if (valueFromPrompt !== undefined) return valueFromPrompt;
47
- return true;
46
+ if (valueFromPrompt !== undefined) return valueFromPrompt ? 'full' : 'error';
47
+ return 'full';
48
48
  }
49
49
  export async function withTelemetry(eventType, options, run) {
50
50
  telemetry('boot', {
@@ -56,15 +56,18 @@ export async function withTelemetry(eventType, options, run) {
56
56
  await run();
57
57
  } catch (error) {
58
58
  try {
59
- if (await shouldSendError(options)) {
59
+ var errorLevel = await getErrorLevel(options);
60
+ if (errorLevel !== 'none') {
60
61
  var _options$cliOptions, _options$presetOption;
62
+ var precedingUpgrade = await getPrecedingUpgrade();
61
63
  await telemetry('error', {
62
64
  eventType: eventType,
63
- error: error
65
+ precedingUpgrade: precedingUpgrade,
66
+ error: errorLevel === 'full' ? error : undefined
64
67
  }, {
65
68
  immediate: true,
66
69
  configDir: ((_options$cliOptions = options.cliOptions) === null || _options$cliOptions === void 0 ? void 0 : _options$cliOptions.configDir) || ((_options$presetOption = options.presetOptions) === null || _options$presetOption === void 0 ? void 0 : _options$presetOption.configDir),
67
- enableCrashReports: true
70
+ enableCrashReports: errorLevel === 'full'
68
71
  });
69
72
  }
70
73
  } catch (err) {
@@ -1,13 +1,6 @@
1
- import { Router } from 'express';
2
1
  import type { Options } from '@storybook/types';
3
- export declare const router: Router;
4
- export declare const DEBOUNCE = 100;
5
2
  export declare function storybookDevServer(options: Options): Promise<{
6
- previewResult: void | {
7
- stats?: import("@storybook/types").Stats;
8
- totalTime: [number, number];
9
- bail: (e?: Error) => Promise<void>;
10
- };
3
+ previewResult: any;
11
4
  managerResult: void | {
12
5
  stats?: import("@storybook/types").Stats;
13
6
  totalTime: [number, number];
@@ -0,0 +1 @@
1
+ export declare const DEBOUNCE = 100;
@@ -0,0 +1,3 @@
1
+ import type { CoreConfig, Options } from '@storybook/types';
2
+ import type { StoryIndexGenerator } from './StoryIndexGenerator';
3
+ export declare function doTelemetry(core: CoreConfig, initializedStoryIndexGenerator: Promise<StoryIndexGenerator>, options: Options): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { RequestHandler } from 'express';
2
+ export declare function getAccessControlMiddleware(crossOriginIsolated: boolean): RequestHandler;
@@ -0,0 +1,12 @@
1
+ import type { Options } from '@storybook/types';
2
+ import type { ServerChannel } from './get-server-channel';
3
+ import { StoryIndexGenerator } from './StoryIndexGenerator';
4
+ export declare function getStoryIndexGenerator(features: {
5
+ buildStoriesJson?: boolean;
6
+ previewCsfV3?: boolean;
7
+ storyStoreV7?: boolean;
8
+ breakingChangesV7?: boolean;
9
+ interactionsDebugger?: boolean;
10
+ argTypeTargetsV7?: boolean;
11
+ warnOnLegacyHierarchySeparator?: boolean;
12
+ }, options: Options, serverChannel: ServerChannel): Promise<StoryIndexGenerator>;
@@ -0,0 +1,2 @@
1
+ import { Router } from 'express';
2
+ export declare const router: Router;
@@ -0,0 +1,2 @@
1
+ import type { VersionCheck } from '@storybook/types';
2
+ export declare const versionStatus: (versionCheck: VersionCheck) => "error" | "cached" | "success";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-server",
3
- "version": "7.0.0-alpha.60",
3
+ "version": "7.0.0-alpha.62",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -35,16 +35,16 @@
35
35
  "dependencies": {
36
36
  "@aw-web-design/x-default-browser": "1.4.88",
37
37
  "@discoveryjs/json-ext": "^0.5.3",
38
- "@storybook/builder-manager": "7.0.0-alpha.60",
39
- "@storybook/core-common": "7.0.0-alpha.60",
40
- "@storybook/core-events": "7.0.0-alpha.60",
38
+ "@storybook/builder-manager": "7.0.0-alpha.62",
39
+ "@storybook/core-common": "7.0.0-alpha.62",
40
+ "@storybook/core-events": "7.0.0-alpha.62",
41
41
  "@storybook/csf": "next",
42
- "@storybook/csf-tools": "7.0.0-alpha.60",
42
+ "@storybook/csf-tools": "7.0.0-alpha.62",
43
43
  "@storybook/docs-mdx": "next",
44
- "@storybook/node-logger": "7.0.0-alpha.60",
45
- "@storybook/preview-api": "7.0.0-alpha.60",
46
- "@storybook/telemetry": "7.0.0-alpha.60",
47
- "@storybook/types": "7.0.0-alpha.60",
44
+ "@storybook/node-logger": "7.0.0-alpha.62",
45
+ "@storybook/preview-api": "7.0.0-alpha.62",
46
+ "@storybook/telemetry": "7.0.0-alpha.62",
47
+ "@storybook/types": "7.0.0-alpha.62",
48
48
  "@types/node": "^16.0.0",
49
49
  "@types/node-fetch": "^2.5.7",
50
50
  "@types/pretty-hrtime": "^1.0.0",
@@ -76,7 +76,7 @@
76
76
  "ws": "^8.2.3"
77
77
  },
78
78
  "devDependencies": {
79
- "@storybook/builder-webpack5": "7.0.0-alpha.60",
79
+ "@storybook/builder-webpack5": "7.0.0-alpha.62",
80
80
  "@types/compression": "^1.7.0",
81
81
  "@types/ip": "^1.1.0",
82
82
  "@types/serve-favicon": "^2.5.2",
@@ -101,5 +101,5 @@
101
101
  "publishConfig": {
102
102
  "access": "public"
103
103
  },
104
- "gitHead": "2b38f15a169d191e68f01abae0b109920d89fb39"
104
+ "gitHead": "27a91217b1e30d56af667a4e1f587ed1ac173e70"
105
105
  }
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" width="164" height="164">
2
+ <svg width="164" height="164" viewBox="0 0 164 164" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M22.467 147.762 17.5 15.402a8.062 8.062 0 0 1 7.553-8.35L137.637.016a8.061 8.061 0 0 1 8.565 8.047v144.23a8.063 8.063 0 0 1-8.424 8.054l-107.615-4.833a8.062 8.062 0 0 1-7.695-7.752Z" fill="#FF4785"></path>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="m128.785.57-15.495.968-.755 18.172a1.203 1.203 0 0 0 1.928 1.008l7.06-5.354 5.962 4.697a1.202 1.202 0 0 0 1.946-.987L128.785.569Zm-12.059 60.856c-2.836 2.203-23.965 3.707-23.965.57.447-11.969-4.912-12.494-7.889-12.494-2.828 0-7.59.855-7.59 7.267 0 6.534 6.96 10.223 15.13 14.553 11.607 6.15 25.654 13.594 25.654 32.326 0 17.953-14.588 27.871-33.194 27.871-19.201 0-35.981-7.769-34.086-34.702.744-3.163 25.156-2.411 25.156 0-.298 11.114 2.232 14.383 8.633 14.383 4.912 0 7.144-2.708 7.144-7.267 0-6.9-7.252-10.973-15.595-15.657C64.827 81.933 51.53 74.468 51.53 57.34c0-17.098 11.76-28.497 32.747-28.497 20.988 0 32.449 11.224 32.449 32.584Z" fill="#fff"></path>
5
+ </svg>
6
+ <style>@media (prefers-color-scheme: light) { :root { filter: none; } }</style>
7
+ </svg>
Binary file