@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.
- package/dist/cjs/build-static.js +8 -3
- package/dist/cjs/dev-server.js +29 -104
- package/dist/cjs/utils/constants.js +8 -0
- package/dist/cjs/utils/doTelemetry.js +35 -0
- package/dist/cjs/utils/getAccessControlMiddleware.js +21 -0
- package/dist/cjs/utils/getStoryIndexGenerator.js +45 -0
- package/dist/cjs/utils/router.js +11 -0
- package/dist/cjs/utils/server-statics.js +2 -2
- package/dist/cjs/utils/versionStatus.js +12 -0
- package/dist/cjs/withTelemetry.js +14 -11
- package/dist/esm/build-static.js +9 -4
- package/dist/esm/dev-server.js +23 -94
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/doTelemetry.js +29 -0
- package/dist/esm/utils/getAccessControlMiddleware.js +15 -0
- package/dist/esm/utils/getStoryIndexGenerator.js +39 -0
- package/dist/esm/utils/router.js +5 -0
- package/dist/esm/utils/server-statics.js +2 -2
- package/dist/esm/utils/versionStatus.js +5 -0
- package/dist/esm/withTelemetry.js +15 -12
- package/dist/types/dev-server.d.ts +1 -8
- package/dist/types/utils/constants.d.ts +1 -0
- package/dist/types/utils/doTelemetry.d.ts +3 -0
- package/dist/types/utils/getAccessControlMiddleware.d.ts +2 -0
- package/dist/types/utils/getStoryIndexGenerator.d.ts +12 -0
- package/dist/types/utils/router.d.ts +2 -0
- package/dist/types/utils/versionStatus.d.ts +2 -0
- package/package.json +11 -11
- package/public/favicon.svg +7 -0
- package/public/favicon.ico +0 -0
package/dist/cjs/build-static.js
CHANGED
|
@@ -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 =
|
|
137
|
-
|
|
138
|
-
}
|
|
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
|
});
|
package/dist/cjs/dev-server.js
CHANGED
|
@@ -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 =
|
|
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
|
|
22
|
-
var
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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,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.
|
|
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.
|
|
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
|
|
28
|
+
async function getErrorLevel({
|
|
29
29
|
cliOptions: cliOptions,
|
|
30
30
|
presetOptions: presetOptions
|
|
31
31
|
}) {
|
|
32
|
-
if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
77
|
+
enableCrashReports: errorLevel === 'full'
|
|
75
78
|
});
|
|
76
79
|
}
|
|
77
80
|
} catch (err) {
|
package/dist/esm/build-static.js
CHANGED
|
@@ -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 =
|
|
130
|
-
|
|
131
|
-
}
|
|
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
|
});
|
package/dist/esm/dev-server.js
CHANGED
|
@@ -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
|
|
7
|
+
import express from 'express';
|
|
11
8
|
import compression from 'compression';
|
|
12
|
-
import {
|
|
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 {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
+
}
|
|
@@ -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.
|
|
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.
|
|
42
|
+
var faviconPath = path.join(staticPath, 'favicon.svg');
|
|
43
43
|
if (await pathExists(faviconPath)) {
|
|
44
44
|
hasCustomFavicon = true;
|
|
45
45
|
router.use(favicon(faviconPath));
|
|
@@ -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
|
|
21
|
+
async function getErrorLevel({
|
|
22
22
|
cliOptions: cliOptions,
|
|
23
23
|
presetOptions: presetOptions
|
|
24
24
|
}) {
|
|
25
|
-
if (cliOptions !== null && cliOptions !== void 0 && cliOptions.disableTelemetry) return
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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,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>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/core-server",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
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.
|
|
39
|
-
"@storybook/core-common": "7.0.0-alpha.
|
|
40
|
-
"@storybook/core-events": "7.0.0-alpha.
|
|
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.
|
|
42
|
+
"@storybook/csf-tools": "7.0.0-alpha.62",
|
|
43
43
|
"@storybook/docs-mdx": "next",
|
|
44
|
-
"@storybook/node-logger": "7.0.0-alpha.
|
|
45
|
-
"@storybook/preview-api": "7.0.0-alpha.
|
|
46
|
-
"@storybook/telemetry": "7.0.0-alpha.
|
|
47
|
-
"@storybook/types": "7.0.0-alpha.
|
|
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.
|
|
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": "
|
|
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>
|
package/public/favicon.ico
DELETED
|
Binary file
|