@storybook/cli 7.0.0-alpha.2 → 7.0.0-alpha.20

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 (378) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/add.js +0 -2
  3. package/dist/cjs/automigrate/fixes/angular12.js +2 -4
  4. package/dist/cjs/automigrate/fixes/builder-vite.js +2 -4
  5. package/dist/cjs/automigrate/fixes/cra5.js +2 -4
  6. package/dist/cjs/automigrate/fixes/eslint-plugin.js +3 -5
  7. package/dist/cjs/automigrate/fixes/index.js +7 -1
  8. package/dist/cjs/automigrate/fixes/mainjsFramework.js +3 -5
  9. package/dist/cjs/automigrate/fixes/new-frameworks.js +249 -0
  10. package/dist/cjs/automigrate/fixes/npm7.js +57 -0
  11. package/dist/cjs/automigrate/fixes/sb-scripts.js +140 -0
  12. package/dist/cjs/automigrate/fixes/vue3.js +2 -4
  13. package/dist/cjs/automigrate/fixes/webpack5.js +5 -7
  14. package/dist/cjs/automigrate/index.js +1 -3
  15. package/dist/cjs/babel-config.js +0 -2
  16. package/dist/cjs/build.js +0 -2
  17. package/dist/cjs/dev.js +3 -7
  18. package/dist/cjs/dirs.js +12 -0
  19. package/dist/cjs/extract.js +0 -2
  20. package/dist/cjs/generate.js +21 -7
  21. package/dist/cjs/generators/ANGULAR/angular-helpers.js +0 -2
  22. package/dist/cjs/generators/ANGULAR/index.js +0 -2
  23. package/dist/cjs/generators/ANGULAR/template-csf/.storybook/tsconfig.json +5 -16
  24. package/dist/cjs/generators/AURELIA/index.js +0 -2
  25. package/dist/cjs/generators/AURELIA/template-csf/.storybook/tsconfig.json +5 -16
  26. package/dist/cjs/generators/EMBER/index.js +0 -2
  27. package/dist/cjs/generators/HTML/index.js +0 -2
  28. package/dist/cjs/generators/MARIONETTE/index.js +0 -2
  29. package/dist/cjs/generators/MARKO/index.js +0 -2
  30. package/dist/cjs/generators/MITHRIL/index.js +0 -2
  31. package/dist/cjs/generators/PREACT/index.js +0 -2
  32. package/dist/cjs/generators/RAX/index.js +0 -2
  33. package/dist/cjs/generators/REACT/index.js +0 -2
  34. package/dist/cjs/generators/REACT_NATIVE/index.js +0 -2
  35. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/addons.js +7 -3
  36. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/index.js +21 -15
  37. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +5 -2
  38. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/Button/Button.stories.js +23 -20
  39. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/Button/index.js +25 -10
  40. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/CenterView/index.js +25 -10
  41. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/CenterView/style.js +10 -3
  42. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/Welcome/Welcome.stories.js +14 -5
  43. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/Welcome/index.js +60 -49
  44. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/stories/index.js +5 -2
  45. package/dist/cjs/generators/REACT_SCRIPTS/index.js +4 -6
  46. package/dist/cjs/generators/RIOT/index.js +0 -2
  47. package/dist/cjs/generators/SERVER/index.js +0 -2
  48. package/dist/cjs/generators/SERVER/template-csf/.storybook/preview.js +10 -3
  49. package/dist/cjs/generators/SFC_VUE/index.js +0 -2
  50. package/dist/cjs/generators/SVELTE/index.js +2 -6
  51. package/dist/cjs/generators/VUE/index.js +0 -2
  52. package/dist/cjs/generators/VUE3/index.js +0 -2
  53. package/dist/cjs/generators/WEB-COMPONENTS/index.js +0 -2
  54. package/dist/cjs/generators/WEBPACK_REACT/index.js +0 -2
  55. package/dist/cjs/generators/baseGenerator.js +11 -11
  56. package/dist/cjs/generators/configure.js +4 -6
  57. package/dist/cjs/helpers.js +28 -5
  58. package/dist/cjs/initiate.js +0 -4
  59. package/dist/cjs/js-package-manager/JsPackageManager.js +48 -14
  60. package/dist/cjs/js-package-manager/NPMProxy.js +32 -2
  61. package/dist/cjs/js-package-manager/Yarn1Proxy.js +5 -0
  62. package/dist/cjs/js-package-manager/Yarn2Proxy.js +5 -0
  63. package/dist/cjs/link.js +8 -7
  64. package/dist/cjs/migrate.js +0 -2
  65. package/dist/cjs/repro-generators/scripts.js +30 -9
  66. package/dist/cjs/repro-next.js +182 -0
  67. package/dist/cjs/repro-templates.js +41 -0
  68. package/dist/cjs/repro.js +5 -7
  69. package/dist/cjs/upgrade.js +0 -4
  70. package/dist/cjs/versions.js +75 -73
  71. package/dist/esm/NpmOptions.js +0 -1
  72. package/dist/esm/add.js +24 -54
  73. package/dist/esm/automigrate/fixes/angular12.js +14 -32
  74. package/dist/esm/automigrate/fixes/builder-vite.js +16 -34
  75. package/dist/esm/automigrate/fixes/cra5.js +15 -33
  76. package/dist/esm/automigrate/fixes/eslint-plugin.js +16 -33
  77. package/dist/esm/automigrate/fixes/index.js +12 -39
  78. package/dist/esm/automigrate/fixes/mainjsFramework.js +17 -37
  79. package/dist/esm/automigrate/fixes/new-frameworks.js +225 -0
  80. package/dist/esm/automigrate/fixes/npm7.js +45 -0
  81. package/dist/esm/automigrate/fixes/sb-scripts.js +119 -0
  82. package/dist/esm/automigrate/fixes/vue3.js +15 -34
  83. package/dist/esm/automigrate/fixes/webpack5.js +25 -47
  84. package/dist/esm/automigrate/helpers/getEslintInfo.js +6 -20
  85. package/dist/esm/automigrate/index.js +19 -39
  86. package/dist/esm/automigrate/types.js +1 -5
  87. package/dist/esm/babel-config.js +14 -39
  88. package/dist/esm/build.js +10 -26
  89. package/dist/esm/detect-nextjs.js +2 -11
  90. package/dist/esm/detect-webpack.js +2 -11
  91. package/dist/esm/detect.js +33 -61
  92. package/dist/esm/dev.js +20 -43
  93. package/dist/esm/dirs.js +4 -0
  94. package/dist/esm/extract.js +17 -35
  95. package/dist/esm/generate.js +72 -111
  96. package/dist/esm/generators/ANGULAR/angular-helpers.js +17 -43
  97. package/dist/esm/generators/ANGULAR/index.js +17 -38
  98. package/dist/esm/generators/ANGULAR/template-csf/.storybook/tsconfig.json +5 -16
  99. package/dist/esm/generators/AURELIA/index.js +7 -18
  100. package/dist/esm/generators/AURELIA/template-csf/.storybook/tsconfig.json +5 -16
  101. package/dist/esm/generators/EMBER/index.js +3 -13
  102. package/dist/esm/generators/HTML/index.js +3 -13
  103. package/dist/esm/generators/MARIONETTE/index.js +3 -13
  104. package/dist/esm/generators/MARKO/index.js +3 -13
  105. package/dist/esm/generators/MITHRIL/index.js +3 -13
  106. package/dist/esm/generators/PREACT/index.js +3 -13
  107. package/dist/esm/generators/RAX/index.js +5 -16
  108. package/dist/esm/generators/REACT/index.js +3 -13
  109. package/dist/esm/generators/REACT_NATIVE/index.js +9 -24
  110. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/addons.js +1 -1
  111. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/index.js +6 -13
  112. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  113. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/Button/Button.stories.js +5 -13
  114. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/Button/index.js +10 -8
  115. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/CenterView/index.js +9 -8
  116. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/CenterView/style.js +3 -3
  117. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/Welcome/Welcome.stories.js +3 -2
  118. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/Welcome/index.js +41 -44
  119. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/stories/index.js +1 -1
  120. package/dist/esm/generators/REACT_SCRIPTS/index.js +16 -37
  121. package/dist/esm/generators/RIOT/index.js +3 -13
  122. package/dist/esm/generators/SERVER/index.js +5 -16
  123. package/dist/esm/generators/SERVER/template-csf/.storybook/preview.js +3 -3
  124. package/dist/esm/generators/SFC_VUE/index.js +3 -13
  125. package/dist/esm/generators/SVELTE/index.js +12 -31
  126. package/dist/esm/generators/VUE/index.js +3 -13
  127. package/dist/esm/generators/VUE3/index.js +3 -13
  128. package/dist/esm/generators/WEB-COMPONENTS/index.js +3 -13
  129. package/dist/esm/generators/WEBPACK_REACT/index.js +3 -13
  130. package/dist/esm/generators/baseGenerator.js +32 -49
  131. package/dist/esm/generators/configure.js +10 -26
  132. package/dist/esm/generators/types.js +1 -5
  133. package/dist/esm/helpers.js +65 -94
  134. package/dist/esm/initiate.js +105 -150
  135. package/dist/esm/js-package-manager/JsPackageManager.js +72 -59
  136. package/dist/esm/js-package-manager/JsPackageManagerFactory.js +12 -26
  137. package/dist/esm/js-package-manager/NPMProxy.js +36 -19
  138. package/dist/esm/js-package-manager/PackageJson.js +1 -5
  139. package/dist/esm/js-package-manager/PackageJsonHelper.js +9 -25
  140. package/dist/esm/js-package-manager/Yarn1Proxy.js +8 -13
  141. package/dist/esm/js-package-manager/Yarn2Proxy.js +8 -13
  142. package/dist/esm/js-package-manager/index.js +4 -57
  143. package/dist/esm/link.js +35 -64
  144. package/dist/esm/migrate.js +4 -14
  145. package/dist/esm/project_types.js +13 -28
  146. package/dist/esm/repro-generators/configs.js +21 -48
  147. package/dist/esm/repro-generators/scripts.js +61 -71
  148. package/dist/esm/repro-next.js +163 -0
  149. package/dist/esm/repro-templates.js +34 -0
  150. package/dist/esm/repro.js +29 -55
  151. package/dist/esm/upgrade.js +33 -75
  152. package/dist/esm/utils.js +2 -11
  153. package/dist/esm/versions.js +77 -82
  154. package/dist/esm/warn.js +9 -25
  155. package/dist/esm/window.d.js +1 -5
  156. package/dist/types/automigrate/fixes/new-frameworks.d.ts +31 -0
  157. package/dist/types/automigrate/fixes/npm7.d.ts +9 -0
  158. package/dist/types/automigrate/fixes/sb-scripts.d.ts +23 -0
  159. package/dist/types/dirs.d.ts +1 -0
  160. package/dist/types/generators/baseGenerator.d.ts +1 -1
  161. package/dist/types/generators/types.d.ts +2 -0
  162. package/dist/types/helpers.d.ts +1 -0
  163. package/dist/types/js-package-manager/JsPackageManager.d.ts +16 -0
  164. package/dist/types/js-package-manager/NPMProxy.d.ts +7 -0
  165. package/dist/types/js-package-manager/Yarn1Proxy.d.ts +1 -0
  166. package/dist/types/js-package-manager/Yarn2Proxy.d.ts +1 -0
  167. package/dist/types/link.d.ts +2 -1
  168. package/dist/types/repro-generators/scripts.d.ts +4 -2
  169. package/dist/types/repro-next.d.ts +8 -0
  170. package/dist/types/repro-templates.d.ts +23 -0
  171. package/dist/types/repro.d.ts +2 -1
  172. package/dist/types/versions.d.ts +3 -1
  173. package/package.json +15 -10
  174. package/LICENSE +0 -21
  175. package/dist/cjs/frameworks/angular/Button.stories.ts +0 -44
  176. package/dist/cjs/frameworks/angular/Header.stories.ts +0 -35
  177. package/dist/cjs/frameworks/angular/Page.stories.ts +0 -36
  178. package/dist/cjs/frameworks/angular/User.ts +0 -2
  179. package/dist/cjs/frameworks/angular/button.component.ts +0 -53
  180. package/dist/cjs/frameworks/angular/header.component.ts +0 -75
  181. package/dist/cjs/frameworks/angular/page.component.ts +0 -77
  182. package/dist/cjs/frameworks/aurelia/1-Button.stories.ts +0 -49
  183. package/dist/cjs/frameworks/aurelia/button.ts +0 -28
  184. package/dist/cjs/frameworks/common/Introduction.stories.mdx +0 -211
  185. package/dist/cjs/frameworks/common/assets/code-brackets.svg +0 -1
  186. package/dist/cjs/frameworks/common/assets/colors.svg +0 -1
  187. package/dist/cjs/frameworks/common/assets/comments.svg +0 -1
  188. package/dist/cjs/frameworks/common/assets/direction.svg +0 -1
  189. package/dist/cjs/frameworks/common/assets/flow.svg +0 -1
  190. package/dist/cjs/frameworks/common/assets/plugin.svg +0 -1
  191. package/dist/cjs/frameworks/common/assets/repo.svg +0 -1
  192. package/dist/cjs/frameworks/common/assets/stackalt.svg +0 -1
  193. package/dist/cjs/frameworks/common/button.css +0 -30
  194. package/dist/cjs/frameworks/common/header.css +0 -32
  195. package/dist/cjs/frameworks/common/page.css +0 -69
  196. package/dist/cjs/frameworks/ember/1-Button.stories.js +0 -57
  197. package/dist/cjs/frameworks/html/js/Button.js +0 -21
  198. package/dist/cjs/frameworks/html/js/Button.stories.js +0 -48
  199. package/dist/cjs/frameworks/html/js/Header.js +0 -47
  200. package/dist/cjs/frameworks/html/js/Header.stories.js +0 -27
  201. package/dist/cjs/frameworks/html/js/Page.js +0 -94
  202. package/dist/cjs/frameworks/html/js/Page.stories.js +0 -23
  203. package/dist/cjs/frameworks/html/ts/Button.stories.ts +0 -49
  204. package/dist/cjs/frameworks/html/ts/Button.ts +0 -47
  205. package/dist/cjs/frameworks/html/ts/Header.stories.ts +0 -26
  206. package/dist/cjs/frameworks/html/ts/Header.ts +0 -54
  207. package/dist/cjs/frameworks/html/ts/Page.stories.ts +0 -24
  208. package/dist/cjs/frameworks/html/ts/Page.ts +0 -98
  209. package/dist/cjs/frameworks/marionette/index.stories.js +0 -20
  210. package/dist/cjs/frameworks/marko/1-Button.stories.js +0 -24
  211. package/dist/cjs/frameworks/marko/Button.marko +0 -13
  212. package/dist/cjs/frameworks/mithril/Button.js +0 -22
  213. package/dist/cjs/frameworks/mithril/Button.stories.js +0 -43
  214. package/dist/cjs/frameworks/mithril/Header.js +0 -51
  215. package/dist/cjs/frameworks/mithril/Header.stories.js +0 -20
  216. package/dist/cjs/frameworks/mithril/Page.js +0 -70
  217. package/dist/cjs/frameworks/mithril/Page.stories.js +0 -24
  218. package/dist/cjs/frameworks/preact/Button.jsx +0 -51
  219. package/dist/cjs/frameworks/preact/Button.stories.jsx +0 -41
  220. package/dist/cjs/frameworks/preact/Header.jsx +0 -58
  221. package/dist/cjs/frameworks/preact/Header.stories.jsx +0 -29
  222. package/dist/cjs/frameworks/preact/Page.jsx +0 -71
  223. package/dist/cjs/frameworks/preact/Page.stories.jsx +0 -26
  224. package/dist/cjs/frameworks/rax/Button.js +0 -26
  225. package/dist/cjs/frameworks/rax/Button.stories.js +0 -40
  226. package/dist/cjs/frameworks/rax/Header.js +0 -44
  227. package/dist/cjs/frameworks/rax/Header.stories.js +0 -17
  228. package/dist/cjs/frameworks/rax/Page.js +0 -64
  229. package/dist/cjs/frameworks/rax/Page.stories.js +0 -21
  230. package/dist/cjs/frameworks/react/js/Button.jsx +0 -50
  231. package/dist/cjs/frameworks/react/js/Button.stories.jsx +0 -40
  232. package/dist/cjs/frameworks/react/js/Header.jsx +0 -57
  233. package/dist/cjs/frameworks/react/js/Header.stories.jsx +0 -24
  234. package/dist/cjs/frameworks/react/js/Page.jsx +0 -69
  235. package/dist/cjs/frameworks/react/js/Page.stories.jsx +0 -25
  236. package/dist/cjs/frameworks/react/ts/Button.stories.tsx +0 -41
  237. package/dist/cjs/frameworks/react/ts/Button.tsx +0 -48
  238. package/dist/cjs/frameworks/react/ts/Header.stories.tsx +0 -25
  239. package/dist/cjs/frameworks/react/ts/Header.tsx +0 -56
  240. package/dist/cjs/frameworks/react/ts/Page.stories.tsx +0 -26
  241. package/dist/cjs/frameworks/react/ts/Page.tsx +0 -73
  242. package/dist/cjs/frameworks/riot/1-Button.stories.js +0 -52
  243. package/dist/cjs/frameworks/riot/MyButton.tag +0 -24
  244. package/dist/cjs/frameworks/server/button.stories.json +0 -32
  245. package/dist/cjs/frameworks/server/header.stories.json +0 -15
  246. package/dist/cjs/frameworks/server/page.stories.json +0 -15
  247. package/dist/cjs/frameworks/svelte/Button.stories.js +0 -51
  248. package/dist/cjs/frameworks/svelte/Button.svelte +0 -42
  249. package/dist/cjs/frameworks/svelte/Header.stories.js +0 -35
  250. package/dist/cjs/frameworks/svelte/Header.svelte +0 -51
  251. package/dist/cjs/frameworks/svelte/Page.stories.js +0 -27
  252. package/dist/cjs/frameworks/svelte/Page.svelte +0 -63
  253. package/dist/cjs/frameworks/vue/Button.stories.js +0 -46
  254. package/dist/cjs/frameworks/vue/Button.vue +0 -54
  255. package/dist/cjs/frameworks/vue/Header.stories.js +0 -27
  256. package/dist/cjs/frameworks/vue/Header.vue +0 -60
  257. package/dist/cjs/frameworks/vue/Page.stories.js +0 -27
  258. package/dist/cjs/frameworks/vue/Page.vue +0 -88
  259. package/dist/cjs/frameworks/vue3/Button.stories.js +0 -52
  260. package/dist/cjs/frameworks/vue3/Button.vue +0 -52
  261. package/dist/cjs/frameworks/vue3/Header.stories.js +0 -34
  262. package/dist/cjs/frameworks/vue3/Header.vue +0 -50
  263. package/dist/cjs/frameworks/vue3/Page.stories.js +0 -29
  264. package/dist/cjs/frameworks/vue3/Page.vue +0 -88
  265. package/dist/cjs/frameworks/web-components/js/Button.js +0 -21
  266. package/dist/cjs/frameworks/web-components/js/Button.stories.js +0 -42
  267. package/dist/cjs/frameworks/web-components/js/Header.js +0 -45
  268. package/dist/cjs/frameworks/web-components/js/Header.stories.js +0 -15
  269. package/dist/cjs/frameworks/web-components/js/Page.js +0 -61
  270. package/dist/cjs/frameworks/web-components/js/Page.stories.js +0 -19
  271. package/dist/cjs/frameworks/web-components/ts/Button.stories.ts +0 -43
  272. package/dist/cjs/frameworks/web-components/ts/Button.ts +0 -43
  273. package/dist/cjs/frameworks/web-components/ts/Header.stories.ts +0 -16
  274. package/dist/cjs/frameworks/web-components/ts/Header.ts +0 -52
  275. package/dist/cjs/frameworks/web-components/ts/Page.stories.ts +0 -20
  276. package/dist/cjs/frameworks/web-components/ts/Page.ts +0 -68
  277. package/dist/esm/frameworks/angular/Button.stories.ts +0 -44
  278. package/dist/esm/frameworks/angular/Header.stories.ts +0 -35
  279. package/dist/esm/frameworks/angular/Page.stories.ts +0 -36
  280. package/dist/esm/frameworks/angular/User.ts +0 -2
  281. package/dist/esm/frameworks/angular/button.component.ts +0 -53
  282. package/dist/esm/frameworks/angular/header.component.ts +0 -75
  283. package/dist/esm/frameworks/angular/page.component.ts +0 -77
  284. package/dist/esm/frameworks/aurelia/1-Button.stories.ts +0 -49
  285. package/dist/esm/frameworks/aurelia/button.ts +0 -28
  286. package/dist/esm/frameworks/common/Introduction.stories.mdx +0 -211
  287. package/dist/esm/frameworks/common/assets/code-brackets.svg +0 -1
  288. package/dist/esm/frameworks/common/assets/colors.svg +0 -1
  289. package/dist/esm/frameworks/common/assets/comments.svg +0 -1
  290. package/dist/esm/frameworks/common/assets/direction.svg +0 -1
  291. package/dist/esm/frameworks/common/assets/flow.svg +0 -1
  292. package/dist/esm/frameworks/common/assets/plugin.svg +0 -1
  293. package/dist/esm/frameworks/common/assets/repo.svg +0 -1
  294. package/dist/esm/frameworks/common/assets/stackalt.svg +0 -1
  295. package/dist/esm/frameworks/common/button.css +0 -30
  296. package/dist/esm/frameworks/common/header.css +0 -32
  297. package/dist/esm/frameworks/common/page.css +0 -69
  298. package/dist/esm/frameworks/ember/1-Button.stories.js +0 -57
  299. package/dist/esm/frameworks/html/js/Button.js +0 -21
  300. package/dist/esm/frameworks/html/js/Button.stories.js +0 -48
  301. package/dist/esm/frameworks/html/js/Header.js +0 -47
  302. package/dist/esm/frameworks/html/js/Header.stories.js +0 -27
  303. package/dist/esm/frameworks/html/js/Page.js +0 -94
  304. package/dist/esm/frameworks/html/js/Page.stories.js +0 -23
  305. package/dist/esm/frameworks/html/ts/Button.stories.ts +0 -49
  306. package/dist/esm/frameworks/html/ts/Button.ts +0 -47
  307. package/dist/esm/frameworks/html/ts/Header.stories.ts +0 -26
  308. package/dist/esm/frameworks/html/ts/Header.ts +0 -54
  309. package/dist/esm/frameworks/html/ts/Page.stories.ts +0 -24
  310. package/dist/esm/frameworks/html/ts/Page.ts +0 -98
  311. package/dist/esm/frameworks/marionette/index.stories.js +0 -20
  312. package/dist/esm/frameworks/marko/1-Button.stories.js +0 -24
  313. package/dist/esm/frameworks/marko/Button.marko +0 -13
  314. package/dist/esm/frameworks/mithril/Button.js +0 -22
  315. package/dist/esm/frameworks/mithril/Button.stories.js +0 -43
  316. package/dist/esm/frameworks/mithril/Header.js +0 -51
  317. package/dist/esm/frameworks/mithril/Header.stories.js +0 -20
  318. package/dist/esm/frameworks/mithril/Page.js +0 -70
  319. package/dist/esm/frameworks/mithril/Page.stories.js +0 -24
  320. package/dist/esm/frameworks/preact/Button.jsx +0 -51
  321. package/dist/esm/frameworks/preact/Button.stories.jsx +0 -41
  322. package/dist/esm/frameworks/preact/Header.jsx +0 -58
  323. package/dist/esm/frameworks/preact/Header.stories.jsx +0 -29
  324. package/dist/esm/frameworks/preact/Page.jsx +0 -71
  325. package/dist/esm/frameworks/preact/Page.stories.jsx +0 -26
  326. package/dist/esm/frameworks/rax/Button.js +0 -26
  327. package/dist/esm/frameworks/rax/Button.stories.js +0 -40
  328. package/dist/esm/frameworks/rax/Header.js +0 -44
  329. package/dist/esm/frameworks/rax/Header.stories.js +0 -17
  330. package/dist/esm/frameworks/rax/Page.js +0 -64
  331. package/dist/esm/frameworks/rax/Page.stories.js +0 -21
  332. package/dist/esm/frameworks/react/js/Button.jsx +0 -50
  333. package/dist/esm/frameworks/react/js/Button.stories.jsx +0 -40
  334. package/dist/esm/frameworks/react/js/Header.jsx +0 -57
  335. package/dist/esm/frameworks/react/js/Header.stories.jsx +0 -24
  336. package/dist/esm/frameworks/react/js/Page.jsx +0 -69
  337. package/dist/esm/frameworks/react/js/Page.stories.jsx +0 -25
  338. package/dist/esm/frameworks/react/ts/Button.stories.tsx +0 -41
  339. package/dist/esm/frameworks/react/ts/Button.tsx +0 -48
  340. package/dist/esm/frameworks/react/ts/Header.stories.tsx +0 -25
  341. package/dist/esm/frameworks/react/ts/Header.tsx +0 -56
  342. package/dist/esm/frameworks/react/ts/Page.stories.tsx +0 -26
  343. package/dist/esm/frameworks/react/ts/Page.tsx +0 -73
  344. package/dist/esm/frameworks/riot/1-Button.stories.js +0 -52
  345. package/dist/esm/frameworks/riot/MyButton.tag +0 -24
  346. package/dist/esm/frameworks/server/button.stories.json +0 -32
  347. package/dist/esm/frameworks/server/header.stories.json +0 -15
  348. package/dist/esm/frameworks/server/page.stories.json +0 -15
  349. package/dist/esm/frameworks/svelte/Button.stories.js +0 -51
  350. package/dist/esm/frameworks/svelte/Button.svelte +0 -42
  351. package/dist/esm/frameworks/svelte/Header.stories.js +0 -35
  352. package/dist/esm/frameworks/svelte/Header.svelte +0 -51
  353. package/dist/esm/frameworks/svelte/Page.stories.js +0 -27
  354. package/dist/esm/frameworks/svelte/Page.svelte +0 -63
  355. package/dist/esm/frameworks/vue/Button.stories.js +0 -46
  356. package/dist/esm/frameworks/vue/Button.vue +0 -54
  357. package/dist/esm/frameworks/vue/Header.stories.js +0 -27
  358. package/dist/esm/frameworks/vue/Header.vue +0 -60
  359. package/dist/esm/frameworks/vue/Page.stories.js +0 -27
  360. package/dist/esm/frameworks/vue/Page.vue +0 -88
  361. package/dist/esm/frameworks/vue3/Button.stories.js +0 -52
  362. package/dist/esm/frameworks/vue3/Button.vue +0 -52
  363. package/dist/esm/frameworks/vue3/Header.stories.js +0 -34
  364. package/dist/esm/frameworks/vue3/Header.vue +0 -50
  365. package/dist/esm/frameworks/vue3/Page.stories.js +0 -29
  366. package/dist/esm/frameworks/vue3/Page.vue +0 -88
  367. package/dist/esm/frameworks/web-components/js/Button.js +0 -21
  368. package/dist/esm/frameworks/web-components/js/Button.stories.js +0 -42
  369. package/dist/esm/frameworks/web-components/js/Header.js +0 -45
  370. package/dist/esm/frameworks/web-components/js/Header.stories.js +0 -15
  371. package/dist/esm/frameworks/web-components/js/Page.js +0 -61
  372. package/dist/esm/frameworks/web-components/js/Page.stories.js +0 -19
  373. package/dist/esm/frameworks/web-components/ts/Button.stories.ts +0 -43
  374. package/dist/esm/frameworks/web-components/ts/Button.ts +0 -43
  375. package/dist/esm/frameworks/web-components/ts/Header.stories.ts +0 -16
  376. package/dist/esm/frameworks/web-components/ts/Header.ts +0 -52
  377. package/dist/esm/frameworks/web-components/ts/Page.stories.ts +0 -20
  378. package/dist/esm/frameworks/web-components/ts/Page.ts +0 -68
@@ -1,33 +1,24 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.web_components_typescript = exports.web_components_lit2 = exports.web_components = exports.vue3 = exports.vue = exports.svelte = exports.sfcVue = exports.react_typescript = exports.react_legacy_root_api = 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.angular = void 0;
7
-
8
1
  /* eslint-disable camelcase */
9
2
  const fromDeps = (...args) => ['mkdir {{appName}}', 'cd {{appName}}', // Create `yarn.lock` to force Yarn to consider adding deps in this directory
10
3
  // and not look for a yarn workspace in parent directory
11
4
  'touch yarn.lock', 'yarn init --yes', args.length && `yarn add ${args.join(' ')}`].filter(Boolean).join(' && '); // #region React
12
5
 
13
6
 
14
- const cra = {
7
+ export const cra = {
15
8
  renderer: 'react',
16
9
  name: 'cra',
17
10
  version: 'latest',
18
11
  generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
19
12
  '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(' && ')
20
13
  };
21
- exports.cra = cra;
22
- const cra_typescript = {
14
+ export const cra_typescript = {
23
15
  renderer: 'react',
24
16
  name: 'cra_typescript',
25
17
  version: 'latest',
26
18
  generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
27
19
  'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}} --template typescript'].join(' && ')
28
20
  };
29
- exports.cra_typescript = cra_typescript;
30
- const react = {
21
+ export const react = {
31
22
  renderer: 'react',
32
23
  name: 'react',
33
24
  version: 'latest',
@@ -38,8 +29,7 @@ const react = {
38
29
  contents: '{ "presets": ["@babel/preset-react"] }'
39
30
  }]
40
31
  };
41
- exports.react = react;
42
- const react_legacy_root_api = {
32
+ export const react_legacy_root_api = {
43
33
  renderer: 'react',
44
34
  name: 'react_legacy_root_api',
45
35
  version: 'latest',
@@ -55,8 +45,7 @@ const react_legacy_root_api = {
55
45
  }
56
46
  }
57
47
  };
58
- exports.react_legacy_root_api = react_legacy_root_api;
59
- const react_typescript = {
48
+ export const react_typescript = {
60
49
  renderer: 'react',
61
50
  name: 'react_typescript',
62
51
  version: 'latest',
@@ -74,8 +63,7 @@ const react_typescript = {
74
63
  // generator: 'npx -p create-vite@{{version}} create-vite {{appName}} --template react-ts',
75
64
  // };
76
65
 
77
- exports.react_typescript = react_typescript;
78
- const react_in_yarn_workspace = {
66
+ export const react_in_yarn_workspace = {
79
67
  renderer: 'react',
80
68
  name: 'react_in_yarn_workspace',
81
69
  version: 'latest',
@@ -83,29 +71,25 @@ const react_in_yarn_workspace = {
83
71
  }; // #endregion
84
72
  // #region Angular
85
73
 
86
- exports.react_in_yarn_workspace = react_in_yarn_workspace;
87
74
  const baseAngular = {
88
75
  renderer: 'angular',
89
76
  name: 'angular',
90
77
  version: 'latest',
91
78
  generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skip-install=true --strict`
92
79
  };
93
- const angular12 = Object.assign({}, baseAngular, {
80
+ export const angular12 = Object.assign({}, baseAngular, {
94
81
  name: 'angular12',
95
82
  version: 'v12-lts'
96
83
  });
97
- exports.angular12 = angular12;
98
- const angular130 = Object.assign({}, baseAngular, {
84
+ export const angular130 = Object.assign({}, baseAngular, {
99
85
  name: 'angular130',
100
86
  version: '13.0.x'
101
87
  });
102
- exports.angular130 = angular130;
103
- const angular13 = Object.assign({}, baseAngular, {
88
+ export const angular13 = Object.assign({}, baseAngular, {
104
89
  name: 'angular13',
105
90
  version: '13.1.x'
106
91
  });
107
- exports.angular13 = angular13;
108
- const angular_modern_inline_rendering = Object.assign({}, baseAngular, {
92
+ export const angular_modern_inline_rendering = Object.assign({}, baseAngular, {
109
93
  name: 'angular_modern_inline_rendering',
110
94
  additionalDeps: ['jest@27', '@storybook/test-runner'],
111
95
  mainOverrides: {
@@ -114,19 +98,16 @@ const angular_modern_inline_rendering = Object.assign({}, baseAngular, {
114
98
  }
115
99
  }
116
100
  });
117
- exports.angular_modern_inline_rendering = angular_modern_inline_rendering;
118
- const angular = baseAngular; // #endregion
101
+ export const angular = baseAngular; // #endregion
119
102
  // #region web components
120
103
 
121
- exports.angular = angular;
122
- const web_components = {
104
+ export const web_components = {
123
105
  renderer: 'web-components',
124
106
  name: 'web_components',
125
107
  version: '2',
126
108
  generator: fromDeps('lit-element')
127
109
  };
128
- exports.web_components = web_components;
129
- const web_components_typescript = Object.assign({}, web_components, {
110
+ export const web_components_typescript = Object.assign({}, web_components, {
130
111
  name: 'web_components_typescript',
131
112
  typescript: true,
132
113
  additionalDeps: ['@babel/preset-typescript'],
@@ -135,8 +116,7 @@ const web_components_typescript = Object.assign({}, web_components, {
135
116
  contents: '{ "presets": ["@babel/preset-typescript"] }'
136
117
  }]
137
118
  });
138
- exports.web_components_typescript = web_components_typescript;
139
- const web_components_lit2 = Object.assign({}, web_components, {
119
+ export const web_components_lit2 = Object.assign({}, web_components, {
140
120
  version: 'next',
141
121
  name: 'web_components_lit2',
142
122
  generator: fromDeps('lit'),
@@ -149,8 +129,7 @@ const web_components_lit2 = Object.assign({}, web_components, {
149
129
  }); // #endregion
150
130
  // #region vue
151
131
 
152
- exports.web_components_lit2 = web_components_lit2;
153
- const vue = {
132
+ export const vue = {
154
133
  renderer: 'vue',
155
134
  name: 'vue',
156
135
  // Be careful here, the latest versions of vue cli are bootstrapping a vue 3 project
@@ -158,8 +137,7 @@ const vue = {
158
137
  generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
159
138
  `npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ')
160
139
  };
161
- exports.vue = vue;
162
- const vue3 = {
140
+ export const vue3 = {
163
141
  renderer: 'vue3',
164
142
  name: 'vue3',
165
143
  version: 'next',
@@ -168,34 +146,29 @@ const vue3 = {
168
146
  `npx -p @vue/cli@^4 vue create {{appName}} --preset=__default_vue_3__ --packageManager=npm --no-git --force`].join(' && ')
169
147
  }; // #endregion
170
148
 
171
- exports.vue3 = vue3;
172
- const html = {
149
+ export const html = {
173
150
  renderer: 'html',
174
151
  name: 'html',
175
152
  version: 'latest',
176
153
  generator: fromDeps(),
177
154
  autoDetect: false
178
155
  };
179
- exports.html = html;
180
- const preact = {
156
+ export const preact = {
181
157
  renderer: 'preact',
182
158
  name: 'preact',
183
159
  version: 'latest',
184
160
  generator: 'npx preact-cli@{{version}} create preactjs-templates/default {{appName}} --install=false --git=false'
185
161
  };
186
- exports.preact = preact;
187
- const sfcVue = {
162
+ export const sfcVue = {
188
163
  renderer: 'vue',
189
164
  name: 'sfcVue',
190
165
  version: 'latest',
191
166
  //
192
167
  generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack')
193
168
  };
194
- exports.sfcVue = sfcVue;
195
- const svelte = {
169
+ export const svelte = {
196
170
  renderer: 'svelte',
197
171
  name: 'svelte',
198
172
  version: 'latest',
199
173
  generator: 'npx degit sveltejs/template {{appName}}'
200
- };
201
- exports.svelte = svelte;
174
+ };
@@ -1,41 +1,26 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.exec = exports.createAndInit = void 0;
7
-
8
- require("core-js/modules/es.promise.js");
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _fsExtra = require("fs-extra");
13
-
14
- var _shelljs = _interopRequireDefault(require("shelljs"));
15
-
16
- var _chalk = _interopRequireDefault(require("chalk"));
17
-
18
- var _execa = require("execa");
19
-
20
- var _configs = require("./configs");
21
-
22
- var _versions = _interopRequireDefault(require("../versions"));
23
-
24
1
  const _excluded = ["name", "version"];
25
2
 
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
3
  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; }
29
4
 
5
+ /* eslint-disable camelcase */
6
+ import path from 'path';
7
+ import { readJSON, writeJSON, outputFile } from 'fs-extra';
8
+ import shell from 'shelljs';
9
+ import chalk from 'chalk';
10
+ import { command } from 'execa';
11
+ import { cra, cra_typescript } from './configs';
12
+ import storybookVersions from '../versions';
30
13
  const logger = console;
31
- const useLocalSbCli = true;
32
-
33
- const exec = async (command, options = {}, {
14
+ export const exec = async (command, options = {}, {
34
15
  startMessage,
35
- errorMessage
16
+ errorMessage,
17
+ dryRun
36
18
  } = {}) => {
37
- if (startMessage) {
38
- logger.info(startMessage);
19
+ if (startMessage) logger.info(startMessage);
20
+
21
+ if (dryRun) {
22
+ logger.info(`\n> ${command}\n`);
23
+ return undefined;
39
24
  }
40
25
 
41
26
  logger.debug(command);
@@ -43,19 +28,16 @@ const exec = async (command, options = {}, {
43
28
  const defaultOptions = {
44
29
  silent: false
45
30
  };
46
-
47
- const child = _shelljs.default.exec(command, Object.assign({}, defaultOptions, options, {
31
+ const child = shell.exec(command, Object.assign({}, defaultOptions, options, {
48
32
  async: true,
49
33
  silent: false
50
34
  }));
51
-
52
35
  child.stderr.pipe(process.stderr);
53
- child.stdout.pipe(process.stdout);
54
36
  child.on('exit', code => {
55
37
  if (code === 0) {
56
38
  resolve(undefined);
57
39
  } else {
58
- logger.error(_chalk.default.red(`An error occurred while executing: \`${command}\``));
40
+ logger.error(chalk.red(`An error occurred while executing: \`${command}\``));
59
41
  logger.log(errorMessage);
60
42
  reject(new Error(`command exited with code: ${code}: `));
61
43
  }
@@ -63,18 +45,14 @@ const exec = async (command, options = {}, {
63
45
  });
64
46
  };
65
47
 
66
- exports.exec = exec;
67
-
68
48
  const addPackageResolutions = async ({
69
49
  cwd
70
50
  }) => {
71
51
  logger.info(`🔢 Adding package resolutions:`);
72
-
73
- const packageJsonPath = _path.default.join(cwd, 'package.json');
74
-
75
- const packageJson = await (0, _fsExtra.readJSON)(packageJsonPath);
76
- packageJson.resolutions = _versions.default;
77
- await (0, _fsExtra.writeJSON)(packageJsonPath, packageJson, {
52
+ const packageJsonPath = path.join(cwd, 'package.json');
53
+ const packageJson = await readJSON(packageJsonPath);
54
+ packageJson.resolutions = storybookVersions;
55
+ await writeJSON(packageJsonPath, packageJson, {
78
56
  spaces: 2
79
57
  });
80
58
  };
@@ -83,16 +61,12 @@ const addLocalPackageResolutions = async ({
83
61
  cwd
84
62
  }) => {
85
63
  logger.info(`🔢 Adding package resolutions:`);
86
-
87
- const packageJsonPath = _path.default.join(cwd, 'package.json');
88
-
89
- const packageJson = await (0, _fsExtra.readJSON)(packageJsonPath);
90
-
91
- const workspaceDir = _path.default.join(__dirname, '..', '..', '..', '..', '..');
92
-
64
+ const packageJsonPath = path.join(cwd, 'package.json');
65
+ const packageJson = await readJSON(packageJsonPath);
66
+ const workspaceDir = path.join(__dirname, '..', '..', '..', '..', '..');
93
67
  const {
94
68
  stdout
95
- } = await (0, _execa.command)('yarn workspaces list --json', {
69
+ } = await command('yarn workspaces list --json', {
96
70
  cwd: workspaceDir
97
71
  });
98
72
  console.log({
@@ -103,12 +77,12 @@ const addLocalPackageResolutions = async ({
103
77
  console.log({
104
78
  workspaces
105
79
  });
106
- packageJson.resolutions = Object.keys(_versions.default).reduce((acc, key) => {
80
+ packageJson.resolutions = Object.keys(storybookVersions).reduce((acc, key) => {
107
81
  return Object.assign({}, acc, {
108
- [key]: _path.default.join(workspaceDir, workspaces.find(item => item.name === key).location)
82
+ [key]: path.join(workspaceDir, workspaces.find(item => item.name === key).location)
109
83
  });
110
84
  }, {});
111
- await (0, _fsExtra.writeJSON)(packageJsonPath, packageJson, {
85
+ await writeJSON(packageJsonPath, packageJson, {
112
86
  spaces: 2
113
87
  });
114
88
  };
@@ -122,7 +96,7 @@ const installYarn2 = async ({
122
96
  // Next line is a hack to remove as soon as CRA will have added these missing deps
123
97
  // for details see https://github.com/facebook/create-react-app/pull/11751
124
98
 
125
- if ([_configs.cra.name, _configs.cra_typescript.name].includes(name)) {
99
+ if ([cra.name, cra_typescript.name].includes(name)) {
126
100
  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" } } }'`);
127
101
  }
128
102
 
@@ -173,7 +147,7 @@ const addAdditionalFiles = async ({
173
147
  }) => {
174
148
  logger.info(`⤵️ Adding required files`);
175
149
  await Promise.all(additionalFiles.map(async file => {
176
- await (0, _fsExtra.outputFile)(_path.default.resolve(cwd, file.path), file.contents, {
150
+ await outputFile(path.resolve(cwd, file.path), file.contents, {
177
151
  encoding: 'UTF-8'
178
152
  });
179
153
  }));
@@ -200,7 +174,7 @@ const initStorybook = async ({
200
174
  flags.push('--use-pnp');
201
175
  }
202
176
 
203
- const sbCLICommand = useLocalSbCli ? `node ${_path.default.join(__dirname, '../../esm/generate')}` : `yarn dlx -p @storybook/cli sb`;
177
+ const sbCLICommand = `node ${path.join(__dirname, '../../cjs/generate')}`;
204
178
  const command = `${sbCLICommand} init ${flags.join(' ')}`;
205
179
  await exec(command, {
206
180
  cwd
@@ -215,8 +189,7 @@ const addRequiredDeps = async ({
215
189
  additionalDeps
216
190
  }) => {
217
191
  // Remove any lockfile generated without Yarn 2
218
- _shelljs.default.rm('-f', _path.default.join(cwd, 'package-lock.json'), _path.default.join(cwd, 'yarn.lock'));
219
-
192
+ shell.rm('-f', path.join(cwd, 'package-lock.json'), path.join(cwd, 'yarn.lock'));
220
193
  const command = additionalDeps && additionalDeps.length > 0 ? `yarn add -D ${additionalDeps.join(' ')}` : `yarn install`;
221
194
  await exec(command, {
222
195
  cwd
@@ -245,10 +218,8 @@ const addTypescript = async ({
245
218
  },
246
219
  include: ['src/*']
247
220
  };
248
-
249
- const tsConfigJsonPath = _path.default.resolve(cwd, 'tsconfig.json');
250
-
251
- await (0, _fsExtra.writeJSON)(tsConfigJsonPath, tsConfig, {
221
+ const tsConfigJsonPath = path.resolve(cwd, 'tsconfig.json');
222
+ await writeJSON(tsConfigJsonPath, tsConfig, {
252
223
  encoding: 'utf8',
253
224
  spaces: 2
254
225
  });
@@ -265,10 +236,25 @@ const doTask = async (task, options, condition = true) => {
265
236
  }
266
237
  };
267
238
 
268
- const createAndInit = async (cwd, _ref, {
239
+ const registryUrlNPM = url => {
240
+ const args = ['config', 'set', 'registry', url];
241
+ return exec(`npm ${args.join(' ')}`, {
242
+ cwd: path.join(process.cwd(), '..')
243
+ });
244
+ };
245
+
246
+ const registryUrlYarn = url => {
247
+ const args = ['config', 'set', 'npmRegistryServer', url];
248
+ return exec(`yarn ${args.join(' ')}`, {
249
+ cwd: path.join(__dirname, '..')
250
+ });
251
+ };
252
+
253
+ export const createAndInit = async (cwd, _ref, {
269
254
  e2e,
270
255
  pnp,
271
- local
256
+ local,
257
+ registry
272
258
  }) => {
273
259
  let {
274
260
  name,
@@ -279,8 +265,8 @@ const createAndInit = async (cwd, _ref, {
279
265
  const options = Object.assign({
280
266
  name,
281
267
  version,
282
- appName: _path.default.basename(cwd),
283
- creationPath: _path.default.join(cwd, '..'),
268
+ appName: path.basename(cwd),
269
+ creationPath: path.join(cwd, '..'),
284
270
  cwd,
285
271
  e2e,
286
272
  pnp
@@ -311,7 +297,11 @@ const createAndInit = async (cwd, _ref, {
311
297
 
312
298
  await doTask(addTypescript, options, !!options.typescript);
313
299
  await doTask(addRequiredDeps, options);
314
- await doTask(initStorybook, options);
315
- };
316
300
 
317
- exports.createAndInit = createAndInit;
301
+ if (registry) {
302
+ await registryUrlNPM(registry);
303
+ await registryUrlYarn(registry);
304
+ }
305
+
306
+ await doTask(initStorybook, options);
307
+ };
@@ -0,0 +1,163 @@
1
+ import prompts from 'prompts';
2
+ import path from 'path';
3
+ import chalk from 'chalk';
4
+ import boxen from 'boxen';
5
+ import { dedent } from 'ts-dedent';
6
+ import degit from 'degit';
7
+ import { existsSync } from 'fs-extra';
8
+ import TEMPLATES from './repro-templates';
9
+ const logger = console;
10
+
11
+ const toChoices = c => ({
12
+ title: TEMPLATES[c].name,
13
+ value: c
14
+ });
15
+
16
+ export const reproNext = async ({
17
+ output: outputDirectory,
18
+ filterValue,
19
+ branch,
20
+ init
21
+ }) => {
22
+ const keys = Object.keys(TEMPLATES); // get value from template and reduce through TEMPLATES to filter out the correct template
23
+
24
+ const choices = keys.reduce((acc, group) => {
25
+ const current = TEMPLATES[group];
26
+ const filterRegex = new RegExp(filterValue, 'i');
27
+
28
+ if (!filterValue) {
29
+ acc.push(group);
30
+ return acc;
31
+ }
32
+
33
+ if (current.name.match(filterRegex) || group.match(filterRegex) || current.expected.builder.match(filterRegex) || current.expected.framework.match(filterRegex) || current.expected.renderer.match(filterRegex)) {
34
+ acc.push(group);
35
+ return acc;
36
+ }
37
+
38
+ return acc;
39
+ }, []);
40
+
41
+ if (choices.length === 0) {
42
+ logger.info(boxen(dedent`
43
+ 🔎 You filtered out all templates. 🔍
44
+
45
+ After filtering all the templates with "${chalk.yellow(filterValue)}", we found no results. Please try again with a different filter.
46
+
47
+ Available templates:
48
+ ${keys.map(key => chalk.blue`- ${key}`).join('\n')}
49
+ `.trim(), {
50
+ borderStyle: 'round',
51
+ padding: 1,
52
+ borderColor: '#F1618C'
53
+ }));
54
+ process.exit(1);
55
+ }
56
+
57
+ let selectedTemplate = null;
58
+
59
+ if (choices.length === 1) {
60
+ [selectedTemplate] = choices;
61
+ } else {
62
+ logger.info(boxen(dedent`
63
+ 🤗 Welcome to ${chalk.yellow('sb repro NEXT')}! 🤗
64
+
65
+ Create a ${chalk.green('new project')} to minimally reproduce Storybook issues.
66
+
67
+ 1. select an environment that most closely matches your project setup.
68
+ 2. select a location for the reproduction, outside of your project.
69
+
70
+ After the reproduction is ready, we'll guide you through the next steps.
71
+ `.trim(), {
72
+ borderStyle: 'round',
73
+ padding: 1,
74
+ borderColor: '#F1618C'
75
+ }));
76
+ selectedTemplate = await promptSelectedTemplate(choices);
77
+ }
78
+
79
+ const hasSelectedTemplate = !!(selectedTemplate ?? null);
80
+
81
+ if (!hasSelectedTemplate) {
82
+ logger.error('Somehow we got no templates. Please rerun this command!');
83
+ return;
84
+ }
85
+
86
+ const selectedConfig = TEMPLATES[selectedTemplate];
87
+
88
+ if (!selectedConfig) {
89
+ throw new Error('🚨 Repro: please specify a valid template type');
90
+ }
91
+
92
+ let selectedDirectory = outputDirectory;
93
+ const outputDirectoryName = outputDirectory || selectedTemplate;
94
+
95
+ if (selectedDirectory && existsSync(`${selectedDirectory}`)) {
96
+ logger.info(`⚠️ ${selectedDirectory} already exists! Overwriting...`);
97
+ }
98
+
99
+ if (!selectedDirectory) {
100
+ const {
101
+ directory
102
+ } = await prompts({
103
+ type: 'text',
104
+ message: 'Enter the output directory',
105
+ name: 'directory',
106
+ initial: outputDirectoryName,
107
+ validate: async directoryName => existsSync(directoryName) ? `${directoryName} already exists. Please choose another name.` : true
108
+ });
109
+ selectedDirectory = directory;
110
+ }
111
+
112
+ try {
113
+ const templateDestination = path.isAbsolute(selectedDirectory) ? selectedDirectory : path.join(process.cwd(), selectedDirectory);
114
+ logger.info(`🏃 Adding ${selectedConfig.name} into ${templateDestination}`);
115
+ logger.log('📦 Downloading repro template...');
116
+
117
+ try {
118
+ const templateType = init ? 'after-storybook' : 'before-storybook'; // Download the repro based on subfolder "after-storybook" and selected branch
119
+
120
+ await degit(`storybookjs/repro-templates-temp/${selectedTemplate}/${templateType}#${branch}`, {
121
+ force: true
122
+ }).clone(templateDestination);
123
+ } catch (err) {
124
+ logger.error(`🚨 Failed to download repro template: ${err.message}`);
125
+ throw err;
126
+ }
127
+
128
+ const initMessage = init ? chalk.yellow(`yarn storybook`) : `Recreate your setup, then ${chalk.yellow(`run npx storybook init`)}`;
129
+ logger.info(boxen(dedent`
130
+ 🎉 Your Storybook reproduction project is ready to use! 🎉
131
+
132
+ ${chalk.yellow(`cd ${selectedDirectory}`)}
133
+ ${initMessage}
134
+
135
+ Once you've recreated the problem you're experiencing, please:
136
+
137
+ 1. Document any additional steps in ${chalk.cyan('README.md')}
138
+ 2. Publish the repository to github
139
+ 3. Link to the repro repository in your issue
140
+
141
+ Having a clean repro helps us solve your issue faster! 🙏
142
+ `.trim(), {
143
+ borderStyle: 'round',
144
+ padding: 1,
145
+ borderColor: '#F1618C'
146
+ }));
147
+ } catch (error) {
148
+ logger.error('🚨 Failed to create repro');
149
+ throw error;
150
+ }
151
+ };
152
+
153
+ async function promptSelectedTemplate(choices) {
154
+ const {
155
+ template
156
+ } = await prompts({
157
+ type: 'select',
158
+ message: '🌈 Select the template',
159
+ name: 'template',
160
+ choices: choices.map(toChoices)
161
+ });
162
+ return template || null;
163
+ }
@@ -0,0 +1,34 @@
1
+ export default {
2
+ 'cra/default-js': {
3
+ name: 'Create React App (Javascript)',
4
+ script: 'npx create-react-app .',
5
+ cadence: ['ci', 'daily', 'weekly'],
6
+ expected: {
7
+ framework: '@storybook/cra',
8
+ renderer: '@storybook/react',
9
+ builder: '@storybook/builder-webpack5'
10
+ }
11
+ },
12
+ 'cra/default-ts': {
13
+ name: 'Create React App (Typescript)',
14
+ script: 'npx create-react-app . --template typescript',
15
+ cadence: ['ci', 'daily', 'weekly'],
16
+ expected: {
17
+ framework: '@storybook/cra',
18
+ renderer: '@storybook/react',
19
+ builder: '@storybook/builder-webpack5'
20
+ }
21
+ } // FIXME: missing documentation.json
22
+ // 'angular/latest': {
23
+ // name: 'Angular (latest)',
24
+ // script:
25
+ // 'npx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --skip-install=true --strict',
26
+ // cadence: ['ci', 'daily', 'weekly'],
27
+ // expected: {
28
+ // framework: '@storybook/angular',
29
+ // renderer: '@storybook/angular',
30
+ // builder: '@storybook/builder-webpack5',
31
+ // },
32
+ // },
33
+
34
+ };