@storybook/builder-webpack5 6.5.0-alpha.5 → 6.5.0-alpha.50

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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.overridePresets = exports.corePresets = exports.build = exports.bail = exports.start = exports.executor = exports.getConfig = void 0;
6
+ exports.start = exports.overridePresets = exports.getConfig = exports.executor = exports.corePresets = exports.build = exports.bail = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -19,13 +19,13 @@ var _coreCommon = require("@storybook/core-common");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
22
+ 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); }
23
23
 
24
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
24
+ 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; }
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ 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; }
29
29
 
30
30
  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; }
31
31
 
@@ -22,9 +22,9 @@ var _baseWebpack = require("../preview/base-webpack.config");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
25
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
25
+ 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); }
26
26
 
27
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
27
+ 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; }
28
28
 
29
29
  async function webpack(config, options) {
30
30
  // @ts-ignore
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.entries = exports.webpack = void 0;
6
+ exports.webpack = exports.entries = exports.babel = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -30,4 +30,12 @@ var entries = async function (_, options) {
30
30
  return result;
31
31
  };
32
32
 
33
- exports.entries = entries;
33
+ exports.entries = entries;
34
+
35
+ var babel = async function (config, options) {
36
+ // FIXME: Add this to overrides to only apply to story files
37
+ config.plugins.push('babel-plugin-named-exports-order');
38
+ return config;
39
+ };
40
+
41
+ exports.babel = babel;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createBabelLoader = exports.useBaseTsSupport = void 0;
6
+ exports.useBaseTsSupport = exports.createBabelLoader = void 0;
7
7
 
8
8
  var _coreCommon = require("@storybook/core-common");
9
9
 
@@ -9,14 +9,14 @@ require("core-js/modules/es.promise.js");
9
9
 
10
10
  var _nodeLogger = require("@storybook/node-logger");
11
11
 
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
12
+ 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; }
13
13
 
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
+ 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; }
15
15
 
16
16
  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; }
17
17
 
18
18
  async function createDefaultWebpackConfig(storybookBaseConfig, options) {
19
- var _options, _storybookBaseConfig$;
19
+ var _storybookBaseConfig$;
20
20
 
21
21
  if (options.presetsList.some(function (preset) {
22
22
  return /@storybook(\/|\\)preset-create-react-app/.test(typeof preset === 'string' ? preset : preset.name);
@@ -50,12 +50,18 @@ async function createDefaultWebpackConfig(storybookBaseConfig, options) {
50
50
 
51
51
  var isProd = storybookBaseConfig.mode !== 'development';
52
52
  var coreOptions = await options.presets.apply('core');
53
- var cacheConfig = (_options = coreOptions.builder.options) !== null && _options !== void 0 && _options.fsCache ? {
53
+ var builderOptions = coreOptions.builder.options;
54
+ var cacheConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.fsCache ? {
54
55
  cache: {
55
56
  type: 'filesystem'
56
57
  }
57
58
  } : {};
58
- return _objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
59
+ var lazyCompilationConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.lazyCompilation && !isProd ? {
60
+ lazyCompilation: {
61
+ entries: false
62
+ }
63
+ } : {};
64
+ return _objectSpread(_objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
59
65
  module: _objectSpread(_objectSpread({}, storybookBaseConfig.module), {}, {
60
66
  rules: [...storybookBaseConfig.module.rules, cssLoaders, {
61
67
  test: /\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,
@@ -82,5 +88,7 @@ async function createDefaultWebpackConfig(storybookBaseConfig, options) {
82
88
  assert: false
83
89
  })
84
90
  })
85
- }, cacheConfig);
91
+ }, cacheConfig), {}, {
92
+ experiments: _objectSpread(_objectSpread({}, storybookBaseConfig.experiments), lazyCompilationConfig)
93
+ });
86
94
  }
@@ -15,8 +15,6 @@ var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
15
15
 
16
16
  var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
17
17
 
18
- var _WatchMissingNodeModulesPlugin = _interopRequireDefault(require("react-dev-utils/WatchMissingNodeModulesPlugin"));
19
-
20
18
  var _terserWebpackPlugin = _interopRequireDefault(require("terser-webpack-plugin"));
21
19
 
22
20
  var _webpackVirtualModules = _interopRequireDefault(require("webpack-virtual-modules"));
@@ -33,9 +31,9 @@ var _useBaseTsSupport = require("./useBaseTsSupport");
33
31
 
34
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
33
 
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ 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; }
37
35
 
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+ 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; }
39
37
 
40
38
  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; }
41
39
 
@@ -87,7 +85,7 @@ var _default = async function _default(options) {
87
85
 
88
86
  var configEntryPath = _path.default.resolve(_path.default.join(workingDir, 'storybook-config-entry.js'));
89
87
 
90
- virtualModuleMapping[configEntryPath] = (0, _coreCommon.handlebars)(await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleModernEntry.js.handlebars')), {
88
+ virtualModuleMapping[configEntryPath] = (0, _coreCommon.handlebars)(await (0, _coreCommon.readTemplate)(require.resolve('@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars')), {
91
89
  storiesFilename: storiesFilename,
92
90
  configs: configs
93
91
  } // We need to double escape `\` for webpack. We may have some in windows paths
@@ -102,7 +100,9 @@ var _default = async function _default(options) {
102
100
  var entryTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleEntry.template.js'));
103
101
  configs.forEach(function (configFilename) {
104
102
  var clientApi = storybookPaths['@storybook/client-api'];
105
- var clientLogger = storybookPaths['@storybook/client-logger'];
103
+ var clientLogger = storybookPaths['@storybook/client-logger']; // NOTE: although this file is also from the `dist/cjs` directory, it is actually a ESM
104
+ // file, see https://github.com/storybookjs/storybook/pull/16727#issuecomment-986485173
105
+
106
106
  virtualModuleMapping[`${configFilename}-generated-config-entry.js`] = (0, _coreCommon.interpolate)(entryTemplate, {
107
107
  configFilename: configFilename,
108
108
  clientApi: clientApi,
@@ -112,9 +112,11 @@ var _default = async function _default(options) {
112
112
  });
113
113
 
114
114
  if (stories.length > 0) {
115
- var storyTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleStory.template.js'));
115
+ var storyTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleStory.template.js')); // NOTE: this file has a `.cjs` extension as it is a CJS file (from `dist/cjs`) and runs
116
+ // in the user's webpack mode, which may be strict about the use of require/import.
117
+ // See https://github.com/storybookjs/storybook/issues/14877
116
118
 
117
- var _storiesFilename = _path.default.resolve(_path.default.join(workingDir, `generated-stories-entry.js`));
119
+ var _storiesFilename = _path.default.resolve(_path.default.join(workingDir, `generated-stories-entry.cjs`));
118
120
 
119
121
  virtualModuleMapping[_storiesFilename] = (0, _coreCommon.interpolate)(storyTemplate, {
120
122
  frameworkImportPath: frameworkImportPath
@@ -184,8 +186,8 @@ var _default = async function _default(options) {
184
186
  }), new _webpack.DefinePlugin(_objectSpread(_objectSpread({}, (0, _coreCommon.stringifyProcessEnvs)(envs)), {}, {
185
187
  NODE_ENV: JSON.stringify(process.env.NODE_ENV)
186
188
  })), new _webpack.ProvidePlugin({
187
- process: 'process/browser.js'
188
- }), isProd ? null : new _WatchMissingNodeModulesPlugin.default(_coreCommon.nodeModulesPaths), isProd ? null : new _webpack.HotModuleReplacementPlugin(), new _caseSensitivePathsWebpackPlugin.default(), quiet ? null : new _webpack.ProgressPlugin({}), shouldCheckTs ? new _forkTsCheckerWebpackPlugin.default(tsCheckOptions) : null].filter(Boolean),
189
+ process: require.resolve('process/browser.js')
190
+ }), isProd ? null : new _webpack.HotModuleReplacementPlugin(), new _caseSensitivePathsWebpackPlugin.default(), quiet ? null : new _webpack.ProgressPlugin({}), shouldCheckTs ? new _forkTsCheckerWebpackPlugin.default(tsCheckOptions) : null].filter(Boolean),
189
191
  module: {
190
192
  rules: [babelLoader, (0, _coreCommon.es6Transpiler)(), {
191
193
  test: /\.md$/,
@@ -201,7 +203,8 @@ var _default = async function _default(options) {
201
203
  'react-dom': _path.default.dirname(require.resolve('react-dom/package.json'))
202
204
  }),
203
205
  fallback: {
204
- path: require.resolve('path-browserify')
206
+ path: require.resolve('path-browserify'),
207
+ assert: require.resolve('browser-assert')
205
208
  }
206
209
  },
207
210
  optimization: {
@@ -210,7 +213,7 @@ var _default = async function _default(options) {
210
213
  },
211
214
  runtimeChunk: true,
212
215
  sideEffects: true,
213
- usedExports: true,
216
+ usedExports: isProd,
214
217
  moduleIds: 'named',
215
218
  minimizer: isProd ? [new _terserWebpackPlugin.default({
216
219
  parallel: true,
@@ -1,21 +1,24 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  /* eslint-disable import/no-unresolved */
8
- import { addDecorator, addParameters, addLoader, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
9
- import { logger } from '{{clientLogger}}';
8
+ import { addDecorator, addParameters, addLoader, addArgs, addArgTypes, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
10
9
  import * as config from '{{configFilename}}';
11
10
  Object.keys(config).forEach(function (key) {
12
11
  var value = config[key];
13
12
 
14
13
  switch (key) {
15
14
  case 'args':
15
+ {
16
+ return addArgs(value);
17
+ }
18
+
16
19
  case 'argTypes':
17
20
  {
18
- return logger.warn('Invalid args/argTypes in config, ignoring.', JSON.stringify(value));
21
+ return addArgTypes(value);
19
22
  }
20
23
 
21
24
  case 'decorators':
@@ -64,6 +67,7 @@ Object.keys(config).forEach(function (key) {
64
67
  return addParameters(v, false);
65
68
  }
66
69
 
70
+ case '__namedExportsOrder':
67
71
  case 'decorateStory':
68
72
  case 'renderToDOM':
69
73
  {
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
@@ -14,4 +14,9 @@ export var entries = async function (_, options) {
14
14
  }
15
15
 
16
16
  return result;
17
+ };
18
+ export var babel = async function (config, options) {
19
+ // FIXME: Add this to overrides to only apply to story files
20
+ config.plugins.push('babel-plugin-named-exports-order');
21
+ return config;
17
22
  };
@@ -1,13 +1,13 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  import "core-js/modules/es.promise.js";
8
8
  import { logger } from '@storybook/node-logger';
9
9
  export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
10
- var _options, _storybookBaseConfig$;
10
+ var _storybookBaseConfig$;
11
11
 
12
12
  if (options.presetsList.some(function (preset) {
13
13
  return /@storybook(\/|\\)preset-create-react-app/.test(typeof preset === 'string' ? preset : preset.name);
@@ -40,12 +40,18 @@ export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
40
40
 
41
41
  var isProd = storybookBaseConfig.mode !== 'development';
42
42
  var coreOptions = await options.presets.apply('core');
43
- var cacheConfig = (_options = coreOptions.builder.options) !== null && _options !== void 0 && _options.fsCache ? {
43
+ var builderOptions = coreOptions.builder.options;
44
+ var cacheConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.fsCache ? {
44
45
  cache: {
45
46
  type: 'filesystem'
46
47
  }
47
48
  } : {};
48
- return _objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
49
+ var lazyCompilationConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.lazyCompilation && !isProd ? {
50
+ lazyCompilation: {
51
+ entries: false
52
+ }
53
+ } : {};
54
+ return _objectSpread(_objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
49
55
  module: _objectSpread(_objectSpread({}, storybookBaseConfig.module), {}, {
50
56
  rules: [...storybookBaseConfig.module.rules, cssLoaders, {
51
57
  test: /\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,
@@ -72,5 +78,7 @@ export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
72
78
  assert: false
73
79
  })
74
80
  })
75
- }, cacheConfig);
81
+ }, cacheConfig), {}, {
82
+ experiments: _objectSpread(_objectSpread({}, storybookBaseConfig.experiments), lazyCompilationConfig)
83
+ });
76
84
  }
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.promise.js";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
6
 
7
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
8
 
@@ -10,12 +10,11 @@ import path from 'path';
10
10
  import { DefinePlugin, HotModuleReplacementPlugin, ProgressPlugin, ProvidePlugin } from 'webpack';
11
11
  import HtmlWebpackPlugin from 'html-webpack-plugin';
12
12
  import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
13
- import WatchMissingNodeModulesPlugin from 'react-dev-utils/WatchMissingNodeModulesPlugin';
14
13
  import TerserWebpackPlugin from 'terser-webpack-plugin';
15
14
  import VirtualModulePlugin from 'webpack-virtual-modules';
16
15
  import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
17
16
  import themingPaths from '@storybook/theming/paths';
18
- import { toRequireContextString, es6Transpiler, stringifyProcessEnvs, nodeModulesPaths, handlebars, interpolate, toImportFn, normalizeStories, readTemplate, loadPreviewOrConfigFile } from '@storybook/core-common';
17
+ import { toRequireContextString, es6Transpiler, stringifyProcessEnvs, handlebars, interpolate, toImportFn, normalizeStories, readTemplate, loadPreviewOrConfigFile } from '@storybook/core-common';
19
18
  import { createBabelLoader } from './babel-loader-preview';
20
19
  import { useBaseTsSupport } from './useBaseTsSupport';
21
20
  var storybookPaths = ['addons', 'api', 'channels', 'channel-postmessage', 'components', 'core-events', 'router', 'theming', 'semver', 'client-api', 'client-logger'].reduce(function (acc, sbPackage) {
@@ -61,7 +60,7 @@ export default (async function (options) {
61
60
  var storiesPath = path.resolve(path.join(workingDir, storiesFilename));
62
61
  virtualModuleMapping[storiesPath] = toImportFn(stories);
63
62
  var configEntryPath = path.resolve(path.join(workingDir, 'storybook-config-entry.js'));
64
- virtualModuleMapping[configEntryPath] = handlebars(await readTemplate(path.join(__dirname, 'virtualModuleModernEntry.js.handlebars')), {
63
+ virtualModuleMapping[configEntryPath] = handlebars(await readTemplate(require.resolve('@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars')), {
65
64
  storiesFilename: storiesFilename,
66
65
  configs: configs
67
66
  } // We need to double escape `\` for webpack. We may have some in windows paths
@@ -75,7 +74,9 @@ export default (async function (options) {
75
74
  var entryTemplate = await readTemplate(path.join(__dirname, 'virtualModuleEntry.template.js'));
76
75
  configs.forEach(function (configFilename) {
77
76
  var clientApi = storybookPaths['@storybook/client-api'];
78
- var clientLogger = storybookPaths['@storybook/client-logger'];
77
+ var clientLogger = storybookPaths['@storybook/client-logger']; // NOTE: although this file is also from the `dist/cjs` directory, it is actually a ESM
78
+ // file, see https://github.com/storybookjs/storybook/pull/16727#issuecomment-986485173
79
+
79
80
  virtualModuleMapping[`${configFilename}-generated-config-entry.js`] = interpolate(entryTemplate, {
80
81
  configFilename: configFilename,
81
82
  clientApi: clientApi,
@@ -85,9 +86,11 @@ export default (async function (options) {
85
86
  });
86
87
 
87
88
  if (stories.length > 0) {
88
- var storyTemplate = await readTemplate(path.join(__dirname, 'virtualModuleStory.template.js'));
89
+ var storyTemplate = await readTemplate(path.join(__dirname, 'virtualModuleStory.template.js')); // NOTE: this file has a `.cjs` extension as it is a CJS file (from `dist/cjs`) and runs
90
+ // in the user's webpack mode, which may be strict about the use of require/import.
91
+ // See https://github.com/storybookjs/storybook/issues/14877
89
92
 
90
- var _storiesFilename = path.resolve(path.join(workingDir, `generated-stories-entry.js`));
93
+ var _storiesFilename = path.resolve(path.join(workingDir, `generated-stories-entry.cjs`));
91
94
 
92
95
  virtualModuleMapping[_storiesFilename] = interpolate(storyTemplate, {
93
96
  frameworkImportPath: frameworkImportPath
@@ -157,8 +160,8 @@ export default (async function (options) {
157
160
  }), new DefinePlugin(_objectSpread(_objectSpread({}, stringifyProcessEnvs(envs)), {}, {
158
161
  NODE_ENV: JSON.stringify(process.env.NODE_ENV)
159
162
  })), new ProvidePlugin({
160
- process: 'process/browser.js'
161
- }), isProd ? null : new WatchMissingNodeModulesPlugin(nodeModulesPaths), isProd ? null : new HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), quiet ? null : new ProgressPlugin({}), shouldCheckTs ? new ForkTsCheckerWebpackPlugin(tsCheckOptions) : null].filter(Boolean),
163
+ process: require.resolve('process/browser.js')
164
+ }), isProd ? null : new HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), quiet ? null : new ProgressPlugin({}), shouldCheckTs ? new ForkTsCheckerWebpackPlugin(tsCheckOptions) : null].filter(Boolean),
162
165
  module: {
163
166
  rules: [babelLoader, es6Transpiler(), {
164
167
  test: /\.md$/,
@@ -174,7 +177,8 @@ export default (async function (options) {
174
177
  'react-dom': path.dirname(require.resolve('react-dom/package.json'))
175
178
  }),
176
179
  fallback: {
177
- path: require.resolve('path-browserify')
180
+ path: require.resolve('path-browserify'),
181
+ assert: require.resolve('browser-assert')
178
182
  }
179
183
  },
180
184
  optimization: {
@@ -183,7 +187,7 @@ export default (async function (options) {
183
187
  },
184
188
  runtimeChunk: true,
185
189
  sideEffects: true,
186
- usedExports: true,
190
+ usedExports: isProd,
187
191
  moduleIds: 'named',
188
192
  minimizer: isProd ? [new TerserWebpackPlugin({
189
193
  parallel: true,
@@ -1,21 +1,24 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  /* eslint-disable import/no-unresolved */
8
- import { addDecorator, addParameters, addLoader, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
9
- import { logger } from '{{clientLogger}}';
8
+ import { addDecorator, addParameters, addLoader, addArgs, addArgTypes, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
10
9
  import * as config from '{{configFilename}}';
11
10
  Object.keys(config).forEach(function (key) {
12
11
  var value = config[key];
13
12
 
14
13
  switch (key) {
15
14
  case 'args':
15
+ {
16
+ return addArgs(value);
17
+ }
18
+
16
19
  case 'argTypes':
17
20
  {
18
- return logger.warn('Invalid args/argTypes in config, ignoring.', JSON.stringify(value));
21
+ return addArgTypes(value);
19
22
  }
20
23
 
21
24
  case 'decorators':
@@ -64,6 +67,7 @@ Object.keys(config).forEach(function (key) {
64
67
  return addParameters(v, false);
65
68
  }
66
69
 
70
+ case '__namedExportsOrder':
67
71
  case 'decorateStory':
68
72
  case 'renderToDOM':
69
73
  {
@@ -1,6 +1,6 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
@@ -14,4 +14,9 @@ export var entries = async function (_, options) {
14
14
  }
15
15
 
16
16
  return result;
17
+ };
18
+ export var babel = async function (config, options) {
19
+ // FIXME: Add this to overrides to only apply to story files
20
+ config.plugins.push('babel-plugin-named-exports-order');
21
+ return config;
17
22
  };
@@ -1,13 +1,13 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  import "core-js/modules/es.promise.js";
8
8
  import { logger } from '@storybook/node-logger';
9
9
  export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
10
- var _options, _storybookBaseConfig$;
10
+ var _storybookBaseConfig$;
11
11
 
12
12
  if (options.presetsList.some(function (preset) {
13
13
  return /@storybook(\/|\\)preset-create-react-app/.test(typeof preset === 'string' ? preset : preset.name);
@@ -40,12 +40,18 @@ export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
40
40
 
41
41
  var isProd = storybookBaseConfig.mode !== 'development';
42
42
  var coreOptions = await options.presets.apply('core');
43
- var cacheConfig = (_options = coreOptions.builder.options) !== null && _options !== void 0 && _options.fsCache ? {
43
+ var builderOptions = coreOptions.builder.options;
44
+ var cacheConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.fsCache ? {
44
45
  cache: {
45
46
  type: 'filesystem'
46
47
  }
47
48
  } : {};
48
- return _objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
49
+ var lazyCompilationConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.lazyCompilation && !isProd ? {
50
+ lazyCompilation: {
51
+ entries: false
52
+ }
53
+ } : {};
54
+ return _objectSpread(_objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
49
55
  module: _objectSpread(_objectSpread({}, storybookBaseConfig.module), {}, {
50
56
  rules: [...storybookBaseConfig.module.rules, cssLoaders, {
51
57
  test: /\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,
@@ -72,5 +78,7 @@ export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
72
78
  assert: false
73
79
  })
74
80
  })
75
- }, cacheConfig);
81
+ }, cacheConfig), {}, {
82
+ experiments: _objectSpread(_objectSpread({}, storybookBaseConfig.experiments), lazyCompilationConfig)
83
+ });
76
84
  }
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.promise.js";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
6
 
7
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
8
 
@@ -10,12 +10,11 @@ import path from 'path';
10
10
  import { DefinePlugin, HotModuleReplacementPlugin, ProgressPlugin, ProvidePlugin } from 'webpack';
11
11
  import HtmlWebpackPlugin from 'html-webpack-plugin';
12
12
  import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
13
- import WatchMissingNodeModulesPlugin from 'react-dev-utils/WatchMissingNodeModulesPlugin';
14
13
  import TerserWebpackPlugin from 'terser-webpack-plugin';
15
14
  import VirtualModulePlugin from 'webpack-virtual-modules';
16
15
  import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
17
16
  import themingPaths from '@storybook/theming/paths';
18
- import { toRequireContextString, es6Transpiler, stringifyProcessEnvs, nodeModulesPaths, handlebars, interpolate, toImportFn, normalizeStories, readTemplate, loadPreviewOrConfigFile } from '@storybook/core-common';
17
+ import { toRequireContextString, es6Transpiler, stringifyProcessEnvs, handlebars, interpolate, toImportFn, normalizeStories, readTemplate, loadPreviewOrConfigFile } from '@storybook/core-common';
19
18
  import { createBabelLoader } from './babel-loader-preview';
20
19
  import { useBaseTsSupport } from './useBaseTsSupport';
21
20
  var storybookPaths = ['addons', 'api', 'channels', 'channel-postmessage', 'components', 'core-events', 'router', 'theming', 'semver', 'client-api', 'client-logger'].reduce(function (acc, sbPackage) {
@@ -61,7 +60,7 @@ export default (async function (options) {
61
60
  var storiesPath = path.resolve(path.join(workingDir, storiesFilename));
62
61
  virtualModuleMapping[storiesPath] = toImportFn(stories);
63
62
  var configEntryPath = path.resolve(path.join(workingDir, 'storybook-config-entry.js'));
64
- virtualModuleMapping[configEntryPath] = handlebars(await readTemplate(path.join(__dirname, 'virtualModuleModernEntry.js.handlebars')), {
63
+ virtualModuleMapping[configEntryPath] = handlebars(await readTemplate(require.resolve('@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars')), {
65
64
  storiesFilename: storiesFilename,
66
65
  configs: configs
67
66
  } // We need to double escape `\` for webpack. We may have some in windows paths
@@ -75,7 +74,9 @@ export default (async function (options) {
75
74
  var entryTemplate = await readTemplate(path.join(__dirname, 'virtualModuleEntry.template.js'));
76
75
  configs.forEach(function (configFilename) {
77
76
  var clientApi = storybookPaths['@storybook/client-api'];
78
- var clientLogger = storybookPaths['@storybook/client-logger'];
77
+ var clientLogger = storybookPaths['@storybook/client-logger']; // NOTE: although this file is also from the `dist/cjs` directory, it is actually a ESM
78
+ // file, see https://github.com/storybookjs/storybook/pull/16727#issuecomment-986485173
79
+
79
80
  virtualModuleMapping[`${configFilename}-generated-config-entry.js`] = interpolate(entryTemplate, {
80
81
  configFilename: configFilename,
81
82
  clientApi: clientApi,
@@ -85,9 +86,11 @@ export default (async function (options) {
85
86
  });
86
87
 
87
88
  if (stories.length > 0) {
88
- var storyTemplate = await readTemplate(path.join(__dirname, 'virtualModuleStory.template.js'));
89
+ var storyTemplate = await readTemplate(path.join(__dirname, 'virtualModuleStory.template.js')); // NOTE: this file has a `.cjs` extension as it is a CJS file (from `dist/cjs`) and runs
90
+ // in the user's webpack mode, which may be strict about the use of require/import.
91
+ // See https://github.com/storybookjs/storybook/issues/14877
89
92
 
90
- var _storiesFilename = path.resolve(path.join(workingDir, `generated-stories-entry.js`));
93
+ var _storiesFilename = path.resolve(path.join(workingDir, `generated-stories-entry.cjs`));
91
94
 
92
95
  virtualModuleMapping[_storiesFilename] = interpolate(storyTemplate, {
93
96
  frameworkImportPath: frameworkImportPath
@@ -157,8 +160,8 @@ export default (async function (options) {
157
160
  }), new DefinePlugin(_objectSpread(_objectSpread({}, stringifyProcessEnvs(envs)), {}, {
158
161
  NODE_ENV: JSON.stringify(process.env.NODE_ENV)
159
162
  })), new ProvidePlugin({
160
- process: 'process/browser.js'
161
- }), isProd ? null : new WatchMissingNodeModulesPlugin(nodeModulesPaths), isProd ? null : new HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), quiet ? null : new ProgressPlugin({}), shouldCheckTs ? new ForkTsCheckerWebpackPlugin(tsCheckOptions) : null].filter(Boolean),
163
+ process: require.resolve('process/browser.js')
164
+ }), isProd ? null : new HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), quiet ? null : new ProgressPlugin({}), shouldCheckTs ? new ForkTsCheckerWebpackPlugin(tsCheckOptions) : null].filter(Boolean),
162
165
  module: {
163
166
  rules: [babelLoader, es6Transpiler(), {
164
167
  test: /\.md$/,
@@ -174,7 +177,8 @@ export default (async function (options) {
174
177
  'react-dom': path.dirname(require.resolve('react-dom/package.json'))
175
178
  }),
176
179
  fallback: {
177
- path: require.resolve('path-browserify')
180
+ path: require.resolve('path-browserify'),
181
+ assert: require.resolve('browser-assert')
178
182
  }
179
183
  },
180
184
  optimization: {
@@ -183,7 +187,7 @@ export default (async function (options) {
183
187
  },
184
188
  runtimeChunk: true,
185
189
  sideEffects: true,
186
- usedExports: true,
190
+ usedExports: isProd,
187
191
  moduleIds: 'named',
188
192
  minimizer: isProd ? [new TerserWebpackPlugin({
189
193
  parallel: true,
@@ -1,21 +1,24 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  /* eslint-disable import/no-unresolved */
8
- import { addDecorator, addParameters, addLoader, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
9
- import { logger } from '{{clientLogger}}';
8
+ import { addDecorator, addParameters, addLoader, addArgs, addArgTypes, addArgsEnhancer, addArgTypesEnhancer, setGlobalRender } from '{{clientApi}}';
10
9
  import * as config from '{{configFilename}}';
11
10
  Object.keys(config).forEach(function (key) {
12
11
  var value = config[key];
13
12
 
14
13
  switch (key) {
15
14
  case 'args':
15
+ {
16
+ return addArgs(value);
17
+ }
18
+
16
19
  case 'argTypes':
17
20
  {
18
- return logger.warn('Invalid args/argTypes in config, ignoring.', JSON.stringify(value));
21
+ return addArgTypes(value);
19
22
  }
20
23
 
21
24
  case 'decorators':
@@ -64,6 +67,7 @@ Object.keys(config).forEach(function (key) {
64
67
  return addParameters(v, false);
65
68
  }
66
69
 
70
+ case '__namedExportsOrder':
67
71
  case 'decorateStory':
68
72
  case 'renderToDOM':
69
73
  {
@@ -1,2 +1,3 @@
1
1
  export declare const webpack: (_: unknown, options: any) => Promise<import("webpack").Configuration>;
2
2
  export declare const entries: (_: unknown, options: any) => Promise<string[]>;
3
+ export declare const babel: (config: any, options: any) => Promise<any>;
@@ -1,5 +1,5 @@
1
1
  import webpack, { Stats, Configuration } from 'webpack';
2
- import { Builder, Options } from '@storybook/core-common';
2
+ import type { Builder, Options } from '@storybook/core-common';
3
3
  declare type WebpackBuilder = Builder<Configuration, Stats>;
4
4
  export declare const getConfig: WebpackBuilder['getConfig'];
5
5
  export declare const executor: {
@@ -1,2 +1,3 @@
1
1
  export declare const webpack: (_: unknown, options: any) => Promise<import("webpack").Configuration>;
2
2
  export declare const entries: (_: unknown, options: any) => Promise<string[]>;
3
+ export declare const babel: (config: any, options: any) => Promise<any>;
@@ -1,4 +1,4 @@
1
- import { Configuration } from 'webpack';
2
- import { Options } from '@storybook/core-common';
1
+ import type { Configuration } from 'webpack';
2
+ import type { Options } from '@storybook/core-common';
3
3
  declare const _default: (options: Options & Record<string, any>) => Promise<Configuration>;
4
4
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/builder-webpack5",
3
- "version": "6.5.0-alpha.5",
3
+ "version": "6.5.0-alpha.50",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -31,8 +31,7 @@
31
31
  },
32
32
  "files": [
33
33
  "dist/**/*",
34
- "dll/**/*",
35
- "types/**/*",
34
+ "templates/**/*",
36
35
  "*.js",
37
36
  "*.d.ts"
38
37
  ],
@@ -41,44 +40,25 @@
41
40
  },
42
41
  "dependencies": {
43
42
  "@babel/core": "^7.12.10",
44
- "@babel/plugin-proposal-class-properties": "^7.12.1",
45
- "@babel/plugin-proposal-decorators": "^7.12.12",
46
- "@babel/plugin-proposal-export-default-from": "^7.12.1",
47
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
48
- "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
49
- "@babel/plugin-proposal-optional-chaining": "^7.12.7",
50
- "@babel/plugin-proposal-private-methods": "^7.12.1",
51
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
52
- "@babel/plugin-transform-arrow-functions": "^7.12.1",
53
- "@babel/plugin-transform-block-scoping": "^7.12.12",
54
- "@babel/plugin-transform-classes": "^7.12.1",
55
- "@babel/plugin-transform-destructuring": "^7.12.1",
56
- "@babel/plugin-transform-for-of": "^7.12.1",
57
- "@babel/plugin-transform-parameters": "^7.12.1",
58
- "@babel/plugin-transform-shorthand-properties": "^7.12.1",
59
- "@babel/plugin-transform-spread": "^7.12.1",
60
- "@babel/preset-env": "^7.12.11",
61
- "@babel/preset-react": "^7.12.10",
62
- "@babel/preset-typescript": "^7.12.7",
63
- "@storybook/addons": "6.5.0-alpha.5",
64
- "@storybook/api": "6.5.0-alpha.5",
65
- "@storybook/channel-postmessage": "6.5.0-alpha.5",
66
- "@storybook/channels": "6.5.0-alpha.5",
67
- "@storybook/client-api": "6.5.0-alpha.5",
68
- "@storybook/client-logger": "6.5.0-alpha.5",
69
- "@storybook/components": "6.5.0-alpha.5",
70
- "@storybook/core-common": "6.5.0-alpha.5",
71
- "@storybook/core-events": "6.5.0-alpha.5",
72
- "@storybook/node-logger": "6.5.0-alpha.5",
73
- "@storybook/preview-web": "6.5.0-alpha.5",
74
- "@storybook/router": "6.5.0-alpha.5",
43
+ "@storybook/addons": "6.5.0-alpha.50",
44
+ "@storybook/api": "6.5.0-alpha.50",
45
+ "@storybook/channel-postmessage": "6.5.0-alpha.50",
46
+ "@storybook/channels": "6.5.0-alpha.50",
47
+ "@storybook/client-api": "6.5.0-alpha.50",
48
+ "@storybook/client-logger": "6.5.0-alpha.50",
49
+ "@storybook/components": "6.5.0-alpha.50",
50
+ "@storybook/core-common": "6.5.0-alpha.50",
51
+ "@storybook/core-events": "6.5.0-alpha.50",
52
+ "@storybook/node-logger": "6.5.0-alpha.50",
53
+ "@storybook/preview-web": "6.5.0-alpha.50",
54
+ "@storybook/router": "6.5.0-alpha.50",
75
55
  "@storybook/semver": "^7.3.2",
76
- "@storybook/store": "6.5.0-alpha.5",
77
- "@storybook/theming": "6.5.0-alpha.5",
56
+ "@storybook/store": "6.5.0-alpha.50",
57
+ "@storybook/theming": "6.5.0-alpha.50",
78
58
  "@types/node": "^14.0.10 || ^16.0.0",
79
59
  "babel-loader": "^8.0.0",
80
- "babel-plugin-macros": "^3.0.1",
81
- "babel-plugin-polyfill-corejs3": "^0.1.0",
60
+ "babel-plugin-named-exports-order": "^0.0.2",
61
+ "browser-assert": "^1.2.1",
82
62
  "case-sensitive-paths-webpack-plugin": "^2.3.0",
83
63
  "core-js": "^3.8.2",
84
64
  "css-loader": "^5.0.1",
@@ -87,7 +67,7 @@
87
67
  "glob-promise": "^3.4.0",
88
68
  "html-webpack-plugin": "^5.0.0",
89
69
  "path-browserify": "^1.0.1",
90
- "react-dev-utils": "^11.0.4",
70
+ "process": "^0.11.10",
91
71
  "stable": "^0.1.8",
92
72
  "style-loader": "^2.0.0",
93
73
  "terser-webpack-plugin": "^5.0.3",
@@ -100,10 +80,9 @@
100
80
  },
101
81
  "devDependencies": {
102
82
  "@types/case-sensitive-paths-webpack-plugin": "^2.1.4",
103
- "@types/react-dev-utils": "^9.0.4",
104
83
  "@types/terser-webpack-plugin": "^5.0.2",
105
84
  "@types/webpack-dev-middleware": "^4.1.0",
106
- "@types/webpack-hot-middleware": "^2.25.3",
85
+ "@types/webpack-hot-middleware": "^2.25.6",
107
86
  "@types/webpack-virtual-modules": "^0.1.0"
108
87
  },
109
88
  "peerDependencies": {
@@ -118,6 +97,6 @@
118
97
  "publishConfig": {
119
98
  "access": "public"
120
99
  },
121
- "gitHead": "df18f2ad3794d61c59c6458f66f73635502b8963",
100
+ "gitHead": "6cf4571e5a1200613de94aa066fe93f75aec6ad1",
122
101
  "sbmodern": "dist/modern/index.js"
123
102
  }
@@ -1,4 +1,3 @@
1
- import fetch from 'unfetch';
2
1
  import global from 'global';
3
2
 
4
3
  import { composeConfigs, PreviewWeb } from '@storybook/preview-web';
@@ -33,12 +32,12 @@ window.__STORYBOOK_CLIENT_API__ = new ClientApi({ storyStore: preview.storyStore
33
32
  preview.initialize({ importFn, getProjectAnnotations });
34
33
 
35
34
  if (module.hot) {
36
- module.hot.accept('./{{storiesFilename}}', () => {
35
+ import.meta.webpackHot.accept('./{{storiesFilename}}', () => {
37
36
  // importFn has changed so we need to patch the new one in
38
37
  preview.onStoriesChanged({ importFn });
39
38
  });
40
39
 
41
- module.hot.accept([{{#each configs}}'{{this}}',{{/each}}], () => {
40
+ import.meta.webpackHot.accept([{{#each configs}}'{{this}}',{{/each}}], () => {
42
41
  // getProjectAnnotations has changed so we need to patch the new one in
43
42
  preview.onGetProjectAnnotationsChanged({ getProjectAnnotations });
44
43
  });
@@ -1,45 +0,0 @@
1
- import fetch from 'unfetch';
2
- import global from 'global';
3
-
4
- import { composeConfigs, PreviewWeb } from '@storybook/preview-web';
5
- import { ClientApi } from '@storybook/client-api';
6
- import { addons } from '@storybook/addons';
7
- import createPostMessageChannel from '@storybook/channel-postmessage';
8
- import createWebSocketChannel from '@storybook/channel-websocket';
9
-
10
- import { importFn } from './{{storiesFilename}}';
11
-
12
- const { SERVER_CHANNEL_URL } = global;
13
-
14
- const getProjectAnnotations = () =>
15
- composeConfigs([{{#each configs}}require('{{this}}'),{{/each}}]);
16
-
17
- const channel = createPostMessageChannel({ page: 'preview' });
18
- addons.setChannel(channel);
19
-
20
- if (SERVER_CHANNEL_URL) {
21
- const serverChannel = createWebSocketChannel({ url: SERVER_CHANNEL_URL, });
22
- addons.setServerChannel(serverChannel);
23
- window.__STORYBOOK_SERVER_CHANNEL__ = serverChannel;
24
- }
25
-
26
- const preview = new PreviewWeb();
27
-
28
- window.__STORYBOOK_PREVIEW__ = preview;
29
- window.__STORYBOOK_STORY_STORE__ = preview.storyStore;
30
- window.__STORYBOOK_ADDONS_CHANNEL__ = channel;
31
- window.__STORYBOOK_CLIENT_API__ = new ClientApi({ storyStore: preview.storyStore });
32
-
33
- preview.initialize({ importFn, getProjectAnnotations });
34
-
35
- if (module.hot) {
36
- module.hot.accept('./{{storiesFilename}}', () => {
37
- // importFn has changed so we need to patch the new one in
38
- preview.onStoriesChanged({ importFn });
39
- });
40
-
41
- module.hot.accept([{{#each configs}}'{{this}}',{{/each}}], () => {
42
- // getProjectAnnotations has changed so we need to patch the new one in
43
- preview.onGetProjectAnnotationsChanged({ getProjectAnnotations });
44
- });
45
- }
@@ -1,45 +0,0 @@
1
- import fetch from 'unfetch';
2
- import global from 'global';
3
-
4
- import { composeConfigs, PreviewWeb } from '@storybook/preview-web';
5
- import { ClientApi } from '@storybook/client-api';
6
- import { addons } from '@storybook/addons';
7
- import createPostMessageChannel from '@storybook/channel-postmessage';
8
- import createWebSocketChannel from '@storybook/channel-websocket';
9
-
10
- import { importFn } from './{{storiesFilename}}';
11
-
12
- const { SERVER_CHANNEL_URL } = global;
13
-
14
- const getProjectAnnotations = () =>
15
- composeConfigs([{{#each configs}}require('{{this}}'),{{/each}}]);
16
-
17
- const channel = createPostMessageChannel({ page: 'preview' });
18
- addons.setChannel(channel);
19
-
20
- if (SERVER_CHANNEL_URL) {
21
- const serverChannel = createWebSocketChannel({ url: SERVER_CHANNEL_URL, });
22
- addons.setServerChannel(serverChannel);
23
- window.__STORYBOOK_SERVER_CHANNEL__ = serverChannel;
24
- }
25
-
26
- const preview = new PreviewWeb();
27
-
28
- window.__STORYBOOK_PREVIEW__ = preview;
29
- window.__STORYBOOK_STORY_STORE__ = preview.storyStore;
30
- window.__STORYBOOK_ADDONS_CHANNEL__ = channel;
31
- window.__STORYBOOK_CLIENT_API__ = new ClientApi({ storyStore: preview.storyStore });
32
-
33
- preview.initialize({ importFn, getProjectAnnotations });
34
-
35
- if (module.hot) {
36
- module.hot.accept('./{{storiesFilename}}', () => {
37
- // importFn has changed so we need to patch the new one in
38
- preview.onStoriesChanged({ importFn });
39
- });
40
-
41
- module.hot.accept([{{#each configs}}'{{this}}',{{/each}}], () => {
42
- // getProjectAnnotations has changed so we need to patch the new one in
43
- preview.onGetProjectAnnotationsChanged({ getProjectAnnotations });
44
- });
45
- }