@storybook/cli 6.4.0-alpha.7 → 6.4.0-beta.1

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 (49) hide show
  1. package/dist/cjs/babel-config.js +68 -0
  2. package/dist/cjs/extract.js +2 -1
  3. package/dist/cjs/frameworks/angular/User.ts +2 -0
  4. package/dist/cjs/frameworks/angular/header.component.ts +2 -1
  5. package/dist/cjs/frameworks/angular/page.component.ts +2 -1
  6. package/dist/cjs/frameworks/svelte/Header.svelte +1 -1
  7. package/dist/cjs/frameworks/svelte/Page.svelte +1 -1
  8. package/dist/cjs/generate.js +6 -2
  9. package/dist/cjs/generators/baseGenerator.js +16 -0
  10. package/dist/cjs/initiate.js +2 -2
  11. package/dist/cjs/js-package-manager/NPMProxy.js +1 -1
  12. package/dist/cjs/link.js +2 -2
  13. package/dist/cjs/project_types.js +3 -2
  14. package/dist/cjs/repro-generators/scripts.js +1 -1
  15. package/dist/cjs/versions.json +55 -55
  16. package/dist/esm/babel-config.js +68 -0
  17. package/dist/esm/extract.js +2 -1
  18. package/dist/esm/frameworks/angular/User.ts +2 -0
  19. package/dist/esm/frameworks/angular/header.component.ts +2 -1
  20. package/dist/esm/frameworks/angular/page.component.ts +2 -1
  21. package/dist/esm/frameworks/svelte/Header.svelte +1 -1
  22. package/dist/esm/frameworks/svelte/Page.svelte +1 -1
  23. package/dist/esm/generate.js +6 -2
  24. package/dist/esm/generators/baseGenerator.js +16 -0
  25. package/dist/esm/initiate.js +2 -2
  26. package/dist/esm/js-package-manager/NPMProxy.js +1 -1
  27. package/dist/esm/link.js +2 -2
  28. package/dist/esm/project_types.js +3 -2
  29. package/dist/esm/repro-generators/scripts.js +1 -1
  30. package/dist/esm/versions.json +55 -55
  31. package/dist/modern/babel-config.js +68 -0
  32. package/dist/modern/extract.js +2 -1
  33. package/dist/modern/frameworks/svelte/Header.svelte +1 -1
  34. package/dist/modern/frameworks/svelte/Page.svelte +1 -1
  35. package/dist/modern/generate.js +6 -2
  36. package/dist/modern/generators/baseGenerator.js +16 -0
  37. package/dist/modern/initiate.js +2 -2
  38. package/dist/modern/js-package-manager/NPMProxy.js +1 -1
  39. package/dist/modern/link.js +2 -2
  40. package/dist/modern/project_types.js +3 -2
  41. package/dist/modern/repro-generators/scripts.js +1 -1
  42. package/dist/modern/versions.json +55 -55
  43. package/dist/ts3.4/babel-config.d.ts +4 -0
  44. package/dist/ts3.4/initiate.d.ts +1 -1
  45. package/dist/ts3.4/project_types.d.ts +1 -1
  46. package/dist/ts3.9/babel-config.d.ts +4 -0
  47. package/dist/ts3.9/initiate.d.ts +1 -1
  48. package/dist/ts3.9/project_types.d.ts +1 -1
  49. package/package.json +7 -6
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateStorybookBabelConfig = exports.generateStorybookBabelConfigInCWD = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _fsExtra = require("fs-extra");
11
+
12
+ var _nodeLogger = require("@storybook/node-logger");
13
+
14
+ var _coreCommon = require("@storybook/core-common");
15
+
16
+ var _path = _interopRequireDefault(require("path"));
17
+
18
+ var _prompts = _interopRequireDefault(require("prompts"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const generateStorybookBabelConfigInCWD = async () => {
23
+ const target = process.cwd();
24
+ return generateStorybookBabelConfig({
25
+ target
26
+ });
27
+ };
28
+
29
+ exports.generateStorybookBabelConfigInCWD = generateStorybookBabelConfigInCWD;
30
+
31
+ const generateStorybookBabelConfig = async ({
32
+ target
33
+ }) => {
34
+ _nodeLogger.logger.info(`Generating the storybook default babel config at ${target}`);
35
+
36
+ const config = (0, _coreCommon.getStorybookBabelConfig)({
37
+ local: true
38
+ });
39
+ const contents = JSON.stringify(config, null, 2);
40
+ const fileName = '.babelrc.json';
41
+
42
+ const location = _path.default.join(target, fileName);
43
+
44
+ const exists = await (0, _fsExtra.access)(location).then(() => true, () => false);
45
+
46
+ if (exists) {
47
+ const {
48
+ overwrite
49
+ } = await (0, _prompts.default)({
50
+ type: 'confirm',
51
+ initial: true,
52
+ name: 'overwrite',
53
+ message: `${fileName} already exists. Would you like overwrite it?`
54
+ });
55
+
56
+ if (overwrite === false) {
57
+ _nodeLogger.logger.warn(`Cancelled, babel config file was NOT written to file-system.`);
58
+
59
+ return;
60
+ }
61
+ }
62
+
63
+ _nodeLogger.logger.info(`Writing file to ${location}`);
64
+
65
+ await (0, _fsExtra.writeFile)(location, contents);
66
+ };
67
+
68
+ exports.generateStorybookBabelConfig = generateStorybookBabelConfig;
@@ -60,7 +60,8 @@ const usePuppeteerBrowser = async () => {
60
60
 
61
61
  try {
62
62
  return await _puppeteerCore.default.launch({
63
- args
63
+ args,
64
+ executablePath: process.env.SB_CHROMIUM_PATH
64
65
  });
65
66
  } catch (e) {
66
67
  // it's not installed
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
2
+ export interface User {}
@@ -1,4 +1,5 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { User } from './User';
2
3
 
3
4
  @Component({
4
5
  selector: 'storybook-header',
@@ -50,7 +51,7 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
50
51
  })
51
52
  export default class HeaderComponent {
52
53
  @Input()
53
- user: unknown = null;
54
+ user: User | null = null;
54
55
 
55
56
  @Output()
56
57
  onLogin = new EventEmitter<Event>();
@@ -1,4 +1,5 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { User } from './User';
2
3
 
3
4
  @Component({
4
5
  selector: 'storybook-page',
@@ -61,7 +62,7 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
61
62
  })
62
63
  export default class PageComponent {
63
64
  @Input()
64
- user: unknown = null;
65
+ user: User | null = null;
65
66
 
66
67
  @Output()
67
68
  onLogin = new EventEmitter<Event>();
@@ -23,7 +23,7 @@
23
23
  <div class="wrapper">
24
24
  <div>
25
25
  <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
26
- <g fill="none" fillRule="evenodd">
26
+ <g fill="none" fill-rule="evenodd">
27
27
  <path
28
28
  d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
29
29
  fill="#FFF" />
@@ -62,7 +62,7 @@
62
62
  <span class="tip">Tip</span>
63
63
  Adjust the width of the canvas with the
64
64
  <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
65
- <g fill="none" fillRule="evenodd">
65
+ <g fill="none" fill-rule="evenodd">
66
66
  <path
67
67
  d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0
68
68
  01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0
@@ -14,7 +14,7 @@ var _leven = _interopRequireDefault(require("leven"));
14
14
 
15
15
  var _readPkgUp = require("read-pkg-up");
16
16
 
17
- var _initiate = _interopRequireDefault(require("./initiate"));
17
+ var _initiate = require("./initiate");
18
18
 
19
19
  var _add = require("./add");
20
20
 
@@ -28,6 +28,8 @@ var _repro = require("./repro");
28
28
 
29
29
  var _link = require("./link");
30
30
 
31
+ var _babelConfig = require("./babel-config");
32
+
31
33
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
34
 
33
35
  const pkg = (0, _readPkgUp.sync)({
@@ -35,10 +37,12 @@ const pkg = (0, _readPkgUp.sync)({
35
37
  }).packageJson;
36
38
  const logger = console;
37
39
 
38
- _commander.default.command('init').description('Initialize Storybook into your project.').option('-f --force', 'Force add Storybook').option('-s --skip-install', 'Skip installing deps').option('-N --use-npm', 'Use npm to install deps').option('-p --parser <babel | babylon | flow | ts | tsx>', 'jscodeshift parser').option('-t --type <type>', 'Add Storybook for a specific project type').option('--story-format <csf | csf-ts | mdx >', 'Generate stories in a specified format').option('-y --yes', 'Answer yes to all prompts').option('-b --builder <builder>', 'Builder library').option('-l --linkable', 'Prepare installation for link (contributor helper)').action(options => (0, _initiate.default)(options, pkg));
40
+ _commander.default.command('init').description('Initialize Storybook into your project.').option('-f --force', 'Force add Storybook').option('-s --skip-install', 'Skip installing deps').option('-N --use-npm', 'Use npm to install deps').option('-p --parser <babel | babylon | flow | ts | tsx>', 'jscodeshift parser').option('-t --type <type>', 'Add Storybook for a specific project type').option('--story-format <csf | csf-ts | mdx >', 'Generate stories in a specified format').option('-y --yes', 'Answer yes to all prompts').option('-b --builder <builder>', 'Builder library').option('-l --linkable', 'Prepare installation for link (contributor helper)').action(options => (0, _initiate.initiate)(options, pkg));
39
41
 
40
42
  _commander.default.command('add <addon>').description('Add an addon to your Storybook').option('-N --use-npm', 'Use NPM to build the Storybook server').option('-s --skip-postinstall', 'Skip package specific postinstall config modifications').action((addonName, options) => (0, _add.add)(addonName, options));
41
43
 
44
+ _commander.default.command('babelrc').description('generate the default storybook babel config into your current working directory').action(() => (0, _babelConfig.generateStorybookBabelConfigInCWD)());
45
+
42
46
  _commander.default.command('upgrade').description('Upgrade your Storybook packages to the latest').option('-N --use-npm', 'Use NPM to build the Storybook server').option('-n --dry-run', 'Only check for upgrades, do not install').option('-p --prerelease', 'Upgrade to the pre-release packages').option('-s --skip-check', 'Skip postinstall version consistency checks').action(options => (0, _upgrade.upgrade)(options));
43
47
 
44
48
  _commander.default.command('info').description('Prints debugging information about the local environment').action(() => {
@@ -7,6 +7,10 @@ exports.baseGenerator = baseGenerator;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
10
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
+
12
+ var _coreCommon = require("@storybook/core-common");
13
+
10
14
  var _project_types = require("../project_types");
11
15
 
12
16
  var _helpers = require("../helpers");
@@ -15,6 +19,10 @@ var _configure = require("./configure");
15
19
 
16
20
  var _jsPackageManager = require("../js-package-manager");
17
21
 
22
+ var _babelConfig = require("../babel-config");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
18
26
  const defaultOptions = {
19
27
  extraPackages: [],
20
28
  extraAddons: [],
@@ -62,6 +70,8 @@ async function baseGenerator(packageManager, npmOptions, {
62
70
 
63
71
  const addonPackages = [...addons, '@storybook/addon-actions'];
64
72
  const yarn2Dependencies = packageManager.type === 'yarn2' ? ['@storybook/addon-docs', '@mdx-js/react'] : [];
73
+ const files = await _fsExtra.default.readdir(process.cwd());
74
+ const isNewFolder = !files.some(fname => fname.startsWith('.babel') || fname.startsWith('babel') || fname === 'package.json');
65
75
  const packageJson = packageManager.retrievePackageJson();
66
76
  const installedDependencies = new Set(Object.keys(packageJson.dependencies));
67
77
  const packages = [`@storybook/${framework}`, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
@@ -82,6 +92,12 @@ async function baseGenerator(packageManager, npmOptions, {
82
92
  }
83
93
 
84
94
  const babelDependencies = addBabel ? await (0, _helpers.getBabelDependencies)(packageManager, packageJson) : [];
95
+
96
+ if (isNewFolder) {
97
+ babelDependencies.push(...(0, _coreCommon.getStorybookBabelDependencies)());
98
+ await (0, _babelConfig.generateStorybookBabelConfigInCWD)();
99
+ }
100
+
85
101
  packageManager.addDependencies(Object.assign({}, npmOptions, {
86
102
  packageJson
87
103
  }), [...versionedPackages, ...babelDependencies]);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = _default;
6
+ exports.initiate = initiate;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -249,7 +249,7 @@ const projectTypeInquirer = async options => {
249
249
  return Promise.resolve();
250
250
  };
251
251
 
252
- function _default(options, pkg) {
252
+ function initiate(options, pkg) {
253
253
  const welcomeMessage = 'sb init - the simplest way to add a Storybook to your project.';
254
254
  logger.log(_chalk.default.inverse(`\n ${welcomeMessage} \n`)); // Update notify code.
255
255
 
@@ -67,7 +67,7 @@ class NPMProxy extends _JsPackageManager.JsPackageManager {
67
67
  return parsedOutput;
68
68
  }
69
69
  } catch (e) {
70
- throw new Error(`Unable to find versions of ${packageName} using yarn`);
70
+ throw new Error(`Unable to find versions of ${packageName} using npm`);
71
71
  }
72
72
  }
73
73
 
package/dist/cjs/link.js CHANGED
@@ -58,8 +58,8 @@ const link = async ({
58
58
  stdio: 'pipe'
59
59
  }).stdout.toString();
60
60
 
61
- if (!version.startsWith('2.')) {
62
- _nodeLogger.logger.warn(`🚨 Expected yarn 2 in ${reproDir}!`);
61
+ if (!/^[23]\./.test(version)) {
62
+ _nodeLogger.logger.warn(`🚨 Expected yarn 2 or 3 in ${reproDir}!`);
63
63
 
64
64
  _nodeLogger.logger.warn('');
65
65
 
@@ -61,7 +61,8 @@ exports.StoryFormat = StoryFormat;
61
61
  StoryFormat["MDX"] = "mdx";
62
62
  })(StoryFormat || (exports.StoryFormat = StoryFormat = {}));
63
63
 
64
- let CoreBuilder;
64
+ let CoreBuilder; // The `& {}` bit allows for auto-complete, see: https://github.com/microsoft/TypeScript/issues/29729
65
+
65
66
  exports.CoreBuilder = CoreBuilder;
66
67
 
67
68
  (function (CoreBuilder) {
@@ -259,7 +260,7 @@ const supportedTemplates = [{
259
260
  return dependencies.every(Boolean);
260
261
  }
261
262
  }]; // A TemplateConfiguration that matches unsupported frameworks
262
- // Framework matchers can be added to this object to give
263
+ // AnyFramework matchers can be added to this object to give
263
264
  // users an "Unsupported framework" message
264
265
 
265
266
  exports.supportedTemplates = supportedTemplates;
@@ -124,7 +124,7 @@ const addRequiredDeps = async ({
124
124
  additionalDeps
125
125
  }) => {
126
126
  // Remove any lockfile generated without Yarn 2
127
- _shelljs.default.rm(_path.default.join(cwd, 'package-lock.json'), _path.default.join(cwd, 'yarn.lock'));
127
+ _shelljs.default.rm('-f', _path.default.join(cwd, 'package-lock.json'), _path.default.join(cwd, 'yarn.lock'));
128
128
 
129
129
  const command = additionalDeps && additionalDeps.length > 0 ? `yarn add -D ${additionalDeps.join(' ')}` : `yarn install`;
130
130
  await exec(command, {
@@ -1,57 +1,57 @@
1
1
  {
2
- "@storybook/addon-a11y": "6.4.0-alpha.7",
3
- "@storybook/addon-actions": "6.4.0-alpha.7",
4
- "@storybook/addon-backgrounds": "6.4.0-alpha.7",
5
- "@storybook/addon-controls": "6.4.0-alpha.7",
6
- "@storybook/addon-docs": "6.4.0-alpha.7",
7
- "@storybook/addon-essentials": "6.4.0-alpha.7",
8
- "@storybook/addon-jest": "6.4.0-alpha.7",
9
- "@storybook/addon-links": "6.4.0-alpha.7",
10
- "@storybook/addon-storyshots": "6.4.0-alpha.7",
11
- "@storybook/addon-storyshots-puppeteer": "6.4.0-alpha.7",
12
- "@storybook/addon-storysource": "6.4.0-alpha.7",
13
- "@storybook/addon-toolbars": "6.4.0-alpha.7",
14
- "@storybook/addon-viewport": "6.4.0-alpha.7",
15
- "@storybook/addons": "6.4.0-alpha.7",
16
- "@storybook/angular": "6.4.0-alpha.7",
17
- "@storybook/api": "6.4.0-alpha.7",
18
- "@storybook/aurelia": "6.4.0-alpha.7",
19
- "@storybook/builder-webpack4": "6.4.0-alpha.7",
20
- "@storybook/builder-webpack5": "6.4.0-alpha.7",
21
- "@storybook/channel-postmessage": "6.4.0-alpha.7",
22
- "@storybook/channel-websocket": "6.4.0-alpha.7",
23
- "@storybook/channels": "6.4.0-alpha.7",
24
- "@storybook/cli": "6.4.0-alpha.7",
25
- "@storybook/client-api": "6.4.0-alpha.7",
26
- "@storybook/client-logger": "6.4.0-alpha.7",
27
- "@storybook/codemod": "6.4.0-alpha.7",
28
- "@storybook/components": "6.4.0-alpha.7",
29
- "@storybook/core": "6.4.0-alpha.7",
30
- "@storybook/core-client": "6.4.0-alpha.7",
31
- "@storybook/core-common": "6.4.0-alpha.7",
32
- "@storybook/core-events": "6.4.0-alpha.7",
33
- "@storybook/core-server": "6.4.0-alpha.7",
34
- "@storybook/csf-tools": "6.4.0-alpha.7",
35
- "@storybook/ember": "6.4.0-alpha.7",
36
- "@storybook/html": "6.4.0-alpha.7",
37
- "@storybook/manager-webpack4": "6.4.0-alpha.7",
38
- "@storybook/manager-webpack5": "6.4.0-alpha.7",
39
- "@storybook/marionette": "6.4.0-alpha.7",
40
- "@storybook/marko": "6.4.0-alpha.7",
41
- "@storybook/mithril": "6.4.0-alpha.7",
42
- "@storybook/node-logger": "6.4.0-alpha.7",
43
- "@storybook/postinstall": "6.4.0-alpha.7",
44
- "@storybook/preact": "6.4.0-alpha.7",
45
- "@storybook/rax": "6.4.0-alpha.7",
46
- "@storybook/react": "6.4.0-alpha.7",
47
- "@storybook/riot": "6.4.0-alpha.7",
48
- "@storybook/router": "6.4.0-alpha.7",
49
- "@storybook/server": "6.4.0-alpha.7",
50
- "@storybook/source-loader": "6.4.0-alpha.7",
51
- "@storybook/svelte": "6.4.0-alpha.7",
52
- "@storybook/theming": "6.4.0-alpha.7",
53
- "@storybook/ui": "6.4.0-alpha.7",
54
- "@storybook/vue": "6.4.0-alpha.7",
55
- "@storybook/vue3": "6.4.0-alpha.7",
56
- "@storybook/web-components": "6.4.0-alpha.7"
2
+ "@storybook/addon-a11y": "6.4.0-beta.1",
3
+ "@storybook/addon-actions": "6.4.0-beta.1",
4
+ "@storybook/addon-backgrounds": "6.4.0-beta.1",
5
+ "@storybook/addon-controls": "6.4.0-beta.1",
6
+ "@storybook/addon-docs": "6.4.0-beta.1",
7
+ "@storybook/addon-essentials": "6.4.0-beta.1",
8
+ "@storybook/addon-jest": "6.4.0-beta.1",
9
+ "@storybook/addon-links": "6.4.0-beta.1",
10
+ "@storybook/addon-storyshots": "6.4.0-beta.1",
11
+ "@storybook/addon-storyshots-puppeteer": "6.4.0-beta.1",
12
+ "@storybook/addon-storysource": "6.4.0-beta.1",
13
+ "@storybook/addon-toolbars": "6.4.0-beta.1",
14
+ "@storybook/addon-viewport": "6.4.0-beta.1",
15
+ "@storybook/addons": "6.4.0-beta.1",
16
+ "@storybook/angular": "6.4.0-beta.1",
17
+ "@storybook/api": "6.4.0-beta.1",
18
+ "@storybook/aurelia": "6.4.0-beta.1",
19
+ "@storybook/builder-webpack4": "6.4.0-beta.1",
20
+ "@storybook/builder-webpack5": "6.4.0-beta.1",
21
+ "@storybook/channel-postmessage": "6.4.0-beta.1",
22
+ "@storybook/channel-websocket": "6.4.0-beta.1",
23
+ "@storybook/channels": "6.4.0-beta.1",
24
+ "@storybook/cli": "6.4.0-beta.1",
25
+ "@storybook/client-api": "6.4.0-beta.1",
26
+ "@storybook/client-logger": "6.4.0-beta.1",
27
+ "@storybook/codemod": "6.4.0-beta.1",
28
+ "@storybook/components": "6.4.0-beta.1",
29
+ "@storybook/core": "6.4.0-beta.1",
30
+ "@storybook/core-client": "6.4.0-beta.1",
31
+ "@storybook/core-common": "6.4.0-beta.1",
32
+ "@storybook/core-events": "6.4.0-beta.1",
33
+ "@storybook/core-server": "6.4.0-beta.1",
34
+ "@storybook/csf-tools": "6.4.0-beta.1",
35
+ "@storybook/ember": "6.4.0-beta.1",
36
+ "@storybook/html": "6.4.0-beta.1",
37
+ "@storybook/manager-webpack4": "6.4.0-beta.1",
38
+ "@storybook/manager-webpack5": "6.4.0-beta.1",
39
+ "@storybook/marionette": "6.4.0-beta.1",
40
+ "@storybook/marko": "6.4.0-beta.1",
41
+ "@storybook/mithril": "6.4.0-beta.1",
42
+ "@storybook/node-logger": "6.4.0-beta.1",
43
+ "@storybook/postinstall": "6.4.0-beta.1",
44
+ "@storybook/preact": "6.4.0-beta.1",
45
+ "@storybook/rax": "6.4.0-beta.1",
46
+ "@storybook/react": "6.4.0-beta.1",
47
+ "@storybook/riot": "6.4.0-beta.1",
48
+ "@storybook/router": "6.4.0-beta.1",
49
+ "@storybook/server": "6.4.0-beta.1",
50
+ "@storybook/source-loader": "6.4.0-beta.1",
51
+ "@storybook/svelte": "6.4.0-beta.1",
52
+ "@storybook/theming": "6.4.0-beta.1",
53
+ "@storybook/ui": "6.4.0-beta.1",
54
+ "@storybook/vue": "6.4.0-beta.1",
55
+ "@storybook/vue3": "6.4.0-beta.1",
56
+ "@storybook/web-components": "6.4.0-beta.1"
57
57
  }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateStorybookBabelConfig = exports.generateStorybookBabelConfigInCWD = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _fsExtra = require("fs-extra");
11
+
12
+ var _nodeLogger = require("@storybook/node-logger");
13
+
14
+ var _coreCommon = require("@storybook/core-common");
15
+
16
+ var _path = _interopRequireDefault(require("path"));
17
+
18
+ var _prompts = _interopRequireDefault(require("prompts"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const generateStorybookBabelConfigInCWD = async () => {
23
+ const target = process.cwd();
24
+ return generateStorybookBabelConfig({
25
+ target
26
+ });
27
+ };
28
+
29
+ exports.generateStorybookBabelConfigInCWD = generateStorybookBabelConfigInCWD;
30
+
31
+ const generateStorybookBabelConfig = async ({
32
+ target
33
+ }) => {
34
+ _nodeLogger.logger.info(`Generating the storybook default babel config at ${target}`);
35
+
36
+ const config = (0, _coreCommon.getStorybookBabelConfig)({
37
+ local: true
38
+ });
39
+ const contents = JSON.stringify(config, null, 2);
40
+ const fileName = '.babelrc.json';
41
+
42
+ const location = _path.default.join(target, fileName);
43
+
44
+ const exists = await (0, _fsExtra.access)(location).then(() => true, () => false);
45
+
46
+ if (exists) {
47
+ const {
48
+ overwrite
49
+ } = await (0, _prompts.default)({
50
+ type: 'confirm',
51
+ initial: true,
52
+ name: 'overwrite',
53
+ message: `${fileName} already exists. Would you like overwrite it?`
54
+ });
55
+
56
+ if (overwrite === false) {
57
+ _nodeLogger.logger.warn(`Cancelled, babel config file was NOT written to file-system.`);
58
+
59
+ return;
60
+ }
61
+ }
62
+
63
+ _nodeLogger.logger.info(`Writing file to ${location}`);
64
+
65
+ await (0, _fsExtra.writeFile)(location, contents);
66
+ };
67
+
68
+ exports.generateStorybookBabelConfig = generateStorybookBabelConfig;
@@ -60,7 +60,8 @@ const usePuppeteerBrowser = async () => {
60
60
 
61
61
  try {
62
62
  return await _puppeteerCore.default.launch({
63
- args
63
+ args,
64
+ executablePath: process.env.SB_CHROMIUM_PATH
64
65
  });
65
66
  } catch (e) {
66
67
  // it's not installed
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
2
+ export interface User {}
@@ -1,4 +1,5 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { User } from './User';
2
3
 
3
4
  @Component({
4
5
  selector: 'storybook-header',
@@ -50,7 +51,7 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
50
51
  })
51
52
  export default class HeaderComponent {
52
53
  @Input()
53
- user: unknown = null;
54
+ user: User | null = null;
54
55
 
55
56
  @Output()
56
57
  onLogin = new EventEmitter<Event>();
@@ -1,4 +1,5 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { User } from './User';
2
3
 
3
4
  @Component({
4
5
  selector: 'storybook-page',
@@ -61,7 +62,7 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
61
62
  })
62
63
  export default class PageComponent {
63
64
  @Input()
64
- user: unknown = null;
65
+ user: User | null = null;
65
66
 
66
67
  @Output()
67
68
  onLogin = new EventEmitter<Event>();
@@ -23,7 +23,7 @@
23
23
  <div class="wrapper">
24
24
  <div>
25
25
  <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
26
- <g fill="none" fillRule="evenodd">
26
+ <g fill="none" fill-rule="evenodd">
27
27
  <path
28
28
  d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
29
29
  fill="#FFF" />
@@ -62,7 +62,7 @@
62
62
  <span class="tip">Tip</span>
63
63
  Adjust the width of the canvas with the
64
64
  <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
65
- <g fill="none" fillRule="evenodd">
65
+ <g fill="none" fill-rule="evenodd">
66
66
  <path
67
67
  d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0
68
68
  01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0
@@ -14,7 +14,7 @@ var _leven = _interopRequireDefault(require("leven"));
14
14
 
15
15
  var _readPkgUp = require("read-pkg-up");
16
16
 
17
- var _initiate = _interopRequireDefault(require("./initiate"));
17
+ var _initiate = require("./initiate");
18
18
 
19
19
  var _add = require("./add");
20
20
 
@@ -28,6 +28,8 @@ var _repro = require("./repro");
28
28
 
29
29
  var _link = require("./link");
30
30
 
31
+ var _babelConfig = require("./babel-config");
32
+
31
33
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
34
 
33
35
  const pkg = (0, _readPkgUp.sync)({
@@ -35,10 +37,12 @@ const pkg = (0, _readPkgUp.sync)({
35
37
  }).packageJson;
36
38
  const logger = console;
37
39
 
38
- _commander.default.command('init').description('Initialize Storybook into your project.').option('-f --force', 'Force add Storybook').option('-s --skip-install', 'Skip installing deps').option('-N --use-npm', 'Use npm to install deps').option('-p --parser <babel | babylon | flow | ts | tsx>', 'jscodeshift parser').option('-t --type <type>', 'Add Storybook for a specific project type').option('--story-format <csf | csf-ts | mdx >', 'Generate stories in a specified format').option('-y --yes', 'Answer yes to all prompts').option('-b --builder <builder>', 'Builder library').option('-l --linkable', 'Prepare installation for link (contributor helper)').action(options => (0, _initiate.default)(options, pkg));
40
+ _commander.default.command('init').description('Initialize Storybook into your project.').option('-f --force', 'Force add Storybook').option('-s --skip-install', 'Skip installing deps').option('-N --use-npm', 'Use npm to install deps').option('-p --parser <babel | babylon | flow | ts | tsx>', 'jscodeshift parser').option('-t --type <type>', 'Add Storybook for a specific project type').option('--story-format <csf | csf-ts | mdx >', 'Generate stories in a specified format').option('-y --yes', 'Answer yes to all prompts').option('-b --builder <builder>', 'Builder library').option('-l --linkable', 'Prepare installation for link (contributor helper)').action(options => (0, _initiate.initiate)(options, pkg));
39
41
 
40
42
  _commander.default.command('add <addon>').description('Add an addon to your Storybook').option('-N --use-npm', 'Use NPM to build the Storybook server').option('-s --skip-postinstall', 'Skip package specific postinstall config modifications').action((addonName, options) => (0, _add.add)(addonName, options));
41
43
 
44
+ _commander.default.command('babelrc').description('generate the default storybook babel config into your current working directory').action(() => (0, _babelConfig.generateStorybookBabelConfigInCWD)());
45
+
42
46
  _commander.default.command('upgrade').description('Upgrade your Storybook packages to the latest').option('-N --use-npm', 'Use NPM to build the Storybook server').option('-n --dry-run', 'Only check for upgrades, do not install').option('-p --prerelease', 'Upgrade to the pre-release packages').option('-s --skip-check', 'Skip postinstall version consistency checks').action(options => (0, _upgrade.upgrade)(options));
43
47
 
44
48
  _commander.default.command('info').description('Prints debugging information about the local environment').action(() => {
@@ -7,6 +7,10 @@ exports.baseGenerator = baseGenerator;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
10
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
+
12
+ var _coreCommon = require("@storybook/core-common");
13
+
10
14
  var _project_types = require("../project_types");
11
15
 
12
16
  var _helpers = require("../helpers");
@@ -15,6 +19,10 @@ var _configure = require("./configure");
15
19
 
16
20
  var _jsPackageManager = require("../js-package-manager");
17
21
 
22
+ var _babelConfig = require("../babel-config");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
18
26
  const defaultOptions = {
19
27
  extraPackages: [],
20
28
  extraAddons: [],
@@ -62,6 +70,8 @@ async function baseGenerator(packageManager, npmOptions, {
62
70
 
63
71
  const addonPackages = [...addons, '@storybook/addon-actions'];
64
72
  const yarn2Dependencies = packageManager.type === 'yarn2' ? ['@storybook/addon-docs', '@mdx-js/react'] : [];
73
+ const files = await _fsExtra.default.readdir(process.cwd());
74
+ const isNewFolder = !files.some(fname => fname.startsWith('.babel') || fname.startsWith('babel') || fname === 'package.json');
65
75
  const packageJson = packageManager.retrievePackageJson();
66
76
  const installedDependencies = new Set(Object.keys(packageJson.dependencies));
67
77
  const packages = [`@storybook/${framework}`, ...addonPackages, ...extraPackages, ...extraAddons, ...yarn2Dependencies, ...builderDependencies(builder)].filter(Boolean).filter(packageToInstall => !installedDependencies.has((0, _jsPackageManager.getPackageDetails)(packageToInstall)[0]));
@@ -82,6 +92,12 @@ async function baseGenerator(packageManager, npmOptions, {
82
92
  }
83
93
 
84
94
  const babelDependencies = addBabel ? await (0, _helpers.getBabelDependencies)(packageManager, packageJson) : [];
95
+
96
+ if (isNewFolder) {
97
+ babelDependencies.push(...(0, _coreCommon.getStorybookBabelDependencies)());
98
+ await (0, _babelConfig.generateStorybookBabelConfigInCWD)();
99
+ }
100
+
85
101
  packageManager.addDependencies(Object.assign({}, npmOptions, {
86
102
  packageJson
87
103
  }), [...versionedPackages, ...babelDependencies]);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = _default;
6
+ exports.initiate = initiate;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -249,7 +249,7 @@ const projectTypeInquirer = async options => {
249
249
  return Promise.resolve();
250
250
  };
251
251
 
252
- function _default(options, pkg) {
252
+ function initiate(options, pkg) {
253
253
  const welcomeMessage = 'sb init - the simplest way to add a Storybook to your project.';
254
254
  logger.log(_chalk.default.inverse(`\n ${welcomeMessage} \n`)); // Update notify code.
255
255
 
@@ -67,7 +67,7 @@ class NPMProxy extends _JsPackageManager.JsPackageManager {
67
67
  return parsedOutput;
68
68
  }
69
69
  } catch (e) {
70
- throw new Error(`Unable to find versions of ${packageName} using yarn`);
70
+ throw new Error(`Unable to find versions of ${packageName} using npm`);
71
71
  }
72
72
  }
73
73