@storybook/core-server 7.0.0-beta.1 → 7.0.0-beta.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.
@@ -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
  });
@@ -104,7 +104,9 @@ async function storybookDevServer(options) {
104
104
  // this is a preview route, the builder has to be started before we can serve it
105
105
  // this handler keeps request to that route pending until the builder is ready to serve it, preventing a 404
106
106
  _router.router.get('/iframe.html', function (req, res, next) {
107
- previewStarted.then(function () {
107
+ // We need to catch here or node will treat any errors thrown by `previewStarted` as
108
+ // unhandled and exit (even though they are very much handled below)
109
+ previewStarted.catch(function () {}).then(function () {
108
110
  return next();
109
111
  });
110
112
  });
@@ -15,10 +15,15 @@ async function doTelemetry(core, initializedStoryIndexGenerator, options) {
15
15
  var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
16
16
  var versionCheck = options.versionCheck,
17
17
  versionUpdates = options.versionUpdates;
18
- var payload = storyIndex ? {
19
- versionStatus: versionUpdates ? (0, _versionStatus.versionStatus)(versionCheck) : 'disabled',
20
- storyIndex: (0, _summarizeIndex.summarizeIndex)(storyIndex)
21
- } : undefined;
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
+ }
22
27
  (0, _telemetry.telemetry)('dev', payload, {
23
28
  configDir: options.configDir
24
29
  });
@@ -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
  });
@@ -97,7 +97,9 @@ export async function storybookDevServer(options) {
97
97
  // this is a preview route, the builder has to be started before we can serve it
98
98
  // this handler keeps request to that route pending until the builder is ready to serve it, preventing a 404
99
99
  router.get('/iframe.html', function (req, res, next) {
100
- previewStarted.then(function () {
100
+ // We need to catch here or node will treat any errors thrown by `previewStarted` as
101
+ // unhandled and exit (even though they are very much handled below)
102
+ previewStarted.catch(function () {}).then(function () {
101
103
  return next();
102
104
  });
103
105
  });
@@ -1,4 +1,4 @@
1
- import { telemetry } from '@storybook/telemetry';
1
+ import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry';
2
2
  import { useStorybookMetadata } from './metadata';
3
3
  import { summarizeIndex } from './summarizeIndex';
4
4
  import { router } from './router';
@@ -9,10 +9,15 @@ export async function doTelemetry(core, initializedStoryIndexGenerator, options)
9
9
  var storyIndex = await (generator === null || generator === void 0 ? void 0 : generator.getIndex());
10
10
  var versionCheck = options.versionCheck,
11
11
  versionUpdates = options.versionUpdates;
12
- var payload = storyIndex ? {
13
- versionStatus: versionUpdates ? versionStatus(versionCheck) : 'disabled',
14
- storyIndex: summarizeIndex(storyIndex)
15
- } : undefined;
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
+ }
16
21
  telemetry('dev', payload, {
17
22
  configDir: options.configDir
18
23
  });
@@ -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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-server",
3
- "version": "7.0.0-beta.1",
3
+ "version": "7.0.0-beta.2",
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-beta.1",
39
- "@storybook/core-common": "7.0.0-beta.1",
40
- "@storybook/core-events": "7.0.0-beta.1",
38
+ "@storybook/builder-manager": "7.0.0-beta.2",
39
+ "@storybook/core-common": "7.0.0-beta.2",
40
+ "@storybook/core-events": "7.0.0-beta.2",
41
41
  "@storybook/csf": "next",
42
- "@storybook/csf-tools": "7.0.0-beta.1",
42
+ "@storybook/csf-tools": "7.0.0-beta.2",
43
43
  "@storybook/docs-mdx": "next",
44
- "@storybook/node-logger": "7.0.0-beta.1",
45
- "@storybook/preview-api": "7.0.0-beta.1",
46
- "@storybook/telemetry": "7.0.0-beta.1",
47
- "@storybook/types": "7.0.0-beta.1",
44
+ "@storybook/node-logger": "7.0.0-beta.2",
45
+ "@storybook/preview-api": "7.0.0-beta.2",
46
+ "@storybook/telemetry": "7.0.0-beta.2",
47
+ "@storybook/types": "7.0.0-beta.2",
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-beta.1",
79
+ "@storybook/builder-webpack5": "7.0.0-beta.2",
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": "42c08678ac06d9c2c8e7a4c31a91e0a14bf5c2cd"
104
+ "gitHead": "66a0d588184add900c48d49f3a62743fa9cc5185"
105
105
  }