@storybook/cli 6.5.0-alpha.5 → 6.5.0-alpha.52

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.
Files changed (149) hide show
  1. package/bin/index.js +1 -0
  2. package/dist/cjs/add.js +1 -1
  3. package/dist/cjs/automigrate/fixes/builder-vite.js +123 -0
  4. package/dist/cjs/automigrate/fixes/index.js +3 -1
  5. package/dist/cjs/automigrate/types.js +5 -1
  6. package/dist/cjs/babel-config.js +1 -1
  7. package/dist/cjs/detect.js +2 -2
  8. package/dist/cjs/extract.js +7 -2
  9. package/dist/cjs/frameworks/angular/Header.stories.ts +8 -3
  10. package/dist/cjs/frameworks/angular/Page.stories.ts +12 -10
  11. package/dist/cjs/frameworks/angular/header.component.ts +30 -19
  12. package/dist/cjs/frameworks/angular/page.component.ts +13 -27
  13. package/dist/cjs/frameworks/common/header.css +6 -0
  14. package/dist/cjs/frameworks/react/js/Header.jsx +6 -1
  15. package/dist/cjs/frameworks/react/js/Header.stories.jsx +7 -1
  16. package/dist/cjs/frameworks/react/js/Page.jsx +61 -63
  17. package/dist/cjs/frameworks/react/js/Page.stories.jsx +12 -9
  18. package/dist/cjs/frameworks/react/ts/Header.stories.tsx +7 -1
  19. package/dist/cjs/frameworks/react/ts/Header.tsx +11 -2
  20. package/dist/cjs/frameworks/react/ts/Page.stories.tsx +12 -9
  21. package/dist/cjs/frameworks/react/ts/Page.tsx +66 -60
  22. package/dist/cjs/frameworks/svelte/Button.stories.js +51 -0
  23. package/dist/cjs/frameworks/svelte/Header.stories.js +29 -0
  24. package/dist/cjs/frameworks/svelte/Page.stories.js +29 -0
  25. package/dist/cjs/frameworks/web-components/js/Page.js +2 -2
  26. package/dist/cjs/frameworks/web-components/ts/Page.ts +2 -2
  27. package/dist/cjs/generators/ANGULAR/angular-helpers.js +5 -5
  28. package/dist/cjs/generators/ANGULAR/index.js +1 -1
  29. package/dist/cjs/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  30. package/dist/cjs/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  31. package/dist/cjs/generators/REACT_SCRIPTS/index.js +9 -1
  32. package/dist/cjs/generators/SVELTE/index.js +0 -1
  33. package/dist/cjs/generators/WEB-COMPONENTS/index.js +3 -1
  34. package/dist/cjs/generators/baseGenerator.js +9 -1
  35. package/dist/cjs/generators/configure.js +3 -1
  36. package/dist/cjs/helpers.js +9 -8
  37. package/dist/cjs/initiate.js +4 -1
  38. package/dist/cjs/js-package-manager/JsPackageManager.js +2 -2
  39. package/dist/cjs/project_types.js +1 -1
  40. package/dist/cjs/repro-generators/configs.js +31 -8
  41. package/dist/cjs/repro-generators/scripts.js +46 -14
  42. package/dist/cjs/repro.js +3 -2
  43. package/dist/cjs/typings.d.ts +3 -0
  44. package/dist/cjs/upgrade.js +3 -1
  45. package/dist/cjs/versions.js +66 -0
  46. package/dist/cjs/window.d.js +5 -1
  47. package/dist/esm/add.js +1 -1
  48. package/dist/esm/automigrate/fixes/builder-vite.js +123 -0
  49. package/dist/esm/automigrate/fixes/index.js +3 -1
  50. package/dist/esm/automigrate/types.js +5 -1
  51. package/dist/esm/babel-config.js +1 -1
  52. package/dist/esm/detect.js +2 -2
  53. package/dist/esm/extract.js +7 -2
  54. package/dist/esm/frameworks/angular/Header.stories.ts +8 -3
  55. package/dist/esm/frameworks/angular/Page.stories.ts +12 -10
  56. package/dist/esm/frameworks/angular/header.component.ts +30 -19
  57. package/dist/esm/frameworks/angular/page.component.ts +13 -27
  58. package/dist/esm/frameworks/common/header.css +6 -0
  59. package/dist/esm/frameworks/react/js/Header.jsx +6 -1
  60. package/dist/esm/frameworks/react/js/Header.stories.jsx +7 -1
  61. package/dist/esm/frameworks/react/js/Page.jsx +61 -63
  62. package/dist/esm/frameworks/react/js/Page.stories.jsx +12 -9
  63. package/dist/esm/frameworks/react/ts/Header.stories.tsx +7 -1
  64. package/dist/esm/frameworks/react/ts/Header.tsx +11 -2
  65. package/dist/esm/frameworks/react/ts/Page.stories.tsx +12 -9
  66. package/dist/esm/frameworks/react/ts/Page.tsx +66 -60
  67. package/dist/esm/frameworks/svelte/Button.stories.js +51 -0
  68. package/dist/esm/frameworks/svelte/Header.stories.js +29 -0
  69. package/dist/esm/frameworks/svelte/Page.stories.js +29 -0
  70. package/dist/esm/frameworks/web-components/js/Page.js +2 -2
  71. package/dist/esm/frameworks/web-components/ts/Page.ts +2 -2
  72. package/dist/esm/generators/ANGULAR/angular-helpers.js +5 -5
  73. package/dist/esm/generators/ANGULAR/index.js +1 -1
  74. package/dist/esm/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  75. package/dist/esm/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  76. package/dist/esm/generators/REACT_SCRIPTS/index.js +9 -1
  77. package/dist/esm/generators/SVELTE/index.js +0 -1
  78. package/dist/esm/generators/WEB-COMPONENTS/index.js +3 -1
  79. package/dist/esm/generators/baseGenerator.js +9 -1
  80. package/dist/esm/generators/configure.js +3 -1
  81. package/dist/esm/helpers.js +9 -8
  82. package/dist/esm/initiate.js +4 -1
  83. package/dist/esm/js-package-manager/JsPackageManager.js +2 -2
  84. package/dist/esm/project_types.js +1 -1
  85. package/dist/esm/repro-generators/configs.js +31 -8
  86. package/dist/esm/repro-generators/scripts.js +46 -14
  87. package/dist/esm/repro.js +3 -2
  88. package/dist/esm/typings.d.ts +3 -0
  89. package/dist/esm/upgrade.js +3 -1
  90. package/dist/esm/versions.js +66 -0
  91. package/dist/esm/window.d.js +5 -1
  92. package/dist/modern/add.js +1 -1
  93. package/dist/modern/automigrate/fixes/builder-vite.js +123 -0
  94. package/dist/modern/automigrate/fixes/index.js +3 -1
  95. package/dist/modern/automigrate/types.js +5 -1
  96. package/dist/modern/babel-config.js +1 -1
  97. package/dist/modern/detect.js +2 -2
  98. package/dist/modern/extract.js +7 -2
  99. package/dist/modern/frameworks/common/header.css +6 -0
  100. package/dist/modern/frameworks/react/js/Header.jsx +6 -1
  101. package/dist/modern/frameworks/react/js/Header.stories.jsx +7 -1
  102. package/dist/modern/frameworks/react/js/Page.jsx +61 -63
  103. package/dist/modern/frameworks/react/js/Page.stories.jsx +12 -9
  104. package/dist/modern/frameworks/svelte/Button.stories.js +51 -0
  105. package/dist/modern/frameworks/svelte/Header.stories.js +29 -0
  106. package/dist/modern/frameworks/svelte/Page.stories.js +29 -0
  107. package/dist/modern/frameworks/web-components/js/Page.js +2 -2
  108. package/dist/modern/generators/ANGULAR/angular-helpers.js +5 -5
  109. package/dist/modern/generators/ANGULAR/index.js +1 -1
  110. package/dist/modern/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  111. package/dist/modern/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  112. package/dist/modern/generators/REACT_SCRIPTS/index.js +9 -1
  113. package/dist/modern/generators/SVELTE/index.js +0 -1
  114. package/dist/modern/generators/WEB-COMPONENTS/index.js +3 -1
  115. package/dist/modern/generators/baseGenerator.js +9 -1
  116. package/dist/modern/generators/configure.js +3 -1
  117. package/dist/modern/helpers.js +9 -8
  118. package/dist/modern/initiate.js +4 -1
  119. package/dist/modern/js-package-manager/JsPackageManager.js +2 -2
  120. package/dist/modern/project_types.js +1 -1
  121. package/dist/modern/repro-generators/configs.js +31 -8
  122. package/dist/modern/repro-generators/scripts.js +46 -14
  123. package/dist/modern/repro.js +3 -2
  124. package/dist/modern/typings.d.ts +3 -0
  125. package/dist/modern/upgrade.js +3 -1
  126. package/dist/modern/versions.js +66 -0
  127. package/dist/modern/window.d.js +5 -1
  128. package/dist/ts3.4/automigrate/fixes/builder-vite.d.ts +19 -0
  129. package/dist/ts3.4/repro-generators/configs.d.ts +6 -0
  130. package/dist/ts3.4/versions.d.ts +59 -0
  131. package/dist/ts3.9/automigrate/fixes/builder-vite.d.ts +19 -0
  132. package/dist/ts3.9/repro-generators/configs.d.ts +7 -1
  133. package/dist/ts3.9/versions.d.ts +59 -0
  134. package/package.json +11 -12
  135. package/dist/cjs/frameworks/svelte/Button.stories.svelte +0 -57
  136. package/dist/cjs/frameworks/svelte/Header.stories.svelte +0 -32
  137. package/dist/cjs/frameworks/svelte/Page.stories.svelte +0 -32
  138. package/dist/cjs/typings.d.js +0 -1
  139. package/dist/cjs/versions.json +0 -59
  140. package/dist/esm/frameworks/svelte/Button.stories.svelte +0 -57
  141. package/dist/esm/frameworks/svelte/Header.stories.svelte +0 -32
  142. package/dist/esm/frameworks/svelte/Page.stories.svelte +0 -32
  143. package/dist/esm/typings.d.js +0 -1
  144. package/dist/esm/versions.json +0 -59
  145. package/dist/modern/frameworks/svelte/Button.stories.svelte +0 -57
  146. package/dist/modern/frameworks/svelte/Header.stories.svelte +0 -32
  147. package/dist/modern/frameworks/svelte/Page.stories.svelte +0 -32
  148. package/dist/modern/typings.d.js +0 -1
  149. package/dist/modern/versions.json +0 -59
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.svelte = exports.sfcVue = exports.preact = exports.html = exports.vue3 = exports.vue = exports.web_components_lit2 = exports.web_components_typescript = exports.web_components = exports.angular = exports.angular12 = exports.angular11 = exports.angular10 = exports.react_in_yarn_workspace = exports.webpack_react = exports.react_typescript = exports.react = exports.cra_typescript = exports.cra = void 0;
6
+ exports.webpack_react = exports.web_components_typescript = exports.web_components_lit2 = exports.web_components = exports.vue3 = exports.vue = exports.svelte = exports.sfcVue = exports.react_typescript = exports.react_in_yarn_workspace = exports.react = exports.preact = exports.html = exports.cra_typescript = exports.cra = exports.angular_modern_inline_rendering = exports.angular130 = exports.angular13 = exports.angular12 = exports.angular11 = exports.angular10 = exports.angular = void 0;
7
7
 
8
8
  const fromDeps = (...args) => ['mkdir {{appName}}', 'cd {{appName}}', // Create `yarn.lock` to force Yarn to consider adding deps in this directory
9
9
  // and not look for a yarn workspace in parent directory
@@ -14,16 +14,16 @@ const cra = {
14
14
  framework: 'react',
15
15
  name: 'cra',
16
16
  version: 'latest',
17
- generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
18
- 'npx create-react-app@{{version}} {{appName}} --use-npm', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
17
+ generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
18
+ 'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}}', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
19
19
  };
20
20
  exports.cra = cra;
21
21
  const cra_typescript = {
22
22
  framework: 'react',
23
23
  name: 'cra_typescript',
24
24
  version: 'latest',
25
- generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
26
- 'npx create-react-app@{{version}} {{appName}} --template typescript --use-npm'].join(' && ')
25
+ generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
26
+ 'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}} --template typescript'].join(' && ')
27
27
  };
28
28
  exports.cra_typescript = cra_typescript;
29
29
  const react = {
@@ -62,7 +62,7 @@ const baseAngular = {
62
62
  framework: 'angular',
63
63
  name: 'angular',
64
64
  version: 'latest',
65
- generator: `npx --package @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
65
+ generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
66
66
  };
67
67
  const angular10 = Object.assign({}, baseAngular, {
68
68
  name: 'angular10',
@@ -79,6 +79,27 @@ const angular12 = Object.assign({}, baseAngular, {
79
79
  version: 'v12-lts'
80
80
  });
81
81
  exports.angular12 = angular12;
82
+ const angular130 = Object.assign({}, baseAngular, {
83
+ name: 'angular130',
84
+ version: '13.0.x'
85
+ });
86
+ exports.angular130 = angular130;
87
+ const angular13 = Object.assign({}, baseAngular, {
88
+ name: 'angular13',
89
+ version: '13.1.x'
90
+ });
91
+ exports.angular13 = angular13;
92
+ const angular_modern_inline_rendering = Object.assign({}, baseAngular, {
93
+ name: 'angular_modern_inline_rendering',
94
+ additionalDeps: ['jest', '@storybook/test-runner'],
95
+ mainOverrides: {
96
+ features: {
97
+ storyStoreV7: true,
98
+ modernInlineRender: true
99
+ }
100
+ }
101
+ });
102
+ exports.angular_modern_inline_rendering = angular_modern_inline_rendering;
82
103
  const angular = baseAngular; // #endregion
83
104
  // #region web components
84
105
 
@@ -107,7 +128,8 @@ exports.web_components_lit2 = web_components_lit2;
107
128
  const vue = {
108
129
  framework: 'vue',
109
130
  name: 'vue',
110
- version: 'latest',
131
+ // Be careful here, the latest versions of vue cli are bootstrapping a vue 3 project
132
+ version: '4',
111
133
  generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
112
134
  `npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ')
113
135
  };
@@ -141,7 +163,8 @@ const sfcVue = {
141
163
  framework: 'vue',
142
164
  name: 'sfcVue',
143
165
  version: 'latest',
144
- generator: fromDeps('vue', 'vue-loader', 'vue-template-compiler', 'webpack@webpack-4')
166
+ //
167
+ generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack@webpack-4')
145
168
  };
146
169
  exports.sfcVue = sfcVue;
147
170
  const svelte = {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAndInit = exports.exec = void 0;
6
+ exports.exec = exports.createAndInit = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -15,6 +15,12 @@ var _shelljs = _interopRequireDefault(require("shelljs"));
15
15
 
16
16
  var _chalk = _interopRequireDefault(require("chalk"));
17
17
 
18
+ var _configs = require("./configs");
19
+
20
+ var _versions = _interopRequireDefault(require("../versions"));
21
+
22
+ const _excluded = ["name", "version"];
23
+
18
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
25
 
20
26
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -36,17 +42,18 @@ const exec = async (command, options = {}, {
36
42
  silent: true
37
43
  };
38
44
 
39
- _shelljs.default.exec(command, Object.assign({}, defaultOptions, options), (code, stdout, stderr) => {
45
+ const child = _shelljs.default.exec(command, Object.assign({}, defaultOptions, options, {
46
+ async: true
47
+ }));
48
+
49
+ child.stderr.pipe(process.stderr);
50
+ child.stdout.pipe(process.stdout);
51
+ child.on('exit', code => {
40
52
  if (code === 0) {
41
53
  resolve(undefined);
42
54
  } else {
43
55
  logger.error(_chalk.default.red(`An error occurred while executing: \`${command}\``));
44
- logger.error(`Command output was:${_chalk.default.yellow(`\n${stdout}\n${stderr}`)}`);
45
-
46
- if (errorMessage) {
47
- logger.error(errorMessage);
48
- }
49
-
56
+ logger.log(errorMessage);
50
57
  reject(new Error(`command exited with code: ${code}: `));
51
58
  }
52
59
  });
@@ -55,12 +62,34 @@ const exec = async (command, options = {}, {
55
62
 
56
63
  exports.exec = exec;
57
64
 
65
+ const addPackageResolutions = async ({
66
+ cwd
67
+ }) => {
68
+ logger.info(`🔢 Adding package resolutions:`);
69
+
70
+ const packageJsonPath = _path.default.join(cwd, 'package.json');
71
+
72
+ const packageJson = await (0, _fsExtra.readJSON)(packageJsonPath);
73
+ packageJson.resolutions = _versions.default;
74
+ await (0, _fsExtra.writeJSON)(packageJsonPath, packageJson, {
75
+ spaces: 2
76
+ });
77
+ };
78
+
58
79
  const installYarn2 = async ({
59
80
  cwd,
60
- pnp
81
+ pnp,
82
+ name
61
83
  }) => {
62
- const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`].join(' && ');
63
- await exec(command, {
84
+ const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]; // FIXME: Some dependencies used by CRA aren't listed in its package.json
85
+ // Next line is a hack to remove as soon as CRA will have added these missing deps
86
+ // for details see https://github.com/facebook/create-react-app/pull/11751
87
+
88
+ if ([_configs.cra.name, _configs.cra_typescript.name].includes(name)) {
89
+ command.push(`yarn config set packageExtensions --json '{ "babel-preset-react-app@10.0.x": { "dependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.16.0" } } }'`);
90
+ }
91
+
92
+ await exec(command.join(' && '), {
64
93
  cwd
65
94
  }, {
66
95
  startMessage: `🧶 Installing Yarn 2`,
@@ -182,7 +211,7 @@ const createAndInit = async (cwd, _ref, {
182
211
  name,
183
212
  version
184
213
  } = _ref,
185
- rest = _objectWithoutPropertiesLoose(_ref, ["name", "version"]);
214
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
186
215
 
187
216
  const options = Object.assign({
188
217
  name,
@@ -196,11 +225,14 @@ const createAndInit = async (cwd, _ref, {
196
225
  logger.log();
197
226
  logger.info(`🏃 Starting for ${name} ${version}`);
198
227
  logger.log();
199
- logger.debug(options);
200
- logger.log();
201
228
  await doTask(generate, Object.assign({}, options, {
202
229
  cwd: options.creationPath
203
230
  }));
231
+
232
+ if (e2e) {
233
+ await doTask(addPackageResolutions, options);
234
+ }
235
+
204
236
  await doTask(installYarn2, options);
205
237
  await doTask(configureYarn2ForE2E, options, e2e);
206
238
  await doTask(addTypescript, options, !!options.typescript);
package/dist/cjs/repro.js CHANGED
@@ -25,9 +25,9 @@ var _scripts = require("./repro-generators/scripts");
25
25
 
26
26
  var configs = _interopRequireWildcard(require("./repro-generators/configs"));
27
27
 
28
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
28
+ 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); }
29
29
 
30
- 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; }
30
+ 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; }
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
@@ -169,6 +169,7 @@ const repro = async ({
169
169
  }));
170
170
  } catch (error) {
171
171
  logger.error('🚨 Failed to create repro');
172
+ throw new Error(error);
172
173
  }
173
174
  };
174
175
 
@@ -0,0 +1,3 @@
1
+ declare module '@storybook/codemod';
2
+ declare module 'envinfo';
3
+ declare module '@storybook/semver';
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.upgrade = exports.addExtraFlags = exports.checkVersionConsistency = exports.isCorePackage = exports.getStorybookVersion = void 0;
6
+ exports.upgrade = exports.isCorePackage = exports.getStorybookVersion = exports.checkVersionConsistency = exports.addExtraFlags = void 0;
7
+
8
+ require("core-js/modules/es.array.sort.js");
7
9
 
8
10
  require("core-js/modules/es.promise.js");
9
11
 
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // auto generated file, do not edit
8
+ var _default = {
9
+ "@storybook/addon-a11y": "6.5.0-alpha.52",
10
+ "@storybook/addon-actions": "6.5.0-alpha.52",
11
+ "@storybook/addon-backgrounds": "6.5.0-alpha.52",
12
+ "@storybook/addon-controls": "6.5.0-alpha.52",
13
+ "@storybook/addon-docs": "6.5.0-alpha.52",
14
+ "@storybook/addon-essentials": "6.5.0-alpha.52",
15
+ "@storybook/addon-interactions": "6.5.0-alpha.52",
16
+ "@storybook/addon-jest": "6.5.0-alpha.52",
17
+ "@storybook/addon-links": "6.5.0-alpha.52",
18
+ "@storybook/addon-measure": "6.5.0-alpha.52",
19
+ "@storybook/addon-outline": "6.5.0-alpha.52",
20
+ "@storybook/addon-storyshots": "6.5.0-alpha.52",
21
+ "@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.52",
22
+ "@storybook/addon-storysource": "6.5.0-alpha.52",
23
+ "@storybook/addon-toolbars": "6.5.0-alpha.52",
24
+ "@storybook/addon-viewport": "6.5.0-alpha.52",
25
+ "@storybook/addons": "6.5.0-alpha.52",
26
+ "@storybook/angular": "6.5.0-alpha.52",
27
+ "@storybook/api": "6.5.0-alpha.52",
28
+ "@storybook/builder-webpack4": "6.5.0-alpha.52",
29
+ "@storybook/builder-webpack5": "6.5.0-alpha.52",
30
+ "@storybook/channel-postmessage": "6.5.0-alpha.52",
31
+ "@storybook/channel-websocket": "6.5.0-alpha.52",
32
+ "@storybook/channels": "6.5.0-alpha.52",
33
+ "@storybook/cli": "6.5.0-alpha.52",
34
+ "@storybook/client-api": "6.5.0-alpha.52",
35
+ "@storybook/client-logger": "6.5.0-alpha.52",
36
+ "@storybook/codemod": "6.5.0-alpha.52",
37
+ "@storybook/components": "6.5.0-alpha.52",
38
+ "@storybook/core": "6.5.0-alpha.52",
39
+ "@storybook/core-client": "6.5.0-alpha.52",
40
+ "@storybook/core-common": "6.5.0-alpha.52",
41
+ "@storybook/core-events": "6.5.0-alpha.52",
42
+ "@storybook/core-server": "6.5.0-alpha.52",
43
+ "@storybook/csf-tools": "6.5.0-alpha.52",
44
+ "@storybook/docs-tools": "6.5.0-alpha.52",
45
+ "@storybook/ember": "6.5.0-alpha.52",
46
+ "@storybook/html": "6.5.0-alpha.52",
47
+ "@storybook/instrumenter": "6.5.0-alpha.52",
48
+ "@storybook/manager-webpack4": "6.5.0-alpha.52",
49
+ "@storybook/manager-webpack5": "6.5.0-alpha.52",
50
+ "@storybook/node-logger": "6.5.0-alpha.52",
51
+ "@storybook/postinstall": "6.5.0-alpha.52",
52
+ "@storybook/preact": "6.5.0-alpha.52",
53
+ "@storybook/preview-web": "6.5.0-alpha.52",
54
+ "@storybook/react": "6.5.0-alpha.52",
55
+ "@storybook/router": "6.5.0-alpha.52",
56
+ "@storybook/server": "6.5.0-alpha.52",
57
+ "@storybook/source-loader": "6.5.0-alpha.52",
58
+ "@storybook/store": "6.5.0-alpha.52",
59
+ "@storybook/svelte": "6.5.0-alpha.52",
60
+ "@storybook/theming": "6.5.0-alpha.52",
61
+ "@storybook/ui": "6.5.0-alpha.52",
62
+ "@storybook/vue": "6.5.0-alpha.52",
63
+ "@storybook/vue3": "6.5.0-alpha.52",
64
+ "@storybook/web-components": "6.5.0-alpha.52"
65
+ };
66
+ exports.default = _default;
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/dist/esm/add.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.add = add;
7
- exports.addStorybookAddonToFile = exports.getPackageArg = exports.getInstalledStorybookVersion = exports.getPackageName = exports.storybookAddonScope = void 0;
7
+ exports.storybookAddonScope = exports.getPackageName = exports.getPackageArg = exports.getInstalledStorybookVersion = exports.addStorybookAddonToFile = void 0;
8
8
 
9
9
  require("core-js/modules/es.promise.js");
10
10
 
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.builderVite = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _chalk = _interopRequireDefault(require("chalk"));
11
+
12
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
13
+
14
+ var _csfTools = require("@storybook/csf-tools");
15
+
16
+ var _getStorybookInfo = require("../helpers/getStorybookInfo");
17
+
18
+ var _jsPackageManager = require("../../js-package-manager");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const logger = console;
23
+
24
+ /**
25
+ * Is the user using 'storybook-builder-vite' in their project?
26
+ *
27
+ * If so, prompt them to upgrade to '@storybook/builder-vite'.
28
+ *
29
+ * - Add '@storybook/builder-vite' as dev dependency
30
+ * - Remove 'storybook-builder-vite' dependency
31
+ * - Add core.builder = '@storybook/builder-vite' to main.js
32
+ */
33
+ const builderVite = {
34
+ id: 'builder-vite',
35
+
36
+ async check({
37
+ packageManager
38
+ }) {
39
+ const packageJson = packageManager.retrievePackageJson();
40
+ const {
41
+ mainConfig
42
+ } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
43
+
44
+ if (!mainConfig) {
45
+ logger.warn('Unable to find storybook main.js config');
46
+ return null;
47
+ }
48
+
49
+ const main = await (0, _csfTools.readConfig)(mainConfig);
50
+ const builder = main.getFieldValue(['core', 'builder']);
51
+ const builderName = typeof builder === 'string' ? builder : builder === null || builder === void 0 ? void 0 : builder.name;
52
+
53
+ if (builderName !== 'storybook-builder-vite') {
54
+ logger.info(`Not using community vite builder, skipping`);
55
+ return null;
56
+ }
57
+
58
+ return {
59
+ builder,
60
+ main,
61
+ packageJson
62
+ };
63
+ },
64
+
65
+ prompt({
66
+ builder
67
+ }) {
68
+ const builderFormatted = _chalk.default.cyan(JSON.stringify(builder, null, 2));
69
+
70
+ return (0, _tsDedent.default)`
71
+ We've detected you're using the community vite builder: ${builderFormatted}
72
+
73
+ 'storybook-builder-vite' is deprecated and now located at ${_chalk.default.cyan('@storybook/builder-vite')}.
74
+
75
+ We can upgrade your project to use the new builder automatically.
76
+
77
+ More info: ${_chalk.default.yellow('https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-renamed')}
78
+ `;
79
+ },
80
+
81
+ async run({
82
+ result: {
83
+ builder,
84
+ main,
85
+ packageJson
86
+ },
87
+ packageManager,
88
+ dryRun
89
+ }) {
90
+ const {
91
+ dependencies = {},
92
+ devDependencies = {}
93
+ } = packageJson;
94
+ logger.info(`Removing existing 'storybook-builder-vite' dependency`);
95
+
96
+ if (!dryRun) {
97
+ delete dependencies['storybook-builder-vite'];
98
+ delete devDependencies['storybook-builder-vite'];
99
+ (0, _jsPackageManager.writePackageJson)(packageJson);
100
+ }
101
+
102
+ logger.info(`Adding '@storybook/builder-vite' as dev dependency`);
103
+
104
+ if (!dryRun) {
105
+ packageManager.addDependencies({
106
+ installAsDevDependencies: true
107
+ }, ['@storybook/builder-vite']);
108
+ }
109
+
110
+ logger.info(`Updating main.js to use vite builder`);
111
+
112
+ if (!dryRun) {
113
+ const updatedBuilder = typeof builder === 'string' ? '@storybook/builder-vite' : {
114
+ name: '@storybook/builder-vite',
115
+ options: builder.options
116
+ };
117
+ main.setFieldValue(['core', 'builder'], updatedBuilder);
118
+ await (0, _csfTools.writeConfig)(main);
119
+ }
120
+ }
121
+
122
+ };
123
+ exports.builderVite = builderVite;
@@ -18,6 +18,8 @@ var _mainjsFramework = require("./mainjsFramework");
18
18
 
19
19
  var _eslintPlugin = require("./eslint-plugin");
20
20
 
21
+ var _builderVite = require("./builder-vite");
22
+
21
23
  var _types = require("../types");
22
24
 
23
25
  Object.keys(_types).forEach(function (key) {
@@ -31,5 +33,5 @@ Object.keys(_types).forEach(function (key) {
31
33
  }
32
34
  });
33
35
  });
34
- const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin];
36
+ const fixes = [_cra.cra5, _webpack.webpack5, _angular.angular12, _mainjsFramework.mainjsFramework, _eslintPlugin.eslintPlugin, _builderVite.builderVite];
35
37
  exports.fixes = fixes;
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.generateStorybookBabelConfig = exports.generateStorybookBabelConfigInCWD = void 0;
6
+ exports.generateStorybookBabelConfigInCWD = exports.generateStorybookBabelConfig = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.detect = detect;
6
7
  exports.detectFrameworkPreset = detectFrameworkPreset;
7
- exports.isStorybookInstalled = isStorybookInstalled;
8
8
  exports.detectLanguage = detectLanguage;
9
- exports.detect = detect;
9
+ exports.isStorybookInstalled = isStorybookInstalled;
10
10
 
11
11
  var _path = _interopRequireDefault(require("path"));
12
12
 
@@ -24,8 +24,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
24
  const read = async url => {
25
25
  const browser = await usePuppeteerBrowser();
26
26
  const page = await browser.newPage();
27
- await page.goto(url);
28
- await page.waitForFunction('window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract()');
27
+ await page.goto(url); // we don't know whether we are running against a new or old storybook
28
+ // FIXME: add tests for both
29
+
30
+ await page.waitForFunction(`
31
+ (window.__STORYBOOK_PREVIEW__ && window.__STORYBOOK_PREVIEW__.extract && window.__STORYBOOK_PREVIEW__.extract()) ||
32
+ (window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract())
33
+ `);
29
34
  const data = JSON.parse(await page.evaluate(async () => {
30
35
  // eslint-disable-next-line no-undef
31
36
  return JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(), null, 2);
@@ -1,7 +1,6 @@
1
1
  import { moduleMetadata } from '@storybook/angular';
2
2
  import { CommonModule } from '@angular/common';
3
- // also exported from '@storybook/angular' if you can deal with breaking changes in 6.1
4
- import { Story, Meta } from '@storybook/angular/types-6-0';
3
+ import type { Story, Meta } from '@storybook/angular';
5
4
 
6
5
  import Button from './button.component';
7
6
  import Header from './header.component';
@@ -15,6 +14,10 @@ export default {
15
14
  imports: [CommonModule],
16
15
  }),
17
16
  ],
17
+ parameters: {
18
+ // More on Story layout: https://storybook.js.org/docs/angular/configure/story-layout
19
+ layout: 'fullscreen',
20
+ },
18
21
  } as Meta;
19
22
 
20
23
  const Template: Story<Header> = (args: Header) => ({
@@ -23,7 +26,9 @@ const Template: Story<Header> = (args: Header) => ({
23
26
 
24
27
  export const LoggedIn = Template.bind({});
25
28
  LoggedIn.args = {
26
- user: {},
29
+ user: {
30
+ name: 'Jane Doe',
31
+ },
27
32
  };
28
33
 
29
34
  export const LoggedOut = Template.bind({});
@@ -1,15 +1,18 @@
1
1
  import { moduleMetadata, Story, Meta } from '@storybook/angular';
2
+ import { within, userEvent } from '@storybook/testing-library';
2
3
  import { CommonModule } from '@angular/common';
3
4
 
4
5
  import Button from './button.component';
5
6
  import Header from './header.component';
6
7
  import Page from './page.component';
7
8
 
8
- import * as HeaderStories from './Header.stories';
9
-
10
9
  export default {
11
10
  title: 'Example/Page',
12
11
  component: Page,
12
+ parameters: {
13
+ // More on Story layout: https://storybook.js.org/docs/angular/configure/story-layout
14
+ layout: 'fullscreen',
15
+ },
13
16
  decorators: [
14
17
  moduleMetadata({
15
18
  declarations: [Button, Header],
@@ -22,13 +25,12 @@ const Template: Story<Page> = (args: Page) => ({
22
25
  props: args,
23
26
  });
24
27
 
25
- export const LoggedIn = Template.bind({});
26
- LoggedIn.args = {
27
- // More on composing args: https://storybook.js.org/docs/angular/writing-stories/args#args-composition
28
- ...HeaderStories.LoggedIn.args,
29
- };
30
-
31
28
  export const LoggedOut = Template.bind({});
32
- LoggedOut.args = {
33
- ...HeaderStories.LoggedOut.args,
29
+
30
+ // More on interaction testing: https://storybook.js.org/docs/angular/writing-tests/interaction-testing
31
+ export const LoggedIn = Template.bind({});
32
+ LoggedIn.play = async ({ canvasElement }) => {
33
+ const canvas = within(canvasElement);
34
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
35
+ await userEvent.click(loginButton);
34
36
  };
@@ -25,25 +25,36 @@ import { User } from './User';
25
25
  <h1>Acme</h1>
26
26
  </div>
27
27
  <div>
28
- <storybook-button
29
- *ngIf="user"
30
- size="small"
31
- (onClick)="onLogout.emit($event)"
32
- label="Log out"
33
- ></storybook-button>
34
- <storybook-button
35
- *ngIf="!user"
36
- size="small"
37
- (onClick)="onLogin.emit($event)"
38
- label="Log in"
39
- ></storybook-button>
40
- <storybook-button
41
- *ngIf="!user"
42
- primary
43
- size="small"
44
- (onClick)="onCreateAccount.emit($event)"
45
- label="Sign up"
46
- ></storybook-button>
28
+ <div *ngIf="user">
29
+ <span class="welcome">
30
+ Welcome, <b>{{ user.name }}</b
31
+ >!
32
+ </span>
33
+ <storybook-button
34
+ *ngIf="user"
35
+ size="small"
36
+ (onClick)="onLogout.emit($event)"
37
+ label="Log out"
38
+ ></storybook-button>
39
+ </div>
40
+ <div *ngIf="!user">
41
+ <storybook-button
42
+ *ngIf="!user"
43
+ size="small"
44
+ class="margin-left"
45
+ (onClick)="onLogin.emit($event)"
46
+ label="Log in"
47
+ ></storybook-button>
48
+ <storybook-button
49
+ *ngIf="!user"
50
+ primary
51
+ size="small"
52
+ primary="true"
53
+ class="margin-left"
54
+ (onClick)="onCreateAccount.emit($event)"
55
+ label="Sign up"
56
+ ></storybook-button>
57
+ </div>
47
58
  </div>
48
59
  </div>
49
60
  </header>`,