forgebook 0.1.3 → 0.1.5

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 (379) hide show
  1. package/README.md +99 -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 +51 -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 +121 -86
  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 +49 -0
  54. package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -0
  55. package/dist/bin/forgebook/storyCheckRun.js +178 -0
  56. package/dist/bin/forgebook/storyCheckRun.js.map +1 -0
  57. package/dist/bin/forgebook/touchWindowRun.d.ts +17 -0
  58. package/dist/bin/forgebook/touchWindowRun.d.ts.map +1 -0
  59. package/dist/bin/forgebook/touchWindowRun.js +21 -0
  60. package/dist/bin/forgebook/touchWindowRun.js.map +1 -0
  61. package/dist/bin/forgebook-docs/catalogueDocs.d.ts +24 -0
  62. package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +1 -0
  63. package/dist/bin/forgebook-docs/catalogueDocs.js +71 -0
  64. package/dist/bin/forgebook-docs/catalogueDocs.js.map +1 -0
  65. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +8 -0
  66. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -1
  67. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +3 -1
  68. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -1
  69. package/dist/bin/forgebook-docs/catalogueMarkdown.js +62 -42
  70. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -1
  71. package/dist/bin/forgebook-docs/catalogueOptions.d.ts +39 -0
  72. package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +1 -0
  73. package/dist/bin/forgebook-docs/catalogueOptions.js +76 -0
  74. package/dist/bin/forgebook-docs/catalogueOptions.js.map +1 -0
  75. package/dist/bin/forgebook-docs/collectDocs.d.ts +3 -1
  76. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -1
  77. package/dist/bin/forgebook-docs/collectDocs.js +37 -13
  78. package/dist/bin/forgebook-docs/collectDocs.js.map +1 -1
  79. package/dist/bin/forgebook-docs/forgebook-docs.mjs +17 -80
  80. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
  81. package/dist/bin/forgebook-docs/llmsText.d.ts +24 -0
  82. package/dist/bin/forgebook-docs/llmsText.d.ts.map +1 -0
  83. package/dist/bin/forgebook-docs/llmsText.js +33 -0
  84. package/dist/bin/forgebook-docs/llmsText.js.map +1 -0
  85. package/dist/bin/forgebook-docs/sourceId.d.ts +9 -0
  86. package/dist/bin/forgebook-docs/sourceId.d.ts.map +1 -0
  87. package/dist/bin/forgebook-docs/sourceId.js +45 -0
  88. package/dist/bin/forgebook-docs/sourceId.js.map +1 -0
  89. package/dist/bin/frameworkDocs.d.ts +10 -0
  90. package/dist/bin/frameworkDocs.d.ts.map +1 -0
  91. package/dist/bin/frameworkDocs.js +43 -0
  92. package/dist/bin/frameworkDocs.js.map +1 -0
  93. package/dist/src/argTypes.d.ts +23 -0
  94. package/dist/src/argTypes.d.ts.map +1 -1
  95. package/dist/src/argTypes.js +27 -0
  96. package/dist/src/argTypes.js.map +1 -1
  97. package/dist/src/catalogue.d.ts +70 -3
  98. package/dist/src/catalogue.d.ts.map +1 -1
  99. package/dist/src/catalogue.js +85 -3
  100. package/dist/src/catalogue.js.map +1 -1
  101. package/dist/src/controlKeys.d.ts +85 -0
  102. package/dist/src/controlKeys.d.ts.map +1 -0
  103. package/dist/src/controlKeys.js +118 -0
  104. package/dist/src/controlKeys.js.map +1 -0
  105. package/dist/src/frame/frame.css +33 -2
  106. package/dist/src/frame/frameView.d.ts +2 -2
  107. package/dist/src/frame/frameView.d.ts.map +1 -1
  108. package/dist/src/frame/frameView.js +7 -3
  109. package/dist/src/frame/frameView.js.map +1 -1
  110. package/dist/src/frame/mountFrame.d.ts.map +1 -1
  111. package/dist/src/frame/mountFrame.js +30 -2
  112. package/dist/src/frame/mountFrame.js.map +1 -1
  113. package/dist/src/frame/spillOutline.d.ts +10 -0
  114. package/dist/src/frame/spillOutline.d.ts.map +1 -0
  115. package/dist/src/frame/spillOutline.js +80 -0
  116. package/dist/src/frame/spillOutline.js.map +1 -0
  117. package/dist/src/frame/touchDots.d.ts +32 -0
  118. package/dist/src/frame/touchDots.d.ts.map +1 -0
  119. package/dist/src/frame/touchDots.js +52 -0
  120. package/dist/src/frame/touchDots.js.map +1 -0
  121. package/dist/src/frame/touchEvents.d.ts +66 -0
  122. package/dist/src/frame/touchEvents.d.ts.map +1 -0
  123. package/dist/src/frame/touchEvents.js +152 -0
  124. package/dist/src/frame/touchEvents.js.map +1 -0
  125. package/dist/src/frame/touchGesture.d.ts +80 -0
  126. package/dist/src/frame/touchGesture.d.ts.map +1 -0
  127. package/dist/src/frame/touchGesture.js +87 -0
  128. package/dist/src/frame/touchGesture.js.map +1 -0
  129. package/dist/src/frame/touchLayer.d.ts +7 -0
  130. package/dist/src/frame/touchLayer.d.ts.map +1 -0
  131. package/dist/src/frame/touchLayer.js +399 -0
  132. package/dist/src/frame/touchLayer.js.map +1 -0
  133. package/dist/src/frame/touchScroll.d.ts +51 -0
  134. package/dist/src/frame/touchScroll.d.ts.map +1 -0
  135. package/dist/src/frame/touchScroll.js +137 -0
  136. package/dist/src/frame/touchScroll.js.map +1 -0
  137. package/dist/src/liveErrors.d.ts +57 -0
  138. package/dist/src/liveErrors.d.ts.map +1 -0
  139. package/dist/src/liveErrors.js +52 -0
  140. package/dist/src/liveErrors.js.map +1 -0
  141. package/dist/src/messages.d.ts +12 -0
  142. package/dist/src/messages.d.ts.map +1 -1
  143. package/dist/src/messages.js +4 -0
  144. package/dist/src/messages.js.map +1 -1
  145. package/dist/src/namedViews.d.ts +80 -0
  146. package/dist/src/namedViews.d.ts.map +1 -0
  147. package/dist/src/namedViews.js +88 -0
  148. package/dist/src/namedViews.js.map +1 -0
  149. package/dist/src/realTouch.d.ts +21 -0
  150. package/dist/src/realTouch.d.ts.map +1 -0
  151. package/dist/src/realTouch.js +16 -0
  152. package/dist/src/realTouch.js.map +1 -0
  153. package/dist/src/shell/AppearanceMenu.d.ts +15 -0
  154. package/dist/src/shell/AppearanceMenu.d.ts.map +1 -0
  155. package/dist/src/shell/AppearanceMenu.js +28 -0
  156. package/dist/src/shell/AppearanceMenu.js.map +1 -0
  157. package/dist/src/shell/BoxWidth.d.ts +40 -0
  158. package/dist/src/shell/BoxWidth.d.ts.map +1 -0
  159. package/dist/src/shell/BoxWidth.js +56 -0
  160. package/dist/src/shell/BoxWidth.js.map +1 -0
  161. package/dist/src/shell/ComponentPage.d.ts +17 -1
  162. package/dist/src/shell/ComponentPage.d.ts.map +1 -1
  163. package/dist/src/shell/ComponentPage.js +19 -54
  164. package/dist/src/shell/ComponentPage.js.map +1 -1
  165. package/dist/src/shell/ControlKeyField.d.ts +21 -0
  166. package/dist/src/shell/ControlKeyField.d.ts.map +1 -0
  167. package/dist/src/shell/ControlKeyField.js +46 -0
  168. package/dist/src/shell/ControlKeyField.js.map +1 -0
  169. package/dist/src/shell/ControlRow.d.ts +31 -0
  170. package/dist/src/shell/ControlRow.d.ts.map +1 -0
  171. package/dist/src/shell/ControlRow.js +30 -0
  172. package/dist/src/shell/ControlRow.js.map +1 -0
  173. package/dist/src/shell/Example.d.ts +58 -0
  174. package/dist/src/shell/Example.d.ts.map +1 -0
  175. package/dist/src/shell/Example.js +89 -0
  176. package/dist/src/shell/Example.js.map +1 -0
  177. package/dist/src/shell/InfoTip.d.ts +23 -0
  178. package/dist/src/shell/InfoTip.d.ts.map +1 -0
  179. package/dist/src/shell/InfoTip.js +51 -0
  180. package/dist/src/shell/InfoTip.js.map +1 -0
  181. package/dist/src/shell/NamedViews.d.ts +23 -0
  182. package/dist/src/shell/NamedViews.d.ts.map +1 -0
  183. package/dist/src/shell/NamedViews.js +49 -0
  184. package/dist/src/shell/NamedViews.js.map +1 -0
  185. package/dist/src/shell/PinnedControl.d.ts +25 -0
  186. package/dist/src/shell/PinnedControl.d.ts.map +1 -0
  187. package/dist/src/shell/PinnedControl.js +82 -0
  188. package/dist/src/shell/PinnedControl.js.map +1 -0
  189. package/dist/src/shell/PropsTab.d.ts +5 -2
  190. package/dist/src/shell/PropsTab.d.ts.map +1 -1
  191. package/dist/src/shell/PropsTab.js +12 -15
  192. package/dist/src/shell/PropsTab.js.map +1 -1
  193. package/dist/src/shell/Shell.d.ts.map +1 -1
  194. package/dist/src/shell/Shell.js +27 -2
  195. package/dist/src/shell/Shell.js.map +1 -1
  196. package/dist/src/shell/Sidebar.d.ts +11 -9
  197. package/dist/src/shell/Sidebar.d.ts.map +1 -1
  198. package/dist/src/shell/Sidebar.js +48 -42
  199. package/dist/src/shell/Sidebar.js.map +1 -1
  200. package/dist/src/shell/SidebarEntries.d.ts +50 -0
  201. package/dist/src/shell/SidebarEntries.d.ts.map +1 -0
  202. package/dist/src/shell/SidebarEntries.js +51 -0
  203. package/dist/src/shell/SidebarEntries.js.map +1 -0
  204. package/dist/src/shell/Stage.d.ts.map +1 -1
  205. package/dist/src/shell/Stage.js +19 -2
  206. package/dist/src/shell/Stage.js.map +1 -1
  207. package/dist/src/shell/Toolbar.d.ts +7 -3
  208. package/dist/src/shell/Toolbar.d.ts.map +1 -1
  209. package/dist/src/shell/Toolbar.js +38 -68
  210. package/dist/src/shell/Toolbar.js.map +1 -1
  211. package/dist/src/shell/ToolbarControl.d.ts +47 -0
  212. package/dist/src/shell/ToolbarControl.d.ts.map +1 -0
  213. package/dist/src/shell/ToolbarControl.js +150 -0
  214. package/dist/src/shell/ToolbarControl.js.map +1 -0
  215. package/dist/src/shell/UsedIn.d.ts +38 -0
  216. package/dist/src/shell/UsedIn.d.ts.map +1 -0
  217. package/dist/src/shell/UsedIn.js +77 -0
  218. package/dist/src/shell/UsedIn.js.map +1 -0
  219. package/dist/src/shell/ViewMenu.d.ts +37 -0
  220. package/dist/src/shell/ViewMenu.d.ts.map +1 -0
  221. package/dist/src/shell/ViewMenu.js +219 -0
  222. package/dist/src/shell/ViewMenu.js.map +1 -0
  223. package/dist/src/shell/controlCycle.d.ts +28 -0
  224. package/dist/src/shell/controlCycle.d.ts.map +1 -0
  225. package/dist/src/shell/controlCycle.js +51 -0
  226. package/dist/src/shell/controlCycle.js.map +1 -0
  227. package/dist/src/shell/dockTabs.d.ts +3 -0
  228. package/dist/src/shell/dockTabs.d.ts.map +1 -1
  229. package/dist/src/shell/dockTabs.js +1 -1
  230. package/dist/src/shell/dockTabs.js.map +1 -1
  231. package/dist/src/shell/icons.d.ts +7 -0
  232. package/dist/src/shell/icons.d.ts.map +1 -1
  233. package/dist/src/shell/icons.js +8 -1
  234. package/dist/src/shell/icons.js.map +1 -1
  235. package/dist/src/shell/keyboard.d.ts +2 -1
  236. package/dist/src/shell/keyboard.d.ts.map +1 -1
  237. package/dist/src/shell/keyboard.js +5 -2
  238. package/dist/src/shell/keyboard.js.map +1 -1
  239. package/dist/src/shell/shell.css +876 -244
  240. package/dist/src/shell/strings.d.ts +46 -0
  241. package/dist/src/shell/strings.d.ts.map +1 -1
  242. package/dist/src/shell/strings.js +46 -0
  243. package/dist/src/shell/strings.js.map +1 -1
  244. package/dist/src/shell/useAppearance.d.ts +17 -0
  245. package/dist/src/shell/useAppearance.d.ts.map +1 -0
  246. package/dist/src/shell/useAppearance.js +36 -0
  247. package/dist/src/shell/useAppearance.js.map +1 -0
  248. package/dist/src/shell/useControlKeys.d.ts +23 -0
  249. package/dist/src/shell/useControlKeys.d.ts.map +1 -0
  250. package/dist/src/shell/useControlKeys.js +44 -0
  251. package/dist/src/shell/useControlKeys.js.map +1 -0
  252. package/dist/src/shell/useFold.d.ts +27 -0
  253. package/dist/src/shell/useFold.d.ts.map +1 -0
  254. package/dist/src/shell/useFold.js +87 -0
  255. package/dist/src/shell/useFold.js.map +1 -0
  256. package/dist/src/shell/useFrameMessages.d.ts +2 -0
  257. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  258. package/dist/src/shell/useFrameMessages.js +3 -0
  259. package/dist/src/shell/useFrameMessages.js.map +1 -1
  260. package/dist/src/shell/useFullPage.d.ts +45 -0
  261. package/dist/src/shell/useFullPage.d.ts.map +1 -0
  262. package/dist/src/shell/useFullPage.js +149 -0
  263. package/dist/src/shell/useFullPage.js.map +1 -0
  264. package/dist/src/shell/usePopover.d.ts +17 -3
  265. package/dist/src/shell/usePopover.d.ts.map +1 -1
  266. package/dist/src/shell/usePopover.js +65 -4
  267. package/dist/src/shell/usePopover.js.map +1 -1
  268. package/dist/src/shell/useStored.d.ts +13 -2
  269. package/dist/src/shell/useStored.d.ts.map +1 -1
  270. package/dist/src/shell/useStored.js +1 -1
  271. package/dist/src/shell/useStored.js.map +1 -1
  272. package/dist/src/shell/useToolbarLayout.d.ts +39 -0
  273. package/dist/src/shell/useToolbarLayout.d.ts.map +1 -0
  274. package/dist/src/shell/useToolbarLayout.js +58 -0
  275. package/dist/src/shell/useToolbarLayout.js.map +1 -0
  276. package/dist/src/shell/useToolbarOverflow.d.ts +31 -0
  277. package/dist/src/shell/useToolbarOverflow.d.ts.map +1 -0
  278. package/dist/src/shell/useToolbarOverflow.js +62 -0
  279. package/dist/src/shell/useToolbarOverflow.js.map +1 -0
  280. package/dist/src/shell/useWorstCase.d.ts +46 -0
  281. package/dist/src/shell/useWorstCase.d.ts.map +1 -0
  282. package/dist/src/shell/useWorstCase.js +42 -0
  283. package/dist/src/shell/useWorstCase.js.map +1 -0
  284. package/dist/src/shell/worstArgs.d.ts +42 -0
  285. package/dist/src/shell/worstArgs.d.ts.map +1 -0
  286. package/dist/src/shell/worstArgs.js +47 -0
  287. package/dist/src/shell/worstArgs.js.map +1 -0
  288. package/dist/src/spills.d.ts +31 -0
  289. package/dist/src/spills.d.ts.map +1 -0
  290. package/dist/src/spills.js +65 -0
  291. package/dist/src/spills.js.map +1 -0
  292. package/dist/src/storyCheck.d.ts +105 -0
  293. package/dist/src/storyCheck.d.ts.map +1 -0
  294. package/dist/src/storyCheck.js +63 -0
  295. package/dist/src/storyCheck.js.map +1 -0
  296. package/dist/src/switches.d.ts +26 -4
  297. package/dist/src/switches.d.ts.map +1 -1
  298. package/dist/src/switches.js +50 -5
  299. package/dist/src/switches.js.map +1 -1
  300. package/dist/src/toolbarLayout.d.ts +119 -0
  301. package/dist/src/toolbarLayout.d.ts.map +1 -0
  302. package/dist/src/toolbarLayout.js +155 -0
  303. package/dist/src/toolbarLayout.js.map +1 -0
  304. package/dist/src/usedIn.d.ts +60 -0
  305. package/dist/src/usedIn.d.ts.map +1 -0
  306. package/dist/src/usedIn.js +92 -0
  307. package/dist/src/usedIn.js.map +1 -0
  308. package/dist/src/viewState.d.ts +9 -11
  309. package/dist/src/viewState.d.ts.map +1 -1
  310. package/dist/src/viewState.js +24 -20
  311. package/dist/src/viewState.js.map +1 -1
  312. package/dist/src/viewWords.d.ts +26 -0
  313. package/dist/src/viewWords.d.ts.map +1 -0
  314. package/dist/src/viewWords.js +29 -0
  315. package/dist/src/viewWords.js.map +1 -0
  316. package/dist/src/vite/adapter.d.ts +13 -4
  317. package/dist/src/vite/adapter.d.ts.map +1 -1
  318. package/dist/src/vite/adapter.js +4 -2
  319. package/dist/src/vite/adapter.js.map +1 -1
  320. package/dist/src/vite/agent.types.d.ts +32 -2
  321. package/dist/src/vite/agent.types.d.ts.map +1 -1
  322. package/dist/src/vite/agentApi.d.ts +15 -3
  323. package/dist/src/vite/agentApi.d.ts.map +1 -1
  324. package/dist/src/vite/agentApi.js +63 -9
  325. package/dist/src/vite/agentApi.js.map +1 -1
  326. package/dist/src/vite/agentRoutes.d.ts +8 -3
  327. package/dist/src/vite/agentRoutes.d.ts.map +1 -1
  328. package/dist/src/vite/agentRoutes.js +84 -23
  329. package/dist/src/vite/agentRoutes.js.map +1 -1
  330. package/dist/src/vite/configFile.d.ts +2 -1
  331. package/dist/src/vite/configFile.d.ts.map +1 -1
  332. package/dist/src/vite/configFile.js +29 -11
  333. package/dist/src/vite/configFile.js.map +1 -1
  334. package/dist/src/vite/docsExtractor.d.ts +26 -2
  335. package/dist/src/vite/docsExtractor.d.ts.map +1 -1
  336. package/dist/src/vite/docsExtractor.js +12 -9
  337. package/dist/src/vite/docsExtractor.js.map +1 -1
  338. package/dist/src/vite/docsWorker.js +18 -2
  339. package/dist/src/vite/docsWorker.js.map +1 -1
  340. package/dist/src/vite/forcedStates.d.ts +6 -2
  341. package/dist/src/vite/forcedStates.d.ts.map +1 -1
  342. package/dist/src/vite/forcedStates.js +20 -4
  343. package/dist/src/vite/forcedStates.js.map +1 -1
  344. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  345. package/dist/src/vite/forgebookPlugin.js +104 -16
  346. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  347. package/dist/src/vite/indexStoryFile.d.ts +14 -0
  348. package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
  349. package/dist/src/vite/indexStoryFile.js +13 -4
  350. package/dist/src/vite/indexStoryFile.js.map +1 -1
  351. package/dist/src/vite/mcpProtocol.d.ts +9 -0
  352. package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
  353. package/dist/src/vite/mcpProtocol.js +6 -3
  354. package/dist/src/vite/mcpProtocol.js.map +1 -1
  355. package/dist/src/vite/storyFilesModule.d.ts +44 -1
  356. package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
  357. package/dist/src/vite/storyFilesModule.js +49 -14
  358. package/dist/src/vite/storyFilesModule.js.map +1 -1
  359. package/dist/src/vite/touchMedia.d.ts +35 -0
  360. package/dist/src/vite/touchMedia.d.ts.map +1 -0
  361. package/dist/src/vite/touchMedia.js +187 -0
  362. package/dist/src/vite/touchMedia.js.map +1 -0
  363. package/dist/src/vite/usageGraph.d.ts +45 -0
  364. package/dist/src/vite/usageGraph.d.ts.map +1 -0
  365. package/dist/src/vite/usageGraph.js +246 -0
  366. package/dist/src/vite/usageGraph.js.map +1 -0
  367. package/dist/src/vite/usageModule.d.ts +33 -0
  368. package/dist/src/vite/usageModule.d.ts.map +1 -0
  369. package/dist/src/vite/usageModule.js +135 -0
  370. package/dist/src/vite/usageModule.js.map +1 -0
  371. package/dist/src/worstCase.d.ts +16 -0
  372. package/dist/src/worstCase.d.ts.map +1 -0
  373. package/dist/src/worstCase.js +16 -0
  374. package/dist/src/worstCase.js.map +1 -0
  375. package/package.json +18 -2
  376. package/dist/src/shell/SchemeSwitches.d.ts +0 -24
  377. package/dist/src/shell/SchemeSwitches.d.ts.map +0 -1
  378. package/dist/src/shell/SchemeSwitches.js +0 -36
  379. package/dist/src/shell/SchemeSwitches.js.map +0 -1
@@ -0,0 +1,178 @@
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
+ * What `forgebook check` and `forgebook shot` (and their MCP tools `check_story` and `story_shot`) run: the stories an
11
+ * id names, opened in a browser in the views asked for, checked or pictured through `@forgebook/testing`, loaded from
12
+ * the project.
13
+ *
14
+ * @remarks
15
+ * The core has no browser: the testing package (and Playwright under it) is the project's, loaded from the catalogue's
16
+ * folder only when a run starts, and named in the error when it is missing. An id is a story's, or a component's, which
17
+ * stands for its listed stories. A view is written in the address's form or as words (`viewWords.ts`). The catalogue is
18
+ * served over HTTP (the running dev server, or one of its own for the run), since a browser opens the frames.
19
+ *
20
+ * @module
21
+ */
22
+ import { createRequire } from "node:module";
23
+ import { join } from "node:path";
24
+ import { pathToFileURL } from "node:url";
25
+ import { isStoryCheckReport, isStoryShotReport } from "../../src/storyCheck.js";
26
+ import { catalogueSwitches } from "../../src/switches.js";
27
+ import { viewQuery } from "../../src/viewWords.js";
28
+ import { isStoriesDocument } from "../../src/vite/agentApi.js";
29
+ import { AGENT_API } from "../../src/vite/agentRoutes.js";
30
+ import { servedCatalogue } from "./agentClient.js";
31
+ /** What the project installs to run the stories in a browser, and how. */
32
+ const INSTALL = "Stories run in a browser with @forgebook/testing: npm install -D @forgebook/testing @playwright/test, then npx playwright install chromium";
33
+ /**
34
+ * The stories an id names: the story itself, or a component's listed stories.
35
+ *
36
+ * @param document - the catalogue's stories.
37
+ * @param id - the id.
38
+ */
39
+ export const storiesNamed = (document, id) => {
40
+ const component = document.components.find((each) => each.id === id);
41
+ if (component !== undefined)
42
+ return component.stories.filter((story) => !story.isUnlisted);
43
+ return document.components.flatMap((each) => each.stories.filter((story) => story.id === id));
44
+ };
45
+ /**
46
+ * The views in the address's form, or why one cannot be read.
47
+ *
48
+ * @param views - the views as given.
49
+ * @param switches - the catalogue's switches.
50
+ */
51
+ const queriesOf = (views, switches) => {
52
+ const queries = [];
53
+ for (const view of views) {
54
+ const read = viewQuery(view, switches);
55
+ if ("error" in read)
56
+ return read.error;
57
+ queries.push(read.query);
58
+ }
59
+ return queries;
60
+ };
61
+ /**
62
+ * A function the testing package exports, resolved from the catalogue's folder as the project's own code would: the
63
+ * check, the pictures, the touch window.
64
+ *
65
+ * @param dir - the catalogue's folder.
66
+ * @param specifier - its module (`@forgebook/testing/check`).
67
+ * @param name - its name (`checkStories`).
68
+ * @returns the function, or why it cannot be had.
69
+ */
70
+ export const testingFunction = async (dir, specifier, name) => {
71
+ let resolved;
72
+ try {
73
+ resolved = createRequire(join(dir, "package.json")).resolve(specifier);
74
+ }
75
+ catch {
76
+ return INSTALL;
77
+ }
78
+ const module = await import(__rewriteRelativeImportExtension(pathToFileURL(resolved).href));
79
+ if (typeof module !== "object" || module === null || !(name in module))
80
+ return `${specifier} has no ${name}: update @forgebook/testing`;
81
+ const found = Reflect.get(module, name);
82
+ if (typeof found !== "function")
83
+ return `${specifier}'s ${name} is not a function`;
84
+ return async (request) => {
85
+ const answer = await found(request);
86
+ return answer;
87
+ };
88
+ };
89
+ /**
90
+ * The catalogue's stories, asked of its served address.
91
+ *
92
+ * @param origin - where it is served.
93
+ */
94
+ const storiesAt = async (origin) => {
95
+ const response = await fetch(`${origin}${AGENT_API}stories`);
96
+ const body = await response.json();
97
+ return isStoriesDocument(body) ? body : `The catalogue answered ${response.status} for its stories`;
98
+ };
99
+ /**
100
+ * Runs one of the testing package's functions on the stories an id names, the catalogue served while it runs.
101
+ *
102
+ * @param config - the catalogue's configuration.
103
+ * @param url - where `forgebook dev` runs, when not at Vite's default address.
104
+ * @param input - the id, the views and whether to run every variant.
105
+ * @param run - the function and what it adds to the request.
106
+ * @returns its answer, or why it could not run.
107
+ */
108
+ const runOnStories = async (config, url, input, run) => {
109
+ const call = await testingFunction(config.dir, run.specifier, run.name);
110
+ if (typeof call === "string")
111
+ return call;
112
+ const switches = catalogueSwitches(config.switches, config.languages, config.lists.controls);
113
+ const views = queriesOf(input.views, switches);
114
+ if (typeof views === "string")
115
+ return views;
116
+ const served = await servedCatalogue(config, url);
117
+ try {
118
+ const document = await storiesAt(served.origin);
119
+ if (typeof document === "string")
120
+ return document;
121
+ const stories = storiesNamed(document, input.id);
122
+ if (stories.length === 0)
123
+ return `No story or component "${input.id}"`;
124
+ const request = {
125
+ frameUrl: `${served.origin}/frame.html`,
126
+ stories: stories.map((story) => ({
127
+ id: story.id,
128
+ ...(story.height === undefined ? {} : { height: story.height })
129
+ })),
130
+ switches,
131
+ lists: config.lists,
132
+ views,
133
+ isAllVariants: input.isAllVariants
134
+ };
135
+ return await call({ ...request, ...run.extra });
136
+ }
137
+ finally {
138
+ await served.close();
139
+ }
140
+ };
141
+ /**
142
+ * Runs the catalogue's checks.
143
+ *
144
+ * @param config - the catalogue's configuration.
145
+ * @param url - where `forgebook dev` runs, when not at Vite's default address.
146
+ * @param input - the id, the views and whether to check every variant.
147
+ * @returns the report, or why the check could not run.
148
+ */
149
+ export const runStoryCheck = async (config, url, input) => {
150
+ const answer = await runOnStories(config, url, input, {
151
+ specifier: "@forgebook/testing/check",
152
+ name: "checkStories",
153
+ extra: {}
154
+ });
155
+ if (typeof answer === "string" || isStoryCheckReport(answer))
156
+ return answer;
157
+ return "@forgebook/testing/check answered something that is not a check's report";
158
+ };
159
+ /**
160
+ * Takes the stories' pictures.
161
+ *
162
+ * @param config - the catalogue's configuration.
163
+ * @param url - where `forgebook dev` runs, when not at Vite's default address.
164
+ * @param input - the id, the views and whether to picture every variant.
165
+ * @param outDir - the folder the pictures go in, absolute.
166
+ * @returns the pictures, or why they could not be taken.
167
+ */
168
+ export const runStoryShot = async (config, url, input, outDir) => {
169
+ const answer = await runOnStories(config, url, input, {
170
+ specifier: "@forgebook/testing/shot",
171
+ name: "shotStories",
172
+ extra: { outDir }
173
+ });
174
+ if (typeof answer === "string" || isStoryShotReport(answer))
175
+ return answer;
176
+ return "@forgebook/testing/shot answered something that is not a picture run's report";
177
+ };
178
+ //# sourceMappingURL=storyCheckRun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storyCheckRun.js","sourceRoot":"","sources":["../../../bin/forgebook/storyCheckRun.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * What `forgebook dev --touch` runs once the dev server listens: the testing package's touch window (Chromium with its
3
+ * own touch emulation), loaded from the project, opened on the catalogue's address without holding the server up.
4
+ *
5
+ * @module
6
+ */
7
+ import type { Logger } from "@ensiria/cli-kit/log.types";
8
+ /**
9
+ * Opens the touch window on the catalogue; the dev server keeps running when the window closes.
10
+ *
11
+ * @param dir - the catalogue's folder, where the testing package is resolved.
12
+ * @param url - the dev server's address; none when it gave none.
13
+ * @param log - the command's logger.
14
+ * @throws when the testing package or the address is missing.
15
+ */
16
+ export declare const openTouchWindow: (dir: string, url: string | undefined, log: Logger) => Promise<void>;
17
+ //# sourceMappingURL=touchWindowRun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touchWindowRun.d.ts","sourceRoot":"","sources":["../../../bin/forgebook/touchWindowRun.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAMzD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAU,KAAK,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,KAAG,OAAO,CAAC,IAAI,CAOrG,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ScriptError } from "@ensiria/cli-kit/script";
2
+ import { testingFunction } from "./storyCheckRun.js";
3
+ /**
4
+ * Opens the touch window on the catalogue; the dev server keeps running when the window closes.
5
+ *
6
+ * @param dir - the catalogue's folder, where the testing package is resolved.
7
+ * @param url - the dev server's address; none when it gave none.
8
+ * @param log - the command's logger.
9
+ * @throws when the testing package or the address is missing.
10
+ */
11
+ export const openTouchWindow = async (dir, url, log) => {
12
+ if (url === undefined)
13
+ throw new ScriptError("The dev server gave no address to open the touch window on");
14
+ const open = await testingFunction(dir, "@forgebook/testing/touch", "openTouchWindow");
15
+ if (typeof open === "string")
16
+ throw new ScriptError(open);
17
+ const request = { url };
18
+ log.info("Touch window open: the mouse makes real touch events there (Chromium's emulation)");
19
+ void open(request).then(() => log.info("Touch window closed; the dev server keeps running"));
20
+ };
21
+ //# sourceMappingURL=touchWindowRun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touchWindowRun.js","sourceRoot":"","sources":["../../../bin/forgebook/touchWindowRun.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,GAAuB,EAAE,GAAW,EAAiB,EAAE;IACxG,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,4DAA4D,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;IACvF,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAuB,EAAE,GAAG,EAAE,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAC9F,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Logger } from "@ensiria/cli-kit/log.types";
2
+ import type { CatalogueDocsReport } from "./catalogueDocs.types.ts";
3
+ /** What `catalogueDocs` is asked. */
4
+ export type CatalogueDocsRequest = {
5
+ /** The package's folder, absolute. */
6
+ readonly packageDir: string;
7
+ /** The framework the stories are written for (`react`). */
8
+ readonly framework: string;
9
+ /** Whether to change nothing and fail when a file is stale (CI). */
10
+ readonly isCheck: boolean;
11
+ /** The command that rewrites the files, for the hint of a stale one. */
12
+ readonly fixCommand: string;
13
+ };
14
+ /**
15
+ * Writes the package's `CATALOG.md` and `llms.txt`, or checks them.
16
+ *
17
+ * @param request - the package, its framework, whether to check, and the command that fixes them.
18
+ * @param log - where to report.
19
+ * @returns the report, for `--json`.
20
+ * @throws a `ScriptError` in a check when a file is stale or a file could not be read, or when the package's options
21
+ * are wrong.
22
+ */
23
+ export declare const catalogueDocs: (request: CatalogueDocsRequest, log: Logger) => Promise<CatalogueDocsReport>;
24
+ //# sourceMappingURL=catalogueDocs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogueDocs.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueDocs.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AASpE,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAAG;IACjC,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,oBAAoB,EAC7B,KAAK,MAAM,KACV,OAAO,CAAC,mBAAmB,CA+C7B,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Writes a package's `CATALOG.md` and `llms.txt`, or checks that both are up to date: what `forgebook docs` and its
3
+ * former name `forgebook-docs` run.
4
+ *
5
+ * @module
6
+ */
7
+ import { join, relative } from "node:path";
8
+ import { readFileSafe, readJson, writeIfChanged } from "@ensiria/cli-kit/files";
9
+ import { plural } from "@ensiria/cli-kit/format";
10
+ import { ScriptError } from "@ensiria/cli-kit/script";
11
+ import { frameworkDocsModule } from "../frameworkDocs.js";
12
+ import { catalogueMarkdown } from "./catalogueMarkdown.js";
13
+ import { catalogueOptionsOf } from "./catalogueOptions.js";
14
+ import { collectDocs } from "./collectDocs.js";
15
+ import { llmsText } from "./llmsText.js";
16
+ /** The file an agent reads first, beside the catalogue. */
17
+ const LLMS_FILE = "llms.txt";
18
+ /**
19
+ * Writes the package's `CATALOG.md` and `llms.txt`, or checks them.
20
+ *
21
+ * @param request - the package, its framework, whether to check, and the command that fixes them.
22
+ * @param log - where to report.
23
+ * @returns the report, for `--json`.
24
+ * @throws a `ScriptError` in a check when a file is stale or a file could not be read, or when the package's options
25
+ * are wrong.
26
+ */
27
+ export const catalogueDocs = async (request, log) => {
28
+ const { packageDir } = request;
29
+ const { options, problems: optionProblems } = catalogueOptionsOf(readJson(join(packageDir, "package.json")));
30
+ if (optionProblems.length > 0)
31
+ throw new ScriptError(optionProblems.join("; "), {
32
+ hint: "Fix the forgebook.catalog key of package.json"
33
+ });
34
+ const file = join(packageDir, options.file);
35
+ const llmsFile = join(packageDir, LLMS_FILE);
36
+ const shown = (path) => relative(process.cwd(), path);
37
+ const { data, problems } = collectDocs(packageDir, (await frameworkDocsModule(packageDir, request.framework)).extractStoryComponent, options);
38
+ for (const problem of problems)
39
+ log.error(problem);
40
+ const text = catalogueMarkdown(data, options.sections);
41
+ const llms = llmsText({
42
+ packageName: data.packageName,
43
+ description: data.description,
44
+ catalogueFile: options.file
45
+ });
46
+ const counts = {
47
+ components: data.components.length,
48
+ modules: data.modules.length,
49
+ sassModules: data.sassModules.length,
50
+ styleSheets: data.styleSheets.length
51
+ };
52
+ const report = { file: shown(file), llmsFile: shown(llmsFile), counts, problems };
53
+ if (request.isCheck) {
54
+ if (problems.length > 0)
55
+ throw new ScriptError(`${plural(problems.length, "file")} could not be read`);
56
+ const written = [
57
+ [file, text],
58
+ [llmsFile, llms]
59
+ ];
60
+ for (const [path, expected] of written) {
61
+ if (readFileSafe(path) !== expected)
62
+ throw new ScriptError(`${shown(path)} is stale`, { hint: `Run ${request.fixCommand}` });
63
+ }
64
+ log.success(`${shown(file)} and ${LLMS_FILE} are up to date`);
65
+ return { status: "valid", ...report };
66
+ }
67
+ const isWritten = [writeIfChanged(file, text), writeIfChanged(llmsFile, llms)].some(Boolean);
68
+ log.success(`${shown(file)} and ${LLMS_FILE} ${isWritten ? "written" : "already up to date"}`);
69
+ return { status: isWritten ? "written" : "up-to-date", ...report };
70
+ };
71
+ //# sourceMappingURL=catalogueDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogueDocs.js","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueDocs.ts"],"names":[],"mappings":"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"}
@@ -57,11 +57,17 @@ export type CatalogueComponent = {
57
57
  readonly docs: ComponentDocs;
58
58
  /** Its stories' names. */
59
59
  readonly stories: readonly string[];
60
+ /** The export name of its main story (`parameters.main`, else its first); none without stories. */
61
+ readonly mainStory: string | undefined;
60
62
  };
61
63
  /** Everything `CATALOG.md` lists. */
62
64
  export type CatalogueData = {
63
65
  /** The package's name (`@acme/ui`). */
64
66
  readonly packageName: string;
67
+ /** The package's description, from its manifest; none when it has none. */
68
+ readonly description: string | undefined;
69
+ /** The id its stories carry in a catalogue, read from its `./stories` export; none when not written plainly. */
70
+ readonly sourceId: string | undefined;
65
71
  /** The components with stories, by title. */
66
72
  readonly components: readonly CatalogueComponent[];
67
73
  /** The other exported modules. */
@@ -77,6 +83,8 @@ export type CatalogueDocsReport = {
77
83
  readonly status: "written" | "up-to-date" | "valid";
78
84
  /** The file, relative to the working directory. */
79
85
  readonly file: string;
86
+ /** `llms.txt`, beside it, relative to the folder the command runs in. */
87
+ readonly llmsFile: string;
80
88
  /** How many components, modules, Sass modules and style sheets it lists. */
81
89
  readonly counts: {
82
90
  readonly components: number;
@@ -1 +1 @@
1
- {"version":3,"file":"catalogueDocs.types.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueDocs.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalogueDocs.types.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueDocs.types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { CatalogueData } from "./catalogueDocs.types.ts";
2
+ import type { CatalogueSection } from "./catalogueOptions.ts";
2
3
  /**
3
4
  * The text of `CATALOG.md`.
4
5
  *
5
6
  * @param data - what the command read.
7
+ * @param sections - the kinds of entries to list, in this order.
6
8
  * @returns the Markdown, ending with a newline.
7
9
  */
8
- export declare const catalogueMarkdown: (data: CatalogueData) => string;
10
+ export declare const catalogueMarkdown: (data: CatalogueData, sections: readonly CatalogueSection[]) => string;
9
11
  //# sourceMappingURL=catalogueMarkdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogueMarkdown.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueMarkdown.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAsB,aAAa,EAA0B,MAAM,0BAA0B,CAAC;AAkG1G;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa,KAAG,MA6CvD,CAAC"}
1
+ {"version":3,"file":"catalogueMarkdown.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueMarkdown.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAsB,aAAa,EAA0B,MAAM,0BAA0B,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA0J9D;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa,EAAE,UAAU,SAAS,gBAAgB,EAAE,KAAG,MAc9F,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { storyId } from "../../src/storyTree.js";
1
2
  /** The props whose keys are the parts. */
2
3
  const PART_MAPS = ["classNames", "styles", "refs"];
3
4
  /** A prop in short. */
@@ -22,8 +23,8 @@ const shortProp = (prop) => {
22
23
  const sentence = (text) => text.replace(/\.$/, "");
23
24
  /** The import of a subpath. */
24
25
  const importOf = (packageName, subpath) => `${packageName}${subpath.slice(1)}`;
25
- /** One component's line. */
26
- const componentLine = (packageName, component) => {
26
+ /** One component's line, ending with its main story's id when the package's source id is known. */
27
+ const componentLine = (packageName, component, sourceId) => {
27
28
  const { docs } = component;
28
29
  const where = ` \`${importOf(packageName, component.subpath)}\``;
29
30
  // the part maps are summed up by the parts at the end of the line
@@ -32,7 +33,10 @@ const componentLine = (packageName, component) => {
32
33
  .map(shortProp)
33
34
  .join(" ");
34
35
  const parts = docs.parts.length === 0 ? "" : ` · parts: ${docs.parts.join(", ")}`;
35
- return `- **${docs.name}**${where}: ${sentence(docs.description)}. ${props}${parts}`;
36
+ const story = sourceId === undefined || component.mainStory === undefined
37
+ ? ""
38
+ : ` · story: \`${storyId(sourceId, component.title, component.mainStory)}\``;
39
+ return `- **${docs.name}**${where}: ${sentence(docs.description)}. ${props}${parts}${story}`;
36
40
  };
37
41
  /** Letters and digits only, lower case: how a subpath and an export name are compared. */
38
42
  const comparable = (text) => text.toLowerCase().replace(/[^a-z0-9]/g, "");
@@ -76,57 +80,73 @@ const byPlace = (left, right) => {
76
80
  leftGroup.localeCompare(rightGroup) ||
77
81
  leftName.localeCompare(rightName));
78
82
  };
83
+ /** The lines of one kind of entries, a heading first; none when the package has none of it. */
84
+ const sectionLines = (data, section) => {
85
+ if (section === "components") {
86
+ const lines = ["## Components", ""];
87
+ if (data.components.length === 0)
88
+ return [...lines, "None yet.", ""];
89
+ let heading = "";
90
+ for (const component of [...data.components].sort(byPlace)) {
91
+ const group = component.title.split("/").slice(0, -1).join(" › ");
92
+ if (group !== heading) {
93
+ lines.push(`### ${group}`);
94
+ heading = group;
95
+ }
96
+ lines.push(componentLine(data.packageName, component, data.sourceId));
97
+ }
98
+ return [...lines, ""];
99
+ }
100
+ if (section === "modules") {
101
+ if (data.modules.length === 0)
102
+ return [];
103
+ const modules = [...data.modules].sort((left, right) => left.subpath.localeCompare(right.subpath));
104
+ return ["## Modules", "", ...modules.map((module) => moduleLine(data.packageName, module)), ""];
105
+ }
106
+ if (section === "sassModules") {
107
+ if (data.sassModules.length === 0)
108
+ return [];
109
+ return [
110
+ "## Sass modules",
111
+ "",
112
+ `\`@use "pkg:${data.packageName}/scss/<name>"\`.`,
113
+ "",
114
+ ...data.sassModules.map((module) => {
115
+ const members = module.members.map((member) => `${member.name}(${member.parameters.join(", ")}): ${sentence(member.summary)}`);
116
+ return `- \`${module.subpath.slice("./scss/".length)}\`: ${members.join("; ")}`;
117
+ }),
118
+ ""
119
+ ];
120
+ }
121
+ if (data.styleSheets.length === 0)
122
+ return [];
123
+ return [
124
+ "## Style sheets",
125
+ "",
126
+ ...data.styleSheets.map((sheet) => `- \`${importOf(data.packageName, sheet.subpath)}\`: ${sheet.summary}`),
127
+ ""
128
+ ];
129
+ };
79
130
  /**
80
131
  * The text of `CATALOG.md`.
81
132
  *
82
133
  * @param data - what the command read.
134
+ * @param sections - the kinds of entries to list, in this order.
83
135
  * @returns the Markdown, ending with a newline.
84
136
  */
85
- export const catalogueMarkdown = (data) => {
137
+ export const catalogueMarkdown = (data, sections) => {
86
138
  const lines = [
87
139
  `# ${data.packageName}`,
88
140
  "",
89
- "<!-- GENERATED by forgebook-docs from the exports, their TSDoc and the stories: do not edit. -->",
141
+ "<!-- GENERATED by forgebook docs from the exports, their TSDoc and the stories: do not edit. -->",
90
142
  "",
91
143
  "Read before writing a component, hook or helper: what exists, how to import it, its props in short",
92
- "(`a|b*`: values, `*` the default; `!` required; `onX(value)`: an event).",
93
- ""
144
+ data.sourceId === undefined
145
+ ? "(`a|b*`: values, `*` the default; `!` required; `onX(value)`: an event)."
146
+ : "(`a|b*`: values, `*` the default; `!` required; `onX(value)`: an event), and a story that shows it (`story:`).",
147
+ "",
148
+ ...sections.flatMap((section) => sectionLines(data, section))
94
149
  ];
95
- lines.push("## Components", "");
96
- if (data.components.length === 0)
97
- lines.push("None yet.", "");
98
- let heading = "";
99
- for (const component of [...data.components].sort(byPlace)) {
100
- const group = component.title.split("/").slice(0, -1).join(" › ");
101
- if (group !== heading) {
102
- lines.push(`### ${group}`);
103
- heading = group;
104
- }
105
- lines.push(componentLine(data.packageName, component));
106
- }
107
- if (data.components.length > 0)
108
- lines.push("");
109
- if (data.modules.length > 0) {
110
- lines.push("## Modules", "");
111
- const modules = [...data.modules].sort((left, right) => left.subpath.localeCompare(right.subpath));
112
- for (const module of modules)
113
- lines.push(moduleLine(data.packageName, module));
114
- lines.push("");
115
- }
116
- if (data.sassModules.length > 0) {
117
- lines.push("## Sass modules", "", `\`@use "pkg:${data.packageName}/scss/<name>"\`.`, "");
118
- for (const module of data.sassModules) {
119
- const members = module.members.map((member) => `${member.name}(${member.parameters.join(", ")}): ${sentence(member.summary)}`);
120
- lines.push(`- \`${module.subpath.slice("./scss/".length)}\`: ${members.join("; ")}`);
121
- }
122
- lines.push("");
123
- }
124
- if (data.styleSheets.length > 0) {
125
- lines.push("## Style sheets", "");
126
- for (const sheet of data.styleSheets)
127
- lines.push(`- \`${importOf(data.packageName, sheet.subpath)}\`: ${sheet.summary}`);
128
- lines.push("");
129
- }
130
150
  return `${lines.join("\n").trimEnd()}\n`;
131
151
  };
132
152
  //# sourceMappingURL=catalogueMarkdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogueMarkdown.js","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueMarkdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalogueMarkdown.js","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueMarkdown.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,0CAA0C;AAC1C,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEnD,uBAAuB;AACvB,MAAM,SAAS,GAAG,CAAC,IAAc,EAAU,EAAE;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBACnD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC;gBAClF,CAAC,CAAC,GAAG,MAAM,GAAG;gBACd,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACnB;iBACA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7G,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;QACnC;YACE,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEnE,+BAA+B;AAC/B,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAU,EAAE,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEvG,mGAAmG;AACnG,MAAM,aAAa,GAAG,CACpB,WAAmB,EACnB,SAA6B,EAC7B,QAA4B,EACpB,EAAE;IACV,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IACjE,kEAAkE;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChD,GAAG,CAAC,SAAS,CAAC;SACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClF,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;QACzD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IACjF,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAC/F,CAAC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE1F;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAA8B,EAA0B,EAAE;IAC7F,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,CAAC,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,yBAAyB;AACzB,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,MAAkB,EAAU,EAAE;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1F,MAAM,IAAI,GAAG;QACX,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7D,CAAC;IACF,OAAO,OAAO,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACzH,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAU,EAAE,CAChD,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAEnG,iEAAiE;AACjE,MAAM,KAAK,GAAG,CAAC,KAAa,EAAqC,EAAE;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,GAAG,CAAC,IAAgC,EAAE,KAAiC,EAAU,EAAE;IAC9F,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,CACL,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QACrC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;QACnC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF,+FAA+F;AAC/F,MAAM,YAAY,GAAG,CAAC,IAAmB,EAAE,OAAyB,EAAY,EAAE;IAChF,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;gBAC3B,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO;YACL,iBAAiB;YACjB,EAAE;YACF,eAAe,IAAI,CAAC,WAAW,kBAAkB;YACjD,EAAE;YACF,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAC3F,CAAC;gBACF,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,CAAC,CAAC;YACF,EAAE;SACH,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO;QACL,iBAAiB;QACjB,EAAE;QACF,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,CAClF;QACD,EAAE;KACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAE,QAAqC,EAAU,EAAE;IACtG,MAAM,KAAK,GAAG;QACZ,KAAK,IAAI,CAAC,WAAW,EAAE;QACvB,EAAE;QACF,kGAAkG;QAClG,EAAE;QACF,oGAAoG;QACpG,IAAI,CAAC,QAAQ,KAAK,SAAS;YACzB,CAAC,CAAC,0EAA0E;YAC5E,CAAC,CAAC,gHAAgH;QACpH,EAAE;QACF,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC9D,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;AAC3C,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * How a package sets its `CATALOG.md`: the `forgebook.catalog` key of its `package.json`, checked. A library has no
3
+ * catalogue configuration of its own, and the key travels with the package.
4
+ *
5
+ * @module
6
+ */
7
+ /** The kinds of entries the file lists, in the order they are written by default. */
8
+ export declare const CATALOGUE_SECTIONS: readonly ["components", "modules", "sassModules", "styleSheets"];
9
+ /** One kind of entries. */
10
+ export type CatalogueSection = (typeof CATALOGUE_SECTIONS)[number];
11
+ /** How a package's `CATALOG.md` is written. */
12
+ export type CatalogueOptions = {
13
+ /** The file's name, in the package's folder. @defaultValue `"CATALOG.md"` */
14
+ readonly file: string;
15
+ /** The kinds of entries it lists, in this order. @defaultValue every kind, components first */
16
+ readonly sections: readonly CatalogueSection[];
17
+ /** Export subpaths left out (`./internal/tokens`); a trailing `*` leaves out every subpath it starts. */
18
+ readonly exclude: readonly string[];
19
+ };
20
+ /** The options of a package that sets none. */
21
+ export declare const DEFAULT_CATALOGUE_OPTIONS: CatalogueOptions;
22
+ /**
23
+ * A package's catalogue options, from its manifest, with what is wrong in them.
24
+ *
25
+ * @param manifest - the package's `package.json`, parsed.
26
+ * @returns the options (the defaults where it sets none or sets them wrongly) and one message per mistake.
27
+ */
28
+ export declare const catalogueOptionsOf: (manifest: unknown) => {
29
+ readonly options: CatalogueOptions;
30
+ readonly problems: readonly string[];
31
+ };
32
+ /**
33
+ * Whether an export subpath is left out by the options.
34
+ *
35
+ * @param subpath - the subpath (`./internal/tokens`).
36
+ * @param exclude - the options' `exclude`.
37
+ */
38
+ export declare const isExcluded: (subpath: string, exclude: readonly string[]) => boolean;
39
+ //# sourceMappingURL=catalogueOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogueOptions.d.ts","sourceRoot":"","sources":["../../../bin/forgebook-docs/catalogueOptions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,kEAAmE,CAAC;AAEnG,2BAA2B;AAC3B,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,yGAAyG;IACzG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB,EAAE,gBAIvC,CAAC;AAsCF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,OAAO,KAChB;IAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAa5E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM,EAAE,KAAG,OAGtE,CAAC"}