forgebook 0.1.2 → 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.
- package/README.md +94 -5
- package/dist/bin/forgebook/agentClient.d.ts +39 -0
- package/dist/bin/forgebook/agentClient.d.ts.map +1 -0
- package/dist/bin/forgebook/agentClient.js +91 -0
- package/dist/bin/forgebook/agentClient.js.map +1 -0
- package/dist/bin/forgebook/agentLoopCommands.d.mts +9 -0
- package/dist/bin/forgebook/agentLoopCommands.d.mts.map +1 -0
- package/dist/bin/forgebook/agentLoopCommands.mjs +217 -0
- package/dist/bin/forgebook/agentLoopCommands.mjs.map +1 -0
- package/dist/bin/forgebook/agentText.d.ts +54 -0
- package/dist/bin/forgebook/agentText.d.ts.map +1 -0
- package/dist/bin/forgebook/agentText.js +91 -0
- package/dist/bin/forgebook/agentText.js.map +1 -0
- package/dist/bin/forgebook/agents.md +46 -0
- package/dist/bin/forgebook/agentsText.d.ts +29 -0
- package/dist/bin/forgebook/agentsText.d.ts.map +1 -0
- package/dist/bin/forgebook/agentsText.js +48 -0
- package/dist/bin/forgebook/agentsText.js.map +1 -0
- package/dist/bin/forgebook/catalogueCommands.d.ts +51 -0
- package/dist/bin/forgebook/catalogueCommands.d.ts.map +1 -0
- package/dist/bin/forgebook/catalogueCommands.js +90 -0
- package/dist/bin/forgebook/catalogueCommands.js.map +1 -0
- package/dist/bin/forgebook/errorsRun.d.ts +27 -0
- package/dist/bin/forgebook/errorsRun.d.ts.map +1 -0
- package/dist/bin/forgebook/errorsRun.js +60 -0
- package/dist/bin/forgebook/errorsRun.js.map +1 -0
- package/dist/bin/forgebook/forgebook.mjs +283 -79
- package/dist/bin/forgebook/forgebook.mjs.map +1 -1
- package/dist/bin/forgebook/importers/storybook.d.ts +53 -0
- package/dist/bin/forgebook/importers/storybook.d.ts.map +1 -0
- package/dist/bin/forgebook/importers/storybook.js +318 -0
- package/dist/bin/forgebook/importers/storybook.js.map +1 -0
- package/dist/bin/forgebook/initCommands.d.mts +9 -0
- package/dist/bin/forgebook/initCommands.d.mts.map +1 -0
- package/dist/bin/forgebook/initCommands.mjs +86 -0
- package/dist/bin/forgebook/initCommands.mjs.map +1 -0
- package/dist/bin/forgebook/initConfig.d.ts +22 -0
- package/dist/bin/forgebook/initConfig.d.ts.map +1 -0
- package/dist/bin/forgebook/initConfig.js +51 -0
- package/dist/bin/forgebook/initConfig.js.map +1 -0
- package/dist/bin/forgebook/mcpTools.d.ts +38 -0
- package/dist/bin/forgebook/mcpTools.d.ts.map +1 -0
- package/dist/bin/forgebook/mcpTools.js +212 -0
- package/dist/bin/forgebook/mcpTools.js.map +1 -0
- package/dist/bin/forgebook/newStories.d.ts +27 -0
- package/dist/bin/forgebook/newStories.d.ts.map +1 -0
- package/dist/bin/forgebook/newStories.js +109 -0
- package/dist/bin/forgebook/newStories.js.map +1 -0
- package/dist/bin/forgebook/newStoriesFile.d.ts +18 -0
- package/dist/bin/forgebook/newStoriesFile.d.ts.map +1 -0
- package/dist/bin/forgebook/newStoriesFile.js +58 -0
- package/dist/bin/forgebook/newStoriesFile.js.map +1 -0
- package/dist/bin/forgebook/storyCheckRun.d.ts +39 -0
- package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -0
- package/dist/bin/forgebook/storyCheckRun.js +177 -0
- package/dist/bin/forgebook/storyCheckRun.js.map +1 -0
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts +24 -0
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +1 -0
- package/dist/bin/forgebook-docs/catalogueDocs.js +71 -0
- package/dist/bin/forgebook-docs/catalogueDocs.js.map +1 -0
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +8 -0
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +3 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +62 -42
- package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -1
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts +39 -0
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +1 -0
- package/dist/bin/forgebook-docs/catalogueOptions.js +76 -0
- package/dist/bin/forgebook-docs/catalogueOptions.js.map +1 -0
- package/dist/bin/forgebook-docs/collectDocs.d.ts +3 -1
- package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -1
- package/dist/bin/forgebook-docs/collectDocs.js +37 -13
- package/dist/bin/forgebook-docs/collectDocs.js.map +1 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs +17 -80
- package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts +24 -0
- package/dist/bin/forgebook-docs/llmsText.d.ts.map +1 -0
- package/dist/bin/forgebook-docs/llmsText.js +33 -0
- package/dist/bin/forgebook-docs/llmsText.js.map +1 -0
- package/dist/bin/forgebook-docs/sourceId.d.ts +9 -0
- package/dist/bin/forgebook-docs/sourceId.d.ts.map +1 -0
- package/dist/bin/forgebook-docs/sourceId.js +45 -0
- package/dist/bin/forgebook-docs/sourceId.js.map +1 -0
- package/dist/bin/frameworkDocs.d.ts +10 -0
- package/dist/bin/frameworkDocs.d.ts.map +1 -0
- package/dist/bin/frameworkDocs.js +43 -0
- package/dist/bin/frameworkDocs.js.map +1 -0
- package/dist/src/argTypes.d.ts +23 -0
- package/dist/src/argTypes.d.ts.map +1 -1
- package/dist/src/argTypes.js +27 -0
- package/dist/src/argTypes.js.map +1 -1
- package/dist/src/catalogue.d.ts +70 -3
- package/dist/src/catalogue.d.ts.map +1 -1
- package/dist/src/catalogue.js +85 -3
- package/dist/src/catalogue.js.map +1 -1
- package/dist/src/controlKeys.d.ts +85 -0
- package/dist/src/controlKeys.d.ts.map +1 -0
- package/dist/src/controlKeys.js +118 -0
- package/dist/src/controlKeys.js.map +1 -0
- package/dist/src/frame/frame.css +33 -2
- package/dist/src/frame/frameView.d.ts +2 -2
- package/dist/src/frame/frameView.d.ts.map +1 -1
- package/dist/src/frame/frameView.js +7 -3
- package/dist/src/frame/frameView.js.map +1 -1
- package/dist/src/frame/mountFrame.d.ts.map +1 -1
- package/dist/src/frame/mountFrame.js +26 -2
- package/dist/src/frame/mountFrame.js.map +1 -1
- package/dist/src/frame/spillOutline.d.ts +10 -0
- package/dist/src/frame/spillOutline.d.ts.map +1 -0
- package/dist/src/frame/spillOutline.js +80 -0
- package/dist/src/frame/spillOutline.js.map +1 -0
- package/dist/src/liveErrors.d.ts +57 -0
- package/dist/src/liveErrors.d.ts.map +1 -0
- package/dist/src/liveErrors.js +52 -0
- package/dist/src/liveErrors.js.map +1 -0
- package/dist/src/messages.d.ts +12 -0
- package/dist/src/messages.d.ts.map +1 -1
- package/dist/src/messages.js +4 -0
- package/dist/src/messages.js.map +1 -1
- package/dist/src/namedViews.d.ts +80 -0
- package/dist/src/namedViews.d.ts.map +1 -0
- package/dist/src/namedViews.js +88 -0
- package/dist/src/namedViews.js.map +1 -0
- package/dist/src/shell/AppearanceMenu.d.ts +15 -0
- package/dist/src/shell/AppearanceMenu.d.ts.map +1 -0
- package/dist/src/shell/AppearanceMenu.js +28 -0
- package/dist/src/shell/AppearanceMenu.js.map +1 -0
- package/dist/src/shell/BoxWidth.d.ts +40 -0
- package/dist/src/shell/BoxWidth.d.ts.map +1 -0
- package/dist/src/shell/BoxWidth.js +56 -0
- package/dist/src/shell/BoxWidth.js.map +1 -0
- package/dist/src/shell/ComponentPage.d.ts +17 -1
- package/dist/src/shell/ComponentPage.d.ts.map +1 -1
- package/dist/src/shell/ComponentPage.js +19 -54
- package/dist/src/shell/ComponentPage.js.map +1 -1
- package/dist/src/shell/ControlKeyField.d.ts +21 -0
- package/dist/src/shell/ControlKeyField.d.ts.map +1 -0
- package/dist/src/shell/ControlKeyField.js +46 -0
- package/dist/src/shell/ControlKeyField.js.map +1 -0
- package/dist/src/shell/ControlRow.d.ts +31 -0
- package/dist/src/shell/ControlRow.d.ts.map +1 -0
- package/dist/src/shell/ControlRow.js +27 -0
- package/dist/src/shell/ControlRow.js.map +1 -0
- package/dist/src/shell/Example.d.ts +58 -0
- package/dist/src/shell/Example.d.ts.map +1 -0
- package/dist/src/shell/Example.js +89 -0
- package/dist/src/shell/Example.js.map +1 -0
- package/dist/src/shell/NamedViews.d.ts +23 -0
- package/dist/src/shell/NamedViews.d.ts.map +1 -0
- package/dist/src/shell/NamedViews.js +49 -0
- package/dist/src/shell/NamedViews.js.map +1 -0
- package/dist/src/shell/PinnedControl.d.ts +25 -0
- package/dist/src/shell/PinnedControl.d.ts.map +1 -0
- package/dist/src/shell/PinnedControl.js +81 -0
- package/dist/src/shell/PinnedControl.js.map +1 -0
- package/dist/src/shell/PropsTab.d.ts +5 -2
- package/dist/src/shell/PropsTab.d.ts.map +1 -1
- package/dist/src/shell/PropsTab.js +12 -15
- package/dist/src/shell/PropsTab.js.map +1 -1
- package/dist/src/shell/Shell.d.ts.map +1 -1
- package/dist/src/shell/Shell.js +27 -2
- package/dist/src/shell/Shell.js.map +1 -1
- package/dist/src/shell/Sidebar.d.ts +11 -9
- package/dist/src/shell/Sidebar.d.ts.map +1 -1
- package/dist/src/shell/Sidebar.js +48 -42
- package/dist/src/shell/Sidebar.js.map +1 -1
- package/dist/src/shell/SidebarEntries.d.ts +50 -0
- package/dist/src/shell/SidebarEntries.d.ts.map +1 -0
- package/dist/src/shell/SidebarEntries.js +51 -0
- package/dist/src/shell/SidebarEntries.js.map +1 -0
- package/dist/src/shell/Stage.d.ts.map +1 -1
- package/dist/src/shell/Stage.js +19 -2
- package/dist/src/shell/Stage.js.map +1 -1
- package/dist/src/shell/Toolbar.d.ts +7 -3
- package/dist/src/shell/Toolbar.d.ts.map +1 -1
- package/dist/src/shell/Toolbar.js +38 -68
- package/dist/src/shell/Toolbar.js.map +1 -1
- package/dist/src/shell/ToolbarControl.d.ts +47 -0
- package/dist/src/shell/ToolbarControl.d.ts.map +1 -0
- package/dist/src/shell/ToolbarControl.js +150 -0
- package/dist/src/shell/ToolbarControl.js.map +1 -0
- package/dist/src/shell/UsedIn.d.ts +38 -0
- package/dist/src/shell/UsedIn.d.ts.map +1 -0
- package/dist/src/shell/UsedIn.js +77 -0
- package/dist/src/shell/UsedIn.js.map +1 -0
- package/dist/src/shell/ViewMenu.d.ts +37 -0
- package/dist/src/shell/ViewMenu.d.ts.map +1 -0
- package/dist/src/shell/ViewMenu.js +216 -0
- package/dist/src/shell/ViewMenu.js.map +1 -0
- package/dist/src/shell/controlCycle.d.ts +28 -0
- package/dist/src/shell/controlCycle.d.ts.map +1 -0
- package/dist/src/shell/controlCycle.js +51 -0
- package/dist/src/shell/controlCycle.js.map +1 -0
- package/dist/src/shell/dockTabs.d.ts +3 -0
- package/dist/src/shell/dockTabs.d.ts.map +1 -1
- package/dist/src/shell/dockTabs.js +1 -1
- package/dist/src/shell/dockTabs.js.map +1 -1
- package/dist/src/shell/icons.d.ts +6 -0
- package/dist/src/shell/icons.d.ts.map +1 -1
- package/dist/src/shell/icons.js +7 -1
- package/dist/src/shell/icons.js.map +1 -1
- package/dist/src/shell/keyboard.d.ts +2 -1
- package/dist/src/shell/keyboard.d.ts.map +1 -1
- package/dist/src/shell/keyboard.js +5 -2
- package/dist/src/shell/keyboard.js.map +1 -1
- package/dist/src/shell/shell.css +826 -243
- package/dist/src/shell/strings.d.ts +45 -0
- package/dist/src/shell/strings.d.ts.map +1 -1
- package/dist/src/shell/strings.js +45 -0
- package/dist/src/shell/strings.js.map +1 -1
- package/dist/src/shell/useAppearance.d.ts +17 -0
- package/dist/src/shell/useAppearance.d.ts.map +1 -0
- package/dist/src/shell/useAppearance.js +36 -0
- package/dist/src/shell/useAppearance.js.map +1 -0
- package/dist/src/shell/useControlKeys.d.ts +23 -0
- package/dist/src/shell/useControlKeys.d.ts.map +1 -0
- package/dist/src/shell/useControlKeys.js +44 -0
- package/dist/src/shell/useControlKeys.js.map +1 -0
- package/dist/src/shell/useFold.d.ts +27 -0
- package/dist/src/shell/useFold.d.ts.map +1 -0
- package/dist/src/shell/useFold.js +87 -0
- package/dist/src/shell/useFold.js.map +1 -0
- package/dist/src/shell/useFrameMessages.d.ts +2 -0
- package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
- package/dist/src/shell/useFrameMessages.js +3 -0
- package/dist/src/shell/useFrameMessages.js.map +1 -1
- package/dist/src/shell/useFullPage.d.ts +45 -0
- package/dist/src/shell/useFullPage.d.ts.map +1 -0
- package/dist/src/shell/useFullPage.js +149 -0
- package/dist/src/shell/useFullPage.js.map +1 -0
- package/dist/src/shell/usePopover.d.ts +17 -3
- package/dist/src/shell/usePopover.d.ts.map +1 -1
- package/dist/src/shell/usePopover.js +65 -4
- package/dist/src/shell/usePopover.js.map +1 -1
- package/dist/src/shell/useStored.d.ts +13 -2
- package/dist/src/shell/useStored.d.ts.map +1 -1
- package/dist/src/shell/useStored.js +1 -1
- package/dist/src/shell/useStored.js.map +1 -1
- package/dist/src/shell/useToolbarLayout.d.ts +39 -0
- package/dist/src/shell/useToolbarLayout.d.ts.map +1 -0
- package/dist/src/shell/useToolbarLayout.js +58 -0
- package/dist/src/shell/useToolbarLayout.js.map +1 -0
- package/dist/src/shell/useToolbarOverflow.d.ts +31 -0
- package/dist/src/shell/useToolbarOverflow.d.ts.map +1 -0
- package/dist/src/shell/useToolbarOverflow.js +62 -0
- package/dist/src/shell/useToolbarOverflow.js.map +1 -0
- package/dist/src/shell/useWorstCase.d.ts +46 -0
- package/dist/src/shell/useWorstCase.d.ts.map +1 -0
- package/dist/src/shell/useWorstCase.js +42 -0
- package/dist/src/shell/useWorstCase.js.map +1 -0
- package/dist/src/shell/worstArgs.d.ts +42 -0
- package/dist/src/shell/worstArgs.d.ts.map +1 -0
- package/dist/src/shell/worstArgs.js +47 -0
- package/dist/src/shell/worstArgs.js.map +1 -0
- package/dist/src/spills.d.ts +31 -0
- package/dist/src/spills.d.ts.map +1 -0
- package/dist/src/spills.js +65 -0
- package/dist/src/spills.js.map +1 -0
- package/dist/src/storyCheck.d.ts +105 -0
- package/dist/src/storyCheck.d.ts.map +1 -0
- package/dist/src/storyCheck.js +63 -0
- package/dist/src/storyCheck.js.map +1 -0
- package/dist/src/switches.d.ts +16 -4
- package/dist/src/switches.d.ts.map +1 -1
- package/dist/src/switches.js +30 -5
- package/dist/src/switches.js.map +1 -1
- package/dist/src/toolbarLayout.d.ts +119 -0
- package/dist/src/toolbarLayout.d.ts.map +1 -0
- package/dist/src/toolbarLayout.js +155 -0
- package/dist/src/toolbarLayout.js.map +1 -0
- package/dist/src/usedIn.d.ts +60 -0
- package/dist/src/usedIn.d.ts.map +1 -0
- package/dist/src/usedIn.js +92 -0
- package/dist/src/usedIn.js.map +1 -0
- package/dist/src/viewState.d.ts +15 -10
- package/dist/src/viewState.d.ts.map +1 -1
- package/dist/src/viewState.js +35 -18
- package/dist/src/viewState.js.map +1 -1
- package/dist/src/viewWords.d.ts +26 -0
- package/dist/src/viewWords.d.ts.map +1 -0
- package/dist/src/viewWords.js +29 -0
- package/dist/src/viewWords.js.map +1 -0
- package/dist/src/vite/adapter.d.ts +13 -4
- package/dist/src/vite/adapter.d.ts.map +1 -1
- package/dist/src/vite/adapter.js +4 -2
- package/dist/src/vite/adapter.js.map +1 -1
- package/dist/src/vite/agent.types.d.ts +120 -0
- package/dist/src/vite/agent.types.d.ts.map +1 -0
- package/dist/src/vite/agent.types.js +1 -0
- package/dist/src/vite/agent.types.js.map +1 -0
- package/dist/src/vite/agentApi.d.ts +106 -0
- package/dist/src/vite/agentApi.d.ts.map +1 -0
- package/dist/src/vite/agentApi.js +216 -0
- package/dist/src/vite/agentApi.js.map +1 -0
- package/dist/src/vite/agentRoutes.d.ts +50 -0
- package/dist/src/vite/agentRoutes.d.ts.map +1 -0
- package/dist/src/vite/agentRoutes.js +155 -0
- package/dist/src/vite/agentRoutes.js.map +1 -0
- package/dist/src/vite/configFile.d.ts +2 -1
- package/dist/src/vite/configFile.d.ts.map +1 -1
- package/dist/src/vite/configFile.js +29 -11
- package/dist/src/vite/configFile.js.map +1 -1
- package/dist/src/vite/docsExtractor.d.ts +26 -2
- package/dist/src/vite/docsExtractor.d.ts.map +1 -1
- package/dist/src/vite/docsExtractor.js +12 -9
- package/dist/src/vite/docsExtractor.js.map +1 -1
- package/dist/src/vite/docsWorker.js +18 -2
- package/dist/src/vite/docsWorker.js.map +1 -1
- package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
- package/dist/src/vite/forgebookPlugin.js +116 -16
- package/dist/src/vite/forgebookPlugin.js.map +1 -1
- package/dist/src/vite/indexStoryFile.d.ts +14 -0
- package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
- package/dist/src/vite/indexStoryFile.js +13 -4
- package/dist/src/vite/indexStoryFile.js.map +1 -1
- package/dist/src/vite/mcpProtocol.d.ts +82 -0
- package/dist/src/vite/mcpProtocol.d.ts.map +1 -0
- package/dist/src/vite/mcpProtocol.js +184 -0
- package/dist/src/vite/mcpProtocol.js.map +1 -0
- package/dist/src/vite/pages.d.ts +12 -0
- package/dist/src/vite/pages.d.ts.map +1 -1
- package/dist/src/vite/pages.js +21 -0
- package/dist/src/vite/pages.js.map +1 -1
- package/dist/src/vite/storyFilesModule.d.ts +28 -1
- package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
- package/dist/src/vite/storyFilesModule.js +34 -14
- package/dist/src/vite/storyFilesModule.js.map +1 -1
- package/dist/src/vite/usageGraph.d.ts +45 -0
- package/dist/src/vite/usageGraph.d.ts.map +1 -0
- package/dist/src/vite/usageGraph.js +246 -0
- package/dist/src/vite/usageGraph.js.map +1 -0
- package/dist/src/vite/usageModule.d.ts +33 -0
- package/dist/src/vite/usageModule.d.ts.map +1 -0
- package/dist/src/vite/usageModule.js +135 -0
- package/dist/src/vite/usageModule.js.map +1 -0
- package/dist/src/worstCase.d.ts +16 -0
- package/dist/src/worstCase.d.ts.map +1 -0
- package/dist/src/worstCase.js +16 -0
- package/dist/src/worstCase.js.map +1 -0
- package/package.json +18 -2
- package/dist/src/shell/SchemeSwitches.d.ts +0 -24
- package/dist/src/shell/SchemeSwitches.d.ts.map +0 -1
- package/dist/src/shell/SchemeSwitches.js +0 -36
- package/dist/src/shell/SchemeSwitches.js.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The part of the Model Context Protocol a stdio server with a few tools needs, written here instead of taking the
|
|
3
|
+
* protocol's SDK: one JSON-RPC message in, its answer out. Pure apart from the tools it calls.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Two eras of the protocol are served, as the specification's backward-compatibility rules describe: the current
|
|
7
|
+
* stateless one (`2026-07-28`: each request carries its version in `params._meta`, `server/discover` answers what the
|
|
8
|
+
* server offers) and the handshake one most clients still speak (`2025-11-25` and before: `initialize`, then
|
|
9
|
+
* requests). An `initialize` puts the session in the handshake era; a request carrying the version in `_meta` is
|
|
10
|
+
* answered statelessly. The tools never change while the server runs, so their list is cacheable and public.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/** The protocol's current version, stateless. */
|
|
15
|
+
export const MODERN_VERSION = "2026-07-28";
|
|
16
|
+
/** The handshake versions answered: the latest first, which a client asking for another is offered. */
|
|
17
|
+
export const HANDSHAKE_VERSIONS = ["2025-11-25", "2025-06-18", "2025-03-26"];
|
|
18
|
+
/** Every version served, for `server/discover` and for the error a client with another one gets. */
|
|
19
|
+
export const SUPPORTED_VERSIONS = [MODERN_VERSION, ...HANDSHAKE_VERSIONS];
|
|
20
|
+
/** The `_meta` keys of the current era. */
|
|
21
|
+
const META = {
|
|
22
|
+
version: "io.modelcontextprotocol/protocolVersion",
|
|
23
|
+
capabilities: "io.modelcontextprotocol/clientCapabilities",
|
|
24
|
+
serverInfo: "io.modelcontextprotocol/serverInfo"
|
|
25
|
+
};
|
|
26
|
+
/** JSON-RPC's and the protocol's error codes this server answers with. */
|
|
27
|
+
const ERRORS = {
|
|
28
|
+
parse: -32700,
|
|
29
|
+
invalidRequest: -32600,
|
|
30
|
+
methodNotFound: -32601,
|
|
31
|
+
invalidParams: -32602,
|
|
32
|
+
unsupportedVersion: -32022
|
|
33
|
+
};
|
|
34
|
+
/** How long a client may keep the tools' list, in ms: they never change while the server runs. */
|
|
35
|
+
const TOOLS_TTL_MS = 300_000;
|
|
36
|
+
/** A new session: no handshake yet. */
|
|
37
|
+
export const NEW_SESSION = { handshakeVersion: undefined };
|
|
38
|
+
/** Whether a value is a plain object. */
|
|
39
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
40
|
+
/** An error answer. */
|
|
41
|
+
const failure = (id, code, message, data) => ({
|
|
42
|
+
jsonrpc: "2.0",
|
|
43
|
+
id,
|
|
44
|
+
error: data === undefined ? { code, message } : { code, message, data }
|
|
45
|
+
});
|
|
46
|
+
/** A result answer. */
|
|
47
|
+
const success = (id, result) => ({
|
|
48
|
+
jsonrpc: "2.0",
|
|
49
|
+
id,
|
|
50
|
+
result
|
|
51
|
+
});
|
|
52
|
+
/** What the stateless era adds to every result: its type and who answered. */
|
|
53
|
+
const modernResult = (server, result) => ({
|
|
54
|
+
resultType: "complete",
|
|
55
|
+
...result,
|
|
56
|
+
// biome-ignore lint/style/useNamingConvention: the protocol names this field
|
|
57
|
+
_meta: { [META.serverInfo]: server.info }
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* Why a stateless request cannot be answered: its `_meta` lacks the version or the client's capabilities, or names a
|
|
61
|
+
* version not served.
|
|
62
|
+
*
|
|
63
|
+
* @returns the error answer, or none when the request is valid.
|
|
64
|
+
*/
|
|
65
|
+
const modernProblem = (id, meta) => {
|
|
66
|
+
const version = meta[META.version];
|
|
67
|
+
if (typeof version !== "string" || !isRecord(meta[META.capabilities]))
|
|
68
|
+
return failure(id, ERRORS.invalidParams, `A request needs ${META.version} and ${META.capabilities} in _meta`);
|
|
69
|
+
if (!SUPPORTED_VERSIONS.includes(version))
|
|
70
|
+
return failure(id, ERRORS.unsupportedVersion, "Unsupported protocol version", {
|
|
71
|
+
supported: SUPPORTED_VERSIONS,
|
|
72
|
+
requested: version
|
|
73
|
+
});
|
|
74
|
+
return undefined;
|
|
75
|
+
};
|
|
76
|
+
/** The tools' list as the protocol gives it. */
|
|
77
|
+
const toolList = (server) => server.tools.map((tool) => ({
|
|
78
|
+
name: tool.name,
|
|
79
|
+
description: tool.description,
|
|
80
|
+
inputSchema: tool.inputSchema
|
|
81
|
+
}));
|
|
82
|
+
/** A tool's answer as the protocol gives it: its JSON as text and as structured content, then its pictures. */
|
|
83
|
+
const toolResult = async (tool, args) => {
|
|
84
|
+
const { structured, isError, images = [] } = await tool.call(args);
|
|
85
|
+
return {
|
|
86
|
+
content: [
|
|
87
|
+
{ type: "text", text: JSON.stringify(structured) },
|
|
88
|
+
...images.map((image) => ({ type: "image", data: image.data, mimeType: image.mimeType }))
|
|
89
|
+
],
|
|
90
|
+
structuredContent: structured,
|
|
91
|
+
isError
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
/** Answers a request in either era: the methods both share. */
|
|
95
|
+
const answerRequest = async (server, id, method, params, isModern) => {
|
|
96
|
+
const finish = (result) => success(id, isModern ? modernResult(server, result) : result);
|
|
97
|
+
if (method === "tools/list")
|
|
98
|
+
return finish(isModern
|
|
99
|
+
? { tools: toolList(server), ttlMs: TOOLS_TTL_MS, cacheScope: "public" }
|
|
100
|
+
: { tools: toolList(server) });
|
|
101
|
+
if (method === "tools/call") {
|
|
102
|
+
const name = params["name"];
|
|
103
|
+
const tool = server.tools.find((each) => each.name === name);
|
|
104
|
+
if (tool === undefined)
|
|
105
|
+
return failure(id, ERRORS.invalidParams, `Unknown tool: ${String(name)}`);
|
|
106
|
+
const args = params["arguments"];
|
|
107
|
+
return finish(await toolResult(tool, isRecord(args) ? args : {}));
|
|
108
|
+
}
|
|
109
|
+
if (method === "server/discover" && isModern)
|
|
110
|
+
return finish({
|
|
111
|
+
supportedVersions: SUPPORTED_VERSIONS,
|
|
112
|
+
capabilities: { tools: {} },
|
|
113
|
+
...(server.instructions === undefined ? {} : { instructions: server.instructions }),
|
|
114
|
+
ttlMs: TOOLS_TTL_MS,
|
|
115
|
+
cacheScope: "public"
|
|
116
|
+
});
|
|
117
|
+
return failure(id, ERRORS.methodNotFound, `Method not found: ${method}`);
|
|
118
|
+
};
|
|
119
|
+
/** Reads one line as a JSON-RPC message. */
|
|
120
|
+
const readMessage = (line) => {
|
|
121
|
+
let message;
|
|
122
|
+
try {
|
|
123
|
+
message = JSON.parse(line);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return { kind: "invalid", reply: failure(null, ERRORS.parse, "Parse error") };
|
|
127
|
+
}
|
|
128
|
+
if (!isRecord(message) || message["jsonrpc"] !== "2.0" || typeof message["method"] !== "string") {
|
|
129
|
+
const id = isRecord(message) ? (message["id"] ?? null) : null;
|
|
130
|
+
return { kind: "invalid", reply: failure(id, ERRORS.invalidRequest, "Invalid request") };
|
|
131
|
+
}
|
|
132
|
+
// a notification (no id) is never answered: `notifications/initialized`, a cancellation
|
|
133
|
+
if (!("id" in message))
|
|
134
|
+
return { kind: "notification" };
|
|
135
|
+
const params = message["params"];
|
|
136
|
+
return {
|
|
137
|
+
kind: "request",
|
|
138
|
+
id: message["id"],
|
|
139
|
+
method: message["method"],
|
|
140
|
+
params: isRecord(params) ? params : {}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
/** Answers `initialize`: the version asked for when it is served, the latest handshake one otherwise. */
|
|
144
|
+
const initialized = (server, id, params) => {
|
|
145
|
+
const asked = params["protocolVersion"];
|
|
146
|
+
const version = HANDSHAKE_VERSIONS.find((each) => each === asked) ?? HANDSHAKE_VERSIONS[0];
|
|
147
|
+
const result = {
|
|
148
|
+
protocolVersion: version,
|
|
149
|
+
capabilities: { tools: {} },
|
|
150
|
+
serverInfo: server.info,
|
|
151
|
+
...(server.instructions === undefined ? {} : { instructions: server.instructions })
|
|
152
|
+
};
|
|
153
|
+
return { reply: JSON.stringify(success(id, result)), session: { handshakeVersion: version } };
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Answers one message the client sent: a line of JSON-RPC.
|
|
157
|
+
*
|
|
158
|
+
* @param line - the message, one line of JSON.
|
|
159
|
+
* @param session - what the session remembers.
|
|
160
|
+
* @param server - who the server is and its tools.
|
|
161
|
+
* @returns the answer to write (none for a notification) and the session after the message.
|
|
162
|
+
*/
|
|
163
|
+
export const answerMcpMessage = async (line, session, server) => {
|
|
164
|
+
const read = readMessage(line);
|
|
165
|
+
if (read.kind === "notification")
|
|
166
|
+
return { reply: undefined, session };
|
|
167
|
+
if (read.kind === "invalid")
|
|
168
|
+
return { reply: JSON.stringify(read.reply), session };
|
|
169
|
+
const { id, method, params } = read;
|
|
170
|
+
if (method === "initialize")
|
|
171
|
+
return initialized(server, id, params);
|
|
172
|
+
const answer = async () => {
|
|
173
|
+
if (method === "ping")
|
|
174
|
+
return success(id, {});
|
|
175
|
+
const meta = params["_meta"];
|
|
176
|
+
if (isRecord(meta) && META.version in meta)
|
|
177
|
+
return modernProblem(id, meta) ?? (await answerRequest(server, id, method, params, true));
|
|
178
|
+
if (session.handshakeVersion !== undefined)
|
|
179
|
+
return answerRequest(server, id, method, params, false);
|
|
180
|
+
return failure(id, ERRORS.invalidParams, `A request needs ${META.version} in _meta, or an initialize first`);
|
|
181
|
+
};
|
|
182
|
+
return { reply: JSON.stringify(await answer()), session };
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=mcpProtocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpProtocol.js","sourceRoot":"","sources":["../../../src/vite/mcpProtocol.ts"],"names":[],"mappings":"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"}
|
package/dist/src/vite/pages.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export declare const CONFIG_MODULE = "virtual:forgebook/config";
|
|
|
13
13
|
export declare const PAGE_ENTRIES: Readonly<Record<PageFile, string>>;
|
|
14
14
|
/** The file name, in the configuration's folder, of the project's own stories' source (never written to disk). */
|
|
15
15
|
export declare const STORIES_SOURCE_FILE = ".forgebook-stories.ts";
|
|
16
|
+
/**
|
|
17
|
+
* The file name, in the configuration's folder, of the module the dev server loads to answer tools and agents: the
|
|
18
|
+
* sources and the previews, as the frame gets them (never written to disk).
|
|
19
|
+
*/
|
|
20
|
+
export declare const AGENT_SOURCES_FILE = ".forgebook-agent.ts";
|
|
16
21
|
/** The project's own stories' source id. */
|
|
17
22
|
export declare const OWN_SOURCE_ID = "stories";
|
|
18
23
|
/**
|
|
@@ -40,6 +45,13 @@ export declare const shellEntry: (config: ResolvedConfig) => string;
|
|
|
40
45
|
* @param config - the configuration.
|
|
41
46
|
*/
|
|
42
47
|
export declare const frameEntry: (config: ResolvedConfig) => string;
|
|
48
|
+
/**
|
|
49
|
+
* The module the dev server loads to answer tools and agents: the sources and the previews the frame mounts, as
|
|
50
|
+
* values (`sources`, `previews`), loaded on the server with the same imports the pages use.
|
|
51
|
+
*
|
|
52
|
+
* @param config - the configuration.
|
|
53
|
+
*/
|
|
54
|
+
export declare const agentSourcesModule: (config: ResolvedConfig) => string;
|
|
43
55
|
/**
|
|
44
56
|
* The source of the project's own stories: one `?forgebook-files` import per glob, named after the catalogue.
|
|
45
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qCAAqC;AACrC,eAAO,MAAM,UAAU,uCAAwC,CAAC;AAEhE,0BAA0B;AAC1B,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,4CAA4C;AAC5C,eAAO,MAAM,aAAa,YAAY,CAAC;AAUvC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,EAAE,QAAQ,cAAc,KAAG,MAgBpD,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MASrD,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAuBnD,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAmBnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,MAa/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qCAAqC;AACrC,eAAO,MAAM,UAAU,uCAAwC,CAAC;AAEhE,0BAA0B;AAC1B,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,4CAA4C;AAC5C,eAAO,MAAM,aAAa,YAAY,CAAC;AAUvC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,EAAE,QAAQ,cAAc,KAAG,MAgBpD,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MASrD,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAuBnD,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAmBnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MAS3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,MAa/C,CAAC"}
|
package/dist/src/vite/pages.js
CHANGED
|
@@ -28,6 +28,11 @@ export const PAGE_ENTRIES = {
|
|
|
28
28
|
};
|
|
29
29
|
/** The file name, in the configuration's folder, of the project's own stories' source (never written to disk). */
|
|
30
30
|
export const STORIES_SOURCE_FILE = ".forgebook-stories.ts";
|
|
31
|
+
/**
|
|
32
|
+
* The file name, in the configuration's folder, of the module the dev server loads to answer tools and agents: the
|
|
33
|
+
* sources and the previews, as the frame gets them (never written to disk).
|
|
34
|
+
*/
|
|
35
|
+
export const AGENT_SOURCES_FILE = ".forgebook-agent.ts";
|
|
31
36
|
/** The project's own stories' source id. */
|
|
32
37
|
export const OWN_SOURCE_ID = "stories";
|
|
33
38
|
/**
|
|
@@ -153,6 +158,22 @@ export const frameEntry = (config) => {
|
|
|
153
158
|
""
|
|
154
159
|
].join("\n");
|
|
155
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* The module the dev server loads to answer tools and agents: the sources and the previews the frame mounts, as
|
|
163
|
+
* values (`sources`, `previews`), loaded on the server with the same imports the pages use.
|
|
164
|
+
*
|
|
165
|
+
* @param config - the configuration.
|
|
166
|
+
*/
|
|
167
|
+
export const agentSourcesModule = (config) => {
|
|
168
|
+
const sources = sourcesCode(config);
|
|
169
|
+
return [
|
|
170
|
+
...sources.imports,
|
|
171
|
+
...config.previews.map((file, index) => `import * as preview${index} from ${JSON.stringify(file)};`),
|
|
172
|
+
`export const sources = ${sources.list};`,
|
|
173
|
+
`export const previews = [${config.previews.map((_file, index) => `preview${index}`).join(", ")}];`,
|
|
174
|
+
""
|
|
175
|
+
].join("\n");
|
|
176
|
+
};
|
|
156
177
|
/**
|
|
157
178
|
* The source of the project's own stories: one `?forgebook-files` import per glob, named after the catalogue.
|
|
158
179
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StoryFileIndex } from "@forgebook/story-format/source";
|
|
1
2
|
/**
|
|
2
3
|
* The story files patterns match, as paths relative to `root` starting with `./` or `../`, sorted.
|
|
3
4
|
*
|
|
@@ -5,13 +6,39 @@
|
|
|
5
6
|
* @param patterns - the patterns (`../src/**\/*.stories.tsx`).
|
|
6
7
|
*/
|
|
7
8
|
export declare const storyFileKeys: (root: string, patterns: readonly string[]) => string[];
|
|
9
|
+
/**
|
|
10
|
+
* The id prefix of a group's "Used in" module: the pattern's folder and the pattern follow, as in a `?forgebook-files`
|
|
11
|
+
* module's id. The plugin answers it (`usageModule.ts`) only when a page asks.
|
|
12
|
+
*/
|
|
13
|
+
export declare const USAGE_PREFIX = "virtual:forgebook-usage:";
|
|
14
|
+
/** Between the folder and the pattern in a usage module's id: no path or pattern holds it. */
|
|
15
|
+
export declare const USAGE_SEPARATOR = "::";
|
|
16
|
+
/** A story file a pattern matches, with its key and its index. */
|
|
17
|
+
export type IndexedStoryFile = {
|
|
18
|
+
/** Its path relative to the declaring module (`../src/x.stories.tsx`). */
|
|
19
|
+
readonly key: string;
|
|
20
|
+
/** Its absolute path. */
|
|
21
|
+
readonly file: string;
|
|
22
|
+
/** Its index. */
|
|
23
|
+
readonly index: StoryFileIndex;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Every story file a pattern matches, indexed.
|
|
27
|
+
*
|
|
28
|
+
* @param root - the declaring module's folder.
|
|
29
|
+
* @param pattern - the pattern.
|
|
30
|
+
* @param watch - adds a file whose edit renews the module that read it.
|
|
31
|
+
* @throws when a story file cannot be indexed.
|
|
32
|
+
*/
|
|
33
|
+
export declare const indexedStoryFiles: (root: string, pattern: string, watch: (file: string) => void) => IndexedStoryFile[];
|
|
8
34
|
/**
|
|
9
35
|
* The code of the module for one pattern.
|
|
10
36
|
*
|
|
11
37
|
* @param root - the declaring module's folder.
|
|
12
38
|
* @param pattern - the pattern before `?forgebook-files`.
|
|
13
39
|
* @param watch - adds a file whose edit renews the module (each story file: its index is in the module).
|
|
40
|
+
* @param hasUsage - whether the group offers its "Used in" loader (the catalogue did not turn it off).
|
|
14
41
|
* @returns the module's code, or a message saying which file cannot be indexed.
|
|
15
42
|
*/
|
|
16
|
-
export declare const storyFilesModule: (root: string, pattern: string, watch: (file: string) => void) => string;
|
|
43
|
+
export declare const storyFilesModule: (root: string, pattern: string, watch: (file: string) => void, hasUsage?: boolean) => string;
|
|
17
44
|
//# sourceMappingURL=storyFilesModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storyFilesModule.d.ts","sourceRoot":"","sources":["../../../src/vite/storyFilesModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storyFilesModule.d.ts","sourceRoot":"","sources":["../../../src/vite/storyFilesModule.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,KAAG,MAAM,EAOrE,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAEvD,8FAA8F;AAC9F,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAC5B,gBAAgB,EAYf,CAAC;AAML;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC7B,kBAAe,KACd,MAoBF,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The module that answers a `?forgebook-files` import: every story file a pattern matches, as one module with each
|
|
3
|
-
* file's index (read from its source, never run)
|
|
3
|
+
* file's index (read from its source, never run), the loaders of its module, its component's docs and its code, and
|
|
4
|
+
* the group's "Used in" loader.
|
|
4
5
|
*
|
|
5
6
|
* @remarks
|
|
6
7
|
* One module per pattern, instead of an import per file: in development the browser fetched every index module one by
|
|
@@ -26,6 +27,30 @@ export const storyFileKeys = (root, patterns) => patterns
|
|
|
26
27
|
return path.startsWith(".") ? path : `./${path}`;
|
|
27
28
|
})
|
|
28
29
|
.sort();
|
|
30
|
+
/**
|
|
31
|
+
* The id prefix of a group's "Used in" module: the pattern's folder and the pattern follow, as in a `?forgebook-files`
|
|
32
|
+
* module's id. The plugin answers it (`usageModule.ts`) only when a page asks.
|
|
33
|
+
*/
|
|
34
|
+
export const USAGE_PREFIX = "virtual:forgebook-usage:";
|
|
35
|
+
/** Between the folder and the pattern in a usage module's id: no path or pattern holds it. */
|
|
36
|
+
export const USAGE_SEPARATOR = "::";
|
|
37
|
+
/**
|
|
38
|
+
* Every story file a pattern matches, indexed.
|
|
39
|
+
*
|
|
40
|
+
* @param root - the declaring module's folder.
|
|
41
|
+
* @param pattern - the pattern.
|
|
42
|
+
* @param watch - adds a file whose edit renews the module that read it.
|
|
43
|
+
* @throws when a story file cannot be indexed.
|
|
44
|
+
*/
|
|
45
|
+
export const indexedStoryFiles = (root, pattern, watch) => storyFileKeys(root, [pattern]).map((key) => {
|
|
46
|
+
const file = resolve(root, key);
|
|
47
|
+
watch(file);
|
|
48
|
+
const title = autoTitle(patternBase(pattern), key);
|
|
49
|
+
const index = indexStoryFile(file, readFileSync(file, "utf8"), title === undefined ? {} : { autoTitle: title });
|
|
50
|
+
if (typeof index === "string")
|
|
51
|
+
throw new Error(index);
|
|
52
|
+
return { key, file, index };
|
|
53
|
+
});
|
|
29
54
|
/** An object literal of a key per file, each value written by `value`. */
|
|
30
55
|
const objectOf = (keys, value) => `{${keys.map((key) => `${JSON.stringify(key)}: ${value(key)}`).join(",\n")}}`;
|
|
31
56
|
/**
|
|
@@ -34,20 +59,14 @@ const objectOf = (keys, value) => `{${keys.map((key) => `${JSON.stringify(key)}:
|
|
|
34
59
|
* @param root - the declaring module's folder.
|
|
35
60
|
* @param pattern - the pattern before `?forgebook-files`.
|
|
36
61
|
* @param watch - adds a file whose edit renews the module (each story file: its index is in the module).
|
|
62
|
+
* @param hasUsage - whether the group offers its "Used in" loader (the catalogue did not turn it off).
|
|
37
63
|
* @returns the module's code, or a message saying which file cannot be indexed.
|
|
38
64
|
*/
|
|
39
|
-
export const storyFilesModule = (root, pattern, watch) => {
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
watch(file);
|
|
45
|
-
const title = autoTitle(patternBase(pattern), key);
|
|
46
|
-
const entry = indexStoryFile(file, readFileSync(file, "utf8"), title === undefined ? {} : { autoTitle: title });
|
|
47
|
-
if (typeof entry === "string")
|
|
48
|
-
throw new Error(entry);
|
|
49
|
-
index[key] = entry;
|
|
50
|
-
}
|
|
65
|
+
export const storyFilesModule = (root, pattern, watch, hasUsage = true) => {
|
|
66
|
+
const files = indexedStoryFiles(root, pattern, watch);
|
|
67
|
+
const keys = files.map((file) => file.key);
|
|
68
|
+
const index = Object.fromEntries(files.map((file) => [file.key, file.index]));
|
|
69
|
+
const usage = JSON.stringify(`${USAGE_PREFIX}${root}${USAGE_SEPARATOR}${pattern}`);
|
|
51
70
|
// absolute paths: the module has no folder of its own; Vite serves them under /@fs/ in development
|
|
52
71
|
const path = (key) => JSON.stringify(resolve(root, key));
|
|
53
72
|
const query = (key, name) => JSON.stringify(`${resolve(root, key)}?${name}`);
|
|
@@ -57,7 +76,8 @@ export const storyFilesModule = (root, pattern, watch) => {
|
|
|
57
76
|
`stories: ${objectOf(keys, (key) => `() => import(${path(key)})`)},`,
|
|
58
77
|
`docs: ${objectOf(keys, (key) => `() => import(${query(key, "forgebook-docs")}).then((module) => module.default)`)},`,
|
|
59
78
|
`code: ${objectOf(keys, (key) => `() => import(${query(key, "forgebook-code")}).then((module) => module.default)`)},`,
|
|
60
|
-
`pages: ${objectOf(keys, (key) => `() => import(${query(key, "forgebook-page")}).then((module) => module.default)`)}`,
|
|
79
|
+
`pages: ${objectOf(keys, (key) => `() => import(${query(key, "forgebook-page")}).then((module) => module.default)`)}${hasUsage ? "," : ""}`,
|
|
80
|
+
...(hasUsage ? [`usage: () => import(${usage}).then((module) => module.default)`] : []),
|
|
61
81
|
"};"
|
|
62
82
|
].join("\n");
|
|
63
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storyFilesModule.js","sourceRoot":"","sources":["../../../src/vite/storyFilesModule.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storyFilesModule.js","sourceRoot":"","sources":["../../../src/vite/storyFilesModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** A component, by the file that declares it and its name there. */
|
|
2
|
+
export type ComponentRef = {
|
|
3
|
+
/** The declaring file's absolute path. */
|
|
4
|
+
readonly file: string;
|
|
5
|
+
/** Its name in that file (`default` for a default export). */
|
|
6
|
+
readonly name: string;
|
|
7
|
+
};
|
|
8
|
+
/** What one story renders. */
|
|
9
|
+
export type StoryRenders = {
|
|
10
|
+
/** The story's export. */
|
|
11
|
+
readonly exportName: string;
|
|
12
|
+
/** The components its JSX names, or its meta's component when it has none; each once. */
|
|
13
|
+
readonly renders: readonly ComponentRef[];
|
|
14
|
+
};
|
|
15
|
+
/** One story file's facts. */
|
|
16
|
+
export type StoryFileUsage = {
|
|
17
|
+
/** The story file's absolute path. */
|
|
18
|
+
readonly storyFile: string;
|
|
19
|
+
/** Its meta's component, when the meta names one the checker resolves. */
|
|
20
|
+
readonly component?: ComponentRef;
|
|
21
|
+
/** Its stories. */
|
|
22
|
+
readonly stories: readonly StoryRenders[];
|
|
23
|
+
};
|
|
24
|
+
/** What the worker answers for a group of story files. */
|
|
25
|
+
export type UsageGraph = {
|
|
26
|
+
/** Each story file's facts, in the order asked; a file no program holds is left out. */
|
|
27
|
+
readonly files: readonly StoryFileUsage[];
|
|
28
|
+
/** Each module the rendered components reach, with the package's own modules it imports. */
|
|
29
|
+
readonly imports: Readonly<Record<string, readonly string[]>>;
|
|
30
|
+
};
|
|
31
|
+
/** A story file and the exports the index lists as its stories. */
|
|
32
|
+
export type UsageRequestFile = {
|
|
33
|
+
/** The story file's absolute path. */
|
|
34
|
+
readonly storyFile: string;
|
|
35
|
+
/** Its stories' exports. */
|
|
36
|
+
readonly exports: readonly string[];
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The facts of a group of story files: what each story renders, and the import graph the rendered components reach.
|
|
40
|
+
*
|
|
41
|
+
* @param requests - the story files and their stories' exports.
|
|
42
|
+
* @returns the facts, or why a story file's program could not be read.
|
|
43
|
+
*/
|
|
44
|
+
export declare const usageGraph: (requests: readonly UsageRequestFile[]) => UsageGraph | string;
|
|
45
|
+
//# sourceMappingURL=usageGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usageGraph.d.ts","sourceRoot":"","sources":["../../../src/vite/usageGraph.ts"],"names":[],"mappings":"AAoBA,oEAAoE;AACpE,MAAM,MAAM,YAAY,GAAG;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,YAAY,GAAG;IACzB,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GAAG;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,mBAAmB;IACnB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG;IACvB,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AA0PF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,SAAS,gBAAgB,EAAE,KAAG,UAAU,GAAG,MAe/E,CAAC"}
|