@storybook/cli 6.5.0-beta.0 → 6.5.0-beta.3

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 (136) hide show
  1. package/dist/cjs/automigrate/fixes/builder-vite.js +2 -2
  2. package/dist/cjs/automigrate/fixes/eslint-plugin.js +3 -3
  3. package/dist/cjs/automigrate/fixes/mainjsFramework.js +2 -2
  4. package/dist/cjs/automigrate/fixes/webpack5.js +2 -2
  5. package/dist/cjs/detect.js +14 -2
  6. package/dist/cjs/frameworks/html/js/Header.js +2 -0
  7. package/dist/cjs/frameworks/html/js/Header.stories.js +8 -1
  8. package/dist/cjs/frameworks/html/js/Page.js +29 -2
  9. package/dist/cjs/frameworks/html/js/Page.stories.js +12 -13
  10. package/dist/cjs/frameworks/html/ts/Header.stories.ts +5 -0
  11. package/dist/cjs/frameworks/html/ts/Header.ts +3 -1
  12. package/dist/cjs/frameworks/html/ts/Page.stories.ts +12 -14
  13. package/dist/cjs/frameworks/html/ts/Page.ts +32 -8
  14. package/dist/cjs/frameworks/vue/Header.stories.js +7 -1
  15. package/dist/cjs/frameworks/vue/Header.vue +1 -0
  16. package/dist/cjs/frameworks/vue/Page.stories.js +15 -13
  17. package/dist/cjs/frameworks/vue/Page.vue +7 -7
  18. package/dist/cjs/generate.js +5 -0
  19. package/dist/cjs/generators/ANGULAR/index.js +1 -1
  20. package/dist/cjs/generators/AURELIA/index.js +1 -1
  21. package/dist/cjs/generators/EMBER/index.js +1 -1
  22. package/dist/cjs/generators/HTML/index.js +1 -1
  23. package/dist/cjs/generators/METEOR/index.js +1 -1
  24. package/dist/cjs/generators/MITHRIL/index.js +1 -1
  25. package/dist/cjs/generators/PREACT/index.js +1 -1
  26. package/dist/cjs/generators/RAX/index.js +1 -1
  27. package/dist/cjs/generators/RIOT/index.js +1 -1
  28. package/dist/cjs/generators/SERVER/index.js +1 -1
  29. package/dist/cjs/generators/SFC_VUE/index.js +1 -1
  30. package/dist/cjs/generators/VUE/index.js +1 -1
  31. package/dist/cjs/generators/VUE3/index.js +1 -1
  32. package/dist/cjs/generators/WEBPACK_REACT/index.js +1 -1
  33. package/dist/cjs/generators/baseGenerator.js +1 -1
  34. package/dist/cjs/initiate.js +17 -10
  35. package/dist/cjs/js-package-manager/JsPackageManager.js +6 -6
  36. package/dist/cjs/js-package-manager/PackageJson.js +5 -1
  37. package/dist/cjs/js-package-manager/PackageJsonHelper.js +1 -1
  38. package/dist/cjs/upgrade.js +24 -8
  39. package/dist/cjs/versions.js +57 -56
  40. package/dist/esm/automigrate/fixes/builder-vite.js +2 -2
  41. package/dist/esm/automigrate/fixes/eslint-plugin.js +3 -3
  42. package/dist/esm/automigrate/fixes/mainjsFramework.js +2 -2
  43. package/dist/esm/automigrate/fixes/webpack5.js +2 -2
  44. package/dist/esm/detect.js +14 -2
  45. package/dist/esm/frameworks/html/js/Header.js +2 -0
  46. package/dist/esm/frameworks/html/js/Header.stories.js +8 -1
  47. package/dist/esm/frameworks/html/js/Page.js +29 -2
  48. package/dist/esm/frameworks/html/js/Page.stories.js +12 -13
  49. package/dist/esm/frameworks/html/ts/Header.stories.ts +5 -0
  50. package/dist/esm/frameworks/html/ts/Header.ts +3 -1
  51. package/dist/esm/frameworks/html/ts/Page.stories.ts +12 -14
  52. package/dist/esm/frameworks/html/ts/Page.ts +32 -8
  53. package/dist/esm/frameworks/vue/Header.stories.js +7 -1
  54. package/dist/esm/frameworks/vue/Header.vue +1 -0
  55. package/dist/esm/frameworks/vue/Page.stories.js +15 -13
  56. package/dist/esm/frameworks/vue/Page.vue +7 -7
  57. package/dist/esm/generate.js +5 -0
  58. package/dist/esm/generators/ANGULAR/index.js +1 -1
  59. package/dist/esm/generators/AURELIA/index.js +1 -1
  60. package/dist/esm/generators/EMBER/index.js +1 -1
  61. package/dist/esm/generators/HTML/index.js +1 -1
  62. package/dist/esm/generators/METEOR/index.js +1 -1
  63. package/dist/esm/generators/MITHRIL/index.js +1 -1
  64. package/dist/esm/generators/PREACT/index.js +1 -1
  65. package/dist/esm/generators/RAX/index.js +1 -1
  66. package/dist/esm/generators/RIOT/index.js +1 -1
  67. package/dist/esm/generators/SERVER/index.js +1 -1
  68. package/dist/esm/generators/SFC_VUE/index.js +1 -1
  69. package/dist/esm/generators/VUE/index.js +1 -1
  70. package/dist/esm/generators/VUE3/index.js +1 -1
  71. package/dist/esm/generators/WEBPACK_REACT/index.js +1 -1
  72. package/dist/esm/generators/baseGenerator.js +1 -1
  73. package/dist/esm/initiate.js +17 -10
  74. package/dist/esm/js-package-manager/JsPackageManager.js +6 -6
  75. package/dist/esm/js-package-manager/PackageJson.js +5 -1
  76. package/dist/esm/js-package-manager/PackageJsonHelper.js +1 -1
  77. package/dist/esm/upgrade.js +24 -8
  78. package/dist/esm/versions.js +57 -56
  79. package/dist/modern/automigrate/fixes/builder-vite.js +2 -2
  80. package/dist/modern/automigrate/fixes/eslint-plugin.js +3 -3
  81. package/dist/modern/automigrate/fixes/mainjsFramework.js +2 -2
  82. package/dist/modern/automigrate/fixes/webpack5.js +2 -2
  83. package/dist/modern/detect.js +14 -2
  84. package/dist/modern/frameworks/html/js/Header.js +2 -0
  85. package/dist/modern/frameworks/html/js/Header.stories.js +8 -1
  86. package/dist/modern/frameworks/html/js/Page.js +29 -2
  87. package/dist/modern/frameworks/html/js/Page.stories.js +12 -13
  88. package/dist/modern/frameworks/vue/Header.stories.js +7 -1
  89. package/dist/modern/frameworks/vue/Header.vue +1 -0
  90. package/dist/modern/frameworks/vue/Page.stories.js +15 -13
  91. package/dist/modern/frameworks/vue/Page.vue +7 -7
  92. package/dist/modern/generate.js +5 -0
  93. package/dist/modern/generators/ANGULAR/index.js +1 -1
  94. package/dist/modern/generators/AURELIA/index.js +1 -1
  95. package/dist/modern/generators/EMBER/index.js +1 -1
  96. package/dist/modern/generators/HTML/index.js +1 -1
  97. package/dist/modern/generators/METEOR/index.js +1 -1
  98. package/dist/modern/generators/MITHRIL/index.js +1 -1
  99. package/dist/modern/generators/PREACT/index.js +1 -1
  100. package/dist/modern/generators/RAX/index.js +1 -1
  101. package/dist/modern/generators/RIOT/index.js +1 -1
  102. package/dist/modern/generators/SERVER/index.js +1 -1
  103. package/dist/modern/generators/SFC_VUE/index.js +1 -1
  104. package/dist/modern/generators/VUE/index.js +1 -1
  105. package/dist/modern/generators/VUE3/index.js +1 -1
  106. package/dist/modern/generators/WEBPACK_REACT/index.js +1 -1
  107. package/dist/modern/generators/baseGenerator.js +1 -1
  108. package/dist/modern/initiate.js +17 -10
  109. package/dist/modern/js-package-manager/JsPackageManager.js +6 -6
  110. package/dist/modern/js-package-manager/PackageJson.js +5 -1
  111. package/dist/modern/js-package-manager/PackageJsonHelper.js +1 -1
  112. package/dist/modern/upgrade.js +24 -8
  113. package/dist/modern/versions.js +57 -56
  114. package/dist/ts3.4/detect.d.ts +1 -1
  115. package/dist/ts3.4/initiate.d.ts +1 -0
  116. package/dist/ts3.4/js-package-manager/PackageJson.d.ts +2 -8
  117. package/dist/ts3.4/js-package-manager/PackageJsonHelper.d.ts +2 -2
  118. package/dist/ts3.4/upgrade.d.ts +2 -1
  119. package/dist/ts3.4/versions.d.ts +1 -0
  120. package/dist/ts3.9/detect.d.ts +1 -1
  121. package/dist/ts3.9/initiate.d.ts +1 -0
  122. package/dist/ts3.9/js-package-manager/PackageJson.d.ts +2 -8
  123. package/dist/ts3.9/js-package-manager/PackageJsonHelper.d.ts +2 -2
  124. package/dist/ts3.9/upgrade.d.ts +2 -1
  125. package/dist/ts3.9/versions.d.ts +1 -0
  126. package/package.json +8 -7
  127. package/dist/cjs/automigrate/helpers/getStorybookConfiguration.js +0 -27
  128. package/dist/cjs/automigrate/helpers/getStorybookInfo.js +0 -94
  129. package/dist/esm/automigrate/helpers/getStorybookConfiguration.js +0 -27
  130. package/dist/esm/automigrate/helpers/getStorybookInfo.js +0 -94
  131. package/dist/modern/automigrate/helpers/getStorybookConfiguration.js +0 -27
  132. package/dist/modern/automigrate/helpers/getStorybookInfo.js +0 -94
  133. package/dist/ts3.4/automigrate/helpers/getStorybookConfiguration.d.ts +0 -1
  134. package/dist/ts3.4/automigrate/helpers/getStorybookInfo.d.ts +0 -11
  135. package/dist/ts3.9/automigrate/helpers/getStorybookConfiguration.d.ts +0 -1
  136. package/dist/ts3.9/automigrate/helpers/getStorybookInfo.d.ts +0 -11
@@ -15,7 +15,7 @@ var _semver = _interopRequireDefault(require("@storybook/semver"));
15
15
 
16
16
  var _csfTools = require("@storybook/csf-tools");
17
17
 
18
- var _getStorybookInfo = require("../helpers/getStorybookInfo");
18
+ var _coreCommon = require("@storybook/core-common");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
@@ -33,7 +33,7 @@ const mainjsFramework = {
33
33
  mainConfig,
34
34
  framework,
35
35
  version: storybookVersion
36
- } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
36
+ } = (0, _coreCommon.getStorybookInfo)(packageJson);
37
37
 
38
38
  if (!mainConfig) {
39
39
  logger.warn('Unable to find storybook main.js config, skipping');
@@ -15,7 +15,7 @@ var _semver = _interopRequireDefault(require("@storybook/semver"));
15
15
 
16
16
  var _csfTools = require("@storybook/csf-tools");
17
17
 
18
- var _getStorybookInfo = require("../helpers/getStorybookInfo");
18
+ var _coreCommon = require("@storybook/core-common");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
@@ -40,7 +40,7 @@ const webpack5 = {
40
40
  const {
41
41
  mainConfig,
42
42
  version: storybookVersion
43
- } = (0, _getStorybookInfo.getStorybookInfo)(packageJson);
43
+ } = (0, _coreCommon.getStorybookInfo)(packageJson);
44
44
  const storybookCoerced = storybookVersion && ((_semver$coerce = _semver.default.coerce(storybookVersion)) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version);
45
45
 
46
46
  if (!storybookCoerced) {
@@ -168,7 +168,13 @@ function isStorybookInstalled(dependencies, force) {
168
168
 
169
169
  function detectLanguage() {
170
170
  let language = _project_types.SupportedLanguage.JAVASCRIPT;
171
- const packageJson = (0, _jsPackageManager.readPackageJson)();
171
+ let packageJson;
172
+
173
+ try {
174
+ packageJson = (0, _jsPackageManager.readPackageJson)();
175
+ } catch (err) {//
176
+ }
177
+
172
178
  const bowerJson = (0, _helpers.getBowerJson)();
173
179
 
174
180
  if (!packageJson && !bowerJson) {
@@ -183,7 +189,13 @@ function detectLanguage() {
183
189
  }
184
190
 
185
191
  function detect(options = {}) {
186
- const packageJson = (0, _jsPackageManager.readPackageJson)();
192
+ let packageJson;
193
+
194
+ try {
195
+ packageJson = (0, _jsPackageManager.readPackageJson)();
196
+ } catch (err) {//
197
+ }
198
+
187
199
  const bowerJson = (0, _helpers.getBowerJson)();
188
200
 
189
201
  if (!packageJson && !bowerJson) {
@@ -26,6 +26,8 @@ export const createHeader = ({ user, onLogout, onLogin, onCreateAccount }) => {
26
26
 
27
27
  const account = document.createElement('div');
28
28
  if (user) {
29
+ const welcomeMessage = `<span class="welcome">Welcome, <b>${user.name}</b>!</span>`;
30
+ account.innerHTML = welcomeMessage;
29
31
  account.appendChild(createButton({ size: 'small', label: 'Log out', onClick: onLogout }));
30
32
  } else {
31
33
  account.appendChild(createButton({ size: 'small', label: 'Log in', onClick: onLogin }));
@@ -2,6 +2,11 @@ import { createHeader } from './Header';
2
2
 
3
3
  export default {
4
4
  title: 'Example/Header',
5
+ parameters: {
6
+ // More on Story layout: https://storybook.js.org/docs/html/configure/story-layout
7
+ layout: 'fullscreen',
8
+ },
9
+ // More on argTypes: https://storybook.js.org/docs/html/api/argtypes
5
10
  argTypes: {
6
11
  onLogin: { action: 'onLogin' },
7
12
  onLogout: { action: 'onLogout' },
@@ -13,7 +18,9 @@ const Template = (args) => createHeader(args);
13
18
 
14
19
  export const LoggedIn = Template.bind({});
15
20
  LoggedIn.args = {
16
- user: {},
21
+ user: {
22
+ name: 'Jane Doe',
23
+ },
17
24
  };
18
25
 
19
26
  export const LoggedOut = Template.bind({});
@@ -1,11 +1,38 @@
1
1
  import './page.css';
2
2
  import { createHeader } from './Header';
3
3
 
4
- export const createPage = ({ user, onLogout, onLogin, onCreateAccount }) => {
4
+ export const createPage = () => {
5
5
  const article = document.createElement('article');
6
+ let user = null;
7
+ let header = null;
6
8
 
7
- const header = createHeader({ onLogin, onLogout, onCreateAccount, user });
9
+ const rerenderHeader = () => {
10
+ const wrapper = document.getElementsByTagName('article')[0];
11
+ wrapper.replaceChild(createHeaderElement(), wrapper.firstChild);
12
+ };
13
+
14
+ const onLogin = () => {
15
+ user = { name: 'Jane Doe' };
16
+ rerenderHeader();
17
+ };
18
+
19
+ const onLogout = () => {
20
+ user = null;
21
+ rerenderHeader();
22
+ };
23
+
24
+ const onCreateAccount = () => {
25
+ user = { name: 'Jane Doe' };
26
+ rerenderHeader();
27
+ };
28
+
29
+ const createHeaderElement = () => {
30
+ return createHeader({ onLogin, onLogout, onCreateAccount, user });
31
+ };
32
+
33
+ header = createHeaderElement();
8
34
  article.appendChild(header);
35
+
9
36
  const section = `
10
37
  <section>
11
38
  <h2>Pages in Storybook</h2>
@@ -1,24 +1,23 @@
1
+ import { within, userEvent } from '@storybook/testing-library';
1
2
  import { createPage } from './Page';
2
- import * as HeaderStories from './Header.stories';
3
3
 
4
4
  export default {
5
5
  title: 'Example/Page',
6
- argTypes: {
7
- onLogin: { action: 'onLogin' },
8
- onLogout: { action: 'onLogout' },
9
- onCreateAccount: { action: 'onCreateAccount' },
6
+ parameters: {
7
+ // More on Story layout: https://storybook.js.org/docs/html/configure/story-layout
8
+ layout: 'fullscreen',
10
9
  },
11
10
  };
12
11
 
13
- const Template = (args) => createPage(args);
12
+ const Template = () => createPage();
13
+
14
+ export const LoggedOut = Template.bind({});
14
15
 
15
16
  export const LoggedIn = Template.bind({});
16
- LoggedIn.args = {
17
- // More on composing args: https://storybook.js.org/docs/html/writing-stories/args#args-composition
18
- ...HeaderStories.LoggedIn.args,
19
- };
20
17
 
21
- export const LoggedOut = Template.bind({});
22
- LoggedOut.args = {
23
- ...HeaderStories.LoggedOut.args,
18
+ // More on interaction testing: https://storybook.js.org/docs/html/writing-tests/interaction-testing
19
+ LoggedIn.play = async ({ canvasElement }) => {
20
+ const canvas = within(canvasElement);
21
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
22
+ await userEvent.click(loginButton);
24
23
  };
@@ -3,6 +3,10 @@ import MyHeader from './Header';
3
3
  export default {
4
4
  title: 'Example/Header',
5
5
  component: MyHeader,
6
+ parameters: {
7
+ // More on Story layout: https://storybook.js.org/docs/vue/configure/story-layout
8
+ layout: 'fullscreen',
9
+ },
6
10
  };
7
11
 
8
12
  const Template = (args, { argTypes }) => ({
@@ -14,7 +18,9 @@ const Template = (args, { argTypes }) => ({
14
18
 
15
19
  export const LoggedIn = Template.bind({});
16
20
  LoggedIn.args = {
17
- user: {},
21
+ user: {
22
+ name: 'Jane Doe',
23
+ },
18
24
  };
19
25
 
20
26
  export const LoggedOut = Template.bind({});
@@ -21,6 +21,7 @@
21
21
  <h1>Acme</h1>
22
22
  </div>
23
23
  <div>
24
+ <span class="welcome" v-if="user">Welcome, <b>{{ user.name }}</b>!</span>
24
25
  <my-button size="small" @onClick="onLogout" label="Log out" v-if="user" />
25
26
  <my-button size="small" @onClick="onLogin" label="Log in" v-if="!user" />
26
27
  <my-button primary size="small" @onClick="onCreateAccount" label="Sign up" v-if="!user" />
@@ -1,25 +1,27 @@
1
+ import { within, userEvent } from '@storybook/testing-library';
2
+
1
3
  import MyPage from './Page';
2
- import * as HeaderStories from './Header.stories';
3
4
 
4
5
  export default {
5
6
  title: 'Example/Page',
6
7
  component: MyPage,
8
+ parameters: {
9
+ // More on Story layout: https://storybook.js.org/docs/vue/configure/story-layout
10
+ layout: 'fullscreen',
11
+ },
7
12
  };
8
13
 
9
- const Template = (args, { argTypes }) => ({
10
- props: Object.keys(argTypes),
14
+ const Template = () => ({
11
15
  components: { MyPage },
12
- template:
13
- '<my-page :user="user" @onLogin="onLogin" @onLogout="onLogout" @onCreateAccount="onCreateAccount" />',
16
+ template: '<my-page />',
14
17
  });
15
18
 
16
- export const LoggedIn = Template.bind({});
17
- LoggedIn.args = {
18
- // More on composing args: https://storybook.js.org/docs/vue/writing-stories/args#args-composition
19
- ...HeaderStories.LoggedIn.args,
20
- };
21
-
22
19
  export const LoggedOut = Template.bind({});
23
- LoggedOut.args = {
24
- ...HeaderStories.LoggedOut.args,
20
+
21
+ // More on interaction testing: https://storybook.js.org/docs/vue/writing-tests/interaction-testing
22
+ export const LoggedIn = Template.bind({});
23
+ LoggedIn.play = async ({ canvasElement }) => {
24
+ const canvas = within(canvasElement);
25
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
26
+ await userEvent.click(loginButton);
25
27
  };
@@ -67,21 +67,21 @@ export default {
67
67
 
68
68
  components: { MyHeader },
69
69
 
70
- props: {
71
- user: {
72
- type: Object,
73
- },
70
+ data() {
71
+ return {
72
+ user: null,
73
+ };
74
74
  },
75
75
 
76
76
  methods: {
77
77
  onLogin() {
78
- this.$emit('onLogin');
78
+ this.user = { name: 'Jane Doe' };
79
79
  },
80
80
  onLogout() {
81
- this.$emit('onLogout');
81
+ this.user = null;
82
82
  },
83
83
  onCreateAccount() {
84
- this.$emit('onCreateAccount');
84
+ this.user = { name: 'Jane Doe' };
85
85
  },
86
86
  },
87
87
  };
@@ -39,6 +39,11 @@ const pkg = (0, _readPkgUp.sync)({
39
39
  }).packageJson;
40
40
  const logger = console;
41
41
 
42
+ _commander.default.option('--disable-telemetry', 'disable sending telemetry data', // default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true
43
+ process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false');
44
+
45
+ _commander.default.option('--enable-crash-reports', 'enable sending crash reports to telemetry data');
46
+
42
47
  _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('-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));
43
48
 
44
49
  _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));
@@ -55,7 +55,7 @@ const generator = async (packageManager, npmOptions, options) => {
55
55
  const updatedOptions = isWebpack5 ? Object.assign({}, options, {
56
56
  builder: _project_types.CoreBuilder.Webpack5
57
57
  }) : options;
58
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, updatedOptions, 'angular', {
58
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, updatedOptions, 'angular', {
59
59
  extraPackages: ['@compodoc/compodoc'],
60
60
  addScripts: false
61
61
  });
@@ -33,7 +33,7 @@ function addStorybookExcludeGlobToTsConfig() {
33
33
 
34
34
  const generator = async (packageManager, npmOptions, options) => {
35
35
  addStorybookExcludeGlobToTsConfig();
36
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'aurelia', {
36
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'aurelia', {
37
37
  extraPackages: ['aurelia']
38
38
  });
39
39
  (0, _helpers.copyTemplate)(__dirname);
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'ember', {
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'ember', {
14
14
  extraPackages: [// babel-plugin-ember-modules-api-polyfill is a peerDep of @storybook/ember
15
15
  'babel-plugin-ember-modules-api-polyfill', // babel-plugin-htmlbars-inline-precompile is a peerDep of @storybook/ember
16
16
  'babel-plugin-htmlbars-inline-precompile'],
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'html');
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'html');
14
14
  };
15
15
 
16
16
  var _default = generator;
@@ -16,7 +16,7 @@ var _baseGenerator = require("../baseGenerator");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
18
  const generator = async (packageManager, npmOptions, options) => {
19
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'react', {
19
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'react', {
20
20
  extraPackages: ['react', 'react-dom', '@babel/preset-env', '@babel/preset-react'],
21
21
  staticDir: 'dist'
22
22
  }); // create or update .babelrc
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'mithril');
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'mithril');
14
14
  };
15
15
 
16
16
  var _default = generator;
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'preact', {
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'preact', {
14
14
  extraPackages: ['core-js']
15
15
  });
16
16
  };
@@ -23,7 +23,7 @@ const generator = async (packageManager, npmOptions, options) => {
23
23
  packageJson.dependencies['rax-text'] = packageJson.dependencies['rax-text'] || raxVersion;
24
24
  packageJson.dependencies['rax-view'] = packageJson.dependencies['rax-view'] || raxVersion;
25
25
  (0, _jsPackageManager.writePackageJson)(packageJson);
26
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'rax', {
26
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'rax', {
27
27
  extraPackages: ['rax']
28
28
  });
29
29
  };
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'riot', {
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'riot', {
14
14
  extraPackages: ['riot-tag-loader']
15
15
  });
16
16
  };
@@ -12,7 +12,7 @@ var _baseGenerator = require("../baseGenerator");
12
12
  var _helpers = require("../../helpers");
13
13
 
14
14
  const generator = async (packageManager, npmOptions, options) => {
15
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'server', {
15
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'server', {
16
16
  extensions: ['json']
17
17
  });
18
18
  (0, _helpers.copyTemplate)(__dirname);
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue');
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue');
14
14
  };
15
15
 
16
16
  var _default = generator;
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue', {
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue', {
14
14
  extraPackages: ['vue-loader@^15.7.0']
15
15
  });
16
16
  };
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue3', {
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'vue3', {
14
14
  extraPackages: ['vue-loader@^16.0.0']
15
15
  });
16
16
  };
@@ -10,7 +10,7 @@ require("core-js/modules/es.promise.js");
10
10
  var _baseGenerator = require("../baseGenerator");
11
11
 
12
12
  const generator = async (packageManager, npmOptions, options) => {
13
- (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'react');
13
+ await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'react');
14
14
  };
15
15
 
16
16
  var _default = generator;
@@ -56,7 +56,7 @@ const builderDependencies = builder => {
56
56
 
57
57
  const stripVersions = addons => addons.map(addon => (0, _jsPackageManager.getPackageDetails)(addon)[0]);
58
58
 
59
- const hasInteractiveStories = framework => ['react', 'angular', 'preact', 'svelte', 'vue3'].includes(framework);
59
+ const hasInteractiveStories = framework => ['react', 'angular', 'preact', 'svelte', 'vue', 'vue3', 'html'].includes(framework);
60
60
 
61
61
  async function baseGenerator(packageManager, npmOptions, {
62
62
  language,
@@ -15,10 +15,12 @@ var _chalk = _interopRequireDefault(require("chalk"));
15
15
 
16
16
  var _prompts = _interopRequireDefault(require("prompts"));
17
17
 
18
- var _detect = require("./detect");
18
+ var _telemetry = require("@storybook/telemetry");
19
19
 
20
20
  var _project_types = require("./project_types");
21
21
 
22
+ var _detect = require("./detect");
23
+
22
24
  var _helpers = require("./helpers");
23
25
 
24
26
  var _ANGULAR = _interopRequireDefault(require("./generators/ANGULAR"));
@@ -73,9 +75,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
73
75
 
74
76
  const logger = console;
75
77
 
76
- const installStorybook = (projectType, options) => {
77
- const packageManager = _jsPackageManager.JsPackageManagerFactory.getPackageManager(options.useNpm);
78
-
78
+ const installStorybook = (projectType, packageManager, options) => {
79
79
  const npmOptions = {
80
80
  installAsDevDependencies: true,
81
81
  skipInstall: options.skipInstall
@@ -213,7 +213,7 @@ const installStorybook = (projectType, options) => {
213
213
  (0, _helpers.paddedLog)('You can specify a project type explicitly via `sb init --type <type>`, see our docs on how to configure Storybook for your framework: https://storybook.js.org/docs/react/get-started/install'); // Add a new line for the clear visibility.
214
214
 
215
215
  logger.log();
216
- return projectTypeInquirer(options);
216
+ return projectTypeInquirer(options, packageManager);
217
217
  }
218
218
  };
219
219
 
@@ -223,7 +223,7 @@ const installStorybook = (projectType, options) => {
223
223
  });
224
224
  };
225
225
 
226
- const projectTypeInquirer = async options => {
226
+ const projectTypeInquirer = async (options, packageManager) => {
227
227
  const manualAnswer = options.yes ? true : await (0, _prompts.default)([{
228
228
  type: 'confirm',
229
229
  name: 'manual',
@@ -240,15 +240,22 @@ const projectTypeInquirer = async options => {
240
240
  value: type.toUpperCase()
241
241
  }))
242
242
  }]);
243
- return installStorybook(frameworkAnswer.manualFramework, options);
243
+ return installStorybook(frameworkAnswer.manualFramework, packageManager, options);
244
244
  }
245
245
 
246
246
  return Promise.resolve();
247
247
  };
248
248
 
249
249
  async function initiate(options, pkg) {
250
+ const packageManager = _jsPackageManager.JsPackageManagerFactory.getPackageManager(options.useNpm);
251
+
250
252
  const welcomeMessage = 'sb init - the simplest way to add a Storybook to your project.';
251
- logger.log(_chalk.default.inverse(`\n ${welcomeMessage} \n`)); // Update notify code.
253
+ logger.log(_chalk.default.inverse(`\n ${welcomeMessage} \n`));
254
+
255
+ if (!options.disableTelemetry) {
256
+ (0, _telemetry.telemetry)('init');
257
+ } // Update notify code.
258
+
252
259
 
253
260
  new _updateNotifier.UpdateNotifier({
254
261
  pkg,
@@ -259,7 +266,7 @@ async function initiate(options, pkg) {
259
266
  const projectTypeProvided = options.type;
260
267
  const infoText = projectTypeProvided ? `Installing Storybook for user specified project type: ${projectTypeProvided}` : 'Detecting project type';
261
268
  const done = (0, _helpers.commandLog)(infoText);
262
- const packageJson = (0, _jsPackageManager.readPackageJson)();
269
+ const packageJson = packageManager.retrievePackageJson();
263
270
  const isEsm = packageJson && packageJson.type === 'module';
264
271
 
265
272
  try {
@@ -286,7 +293,7 @@ async function initiate(options, pkg) {
286
293
  }
287
294
 
288
295
  done();
289
- await installStorybook(projectType, Object.assign({}, options, isEsm ? {
296
+ await installStorybook(projectType, packageManager, Object.assign({}, options, isEsm ? {
290
297
  commonJs: true
291
298
  } : undefined));
292
299
  await (0, _automigrate.automigrate)();
@@ -74,13 +74,13 @@ class JsPackageManager {
74
74
 
75
75
 
76
76
  retrievePackageJson() {
77
- let packageJson = (0, _PackageJsonHelper.readPackageJson)();
77
+ let packageJson;
78
78
 
79
- if (!packageJson) {
80
- // It will create a new package.json file
81
- this.initPackageJson(); // read the newly created package.json file
82
-
83
- packageJson = (0, _PackageJsonHelper.readPackageJson)() || {};
79
+ try {
80
+ packageJson = (0, _PackageJsonHelper.readPackageJson)();
81
+ } catch (err) {
82
+ this.initPackageJson();
83
+ packageJson = (0, _PackageJsonHelper.readPackageJson)();
84
84
  }
85
85
 
86
86
  return Object.assign({}, packageJson, {
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -16,7 +16,7 @@ function readPackageJson() {
16
16
  const packageJsonPath = _path.default.resolve('package.json');
17
17
 
18
18
  if (!_fs.default.existsSync(packageJsonPath)) {
19
- return false;
19
+ throw new Error(`Could not read package.json file at ${packageJsonPath}`);
20
20
  }
21
21
 
22
22
  const jsonContent = _fs.default.readFileSync(packageJsonPath, 'utf8');
@@ -11,6 +11,8 @@ require("core-js/modules/es.promise.js");
11
11
 
12
12
  var _crossSpawn = require("cross-spawn");
13
13
 
14
+ var _telemetry = require("@storybook/telemetry");
15
+
14
16
  var _semver = _interopRequireDefault(require("@storybook/semver"));
15
17
 
16
18
  var _nodeLogger = require("@storybook/node-logger");
@@ -21,8 +23,12 @@ var _helpers = require("./helpers");
21
23
 
22
24
  var _automigrate = require("./automigrate");
23
25
 
26
+ const _excluded = ["prerelease", "skipCheck", "useNpm", "dryRun", "yes"];
27
+
24
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
29
 
30
+ 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; }
31
+
26
32
  const versionRegex = /(@storybook\/[^@]+)@(\S+)/;
27
33
 
28
34
  const getStorybookVersion = line => {
@@ -36,7 +42,7 @@ const getStorybookVersion = line => {
36
42
  };
37
43
 
38
44
  exports.getStorybookVersion = getStorybookVersion;
39
- const excludeList = ['@storybook/linter-config', '@storybook/design-system', '@storybook/ember-cli-storybook', '@storybook/semver', '@storybook/eslint-config-storybook', '@storybook/bench', '@storybook/addon-bench', '@storybook/addon-console', '@storybook/csf', '@storybook/storybook-deployer', '@storybook/addon-postcss', '@storybook/react-docgen-typescript-plugin', '@storybook/babel-plugin-require-context-hook', '@storybook/builder-vite', '@storybook/mdx1-csf', '@storybook/mdx2-csf'];
45
+ const excludeList = ['@storybook/linter-config', '@storybook/design-system', '@storybook/ember-cli-storybook', '@storybook/semver', '@storybook/eslint-config-storybook', '@storybook/bench', '@storybook/addon-bench', '@storybook/addon-console', '@storybook/csf', '@storybook/storybook-deployer', '@storybook/addon-postcss', '@storybook/react-docgen-typescript-plugin', '@storybook/babel-plugin-require-context-hook', '@storybook/builder-vite', '@storybook/mdx1-csf', '@storybook/mdx2-csf', '@storybook/expect', '@storybook/jest', '@storybook/test-runner', '@storybook/testing-library'];
40
46
 
41
47
  const isCorePackage = pkg => pkg.startsWith('@storybook/') && !pkg.startsWith('@storybook/preset-') && !excludeList.includes(pkg);
42
48
 
@@ -120,16 +126,26 @@ const addExtraFlags = (extraFlags, flags, {
120
126
 
121
127
  exports.addExtraFlags = addExtraFlags;
122
128
 
123
- const upgrade = async ({
124
- prerelease,
125
- skipCheck,
126
- useNpm,
127
- dryRun,
128
- yes
129
- }) => {
129
+ const upgrade = async _ref => {
130
+ let {
131
+ prerelease,
132
+ skipCheck,
133
+ useNpm,
134
+ dryRun,
135
+ yes
136
+ } = _ref,
137
+ options = _objectWithoutPropertiesLoose(_ref, _excluded);
138
+
130
139
  const packageManager = _jsPackageManager.JsPackageManagerFactory.getPackageManager(useNpm);
131
140
 
132
141
  (0, _helpers.commandLog)(`Checking for latest versions of '@storybook/*' packages`);
142
+
143
+ if (!options.disableTelemetry) {
144
+ (0, _telemetry.telemetry)('upgrade', {
145
+ prerelease
146
+ });
147
+ }
148
+
133
149
  let flags = [];
134
150
  if (!dryRun) flags.push('--upgrade');
135
151
  flags.push('--target');