forgebook 0.1.3 → 0.1.4

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 (339) hide show
  1. package/README.md +74 -6
  2. package/dist/bin/forgebook/agentClient.d.ts +17 -0
  3. package/dist/bin/forgebook/agentClient.d.ts.map +1 -1
  4. package/dist/bin/forgebook/agentClient.js +21 -0
  5. package/dist/bin/forgebook/agentClient.js.map +1 -1
  6. package/dist/bin/forgebook/agentLoopCommands.d.mts +9 -0
  7. package/dist/bin/forgebook/agentLoopCommands.d.mts.map +1 -0
  8. package/dist/bin/forgebook/agentLoopCommands.mjs +217 -0
  9. package/dist/bin/forgebook/agentLoopCommands.mjs.map +1 -0
  10. package/dist/bin/forgebook/agentText.d.ts +37 -1
  11. package/dist/bin/forgebook/agentText.d.ts.map +1 -1
  12. package/dist/bin/forgebook/agentText.js +49 -2
  13. package/dist/bin/forgebook/agentText.js.map +1 -1
  14. package/dist/bin/forgebook/agents.md +46 -0
  15. package/dist/bin/forgebook/agentsText.d.ts +29 -0
  16. package/dist/bin/forgebook/agentsText.d.ts.map +1 -0
  17. package/dist/bin/forgebook/agentsText.js +48 -0
  18. package/dist/bin/forgebook/agentsText.js.map +1 -0
  19. package/dist/bin/forgebook/catalogueCommands.d.ts +51 -0
  20. package/dist/bin/forgebook/catalogueCommands.d.ts.map +1 -0
  21. package/dist/bin/forgebook/catalogueCommands.js +90 -0
  22. package/dist/bin/forgebook/catalogueCommands.js.map +1 -0
  23. package/dist/bin/forgebook/errorsRun.d.ts +27 -0
  24. package/dist/bin/forgebook/errorsRun.d.ts.map +1 -0
  25. package/dist/bin/forgebook/errorsRun.js +60 -0
  26. package/dist/bin/forgebook/errorsRun.js.map +1 -0
  27. package/dist/bin/forgebook/forgebook.mjs +109 -84
  28. package/dist/bin/forgebook/forgebook.mjs.map +1 -1
  29. package/dist/bin/forgebook/importers/storybook.d.ts +53 -0
  30. package/dist/bin/forgebook/importers/storybook.d.ts.map +1 -0
  31. package/dist/bin/forgebook/importers/storybook.js +318 -0
  32. package/dist/bin/forgebook/importers/storybook.js.map +1 -0
  33. package/dist/bin/forgebook/initCommands.d.mts +9 -0
  34. package/dist/bin/forgebook/initCommands.d.mts.map +1 -0
  35. package/dist/bin/forgebook/initCommands.mjs +86 -0
  36. package/dist/bin/forgebook/initCommands.mjs.map +1 -0
  37. package/dist/bin/forgebook/initConfig.d.ts +22 -0
  38. package/dist/bin/forgebook/initConfig.d.ts.map +1 -0
  39. package/dist/bin/forgebook/initConfig.js +51 -0
  40. package/dist/bin/forgebook/initConfig.js.map +1 -0
  41. package/dist/bin/forgebook/mcpTools.d.ts +29 -3
  42. package/dist/bin/forgebook/mcpTools.d.ts.map +1 -1
  43. package/dist/bin/forgebook/mcpTools.js +130 -7
  44. package/dist/bin/forgebook/mcpTools.js.map +1 -1
  45. package/dist/bin/forgebook/newStories.d.ts +27 -0
  46. package/dist/bin/forgebook/newStories.d.ts.map +1 -0
  47. package/dist/bin/forgebook/newStories.js +109 -0
  48. package/dist/bin/forgebook/newStories.js.map +1 -0
  49. package/dist/bin/forgebook/newStoriesFile.d.ts +18 -0
  50. package/dist/bin/forgebook/newStoriesFile.d.ts.map +1 -0
  51. package/dist/bin/forgebook/newStoriesFile.js +58 -0
  52. package/dist/bin/forgebook/newStoriesFile.js.map +1 -0
  53. package/dist/bin/forgebook/storyCheckRun.d.ts +39 -0
  54. package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -0
  55. package/dist/bin/forgebook/storyCheckRun.js +177 -0
  56. package/dist/bin/forgebook/storyCheckRun.js.map +1 -0
  57. package/dist/bin/forgebook-docs/catalogueDocs.d.ts +24 -0
  58. package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +1 -0
  59. package/dist/bin/forgebook-docs/catalogueDocs.js +71 -0
  60. package/dist/bin/forgebook-docs/catalogueDocs.js.map +1 -0
  61. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +8 -0
  62. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -1
  63. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +3 -1
  64. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -1
  65. package/dist/bin/forgebook-docs/catalogueMarkdown.js +62 -42
  66. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -1
  67. package/dist/bin/forgebook-docs/catalogueOptions.d.ts +39 -0
  68. package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +1 -0
  69. package/dist/bin/forgebook-docs/catalogueOptions.js +76 -0
  70. package/dist/bin/forgebook-docs/catalogueOptions.js.map +1 -0
  71. package/dist/bin/forgebook-docs/collectDocs.d.ts +3 -1
  72. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -1
  73. package/dist/bin/forgebook-docs/collectDocs.js +37 -13
  74. package/dist/bin/forgebook-docs/collectDocs.js.map +1 -1
  75. package/dist/bin/forgebook-docs/forgebook-docs.mjs +17 -80
  76. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
  77. package/dist/bin/forgebook-docs/llmsText.d.ts +24 -0
  78. package/dist/bin/forgebook-docs/llmsText.d.ts.map +1 -0
  79. package/dist/bin/forgebook-docs/llmsText.js +33 -0
  80. package/dist/bin/forgebook-docs/llmsText.js.map +1 -0
  81. package/dist/bin/forgebook-docs/sourceId.d.ts +9 -0
  82. package/dist/bin/forgebook-docs/sourceId.d.ts.map +1 -0
  83. package/dist/bin/forgebook-docs/sourceId.js +45 -0
  84. package/dist/bin/forgebook-docs/sourceId.js.map +1 -0
  85. package/dist/bin/frameworkDocs.d.ts +10 -0
  86. package/dist/bin/frameworkDocs.d.ts.map +1 -0
  87. package/dist/bin/frameworkDocs.js +43 -0
  88. package/dist/bin/frameworkDocs.js.map +1 -0
  89. package/dist/src/argTypes.d.ts +23 -0
  90. package/dist/src/argTypes.d.ts.map +1 -1
  91. package/dist/src/argTypes.js +27 -0
  92. package/dist/src/argTypes.js.map +1 -1
  93. package/dist/src/catalogue.d.ts +70 -3
  94. package/dist/src/catalogue.d.ts.map +1 -1
  95. package/dist/src/catalogue.js +85 -3
  96. package/dist/src/catalogue.js.map +1 -1
  97. package/dist/src/controlKeys.d.ts +85 -0
  98. package/dist/src/controlKeys.d.ts.map +1 -0
  99. package/dist/src/controlKeys.js +118 -0
  100. package/dist/src/controlKeys.js.map +1 -0
  101. package/dist/src/frame/frame.css +33 -2
  102. package/dist/src/frame/frameView.d.ts +2 -2
  103. package/dist/src/frame/frameView.d.ts.map +1 -1
  104. package/dist/src/frame/frameView.js +7 -3
  105. package/dist/src/frame/frameView.js.map +1 -1
  106. package/dist/src/frame/mountFrame.d.ts.map +1 -1
  107. package/dist/src/frame/mountFrame.js +26 -2
  108. package/dist/src/frame/mountFrame.js.map +1 -1
  109. package/dist/src/frame/spillOutline.d.ts +10 -0
  110. package/dist/src/frame/spillOutline.d.ts.map +1 -0
  111. package/dist/src/frame/spillOutline.js +80 -0
  112. package/dist/src/frame/spillOutline.js.map +1 -0
  113. package/dist/src/liveErrors.d.ts +57 -0
  114. package/dist/src/liveErrors.d.ts.map +1 -0
  115. package/dist/src/liveErrors.js +52 -0
  116. package/dist/src/liveErrors.js.map +1 -0
  117. package/dist/src/messages.d.ts +12 -0
  118. package/dist/src/messages.d.ts.map +1 -1
  119. package/dist/src/messages.js +4 -0
  120. package/dist/src/messages.js.map +1 -1
  121. package/dist/src/namedViews.d.ts +80 -0
  122. package/dist/src/namedViews.d.ts.map +1 -0
  123. package/dist/src/namedViews.js +88 -0
  124. package/dist/src/namedViews.js.map +1 -0
  125. package/dist/src/shell/AppearanceMenu.d.ts +15 -0
  126. package/dist/src/shell/AppearanceMenu.d.ts.map +1 -0
  127. package/dist/src/shell/AppearanceMenu.js +28 -0
  128. package/dist/src/shell/AppearanceMenu.js.map +1 -0
  129. package/dist/src/shell/BoxWidth.d.ts +40 -0
  130. package/dist/src/shell/BoxWidth.d.ts.map +1 -0
  131. package/dist/src/shell/BoxWidth.js +56 -0
  132. package/dist/src/shell/BoxWidth.js.map +1 -0
  133. package/dist/src/shell/ComponentPage.d.ts +17 -1
  134. package/dist/src/shell/ComponentPage.d.ts.map +1 -1
  135. package/dist/src/shell/ComponentPage.js +19 -54
  136. package/dist/src/shell/ComponentPage.js.map +1 -1
  137. package/dist/src/shell/ControlKeyField.d.ts +21 -0
  138. package/dist/src/shell/ControlKeyField.d.ts.map +1 -0
  139. package/dist/src/shell/ControlKeyField.js +46 -0
  140. package/dist/src/shell/ControlKeyField.js.map +1 -0
  141. package/dist/src/shell/ControlRow.d.ts +31 -0
  142. package/dist/src/shell/ControlRow.d.ts.map +1 -0
  143. package/dist/src/shell/ControlRow.js +27 -0
  144. package/dist/src/shell/ControlRow.js.map +1 -0
  145. package/dist/src/shell/Example.d.ts +58 -0
  146. package/dist/src/shell/Example.d.ts.map +1 -0
  147. package/dist/src/shell/Example.js +89 -0
  148. package/dist/src/shell/Example.js.map +1 -0
  149. package/dist/src/shell/NamedViews.d.ts +23 -0
  150. package/dist/src/shell/NamedViews.d.ts.map +1 -0
  151. package/dist/src/shell/NamedViews.js +49 -0
  152. package/dist/src/shell/NamedViews.js.map +1 -0
  153. package/dist/src/shell/PinnedControl.d.ts +25 -0
  154. package/dist/src/shell/PinnedControl.d.ts.map +1 -0
  155. package/dist/src/shell/PinnedControl.js +81 -0
  156. package/dist/src/shell/PinnedControl.js.map +1 -0
  157. package/dist/src/shell/PropsTab.d.ts +5 -2
  158. package/dist/src/shell/PropsTab.d.ts.map +1 -1
  159. package/dist/src/shell/PropsTab.js +12 -15
  160. package/dist/src/shell/PropsTab.js.map +1 -1
  161. package/dist/src/shell/Shell.d.ts.map +1 -1
  162. package/dist/src/shell/Shell.js +27 -2
  163. package/dist/src/shell/Shell.js.map +1 -1
  164. package/dist/src/shell/Sidebar.d.ts +11 -9
  165. package/dist/src/shell/Sidebar.d.ts.map +1 -1
  166. package/dist/src/shell/Sidebar.js +48 -42
  167. package/dist/src/shell/Sidebar.js.map +1 -1
  168. package/dist/src/shell/SidebarEntries.d.ts +50 -0
  169. package/dist/src/shell/SidebarEntries.d.ts.map +1 -0
  170. package/dist/src/shell/SidebarEntries.js +51 -0
  171. package/dist/src/shell/SidebarEntries.js.map +1 -0
  172. package/dist/src/shell/Stage.d.ts.map +1 -1
  173. package/dist/src/shell/Stage.js +19 -2
  174. package/dist/src/shell/Stage.js.map +1 -1
  175. package/dist/src/shell/Toolbar.d.ts +7 -3
  176. package/dist/src/shell/Toolbar.d.ts.map +1 -1
  177. package/dist/src/shell/Toolbar.js +38 -68
  178. package/dist/src/shell/Toolbar.js.map +1 -1
  179. package/dist/src/shell/ToolbarControl.d.ts +47 -0
  180. package/dist/src/shell/ToolbarControl.d.ts.map +1 -0
  181. package/dist/src/shell/ToolbarControl.js +150 -0
  182. package/dist/src/shell/ToolbarControl.js.map +1 -0
  183. package/dist/src/shell/UsedIn.d.ts +38 -0
  184. package/dist/src/shell/UsedIn.d.ts.map +1 -0
  185. package/dist/src/shell/UsedIn.js +77 -0
  186. package/dist/src/shell/UsedIn.js.map +1 -0
  187. package/dist/src/shell/ViewMenu.d.ts +37 -0
  188. package/dist/src/shell/ViewMenu.d.ts.map +1 -0
  189. package/dist/src/shell/ViewMenu.js +216 -0
  190. package/dist/src/shell/ViewMenu.js.map +1 -0
  191. package/dist/src/shell/controlCycle.d.ts +28 -0
  192. package/dist/src/shell/controlCycle.d.ts.map +1 -0
  193. package/dist/src/shell/controlCycle.js +51 -0
  194. package/dist/src/shell/controlCycle.js.map +1 -0
  195. package/dist/src/shell/dockTabs.d.ts +3 -0
  196. package/dist/src/shell/dockTabs.d.ts.map +1 -1
  197. package/dist/src/shell/dockTabs.js +1 -1
  198. package/dist/src/shell/dockTabs.js.map +1 -1
  199. package/dist/src/shell/icons.d.ts +6 -0
  200. package/dist/src/shell/icons.d.ts.map +1 -1
  201. package/dist/src/shell/icons.js +7 -1
  202. package/dist/src/shell/icons.js.map +1 -1
  203. package/dist/src/shell/keyboard.d.ts +2 -1
  204. package/dist/src/shell/keyboard.d.ts.map +1 -1
  205. package/dist/src/shell/keyboard.js +5 -2
  206. package/dist/src/shell/keyboard.js.map +1 -1
  207. package/dist/src/shell/shell.css +826 -243
  208. package/dist/src/shell/strings.d.ts +45 -0
  209. package/dist/src/shell/strings.d.ts.map +1 -1
  210. package/dist/src/shell/strings.js +45 -0
  211. package/dist/src/shell/strings.js.map +1 -1
  212. package/dist/src/shell/useAppearance.d.ts +17 -0
  213. package/dist/src/shell/useAppearance.d.ts.map +1 -0
  214. package/dist/src/shell/useAppearance.js +36 -0
  215. package/dist/src/shell/useAppearance.js.map +1 -0
  216. package/dist/src/shell/useControlKeys.d.ts +23 -0
  217. package/dist/src/shell/useControlKeys.d.ts.map +1 -0
  218. package/dist/src/shell/useControlKeys.js +44 -0
  219. package/dist/src/shell/useControlKeys.js.map +1 -0
  220. package/dist/src/shell/useFold.d.ts +27 -0
  221. package/dist/src/shell/useFold.d.ts.map +1 -0
  222. package/dist/src/shell/useFold.js +87 -0
  223. package/dist/src/shell/useFold.js.map +1 -0
  224. package/dist/src/shell/useFrameMessages.d.ts +2 -0
  225. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  226. package/dist/src/shell/useFrameMessages.js +3 -0
  227. package/dist/src/shell/useFrameMessages.js.map +1 -1
  228. package/dist/src/shell/useFullPage.d.ts +45 -0
  229. package/dist/src/shell/useFullPage.d.ts.map +1 -0
  230. package/dist/src/shell/useFullPage.js +149 -0
  231. package/dist/src/shell/useFullPage.js.map +1 -0
  232. package/dist/src/shell/usePopover.d.ts +17 -3
  233. package/dist/src/shell/usePopover.d.ts.map +1 -1
  234. package/dist/src/shell/usePopover.js +65 -4
  235. package/dist/src/shell/usePopover.js.map +1 -1
  236. package/dist/src/shell/useStored.d.ts +13 -2
  237. package/dist/src/shell/useStored.d.ts.map +1 -1
  238. package/dist/src/shell/useStored.js +1 -1
  239. package/dist/src/shell/useStored.js.map +1 -1
  240. package/dist/src/shell/useToolbarLayout.d.ts +39 -0
  241. package/dist/src/shell/useToolbarLayout.d.ts.map +1 -0
  242. package/dist/src/shell/useToolbarLayout.js +58 -0
  243. package/dist/src/shell/useToolbarLayout.js.map +1 -0
  244. package/dist/src/shell/useToolbarOverflow.d.ts +31 -0
  245. package/dist/src/shell/useToolbarOverflow.d.ts.map +1 -0
  246. package/dist/src/shell/useToolbarOverflow.js +62 -0
  247. package/dist/src/shell/useToolbarOverflow.js.map +1 -0
  248. package/dist/src/shell/useWorstCase.d.ts +46 -0
  249. package/dist/src/shell/useWorstCase.d.ts.map +1 -0
  250. package/dist/src/shell/useWorstCase.js +42 -0
  251. package/dist/src/shell/useWorstCase.js.map +1 -0
  252. package/dist/src/shell/worstArgs.d.ts +42 -0
  253. package/dist/src/shell/worstArgs.d.ts.map +1 -0
  254. package/dist/src/shell/worstArgs.js +47 -0
  255. package/dist/src/shell/worstArgs.js.map +1 -0
  256. package/dist/src/spills.d.ts +31 -0
  257. package/dist/src/spills.d.ts.map +1 -0
  258. package/dist/src/spills.js +65 -0
  259. package/dist/src/spills.js.map +1 -0
  260. package/dist/src/storyCheck.d.ts +105 -0
  261. package/dist/src/storyCheck.d.ts.map +1 -0
  262. package/dist/src/storyCheck.js +63 -0
  263. package/dist/src/storyCheck.js.map +1 -0
  264. package/dist/src/switches.d.ts +16 -4
  265. package/dist/src/switches.d.ts.map +1 -1
  266. package/dist/src/switches.js +30 -5
  267. package/dist/src/switches.js.map +1 -1
  268. package/dist/src/toolbarLayout.d.ts +119 -0
  269. package/dist/src/toolbarLayout.d.ts.map +1 -0
  270. package/dist/src/toolbarLayout.js +155 -0
  271. package/dist/src/toolbarLayout.js.map +1 -0
  272. package/dist/src/usedIn.d.ts +60 -0
  273. package/dist/src/usedIn.d.ts.map +1 -0
  274. package/dist/src/usedIn.js +92 -0
  275. package/dist/src/usedIn.js.map +1 -0
  276. package/dist/src/viewState.d.ts +6 -10
  277. package/dist/src/viewState.d.ts.map +1 -1
  278. package/dist/src/viewState.js +20 -18
  279. package/dist/src/viewState.js.map +1 -1
  280. package/dist/src/viewWords.d.ts +26 -0
  281. package/dist/src/viewWords.d.ts.map +1 -0
  282. package/dist/src/viewWords.js +29 -0
  283. package/dist/src/viewWords.js.map +1 -0
  284. package/dist/src/vite/adapter.d.ts +13 -4
  285. package/dist/src/vite/adapter.d.ts.map +1 -1
  286. package/dist/src/vite/adapter.js +4 -2
  287. package/dist/src/vite/adapter.js.map +1 -1
  288. package/dist/src/vite/agent.types.d.ts +32 -2
  289. package/dist/src/vite/agent.types.d.ts.map +1 -1
  290. package/dist/src/vite/agentApi.d.ts +15 -3
  291. package/dist/src/vite/agentApi.d.ts.map +1 -1
  292. package/dist/src/vite/agentApi.js +63 -9
  293. package/dist/src/vite/agentApi.js.map +1 -1
  294. package/dist/src/vite/agentRoutes.d.ts +8 -3
  295. package/dist/src/vite/agentRoutes.d.ts.map +1 -1
  296. package/dist/src/vite/agentRoutes.js +84 -23
  297. package/dist/src/vite/agentRoutes.js.map +1 -1
  298. package/dist/src/vite/configFile.d.ts +2 -1
  299. package/dist/src/vite/configFile.d.ts.map +1 -1
  300. package/dist/src/vite/configFile.js +29 -11
  301. package/dist/src/vite/configFile.js.map +1 -1
  302. package/dist/src/vite/docsExtractor.d.ts +26 -2
  303. package/dist/src/vite/docsExtractor.d.ts.map +1 -1
  304. package/dist/src/vite/docsExtractor.js +12 -9
  305. package/dist/src/vite/docsExtractor.js.map +1 -1
  306. package/dist/src/vite/docsWorker.js +18 -2
  307. package/dist/src/vite/docsWorker.js.map +1 -1
  308. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  309. package/dist/src/vite/forgebookPlugin.js +109 -16
  310. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  311. package/dist/src/vite/indexStoryFile.d.ts +14 -0
  312. package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
  313. package/dist/src/vite/indexStoryFile.js +13 -4
  314. package/dist/src/vite/indexStoryFile.js.map +1 -1
  315. package/dist/src/vite/mcpProtocol.d.ts +9 -0
  316. package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
  317. package/dist/src/vite/mcpProtocol.js +6 -3
  318. package/dist/src/vite/mcpProtocol.js.map +1 -1
  319. package/dist/src/vite/storyFilesModule.d.ts +28 -1
  320. package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
  321. package/dist/src/vite/storyFilesModule.js +34 -14
  322. package/dist/src/vite/storyFilesModule.js.map +1 -1
  323. package/dist/src/vite/usageGraph.d.ts +45 -0
  324. package/dist/src/vite/usageGraph.d.ts.map +1 -0
  325. package/dist/src/vite/usageGraph.js +246 -0
  326. package/dist/src/vite/usageGraph.js.map +1 -0
  327. package/dist/src/vite/usageModule.d.ts +33 -0
  328. package/dist/src/vite/usageModule.d.ts.map +1 -0
  329. package/dist/src/vite/usageModule.js +135 -0
  330. package/dist/src/vite/usageModule.js.map +1 -0
  331. package/dist/src/worstCase.d.ts +16 -0
  332. package/dist/src/worstCase.d.ts.map +1 -0
  333. package/dist/src/worstCase.js +16 -0
  334. package/dist/src/worstCase.js.map +1 -0
  335. package/package.json +14 -2
  336. package/dist/src/shell/SchemeSwitches.d.ts +0 -24
  337. package/dist/src/shell/SchemeSwitches.d.ts.map +0 -1
  338. package/dist/src/shell/SchemeSwitches.js +0 -36
  339. package/dist/src/shell/SchemeSwitches.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"forgebook.mjs","sourceRoot":"","sources":["../../../bin/forgebook/forgebook.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forgebook.mjs","sourceRoot":"","sources":["../../../bin/forgebook/forgebook.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type ViewSwitch } from "../../../src/switches.ts";
2
+ /** What a configuration takes from another tool's files. */
3
+ export type ImportedConfig = {
4
+ /** The catalogue's name: the package's, or the folder's. */
5
+ readonly title: string;
6
+ /** The story files, as globs from the project's folder. */
7
+ readonly stories: readonly string[];
8
+ /** The preview's path from the project's folder; none when the tool has none. */
9
+ readonly preview: string | undefined;
10
+ /** The switches read from the preview's `globalTypes`; none leaves Forgebook's theme and contrast. */
11
+ readonly switches: readonly ViewSwitch[] | undefined;
12
+ /** What was not read, each a sentence for the person who runs the command. */
13
+ readonly notes: readonly string[];
14
+ };
15
+ /**
16
+ * Every glob a glob with alternatives stands for: `@(a|b)` and `{a,b}` written out, nested ones too, so the
17
+ * configuration lists plain globs a person reads at a glance.
18
+ *
19
+ * @param glob - the glob.
20
+ */
21
+ export declare const expandedGlobs: (glob: string) => string[];
22
+ /**
23
+ * The story globs of Storybook's `stories`, from the project's folder: each entry a glob from the `.storybook` folder or
24
+ * a folder with its files, its alternatives written out, the documentation pages (`.mdx`) left out.
25
+ *
26
+ * @param entries - `main`'s `stories`.
27
+ * @param storybookDir - the `.storybook` folder, absolute.
28
+ * @param projectDir - the project's folder, absolute.
29
+ * @returns the globs, and what was not read.
30
+ */
31
+ export declare const storyGlobs: (entries: readonly unknown[], storybookDir: string, projectDir: string) => {
32
+ readonly globs: string[];
33
+ readonly notes: string[];
34
+ };
35
+ /**
36
+ * The switches a preview's `globalTypes` give, read from its source.
37
+ *
38
+ * @param text - the preview's source.
39
+ * @param file - its path, for the parser and the notes.
40
+ * @returns the switches (none when it declares no toolbar of its own), and what was not read.
41
+ */
42
+ export declare const previewSwitches: (text: string, file: string) => {
43
+ readonly switches: ViewSwitch[] | undefined;
44
+ readonly notes: string[];
45
+ };
46
+ /**
47
+ * Reads a project's Storybook configuration.
48
+ *
49
+ * @param projectDir - the project's folder, absolute.
50
+ * @returns what a Forgebook configuration takes from it, or why it cannot be read.
51
+ */
52
+ export declare const importStorybook: (projectDir: string) => Promise<ImportedConfig | string>;
53
+ //# sourceMappingURL=storybook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../../../bin/forgebook/importers/storybook.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGpF,4DAA4D;AAC5D,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;IACrD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAwBF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAyBlD,CAAC;AA0BF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,SAAS,OAAO,EAAE,EAC3B,cAAc,MAAM,EACpB,YAAY,MAAM,KACjB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAetD,CAAC;AAgHF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,MAAM,MAAM,KACX;IAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAoBzE,CAAC;AA4BF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CA2BzF,CAAC"}
@@ -0,0 +1,318 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ /**
10
+ * The Storybook importer of `forgebook init --from storybook`: what a project's `.storybook` folder says, turned into
11
+ * what a Forgebook configuration needs (the story files, the preview, the switches).
12
+ *
13
+ * @remarks
14
+ * `main` is loaded, as Storybook loads it (Node strips a `main.ts`'s types), so a `stories` list it computes is read
15
+ * too. The preview is read from its source, never run: it imports style sheets and components Node cannot load, so its
16
+ * `globalTypes` and `initialGlobals` are read only when written as plain values; anything else is named in the notes
17
+ * instead. Forgebook reads React stories on Vite only, so another framework is refused with what Forgebook supports.
18
+ * Each tool is an importer of its own: another tool is another module beside this one.
19
+ *
20
+ * @module
21
+ */
22
+ import { existsSync, readFileSync } from "node:fs";
23
+ import { basename, join, relative, resolve } from "node:path";
24
+ import { pathToFileURL } from "node:url";
25
+ import ts from "typescript-6";
26
+ import { switchesFromGlobalTypes } from "../../../src/switches.js";
27
+ import { STORY_FILE } from "../../../src/vite/autoTitle.js";
28
+ /** The framework Forgebook reads Storybook's stories for. */
29
+ const REACT_VITE = "@storybook/react-vite";
30
+ /** Storybook's own default for a `stories` entry given as a folder. */
31
+ const DEFAULT_FILES = "**/*.@(mdx|stories.@(js|jsx|mjs|ts|tsx))";
32
+ /** The names `main` and the preview may have, in the order Storybook looks for them. */
33
+ const SCRIPT_EXTENSIONS = ["ts", "mts", "tsx", "js", "mjs", "cjs", "jsx"];
34
+ /** Whether a value is a plain object. */
35
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
36
+ /**
37
+ * The first file of a name that exists in a folder, whatever its script extension.
38
+ *
39
+ * @param dir - the folder.
40
+ * @param name - the file's name without its extension (`main`).
41
+ */
42
+ const scriptFile = (dir, name) => SCRIPT_EXTENSIONS.map((extension) => join(dir, `${name}.${extension}`)).find((file) => existsSync(file));
43
+ /**
44
+ * Every glob a glob with alternatives stands for: `@(a|b)` and `{a,b}` written out, nested ones too, so the
45
+ * configuration lists plain globs a person reads at a glance.
46
+ *
47
+ * @param glob - the glob.
48
+ */
49
+ export const expandedGlobs = (glob) => {
50
+ const start = glob.search(/@\(|\{/);
51
+ if (start === -1)
52
+ return [glob];
53
+ const isExtglob = glob[start] === "@";
54
+ const separator = isExtglob ? "|" : ",";
55
+ const contentStart = start + (isExtglob ? 2 : 1);
56
+ // every bracket counts, so a group nested in another of the other kind is kept whole
57
+ let depth = 1;
58
+ let partStart = contentStart;
59
+ const parts = [];
60
+ for (let index = contentStart; index < glob.length; index += 1) {
61
+ const character = glob[index];
62
+ if (character === "(" || character === "{")
63
+ depth += 1;
64
+ else if (character === ")" || character === "}")
65
+ depth -= 1;
66
+ if (depth === 1 && character === separator) {
67
+ parts.push(glob.slice(partStart, index));
68
+ partStart = index + 1;
69
+ }
70
+ else if (depth === 0) {
71
+ parts.push(glob.slice(partStart, index));
72
+ const head = glob.slice(0, start);
73
+ const tail = glob.slice(index + 1);
74
+ return parts.flatMap((part) => expandedGlobs(`${head}${part}${tail}`));
75
+ }
76
+ }
77
+ return [glob];
78
+ };
79
+ /**
80
+ * One `stories` entry as a glob from the project's folder: a glob as it is, a folder with its files.
81
+ *
82
+ * @param entry - the entry.
83
+ * @param fromProject - a path from the `.storybook` folder, made a path from the project's.
84
+ * @param notes - where what is not read is named.
85
+ * @returns the glob, or none for an entry that is neither.
86
+ */
87
+ const entryGlob = (entry, fromProject, notes) => {
88
+ if (typeof entry === "string")
89
+ return fromProject(entry);
90
+ if (!isRecord(entry) || typeof entry["directory"] !== "string") {
91
+ notes.push(`A stories entry that is neither a glob nor a folder was left out: ${JSON.stringify(entry)}`);
92
+ return undefined;
93
+ }
94
+ if (typeof entry["titlePrefix"] === "string")
95
+ notes.push(`${entry["directory"]}: its titlePrefix "${entry["titlePrefix"]}" is not read`);
96
+ const files = typeof entry["files"] === "string" ? entry["files"] : DEFAULT_FILES;
97
+ return `${fromProject(entry["directory"])}/${files}`;
98
+ };
99
+ /**
100
+ * The story globs of Storybook's `stories`, from the project's folder: each entry a glob from the `.storybook` folder or
101
+ * a folder with its files, its alternatives written out, the documentation pages (`.mdx`) left out.
102
+ *
103
+ * @param entries - `main`'s `stories`.
104
+ * @param storybookDir - the `.storybook` folder, absolute.
105
+ * @param projectDir - the project's folder, absolute.
106
+ * @returns the globs, and what was not read.
107
+ */
108
+ export const storyGlobs = (entries, storybookDir, projectDir) => {
109
+ const globs = [];
110
+ const notes = [];
111
+ const fromProject = (path) => relative(projectDir, resolve(storybookDir, path)) || ".";
112
+ for (const entry of entries) {
113
+ const glob = entryGlob(entry, fromProject, notes);
114
+ if (glob === undefined)
115
+ continue;
116
+ for (const each of expandedGlobs(glob.split("\\").join("/"))) {
117
+ if (STORY_FILE.test(each))
118
+ globs.push(each);
119
+ else if (!each.endsWith(".mdx"))
120
+ notes.push(`${each}: not a story file Forgebook reads`);
121
+ }
122
+ }
123
+ if (entries.some((entry) => typeof entry === "string" && entry.includes(".mdx")))
124
+ notes.push("The MDX pages are left out: Forgebook reads story files, not MDX");
125
+ return { globs: [...new Set(globs)], notes };
126
+ };
127
+ /** A value that cannot be read without running the file. */
128
+ const NOT_PLAIN = Symbol("not plain");
129
+ /** An expression without the `as`, `satisfies` and parentheses around it. */
130
+ const unwrapped = (expression) => {
131
+ let current = expression;
132
+ while (ts.isAsExpression(current) ||
133
+ ts.isSatisfiesExpression(current) ||
134
+ ts.isParenthesizedExpression(current)) {
135
+ current = current.expression;
136
+ }
137
+ return current;
138
+ };
139
+ /**
140
+ * A plain value written in source (texts, numbers, booleans, `null`, lists and objects of them), or `NOT_PLAIN`.
141
+ *
142
+ * @param expression - the expression.
143
+ */
144
+ const plainValue = (expression) => {
145
+ const node = unwrapped(expression);
146
+ if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))
147
+ return node.text;
148
+ if (ts.isNumericLiteral(node))
149
+ return Number(node.text);
150
+ if (node.kind === ts.SyntaxKind.TrueKeyword)
151
+ return true;
152
+ if (node.kind === ts.SyntaxKind.FalseKeyword)
153
+ return false;
154
+ if (node.kind === ts.SyntaxKind.NullKeyword)
155
+ return null;
156
+ if (ts.isArrayLiteralExpression(node)) {
157
+ const items = node.elements.map(plainValue);
158
+ return items.includes(NOT_PLAIN) ? NOT_PLAIN : items;
159
+ }
160
+ return ts.isObjectLiteralExpression(node) ? plainObject(node) : NOT_PLAIN;
161
+ };
162
+ /**
163
+ * An object literal's plain value: each property a name and a plain value, or `NOT_PLAIN`.
164
+ *
165
+ * @param node - the object literal.
166
+ */
167
+ const plainObject = (node) => {
168
+ const entries = [];
169
+ for (const property of node.properties) {
170
+ if (!ts.isPropertyAssignment(property))
171
+ return NOT_PLAIN;
172
+ const { name } = property;
173
+ if (!(ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)))
174
+ return NOT_PLAIN;
175
+ const value = plainValue(property.initializer);
176
+ if (value === NOT_PLAIN)
177
+ return NOT_PLAIN;
178
+ entries.push([name.text, value]);
179
+ }
180
+ return Object.fromEntries(entries);
181
+ };
182
+ /**
183
+ * A top-level constant's declaration, by name.
184
+ *
185
+ * @param source - the file, parsed.
186
+ * @param name - the constant's name.
187
+ * @param isExported - whether only an exported one counts.
188
+ */
189
+ const constantDeclaration = (source, name, isExported = false) => {
190
+ for (const statement of source.statements) {
191
+ if (!ts.isVariableStatement(statement))
192
+ continue;
193
+ if (isExported && !statement.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword))
194
+ continue;
195
+ const declaration = statement.declarationList.declarations.find((candidate) => ts.isIdentifier(candidate.name) && candidate.name.text === name);
196
+ if (declaration !== undefined)
197
+ return declaration;
198
+ }
199
+ return undefined;
200
+ };
201
+ /**
202
+ * The preview's default export as an object literal: written in the export, or in the constant it exports.
203
+ *
204
+ * @param source - the preview, parsed.
205
+ */
206
+ const previewObject = (source) => {
207
+ const exported = source.statements.find((statement) => ts.isExportAssignment(statement) && !statement.isExportEquals);
208
+ if (exported === undefined)
209
+ return undefined;
210
+ const expression = unwrapped(exported.expression);
211
+ if (ts.isObjectLiteralExpression(expression))
212
+ return expression;
213
+ if (!ts.isIdentifier(expression))
214
+ return undefined;
215
+ const initializer = constantDeclaration(source, expression.text)?.initializer;
216
+ const value = initializer === undefined ? undefined : unwrapped(initializer);
217
+ return value !== undefined && ts.isObjectLiteralExpression(value) ? value : undefined;
218
+ };
219
+ /**
220
+ * A field of the preview: a property of its default export, or a named export (`export const globalTypes = …`).
221
+ *
222
+ * @param source - the preview, parsed.
223
+ * @param name - the field.
224
+ */
225
+ const previewField = (source, name) => {
226
+ const property = previewObject(source)?.properties.find((candidate) => ts.isPropertyAssignment(candidate) && candidate.name.getText(source) === name);
227
+ return property?.initializer ?? constantDeclaration(source, name, true)?.initializer;
228
+ };
229
+ /**
230
+ * The switches a preview's `globalTypes` give, read from its source.
231
+ *
232
+ * @param text - the preview's source.
233
+ * @param file - its path, for the parser and the notes.
234
+ * @returns the switches (none when it declares no toolbar of its own), and what was not read.
235
+ */
236
+ export const previewSwitches = (text, file) => {
237
+ const source = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true);
238
+ const globalTypes = previewField(source, "globalTypes");
239
+ if (globalTypes === undefined)
240
+ return { switches: undefined, notes: [] };
241
+ const types = plainValue(globalTypes);
242
+ if (!isRecord(types))
243
+ return {
244
+ switches: undefined,
245
+ notes: [`${basename(file)}: its globalTypes are not plain values, so no switch was made from them`]
246
+ };
247
+ const initialField = previewField(source, "initialGlobals");
248
+ const initial = initialField === undefined ? undefined : plainValue(initialField);
249
+ const notes = initialField !== undefined && !isRecord(initial)
250
+ ? [
251
+ `${basename(file)}: its initialGlobals are not plain values, so each switch starts at its first value`
252
+ ]
253
+ : [];
254
+ const switches = switchesFromGlobalTypes(types, isRecord(initial) ? { initialGlobals: initial } : {});
255
+ return { switches: switches.length === 0 ? undefined : switches, notes };
256
+ };
257
+ /**
258
+ * The project's name: its package's, or its folder's.
259
+ *
260
+ * @param dir - the project's folder.
261
+ */
262
+ const projectTitle = (dir) => {
263
+ const file = join(dir, "package.json");
264
+ if (existsSync(file)) {
265
+ const parsed = JSON.parse(readFileSync(file, "utf8"));
266
+ if (isRecord(parsed) && typeof parsed["name"] === "string" && parsed["name"] !== "")
267
+ return parsed["name"];
268
+ }
269
+ return basename(dir);
270
+ };
271
+ /**
272
+ * The framework `main` names: a text, or an object with its `name`.
273
+ *
274
+ * @param main - `main`'s configuration.
275
+ */
276
+ const frameworkName = (main) => {
277
+ const { framework } = main;
278
+ if (typeof framework === "string")
279
+ return framework;
280
+ return isRecord(framework) && typeof framework["name"] === "string" ? framework["name"] : undefined;
281
+ };
282
+ /**
283
+ * Reads a project's Storybook configuration.
284
+ *
285
+ * @param projectDir - the project's folder, absolute.
286
+ * @returns what a Forgebook configuration takes from it, or why it cannot be read.
287
+ */
288
+ export const importStorybook = async (projectDir) => {
289
+ const storybookDir = join(projectDir, ".storybook");
290
+ const mainFile = scriptFile(storybookDir, "main");
291
+ if (mainFile === undefined)
292
+ return `No .storybook/main file in ${projectDir}`;
293
+ const loaded = await import(__rewriteRelativeImportExtension(pathToFileURL(mainFile).href));
294
+ const main = isRecord(loaded) && isRecord(loaded["default"]) ? loaded["default"] : loaded;
295
+ if (!isRecord(main))
296
+ return `${relative(projectDir, mainFile)} exports no configuration`;
297
+ const framework = frameworkName(main);
298
+ if (framework !== REACT_VITE)
299
+ return `Forgebook reads Storybook's React stories on Vite (${REACT_VITE}); this project uses ${framework ?? "no framework"}`;
300
+ const entries = Array.isArray(main["stories"]) ? main["stories"] : [];
301
+ const { globs, notes } = storyGlobs(entries, storybookDir, projectDir);
302
+ if (globs.length === 0)
303
+ return `${relative(projectDir, mainFile)} names no story file Forgebook reads`;
304
+ if (Array.isArray(main["addons"]) && main["addons"].length > 0)
305
+ notes.push("The addons are left out: Forgebook has its own panel, toolbar and checks");
306
+ const previewFile = scriptFile(storybookDir, "preview");
307
+ const read = previewFile === undefined
308
+ ? { switches: undefined, notes: [] }
309
+ : previewSwitches(readFileSync(previewFile, "utf8"), previewFile);
310
+ return {
311
+ title: projectTitle(projectDir),
312
+ stories: globs,
313
+ preview: previewFile === undefined ? undefined : relative(projectDir, previewFile),
314
+ switches: read.switches,
315
+ notes: [...notes, ...read.notes]
316
+ };
317
+ };
318
+ //# sourceMappingURL=storybook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storybook.js","sourceRoot":"","sources":["../../../../bin/forgebook/importers/storybook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CommandNode, CommandScope } from "@ensiria/cli-kit/commands.types";
2
+ import { type ForgebookOptions } from "./catalogueCommands.ts";
3
+ /**
4
+ * The commands.
5
+ *
6
+ * @param forgebook - the scope of the `forgebook` command, whose options every command takes.
7
+ */
8
+ export declare const initCommands: (forgebook: CommandScope<ForgebookOptions>) => Readonly<Record<string, CommandNode>>;
9
+ //# sourceMappingURL=initCommands.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initCommands.d.mts","sourceRoot":"","sources":["../../../bin/forgebook/initCommands.mts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGjF,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA2BxE;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,WAAW,YAAY,CAAC,gBAAgB,CAAC,KACxC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAwCrC,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The command that starts a catalogue: `init --from storybook` writes `forgebook.config.ts` from a project's Storybook
3
+ * files, so a project on Storybook tries Forgebook in one command, its stories read as they are.
4
+ *
5
+ * @remarks
6
+ * Defined here, on the scope `forgebook.mts` hands it, so the entry stays a list of commands; the reading is the
7
+ * importer's (`importers/storybook.ts`), the writing `initConfig.ts`'s. A configuration already there is never
8
+ * replaced unless asked (`--force`): it may hold a person's work.
9
+ *
10
+ * @module
11
+ */
12
+ import { existsSync, writeFileSync } from "node:fs";
13
+ import { createRequire } from "node:module";
14
+ import { join, resolve } from "node:path";
15
+ import { ScriptError } from "@ensiria/cli-kit/script";
16
+ import { COMMAND } from "./catalogueCommands.js";
17
+ import { importStorybook } from "./importers/storybook.js";
18
+ import { CONFIG_FILE, initConfigText } from "./initConfig.js";
19
+ /** The modules the written configuration imports, by the package that has each. */
20
+ const CONFIG_IMPORTS = {
21
+ forgebook: "forgebook",
22
+ "@forgebook/react": "@forgebook/react/vite"
23
+ };
24
+ /**
25
+ * The packages the written configuration imports that the project cannot load yet.
26
+ *
27
+ * @param dir - the project's folder.
28
+ */
29
+ const missingPackages = (dir) => {
30
+ const require = createRequire(join(dir, "package.json"));
31
+ return Object.entries(CONFIG_IMPORTS).flatMap(([name, specifier]) => {
32
+ try {
33
+ require.resolve(specifier);
34
+ return [];
35
+ }
36
+ catch {
37
+ return [name];
38
+ }
39
+ });
40
+ };
41
+ /**
42
+ * The commands.
43
+ *
44
+ * @param forgebook - the scope of the `forgebook` command, whose options every command takes.
45
+ */
46
+ export const initCommands = (forgebook) => ({
47
+ init: forgebook.command({
48
+ summary: "Write forgebook.config.ts from another tool's files: Storybook's story globs, preview and globals.",
49
+ options: {
50
+ from: {
51
+ type: "string",
52
+ required: true,
53
+ choices: ["storybook"],
54
+ valueName: "tool",
55
+ description: "The tool whose files are read (its folder in the current one: .storybook)."
56
+ },
57
+ force: { type: "boolean", description: `Replace a ${CONFIG_FILE} that is already there.` }
58
+ },
59
+ examples: [
60
+ {
61
+ command: `${COMMAND} init --from storybook`,
62
+ description: "Read .storybook and write the configuration."
63
+ }
64
+ ],
65
+ run: async ({ options, log }) => {
66
+ const file = resolve(CONFIG_FILE);
67
+ if (existsSync(file) && options.force !== true)
68
+ throw new ScriptError(`${CONFIG_FILE} is already there`, {
69
+ hint: "Give --force to replace it with the one read from Storybook"
70
+ });
71
+ const imported = await importStorybook(process.cwd());
72
+ if (typeof imported === "string")
73
+ throw new ScriptError(imported);
74
+ writeFileSync(file, initConfigText(imported, "Storybook"));
75
+ log.success(`${CONFIG_FILE} written: ${imported.stories.length} story globs`);
76
+ for (const note of imported.notes)
77
+ log.warn(note);
78
+ const missing = missingPackages(process.cwd());
79
+ if (missing.length > 0)
80
+ log.info(`Install what it imports first: npm install --save-dev ${missing.join(" ")}`);
81
+ log.info(`Next: ${COMMAND} dev to open the catalogue, ${COMMAND} stories to list what did not read, ` +
82
+ `${COMMAND} agents for the project's coding agents`);
83
+ }
84
+ })
85
+ });
86
+ //# sourceMappingURL=initCommands.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initCommands.mjs","sourceRoot":"","sources":["../../../bin/forgebook/initCommands.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE9D,mFAAmF;AACnF,MAAM,cAAc,GAAqC;IACvD,SAAS,EAAE,WAAW;IACtB,kBAAkB,EAAE,uBAAuB;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAAG,CAAC,GAAW,EAAY,EAAE;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,SAAyC,EACF,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;QACtB,OAAO,EACL,oGAAoG;QACtG,OAAO,EAAE;YACP,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,CAAC,WAAW,CAAC;gBACtB,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE,4EAA4E;aAC1F;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,WAAW,yBAAyB,EAAE;SAC3F;QACD,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,GAAG,OAAO,wBAAwB;gBAC3C,WAAW,EAAE,8CAA8C;aAC5D;SACF;QACD,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAiB,EAAE;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;gBAC5C,MAAM,IAAI,WAAW,CAAC,GAAG,WAAW,mBAAmB,EAAE;oBACvD,IAAI,EAAE,6DAA6D;iBACpE,CAAC,CAAC;YACL,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClE,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,WAAW,aAAa,QAAQ,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;YAC9E,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,yDAAyD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,IAAI,CACN,SAAS,OAAO,+BAA+B,OAAO,sCAAsC;gBAC1F,GAAG,OAAO,yCAAyC,CACtD,CAAC;QACJ,CAAC;KACF,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The `forgebook.config.ts` that `forgebook init` writes, from what an importer read of another tool's files.
3
+ *
4
+ * @remarks
5
+ * Pure: the configuration in, the file's text out. The file is written as a person would write it (the `defineConfig`
6
+ * of the README, one field a line), so it is the project's from then on; the switches read from Storybook's
7
+ * `globalTypes` are written out as Forgebook's own, applied by code as Storybook's decorators expect, so a person can
8
+ * tell each to apply as an attribute or a class later.
9
+ *
10
+ * @module
11
+ */
12
+ import type { ImportedConfig } from "./importers/storybook.ts";
13
+ /** The file `forgebook init` writes. */
14
+ export declare const CONFIG_FILE = "forgebook.config.ts";
15
+ /**
16
+ * The configuration file's text.
17
+ *
18
+ * @param imported - what the importer read.
19
+ * @param tool - the tool's name, for the file's comment (`Storybook`).
20
+ */
21
+ export declare const initConfigText: (imported: ImportedConfig, tool: string) => string;
22
+ //# sourceMappingURL=initConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initConfig.d.ts","sourceRoot":"","sources":["../../../bin/forgebook/initConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,wCAAwC;AACxC,eAAO,MAAM,WAAW,wBAAwB,CAAC;AAejD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,cAAc,EAAE,MAAM,MAAM,KAAG,MA8BvE,CAAC"}
@@ -0,0 +1,51 @@
1
+ /** The file `forgebook init` writes. */
2
+ export const CONFIG_FILE = "forgebook.config.ts";
3
+ /**
4
+ * A value written as TypeScript source: JSON with its keys unquoted where they are names, indented to sit at a depth of
5
+ * the file.
6
+ *
7
+ * @param value - a plain value.
8
+ * @param indent - the depth's spaces.
9
+ */
10
+ const sourceOf = (value, indent) => JSON.stringify(value, null, 2)
11
+ .replace(/^(\s*)"([A-Za-z_$][\w$]*)":/gm, "$1$2:")
12
+ .split("\n")
13
+ .join(`\n${indent}`);
14
+ /**
15
+ * The configuration file's text.
16
+ *
17
+ * @param imported - what the importer read.
18
+ * @param tool - the tool's name, for the file's comment (`Storybook`).
19
+ */
20
+ export const initConfigText = (imported, tool) => {
21
+ const fields = [
22
+ " framework: react(),",
23
+ ` title: ${JSON.stringify(imported.title)},`,
24
+ ` stories: ${sourceOf(imported.stories, " ")},`,
25
+ ...(imported.preview === undefined ? [] : [` preview: ${JSON.stringify(imported.preview)},`]),
26
+ ...(imported.switches === undefined
27
+ ? []
28
+ : [
29
+ ` // from the preview's globalTypes: applied by code, as ${tool}'s decorators read them`,
30
+ ` switches: ${sourceOf(imported.switches, " ")},`
31
+ ])
32
+ ];
33
+ // the last field takes no comma
34
+ const last = fields.length - 1;
35
+ fields[last] = fields[last]?.replace(/,$/, "") ?? "";
36
+ return [
37
+ "/**",
38
+ ` * The catalogue's configuration, written by \`forgebook init --from ${tool.toLowerCase()}\` from ${tool}'s files.`,
39
+ " *",
40
+ " * @module",
41
+ " */",
42
+ 'import { react } from "@forgebook/react/vite";',
43
+ 'import { defineConfig } from "forgebook";',
44
+ "",
45
+ "export default defineConfig({",
46
+ ...fields,
47
+ "});",
48
+ ""
49
+ ].join("\n");
50
+ };
51
+ //# sourceMappingURL=initConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initConfig.js","sourceRoot":"","sources":["../../../bin/forgebook/initConfig.ts"],"names":[],"mappings":"AAaA,wCAAwC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,MAAc,EAAU,EAAE,CAC1D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3B,OAAO,CAAC,+BAA+B,EAAE,OAAO,CAAC;KACjD,KAAK,CAAC,IAAI,CAAC;KACX,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAU,EAAE;IAC/E,MAAM,MAAM,GAAG;QACb,uBAAuB;QACvB,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;QAC7C,cAAc,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;QACjD,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9F,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,4DAA4D,IAAI,yBAAyB;gBACzF,eAAe,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG;aACpD,CAAC;KACP,CAAC;IACF,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO;QACL,KAAK;QACL,wEAAwE,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,WAAW;QACpH,IAAI;QACJ,YAAY;QACZ,KAAK;QACL,gDAAgD;QAChD,2CAA2C;QAC3C,EAAE;QACF,+BAA+B;QAC/B,GAAG,MAAM;QACT,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC"}