@storybook/core-common 6.5.0-beta.1 → 6.5.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.
package/dist/cjs/index.js CHANGED
@@ -181,6 +181,48 @@ Object.keys(_loadCustomWebpackConfig).forEach(function (key) {
181
181
  });
182
182
  });
183
183
 
184
+ var _loadMainConfig = require("./utils/load-main-config");
185
+
186
+ Object.keys(_loadMainConfig).forEach(function (key) {
187
+ if (key === "default" || key === "__esModule") return;
188
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
189
+ if (key in exports && exports[key] === _loadMainConfig[key]) return;
190
+ Object.defineProperty(exports, key, {
191
+ enumerable: true,
192
+ get: function () {
193
+ return _loadMainConfig[key];
194
+ }
195
+ });
196
+ });
197
+
198
+ var _getStorybookConfiguration = require("./utils/get-storybook-configuration");
199
+
200
+ Object.keys(_getStorybookConfiguration).forEach(function (key) {
201
+ if (key === "default" || key === "__esModule") return;
202
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
203
+ if (key in exports && exports[key] === _getStorybookConfiguration[key]) return;
204
+ Object.defineProperty(exports, key, {
205
+ enumerable: true,
206
+ get: function () {
207
+ return _getStorybookConfiguration[key];
208
+ }
209
+ });
210
+ });
211
+
212
+ var _getStorybookInfo = require("./utils/get-storybook-info");
213
+
214
+ Object.keys(_getStorybookInfo).forEach(function (key) {
215
+ if (key === "default" || key === "__esModule") return;
216
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
217
+ if (key in exports && exports[key] === _getStorybookInfo[key]) return;
218
+ Object.defineProperty(exports, key, {
219
+ enumerable: true,
220
+ get: function () {
221
+ return _getStorybookInfo[key];
222
+ }
223
+ });
224
+ });
225
+
184
226
  var _loadManagerOrAddonsFile = require("./utils/load-manager-or-addons-file");
185
227
 
186
228
  Object.keys(_loadManagerOrAddonsFile).forEach(function (key) {
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getStorybookConfiguration = getStorybookConfiguration;
7
+
8
+ /*
9
+ * Lifted from chromatic-cli
10
+ *
11
+ * This is not exactly clever but it works most of the time
12
+ * we receive the full text of the npm script, and we look if we can find the cli flag
13
+ */
14
+ function getStorybookConfiguration(storybookScript, shortName, longName) {
15
+ if (!storybookScript) {
16
+ return null;
17
+ }
18
+
19
+ var parts = storybookScript.split(/[\s='"]+/);
20
+ var index = parts.indexOf(longName);
21
+
22
+ if (index === -1) {
23
+ index = parts.indexOf(shortName);
24
+ }
25
+
26
+ if (index === -1) {
27
+ return null;
28
+ }
29
+
30
+ return parts[index + 1];
31
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.description.js");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getStorybookInfo = void 0;
9
+
10
+ var _path = _interopRequireDefault(require("path"));
11
+
12
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
13
+
14
+ var _getStorybookConfiguration = require("./get-storybook-configuration");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
22
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ 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."); }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ 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; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ var viewLayers = {
37
+ '@storybook/react': 'react',
38
+ '@storybook/vue': 'vue',
39
+ '@storybook/vue3': 'vue3',
40
+ '@storybook/angular': 'angular',
41
+ '@storybook/html': 'html',
42
+ '@storybook/web-components': 'web-components',
43
+ '@storybook/polymer': 'polymer',
44
+ '@storybook/ember': 'ember',
45
+ '@storybook/marko': 'marko',
46
+ '@storybook/mithril': 'mithril',
47
+ '@storybook/riot': 'riot',
48
+ '@storybook/svelte': 'svelte',
49
+ '@storybook/preact': 'preact',
50
+ '@storybook/rax': 'rax'
51
+ };
52
+ var logger = console;
53
+
54
+ var findDependency = function ({
55
+ dependencies: dependencies,
56
+ devDependencies: devDependencies,
57
+ peerDependencies: peerDependencies
58
+ }, predicate) {
59
+ return [Object.entries(dependencies || {}).find(predicate), Object.entries(devDependencies || {}).find(predicate), Object.entries(peerDependencies || {}).find(predicate)];
60
+ };
61
+
62
+ var getFrameworkInfo = function (packageJson) {
63
+ // Pull the viewlayer from dependencies in package.json
64
+ var _findDependency = findDependency(packageJson, function ([key]) {
65
+ return viewLayers[key];
66
+ }),
67
+ _findDependency2 = _slicedToArray(_findDependency, 3),
68
+ dep = _findDependency2[0],
69
+ devDep = _findDependency2[1],
70
+ peerDep = _findDependency2[2];
71
+
72
+ var _ref = dep || devDep || peerDep || [],
73
+ _ref2 = _slicedToArray(_ref, 2),
74
+ pkg = _ref2[0],
75
+ version = _ref2[1];
76
+
77
+ var framework = viewLayers[pkg];
78
+
79
+ if (dep && devDep && dep[0] === devDep[0]) {
80
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`);
81
+ }
82
+
83
+ if (dep && peerDep && dep[0] === peerDep[0]) {
84
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`);
85
+ }
86
+
87
+ return {
88
+ framework: framework,
89
+ version: version
90
+ };
91
+ };
92
+
93
+ var validConfigExtensions = ['ts', 'js', 'tsx', 'jsx', 'mjs', 'cjs'];
94
+
95
+ var findConfigFile = function (prefix, configDir) {
96
+ var filePrefix = _path.default.join(configDir, prefix);
97
+
98
+ var extension = validConfigExtensions.find(function (ext) {
99
+ return _fsExtra.default.existsSync(`${filePrefix}.${ext}`);
100
+ });
101
+ return extension ? `${filePrefix}.${extension}` : null;
102
+ };
103
+
104
+ var getConfigInfo = function (packageJson) {
105
+ var _packageJson$scripts;
106
+
107
+ var configDir = '.storybook';
108
+ var storybookScript = (_packageJson$scripts = packageJson.scripts) === null || _packageJson$scripts === void 0 ? void 0 : _packageJson$scripts.storybook;
109
+
110
+ if (storybookScript) {
111
+ var configParam = (0, _getStorybookConfiguration.getStorybookConfiguration)(storybookScript, '-c', '--config-dir');
112
+ if (configParam) configDir = configParam;
113
+ }
114
+
115
+ return {
116
+ configDir: configDir,
117
+ mainConfig: findConfigFile('main', configDir),
118
+ previewConfig: findConfigFile('preview', configDir),
119
+ managerConfig: findConfigFile('manager', configDir)
120
+ };
121
+ };
122
+
123
+ var getStorybookInfo = function (packageJson) {
124
+ var frameworkInfo = getFrameworkInfo(packageJson);
125
+ var configInfo = getConfigInfo(packageJson);
126
+ return _objectSpread(_objectSpread({}, frameworkInfo), configInfo);
127
+ };
128
+
129
+ exports.getStorybookInfo = getStorybookInfo;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loadMainConfig = loadMainConfig;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _interpretRequire = require("./interpret-require");
11
+
12
+ var _validateConfigurationFiles = require("./validate-configuration-files");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function loadMainConfig({
17
+ configDir: configDir
18
+ }) {
19
+ (0, _validateConfigurationFiles.validateConfigurationFiles)(configDir);
20
+ return (0, _interpretRequire.serverRequire)(_path.default.resolve(configDir, 'main'));
21
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.notifyTelemetry = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _chalk = _interopRequireDefault(require("chalk"));
11
+
12
+ var _cache = require("./cache");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var TELEMETRY_KEY_NOTIFY_DATE = 'telemetry-notification-date';
17
+ var logger = console;
18
+
19
+ var notifyTelemetry = async function () {
20
+ var telemetryNotifyDate = await _cache.cache.get(TELEMETRY_KEY_NOTIFY_DATE, null); // The end-user has already been notified about our telemetry integration. We
21
+ // don't need to constantly annoy them about it.
22
+ // We will re-inform users about the telemetry if significant changes are
23
+ // ever made.
24
+
25
+ if (telemetryNotifyDate) {
26
+ return;
27
+ }
28
+
29
+ _cache.cache.set(TELEMETRY_KEY_NOTIFY_DATE, Date.now().toString());
30
+
31
+ logger.log(`${_chalk.default.magenta.bold('Attention')}: Storybook now collects completely anonymous telemetry regarding usage.`);
32
+ logger.log(`This information is used to shape Storybook's roadmap and prioritize features.`);
33
+ logger.log(`You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:`);
34
+ logger.log(_chalk.default.cyan('https://storybook.js.org/telemetry'));
35
+ logger.log();
36
+ };
37
+
38
+ exports.notifyTelemetry = notifyTelemetry;
package/dist/esm/index.js CHANGED
@@ -10,6 +10,9 @@ export * from './utils/interpret-require';
10
10
  export * from './utils/load-custom-babel-config';
11
11
  export * from './utils/load-custom-presets';
12
12
  export * from './utils/load-custom-webpack-config';
13
+ export * from './utils/load-main-config';
14
+ export * from './utils/get-storybook-configuration';
15
+ export * from './utils/get-storybook-info';
13
16
  export * from './utils/load-manager-or-addons-file';
14
17
  export * from './utils/load-preview-or-config-file';
15
18
  export * from './utils/log-config';
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Lifted from chromatic-cli
3
+ *
4
+ * This is not exactly clever but it works most of the time
5
+ * we receive the full text of the npm script, and we look if we can find the cli flag
6
+ */
7
+ export function getStorybookConfiguration(storybookScript, shortName, longName) {
8
+ if (!storybookScript) {
9
+ return null;
10
+ }
11
+
12
+ var parts = storybookScript.split(/[\s='"]+/);
13
+ var index = parts.indexOf(longName);
14
+
15
+ if (index === -1) {
16
+ index = parts.indexOf(shortName);
17
+ }
18
+
19
+ if (index === -1) {
20
+ return null;
21
+ }
22
+
23
+ return parts[index + 1];
24
+ }
@@ -0,0 +1,114 @@
1
+ import "core-js/modules/es.symbol.description.js";
2
+
3
+ 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; }
4
+
5
+ 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; }
6
+
7
+ 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; }
8
+
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+
11
+ 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."); }
12
+
13
+ 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); }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+
21
+ import path from 'path';
22
+ import fse from 'fs-extra';
23
+ import { getStorybookConfiguration } from './get-storybook-configuration';
24
+ var viewLayers = {
25
+ '@storybook/react': 'react',
26
+ '@storybook/vue': 'vue',
27
+ '@storybook/vue3': 'vue3',
28
+ '@storybook/angular': 'angular',
29
+ '@storybook/html': 'html',
30
+ '@storybook/web-components': 'web-components',
31
+ '@storybook/polymer': 'polymer',
32
+ '@storybook/ember': 'ember',
33
+ '@storybook/marko': 'marko',
34
+ '@storybook/mithril': 'mithril',
35
+ '@storybook/riot': 'riot',
36
+ '@storybook/svelte': 'svelte',
37
+ '@storybook/preact': 'preact',
38
+ '@storybook/rax': 'rax'
39
+ };
40
+ var logger = console;
41
+
42
+ var findDependency = function ({
43
+ dependencies: dependencies,
44
+ devDependencies: devDependencies,
45
+ peerDependencies: peerDependencies
46
+ }, predicate) {
47
+ return [Object.entries(dependencies || {}).find(predicate), Object.entries(devDependencies || {}).find(predicate), Object.entries(peerDependencies || {}).find(predicate)];
48
+ };
49
+
50
+ var getFrameworkInfo = function (packageJson) {
51
+ // Pull the viewlayer from dependencies in package.json
52
+ var _findDependency = findDependency(packageJson, function ([key]) {
53
+ return viewLayers[key];
54
+ }),
55
+ _findDependency2 = _slicedToArray(_findDependency, 3),
56
+ dep = _findDependency2[0],
57
+ devDep = _findDependency2[1],
58
+ peerDep = _findDependency2[2];
59
+
60
+ var _ref = dep || devDep || peerDep || [],
61
+ _ref2 = _slicedToArray(_ref, 2),
62
+ pkg = _ref2[0],
63
+ version = _ref2[1];
64
+
65
+ var framework = viewLayers[pkg];
66
+
67
+ if (dep && devDep && dep[0] === devDep[0]) {
68
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`);
69
+ }
70
+
71
+ if (dep && peerDep && dep[0] === peerDep[0]) {
72
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`);
73
+ }
74
+
75
+ return {
76
+ framework: framework,
77
+ version: version
78
+ };
79
+ };
80
+
81
+ var validConfigExtensions = ['ts', 'js', 'tsx', 'jsx', 'mjs', 'cjs'];
82
+
83
+ var findConfigFile = function (prefix, configDir) {
84
+ var filePrefix = path.join(configDir, prefix);
85
+ var extension = validConfigExtensions.find(function (ext) {
86
+ return fse.existsSync(`${filePrefix}.${ext}`);
87
+ });
88
+ return extension ? `${filePrefix}.${extension}` : null;
89
+ };
90
+
91
+ var getConfigInfo = function (packageJson) {
92
+ var _packageJson$scripts;
93
+
94
+ var configDir = '.storybook';
95
+ var storybookScript = (_packageJson$scripts = packageJson.scripts) === null || _packageJson$scripts === void 0 ? void 0 : _packageJson$scripts.storybook;
96
+
97
+ if (storybookScript) {
98
+ var configParam = getStorybookConfiguration(storybookScript, '-c', '--config-dir');
99
+ if (configParam) configDir = configParam;
100
+ }
101
+
102
+ return {
103
+ configDir: configDir,
104
+ mainConfig: findConfigFile('main', configDir),
105
+ previewConfig: findConfigFile('preview', configDir),
106
+ managerConfig: findConfigFile('manager', configDir)
107
+ };
108
+ };
109
+
110
+ export var getStorybookInfo = function (packageJson) {
111
+ var frameworkInfo = getFrameworkInfo(packageJson);
112
+ var configInfo = getConfigInfo(packageJson);
113
+ return _objectSpread(_objectSpread({}, frameworkInfo), configInfo);
114
+ };
@@ -0,0 +1,9 @@
1
+ import path from 'path';
2
+ import { serverRequire } from './interpret-require';
3
+ import { validateConfigurationFiles } from './validate-configuration-files';
4
+ export function loadMainConfig({
5
+ configDir: configDir
6
+ }) {
7
+ validateConfigurationFiles(configDir);
8
+ return serverRequire(path.resolve(configDir, 'main'));
9
+ }
@@ -0,0 +1,22 @@
1
+ import "core-js/modules/es.promise.js";
2
+ import chalk from 'chalk';
3
+ import { cache } from './cache';
4
+ var TELEMETRY_KEY_NOTIFY_DATE = 'telemetry-notification-date';
5
+ var logger = console;
6
+ export var notifyTelemetry = async function () {
7
+ var telemetryNotifyDate = await cache.get(TELEMETRY_KEY_NOTIFY_DATE, null); // The end-user has already been notified about our telemetry integration. We
8
+ // don't need to constantly annoy them about it.
9
+ // We will re-inform users about the telemetry if significant changes are
10
+ // ever made.
11
+
12
+ if (telemetryNotifyDate) {
13
+ return;
14
+ }
15
+
16
+ cache.set(TELEMETRY_KEY_NOTIFY_DATE, Date.now().toString());
17
+ logger.log(`${chalk.magenta.bold('Attention')}: Storybook now collects completely anonymous telemetry regarding usage.`);
18
+ logger.log(`This information is used to shape Storybook's roadmap and prioritize features.`);
19
+ logger.log(`You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:`);
20
+ logger.log(chalk.cyan('https://storybook.js.org/telemetry'));
21
+ logger.log();
22
+ };
@@ -10,6 +10,9 @@ export * from './utils/interpret-require';
10
10
  export * from './utils/load-custom-babel-config';
11
11
  export * from './utils/load-custom-presets';
12
12
  export * from './utils/load-custom-webpack-config';
13
+ export * from './utils/load-main-config';
14
+ export * from './utils/get-storybook-configuration';
15
+ export * from './utils/get-storybook-info';
13
16
  export * from './utils/load-manager-or-addons-file';
14
17
  export * from './utils/load-preview-or-config-file';
15
18
  export * from './utils/log-config';
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Lifted from chromatic-cli
3
+ *
4
+ * This is not exactly clever but it works most of the time
5
+ * we receive the full text of the npm script, and we look if we can find the cli flag
6
+ */
7
+ export function getStorybookConfiguration(storybookScript, shortName, longName) {
8
+ if (!storybookScript) {
9
+ return null;
10
+ }
11
+
12
+ var parts = storybookScript.split(/[\s='"]+/);
13
+ var index = parts.indexOf(longName);
14
+
15
+ if (index === -1) {
16
+ index = parts.indexOf(shortName);
17
+ }
18
+
19
+ if (index === -1) {
20
+ return null;
21
+ }
22
+
23
+ return parts[index + 1];
24
+ }
@@ -0,0 +1,114 @@
1
+ import "core-js/modules/es.symbol.description.js";
2
+
3
+ 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; }
4
+
5
+ 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; }
6
+
7
+ 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; }
8
+
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+
11
+ 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."); }
12
+
13
+ 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); }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+
21
+ import path from 'path';
22
+ import fse from 'fs-extra';
23
+ import { getStorybookConfiguration } from './get-storybook-configuration';
24
+ var viewLayers = {
25
+ '@storybook/react': 'react',
26
+ '@storybook/vue': 'vue',
27
+ '@storybook/vue3': 'vue3',
28
+ '@storybook/angular': 'angular',
29
+ '@storybook/html': 'html',
30
+ '@storybook/web-components': 'web-components',
31
+ '@storybook/polymer': 'polymer',
32
+ '@storybook/ember': 'ember',
33
+ '@storybook/marko': 'marko',
34
+ '@storybook/mithril': 'mithril',
35
+ '@storybook/riot': 'riot',
36
+ '@storybook/svelte': 'svelte',
37
+ '@storybook/preact': 'preact',
38
+ '@storybook/rax': 'rax'
39
+ };
40
+ var logger = console;
41
+
42
+ var findDependency = function ({
43
+ dependencies: dependencies,
44
+ devDependencies: devDependencies,
45
+ peerDependencies: peerDependencies
46
+ }, predicate) {
47
+ return [Object.entries(dependencies || {}).find(predicate), Object.entries(devDependencies || {}).find(predicate), Object.entries(peerDependencies || {}).find(predicate)];
48
+ };
49
+
50
+ var getFrameworkInfo = function (packageJson) {
51
+ // Pull the viewlayer from dependencies in package.json
52
+ var _findDependency = findDependency(packageJson, function ([key]) {
53
+ return viewLayers[key];
54
+ }),
55
+ _findDependency2 = _slicedToArray(_findDependency, 3),
56
+ dep = _findDependency2[0],
57
+ devDep = _findDependency2[1],
58
+ peerDep = _findDependency2[2];
59
+
60
+ var _ref = dep || devDep || peerDep || [],
61
+ _ref2 = _slicedToArray(_ref, 2),
62
+ pkg = _ref2[0],
63
+ version = _ref2[1];
64
+
65
+ var framework = viewLayers[pkg];
66
+
67
+ if (dep && devDep && dep[0] === devDep[0]) {
68
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`);
69
+ }
70
+
71
+ if (dep && peerDep && dep[0] === peerDep[0]) {
72
+ logger.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`);
73
+ }
74
+
75
+ return {
76
+ framework: framework,
77
+ version: version
78
+ };
79
+ };
80
+
81
+ var validConfigExtensions = ['ts', 'js', 'tsx', 'jsx', 'mjs', 'cjs'];
82
+
83
+ var findConfigFile = function (prefix, configDir) {
84
+ var filePrefix = path.join(configDir, prefix);
85
+ var extension = validConfigExtensions.find(function (ext) {
86
+ return fse.existsSync(`${filePrefix}.${ext}`);
87
+ });
88
+ return extension ? `${filePrefix}.${extension}` : null;
89
+ };
90
+
91
+ var getConfigInfo = function (packageJson) {
92
+ var _packageJson$scripts;
93
+
94
+ var configDir = '.storybook';
95
+ var storybookScript = (_packageJson$scripts = packageJson.scripts) === null || _packageJson$scripts === void 0 ? void 0 : _packageJson$scripts.storybook;
96
+
97
+ if (storybookScript) {
98
+ var configParam = getStorybookConfiguration(storybookScript, '-c', '--config-dir');
99
+ if (configParam) configDir = configParam;
100
+ }
101
+
102
+ return {
103
+ configDir: configDir,
104
+ mainConfig: findConfigFile('main', configDir),
105
+ previewConfig: findConfigFile('preview', configDir),
106
+ managerConfig: findConfigFile('manager', configDir)
107
+ };
108
+ };
109
+
110
+ export var getStorybookInfo = function (packageJson) {
111
+ var frameworkInfo = getFrameworkInfo(packageJson);
112
+ var configInfo = getConfigInfo(packageJson);
113
+ return _objectSpread(_objectSpread({}, frameworkInfo), configInfo);
114
+ };
@@ -0,0 +1,9 @@
1
+ import path from 'path';
2
+ import { serverRequire } from './interpret-require';
3
+ import { validateConfigurationFiles } from './validate-configuration-files';
4
+ export function loadMainConfig({
5
+ configDir: configDir
6
+ }) {
7
+ validateConfigurationFiles(configDir);
8
+ return serverRequire(path.resolve(configDir, 'main'));
9
+ }
@@ -0,0 +1,22 @@
1
+ import "core-js/modules/es.promise.js";
2
+ import chalk from 'chalk';
3
+ import { cache } from './cache';
4
+ var TELEMETRY_KEY_NOTIFY_DATE = 'telemetry-notification-date';
5
+ var logger = console;
6
+ export var notifyTelemetry = async function () {
7
+ var telemetryNotifyDate = await cache.get(TELEMETRY_KEY_NOTIFY_DATE, null); // The end-user has already been notified about our telemetry integration. We
8
+ // don't need to constantly annoy them about it.
9
+ // We will re-inform users about the telemetry if significant changes are
10
+ // ever made.
11
+
12
+ if (telemetryNotifyDate) {
13
+ return;
14
+ }
15
+
16
+ cache.set(TELEMETRY_KEY_NOTIFY_DATE, Date.now().toString());
17
+ logger.log(`${chalk.magenta.bold('Attention')}: Storybook now collects completely anonymous telemetry regarding usage.`);
18
+ logger.log(`This information is used to shape Storybook's roadmap and prioritize features.`);
19
+ logger.log(`You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:`);
20
+ logger.log(chalk.cyan('https://storybook.js.org/telemetry'));
21
+ logger.log();
22
+ };
@@ -10,6 +10,9 @@ export * from './utils/interpret-require';
10
10
  export * from './utils/load-custom-babel-config';
11
11
  export * from './utils/load-custom-presets';
12
12
  export * from './utils/load-custom-webpack-config';
13
+ export * from './utils/load-main-config';
14
+ export * from './utils/get-storybook-configuration';
15
+ export * from './utils/get-storybook-info';
13
16
  export * from './utils/load-manager-or-addons-file';
14
17
  export * from './utils/load-preview-or-config-file';
15
18
  export * from './utils/log-config';
@@ -39,6 +39,20 @@ export interface CoreConfig {
39
39
  builder: BuilderConfig;
40
40
  disableWebpackDefaults?: boolean;
41
41
  channelOptions?: Partial<TelejsonOptions>;
42
+ /**
43
+ * Disables the generation of project.json, a file containing Storybook metadata
44
+ */
45
+ disableProjectJson?: boolean;
46
+ /**
47
+ * Disables Storybook telemetry
48
+ * @see https://storybook.js.org/telemetry
49
+ */
50
+ disableTelemetry?: boolean;
51
+ /**
52
+ * Enable crash reports to be sent to Storybook telemetry
53
+ * @see https://storybook.js.org/telemetry
54
+ */
55
+ enableCrashReports?: boolean;
42
56
  /**
43
57
  * enable CORS headings to run document in a "secure context"
44
58
  * see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements
@@ -113,6 +127,11 @@ export interface PackageJson {
113
127
  version: string;
114
128
  dependencies?: Record<string, string>;
115
129
  devDependencies?: Record<string, string>;
130
+ peerDependencies?: Record<string, string>;
131
+ scripts?: Record<string, string>;
132
+ eslintConfig?: Record<string, any>;
133
+ type?: 'module';
134
+ [key: string]: any;
116
135
  }
117
136
  export interface LoadOptions {
118
137
  packageJson: PackageJson;
@@ -132,6 +151,8 @@ export interface CLIOptions {
132
151
  ignorePreview?: boolean;
133
152
  previewUrl?: string;
134
153
  forceBuildPreview?: boolean;
154
+ disableTelemetry?: boolean;
155
+ enableCrashReports?: boolean;
135
156
  host?: string;
136
157
  /**
137
158
  * @deprecated Use 'staticDirs' Storybook Configuration option instead
@@ -0,0 +1 @@
1
+ export declare function getStorybookConfiguration(storybookScript: string, shortName: string, longName: string): string;
@@ -0,0 +1,11 @@
1
+ import { PackageJson } from '../types';
2
+ interface StorybookInfo {
3
+ framework: string;
4
+ version: string;
5
+ configDir?: string;
6
+ mainConfig?: string;
7
+ previewConfig?: string;
8
+ managerConfig?: string;
9
+ }
10
+ export declare const getStorybookInfo: (packageJson: PackageJson) => StorybookInfo;
11
+ export {};
@@ -0,0 +1,4 @@
1
+ import { StorybookConfig } from '../types';
2
+ export declare function loadMainConfig({ configDir }: {
3
+ configDir: string;
4
+ }): StorybookConfig;
@@ -0,0 +1 @@
1
+ export declare const notifyTelemetry: () => Promise<void>;
@@ -10,6 +10,9 @@ export * from './utils/interpret-require';
10
10
  export * from './utils/load-custom-babel-config';
11
11
  export * from './utils/load-custom-presets';
12
12
  export * from './utils/load-custom-webpack-config';
13
+ export * from './utils/load-main-config';
14
+ export * from './utils/get-storybook-configuration';
15
+ export * from './utils/get-storybook-info';
13
16
  export * from './utils/load-manager-or-addons-file';
14
17
  export * from './utils/load-preview-or-config-file';
15
18
  export * from './utils/log-config';
@@ -39,6 +39,20 @@ export interface CoreConfig {
39
39
  builder: BuilderConfig;
40
40
  disableWebpackDefaults?: boolean;
41
41
  channelOptions?: Partial<TelejsonOptions>;
42
+ /**
43
+ * Disables the generation of project.json, a file containing Storybook metadata
44
+ */
45
+ disableProjectJson?: boolean;
46
+ /**
47
+ * Disables Storybook telemetry
48
+ * @see https://storybook.js.org/telemetry
49
+ */
50
+ disableTelemetry?: boolean;
51
+ /**
52
+ * Enable crash reports to be sent to Storybook telemetry
53
+ * @see https://storybook.js.org/telemetry
54
+ */
55
+ enableCrashReports?: boolean;
42
56
  /**
43
57
  * enable CORS headings to run document in a "secure context"
44
58
  * see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements
@@ -109,6 +123,11 @@ export interface PackageJson {
109
123
  version: string;
110
124
  dependencies?: Record<string, string>;
111
125
  devDependencies?: Record<string, string>;
126
+ peerDependencies?: Record<string, string>;
127
+ scripts?: Record<string, string>;
128
+ eslintConfig?: Record<string, any>;
129
+ type?: 'module';
130
+ [key: string]: any;
112
131
  }
113
132
  export interface LoadOptions {
114
133
  packageJson: PackageJson;
@@ -128,6 +147,8 @@ export interface CLIOptions {
128
147
  ignorePreview?: boolean;
129
148
  previewUrl?: string;
130
149
  forceBuildPreview?: boolean;
150
+ disableTelemetry?: boolean;
151
+ enableCrashReports?: boolean;
131
152
  host?: string;
132
153
  /**
133
154
  * @deprecated Use 'staticDirs' Storybook Configuration option instead
@@ -0,0 +1 @@
1
+ export declare function getStorybookConfiguration(storybookScript: string, shortName: string, longName: string): string;
@@ -0,0 +1,11 @@
1
+ import { PackageJson } from '../types';
2
+ interface StorybookInfo {
3
+ framework: string;
4
+ version: string;
5
+ configDir?: string;
6
+ mainConfig?: string;
7
+ previewConfig?: string;
8
+ managerConfig?: string;
9
+ }
10
+ export declare const getStorybookInfo: (packageJson: PackageJson) => StorybookInfo;
11
+ export {};
@@ -0,0 +1,4 @@
1
+ import { StorybookConfig } from '../types';
2
+ export declare function loadMainConfig({ configDir }: {
3
+ configDir: string;
4
+ }): StorybookConfig;
@@ -0,0 +1 @@
1
+ export declare const notifyTelemetry: () => Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "6.5.0-beta.1",
3
+ "version": "6.5.0-beta.2",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -62,7 +62,7 @@
62
62
  "@babel/preset-react": "^7.12.10",
63
63
  "@babel/preset-typescript": "^7.12.7",
64
64
  "@babel/register": "^7.12.1",
65
- "@storybook/node-logger": "6.5.0-beta.1",
65
+ "@storybook/node-logger": "6.5.0-beta.2",
66
66
  "@storybook/semver": "^7.3.2",
67
67
  "@types/node": "^14.0.10 || ^16.0.0",
68
68
  "@types/pretty-hrtime": "^1.0.0",
@@ -111,6 +111,6 @@
111
111
  "publishConfig": {
112
112
  "access": "public"
113
113
  },
114
- "gitHead": "85bcae3041a0664d7c0ee4756241e29ad1063a9a",
114
+ "gitHead": "b42ccab2b3f9d4f1f8f862242a5e4af0d3306061",
115
115
  "sbmodern": "dist/modern/index.js"
116
116
  }