forgebook 0.1.7 → 0.2.0
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 +906 -23
- package/dist/bin/forgebook/agentClient.d.ts +30 -1
- package/dist/bin/forgebook/agentClient.js +155 -14
- package/dist/bin/forgebook/agentLoopCommands.d.mts +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs +161 -40
- package/dist/bin/forgebook/agentText.d.ts +74 -3
- package/dist/bin/forgebook/agentText.js +192 -8
- package/dist/bin/forgebook/agents.md +145 -7
- package/dist/bin/forgebook/agentsText.d.ts +7 -3
- package/dist/bin/forgebook/agentsText.js +7 -3
- package/dist/bin/forgebook/builtCatalogue.d.ts +31 -0
- package/dist/bin/forgebook/builtCatalogue.js +96 -0
- package/dist/bin/forgebook/catalogueCommands.d.ts +22 -3
- package/dist/bin/forgebook/catalogueCommands.js +21 -2
- package/dist/bin/forgebook/catalogueVite.d.ts +51 -9
- package/dist/bin/forgebook/catalogueVite.js +95 -9
- package/dist/bin/forgebook/checkCodeRun.d.ts +8 -0
- package/dist/bin/forgebook/checkCodeRun.js +27 -0
- package/dist/bin/forgebook/commandServer.d.ts +11 -0
- package/dist/bin/forgebook/commandServer.js +39 -0
- package/dist/bin/forgebook/compileCache.d.ts +7 -0
- package/dist/bin/forgebook/compileCache.js +24 -0
- package/dist/bin/forgebook/devCommands.d.mts +14 -0
- package/dist/bin/forgebook/devCommands.mjs +104 -0
- package/dist/bin/forgebook/errorsRun.d.ts +0 -1
- package/dist/bin/forgebook/errorsRun.js +0 -1
- package/dist/bin/forgebook/forgebook.d.mts +0 -1
- package/dist/bin/forgebook/forgebook.mjs +18 -302
- package/dist/bin/forgebook/forgebookCommands.d.mts +1 -0
- package/dist/bin/forgebook/forgebookCommands.mjs +292 -0
- package/dist/bin/forgebook/importers/storybook.d.ts +10 -4
- package/dist/bin/forgebook/importers/storybook.js +71 -45
- package/dist/bin/forgebook/importers/storybookAngular.d.ts +15 -0
- package/dist/bin/forgebook/importers/storybookAngular.js +97 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.d.ts +53 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.js +180 -0
- package/dist/bin/forgebook/importers/storybookReactNative.d.ts +40 -0
- package/dist/bin/forgebook/importers/storybookReactNative.js +179 -0
- package/dist/bin/forgebook/initCommands.d.mts +0 -1
- package/dist/bin/forgebook/initCommands.mjs +23 -12
- package/dist/bin/forgebook/initConfig.d.ts +0 -1
- package/dist/bin/forgebook/initConfig.js +17 -3
- package/dist/bin/forgebook/mcpCommand.d.mts +8 -0
- package/dist/bin/forgebook/mcpCommand.mjs +99 -0
- package/dist/bin/forgebook/mcpPreview.d.ts +32 -0
- package/dist/bin/forgebook/mcpPreview.js +107 -0
- package/dist/bin/forgebook/mcpToolParts.d.ts +28 -0
- package/dist/bin/forgebook/mcpToolParts.js +24 -0
- package/dist/bin/forgebook/mcpTools.d.ts +12 -6
- package/dist/bin/forgebook/mcpTools.js +148 -27
- package/dist/bin/forgebook/newStories.d.ts +2 -3
- package/dist/bin/forgebook/newStories.js +4 -3
- package/dist/bin/forgebook/newStoriesFile.d.ts +3 -4
- package/dist/bin/forgebook/newStoriesFile.js +23 -11
- package/dist/bin/forgebook/pageTools.d.ts +8 -0
- package/dist/bin/forgebook/pageTools.js +71 -0
- package/dist/bin/forgebook/pagesCommands.d.mts +14 -0
- package/dist/bin/forgebook/pagesCommands.mjs +109 -0
- package/dist/bin/forgebook/prebundleChild.d.ts +1 -0
- package/dist/bin/forgebook/prebundleChild.js +34 -0
- package/dist/bin/forgebook/prebundleRun.d.ts +22 -0
- package/dist/bin/forgebook/prebundleRun.js +49 -0
- package/dist/bin/forgebook/prebundleStart.d.ts +44 -0
- package/dist/bin/forgebook/prebundleStart.js +82 -0
- package/dist/bin/forgebook/semanticOptions.d.ts +45 -0
- package/dist/bin/forgebook/semanticOptions.js +36 -0
- package/dist/bin/forgebook/storyCheckCommands.d.mts +13 -0
- package/dist/bin/forgebook/storyCheckCommands.mjs +69 -0
- package/dist/bin/forgebook/storyCheckRun.d.ts +40 -6
- package/dist/bin/forgebook/storyCheckRun.js +90 -16
- package/dist/bin/forgebook/tokensRun.d.ts +41 -0
- package/dist/bin/forgebook/tokensRun.js +42 -0
- package/dist/bin/forgebook/touchWindowRun.d.ts +0 -1
- package/dist/bin/forgebook/touchWindowRun.js +0 -1
- package/dist/bin/forgebook/visualCommands.d.mts +37 -0
- package/dist/bin/forgebook/visualCommands.mjs +162 -0
- package/dist/bin/forgebook/viteCache.d.ts +48 -0
- package/dist/bin/forgebook/viteCache.js +112 -0
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueDocs.js +8 -5
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +24 -3
- package/dist/bin/forgebook-docs/catalogueDocs.types.js +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +88 -24
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueOptions.js +8 -2
- package/dist/bin/forgebook-docs/collectDocs.d.ts +4 -4
- package/dist/bin/forgebook-docs/collectDocs.js +128 -29
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts +5 -1
- package/dist/bin/forgebook-docs/llmsText.js +5 -2
- package/dist/bin/forgebook-docs/moduleDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs +1 -2
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js +0 -1
- package/dist/bin/frameworkDocs.d.ts +0 -1
- package/dist/bin/frameworkDocs.js +0 -1
- package/dist/src/a11y.d.ts +0 -1
- package/dist/src/a11y.js +0 -1
- package/dist/src/addressArgs.d.ts +74 -0
- package/dist/src/addressArgs.js +109 -0
- package/dist/src/addressTexts.d.ts +35 -0
- package/dist/src/addressTexts.js +51 -0
- package/dist/src/argTypes.d.ts +0 -1
- package/dist/src/argTypes.js +2 -2
- package/dist/src/audiences.d.ts +17 -0
- package/dist/src/audiences.js +15 -0
- package/dist/src/backdrops.d.ts +39 -40
- package/dist/src/backdrops.js +37 -174
- package/dist/src/catalogue.d.ts +57 -21
- package/dist/src/catalogue.js +34 -15
- package/dist/src/codeLiteral.d.ts +41 -0
- package/dist/src/codeLiteral.js +51 -0
- package/dist/src/componentDocs.d.ts +86 -1
- package/dist/src/componentDocs.js +33 -3
- package/dist/src/controlKeys.d.ts +0 -1
- package/dist/src/controlKeys.js +2 -2
- package/dist/src/deviceDrawing.d.ts +114 -0
- package/dist/src/deviceDrawing.js +358 -0
- package/dist/src/deviceMenuView.d.ts +17 -0
- package/dist/src/deviceMenuView.js +22 -0
- package/dist/src/devicePicture.d.ts +57 -0
- package/dist/src/devicePicture.js +104 -0
- package/dist/src/deviceView.d.ts +172 -0
- package/dist/src/deviceView.js +111 -0
- package/dist/src/devices.d.ts +115 -0
- package/dist/src/devices.js +135 -0
- package/dist/src/docAnchors.d.ts +27 -0
- package/dist/src/docAnchors.js +33 -0
- package/dist/src/docPages.d.ts +203 -0
- package/dist/src/docPages.js +169 -0
- package/dist/src/embed.d.ts +32 -0
- package/dist/src/embed.js +24 -0
- package/dist/src/embedCode.d.ts +31 -0
- package/dist/src/embedCode.js +88 -0
- package/dist/src/frame/backdropPictures.d.ts +29 -0
- package/dist/src/frame/backdropPictures.js +187 -0
- package/dist/src/frame/checkStory.d.ts +6 -3
- package/dist/src/frame/checkStory.js +76 -5
- package/dist/src/frame/followTouch.d.ts +9 -0
- package/dist/src/frame/followTouch.js +43 -0
- package/dist/src/frame/frame.css +8 -3
- package/dist/src/frame/frameClock.d.ts +0 -1
- package/dist/src/frame/frameClock.js +0 -1
- package/dist/src/frame/frameStatus.d.ts +2 -1
- package/dist/src/frame/frameStatus.js +2 -1
- package/dist/src/frame/frameView.d.ts +0 -1
- package/dist/src/frame/frameView.js +1 -2
- package/dist/src/frame/matrixLayout.d.ts +0 -1
- package/dist/src/frame/matrixLayout.js +0 -1
- package/dist/src/frame/measureTools.d.ts +0 -1
- package/dist/src/frame/measureTools.js +0 -1
- package/dist/src/frame/mountFrame.d.ts +10 -3
- package/dist/src/frame/mountFrame.js +162 -63
- package/dist/src/frame/playStory.d.ts +0 -1
- package/dist/src/frame/playStory.js +0 -1
- package/dist/src/frame/pluginFrames.d.ts +31 -0
- package/dist/src/frame/pluginFrames.js +23 -0
- package/dist/src/frame/renderer.d.ts +50 -12
- package/dist/src/frame/renderer.js +27 -6
- package/dist/src/frame/settle.d.ts +0 -1
- package/dist/src/frame/settle.js +0 -1
- package/dist/src/frame/shellChannel.d.ts +47 -0
- package/dist/src/frame/shellChannel.js +39 -0
- package/dist/src/frame/spillOutline.d.ts +0 -1
- package/dist/src/frame/spillOutline.js +0 -1
- package/dist/src/frame/staleModule.d.ts +14 -2
- package/dist/src/frame/staleModule.js +19 -2
- package/dist/src/frame/storyCanvas.d.ts +0 -1
- package/dist/src/frame/storyCanvas.js +0 -1
- package/dist/src/frame/storyHooks.d.ts +0 -1
- package/dist/src/frame/storyHooks.js +0 -1
- package/dist/src/frame/storyModule.d.ts +13 -2
- package/dist/src/frame/storyModule.js +45 -3
- package/dist/src/frame/storyRun.d.ts +21 -4
- package/dist/src/frame/storyRun.js +100 -19
- package/dist/src/frame/touchDots.d.ts +0 -1
- package/dist/src/frame/touchDots.js +0 -1
- package/dist/src/frame/touchEvents.d.ts +0 -1
- package/dist/src/frame/touchEvents.js +0 -1
- package/dist/src/frame/touchGesture.d.ts +0 -1
- package/dist/src/frame/touchGesture.js +0 -1
- package/dist/src/frame/touchLayer.d.ts +3 -3
- package/dist/src/frame/touchLayer.js +4 -30
- package/dist/src/frame/touchScroll.d.ts +0 -1
- package/dist/src/frame/touchScroll.js +0 -1
- package/dist/src/frameOrigins.d.ts +62 -0
- package/dist/src/frameOrigins.js +49 -0
- package/dist/src/hotModules.d.ts +48 -0
- package/dist/src/hotModules.js +53 -0
- package/dist/src/jsxCode.d.ts +22 -0
- package/dist/src/jsxCode.js +36 -0
- package/dist/src/languages.d.ts +0 -1
- package/dist/src/languages.js +0 -1
- package/dist/src/liveErrors.d.ts +0 -1
- package/dist/src/liveErrors.js +0 -1
- package/dist/src/matrix.d.ts +0 -1
- package/dist/src/matrix.js +0 -1
- package/dist/src/messages.d.ts +28 -2
- package/dist/src/messages.js +24 -3
- package/dist/src/namedValues.d.ts +11 -1
- package/dist/src/namedValues.js +25 -2
- package/dist/src/namedViews.d.ts +1 -13
- package/dist/src/namedViews.js +30 -7
- package/dist/src/packedText.d.ts +21 -0
- package/dist/src/packedText.js +36 -0
- package/dist/src/pageAddress.d.ts +26 -0
- package/dist/src/pageAddress.js +39 -0
- package/dist/src/pageConfig.d.ts +3 -1
- package/dist/src/pageConfig.js +0 -1
- package/dist/src/pageTree.d.ts +79 -0
- package/dist/src/pageTree.js +108 -0
- package/dist/src/playTrace.d.ts +0 -1
- package/dist/src/playTrace.js +0 -1
- package/dist/src/plugin.d.ts +230 -0
- package/dist/src/plugin.js +12 -0
- package/dist/src/pluginReact.d.ts +23 -0
- package/dist/src/pluginReact.js +24 -0
- package/dist/src/previewRelay.d.ts +40 -0
- package/dist/src/previewRelay.js +69 -0
- package/dist/src/previewTexts.d.ts +26 -0
- package/dist/src/previewTexts.js +33 -0
- package/dist/src/previewView.d.ts +31 -0
- package/dist/src/previewView.js +264 -0
- package/dist/src/propGroups.d.ts +46 -0
- package/dist/src/propGroups.js +59 -0
- package/dist/src/realTouch.d.ts +1 -2
- package/dist/src/realTouch.js +1 -2
- package/dist/src/safeAreaParameter.d.ts +42 -0
- package/dist/src/safeAreaParameter.js +50 -0
- package/dist/src/search.d.ts +154 -0
- package/dist/src/search.js +265 -0
- package/dist/src/searchIndex.d.ts +61 -0
- package/dist/src/searchIndex.js +55 -0
- package/dist/src/searchMarks.d.ts +29 -0
- package/dist/src/searchMarks.js +165 -0
- package/dist/src/searchMatch.d.ts +58 -0
- package/dist/src/searchMatch.js +127 -0
- package/dist/src/shell/A11yTab.d.ts +0 -7
- package/dist/src/shell/A11yTab.js +4 -15
- package/dist/src/shell/AnchorScroll.d.ts +25 -0
- package/dist/src/shell/AnchorScroll.js +10 -0
- package/dist/src/shell/ApiReference.d.ts +12 -4
- package/dist/src/shell/ApiReference.js +74 -19
- package/dist/src/shell/AppearanceMenu.d.ts +1 -2
- package/dist/src/shell/AppearanceMenu.js +8 -5
- package/dist/src/shell/AudienceSections.d.ts +106 -0
- package/dist/src/shell/AudienceSections.js +154 -0
- package/dist/src/shell/AuthoredHome.d.ts +37 -0
- package/dist/src/shell/AuthoredHome.js +96 -0
- package/dist/src/shell/BoxWidth.d.ts +0 -1
- package/dist/src/shell/BoxWidth.js +0 -1
- package/dist/src/shell/ClockBar.d.ts +19 -0
- package/dist/src/shell/ClockBar.js +15 -0
- package/dist/src/shell/ClockControls.d.ts +5 -9
- package/dist/src/shell/ClockControls.js +13 -16
- package/dist/src/shell/Code.d.ts +0 -1
- package/dist/src/shell/Code.js +0 -1
- package/dist/src/shell/CodeTab.d.ts +0 -1
- package/dist/src/shell/CodeTab.js +2 -2
- package/dist/src/shell/CodeText.d.ts +0 -1
- package/dist/src/shell/CodeText.js +0 -1
- package/dist/src/shell/CompareGrid.d.ts +37 -0
- package/dist/src/shell/CompareGrid.js +24 -0
- package/dist/src/shell/ComponentPage.d.ts +45 -7
- package/dist/src/shell/ComponentPage.js +107 -49
- package/dist/src/shell/ControlKeyField.d.ts +0 -1
- package/dist/src/shell/ControlKeyField.js +3 -4
- package/dist/src/shell/ControlRow.d.ts +4 -4
- package/dist/src/shell/ControlRow.js +5 -5
- package/dist/src/shell/DeviceControl.d.ts +31 -0
- package/dist/src/shell/DeviceControl.js +33 -0
- package/dist/src/shell/DeviceSlot.d.ts +114 -0
- package/dist/src/shell/DeviceSlot.js +134 -0
- package/dist/src/shell/DocBlocks.d.ts +100 -0
- package/dist/src/shell/DocBlocks.js +206 -0
- package/dist/src/shell/DocContainers.d.ts +70 -0
- package/dist/src/shell/DocContainers.js +94 -0
- package/dist/src/shell/DocContents.d.ts +29 -0
- package/dist/src/shell/DocContents.js +88 -0
- package/dist/src/shell/DocPage.d.ts +69 -0
- package/dist/src/shell/DocPage.js +141 -0
- package/dist/src/shell/Dock.d.ts +1 -2
- package/dist/src/shell/Dock.js +1 -2
- package/dist/src/shell/DroppedArgsList.d.ts +26 -0
- package/dist/src/shell/DroppedArgsList.js +8 -0
- package/dist/src/shell/DroppedArgsNote.d.ts +14 -0
- package/dist/src/shell/DroppedArgsNote.js +10 -0
- package/dist/src/shell/EmbedButton.d.ts +19 -0
- package/dist/src/shell/EmbedButton.js +96 -0
- package/dist/src/shell/EmbedPage.d.ts +23 -0
- package/dist/src/shell/EmbedPage.js +168 -0
- package/dist/src/shell/EmbedPanel.d.ts +25 -0
- package/dist/src/shell/EmbedPanel.js +46 -0
- package/dist/src/shell/EventsTab.d.ts +0 -1
- package/dist/src/shell/EventsTab.js +2 -3
- package/dist/src/shell/Example.d.ts +20 -2
- package/dist/src/shell/Example.js +75 -22
- package/dist/src/shell/FrameView.d.ts +1 -2
- package/dist/src/shell/FrameView.js +4 -4
- package/dist/src/shell/HomePage.d.ts +78 -4
- package/dist/src/shell/HomePage.js +53 -14
- package/dist/src/shell/HomePieces.d.ts +40 -0
- package/dist/src/shell/HomePieces.js +29 -0
- package/dist/src/shell/InfoTip.d.ts +0 -1
- package/dist/src/shell/InfoTip.js +0 -1
- package/dist/src/shell/InteractionsTab.d.ts +0 -7
- package/dist/src/shell/InteractionsTab.js +3 -9
- package/dist/src/shell/LazyHost.d.ts +16 -0
- package/dist/src/shell/LazyHost.js +42 -0
- package/dist/src/shell/LazyPage.d.ts +24 -0
- package/dist/src/shell/LazyPage.js +9 -0
- package/dist/src/shell/LogicMark.d.ts +9 -0
- package/dist/src/shell/LogicMark.js +5 -0
- package/dist/src/shell/MatrixPicker.d.ts +0 -1
- package/dist/src/shell/MatrixPicker.js +0 -1
- package/dist/src/shell/NamedViews.d.ts +0 -1
- package/dist/src/shell/NamedViews.js +4 -5
- package/dist/src/shell/PackageHtml.d.ts +0 -1
- package/dist/src/shell/PackageHtml.js +0 -1
- package/dist/src/shell/PartsTab.d.ts +0 -7
- package/dist/src/shell/PartsTab.js +3 -13
- package/dist/src/shell/PinnedControl.d.ts +0 -1
- package/dist/src/shell/PinnedControl.js +2 -2
- package/dist/src/shell/PluginBlockHost.d.ts +46 -0
- package/dist/src/shell/PluginBlockHost.js +39 -0
- package/dist/src/shell/PluginTabHost.d.ts +32 -0
- package/dist/src/shell/PluginTabHost.js +25 -0
- package/dist/src/shell/PluginViewHost.d.ts +37 -0
- package/dist/src/shell/PluginViewHost.js +89 -0
- package/dist/src/shell/PropFields.d.ts +0 -1
- package/dist/src/shell/PropFields.js +0 -1
- package/dist/src/shell/PropsTab.d.ts +11 -2
- package/dist/src/shell/PropsTab.js +31 -5
- package/dist/src/shell/SearchPanel.d.ts +63 -0
- package/dist/src/shell/SearchPanel.js +209 -0
- package/dist/src/shell/Segmented.d.ts +0 -1
- package/dist/src/shell/Segmented.js +0 -1
- package/dist/src/shell/Shell.d.ts +34 -6
- package/dist/src/shell/Shell.js +292 -84
- package/dist/src/shell/Sidebar.d.ts +20 -5
- package/dist/src/shell/Sidebar.js +23 -56
- package/dist/src/shell/SidebarDocs.d.ts +38 -0
- package/dist/src/shell/SidebarDocs.js +30 -0
- package/dist/src/shell/SidebarEntries.d.ts +10 -2
- package/dist/src/shell/SidebarEntries.js +3 -3
- package/dist/src/shell/SidebarHandle.d.ts +0 -1
- package/dist/src/shell/SidebarHandle.js +0 -1
- package/dist/src/shell/SidebarSearch.d.ts +40 -0
- package/dist/src/shell/SidebarSearch.js +85 -0
- package/dist/src/shell/SignatureReference.d.ts +25 -0
- package/dist/src/shell/SignatureReference.js +25 -0
- package/dist/src/shell/Stage.d.ts +9 -4
- package/dist/src/shell/Stage.js +121 -60
- package/dist/src/shell/StageCompare.d.ts +14 -0
- package/dist/src/shell/StageCompare.js +11 -0
- package/dist/src/shell/StageTools.d.ts +0 -1
- package/dist/src/shell/StageTools.js +0 -1
- package/dist/src/shell/StageViewport.d.ts +7 -3
- package/dist/src/shell/StageViewport.js +4 -5
- package/dist/src/shell/StoryBar.d.ts +40 -0
- package/dist/src/shell/StoryBar.js +23 -0
- package/dist/src/shell/StoryCodeBlock.d.ts +1 -2
- package/dist/src/shell/StoryCodeBlock.js +0 -1
- package/dist/src/shell/StoryCoverage.d.ts +36 -0
- package/dist/src/shell/StoryCoverage.js +126 -0
- package/dist/src/shell/StoryPicker.d.ts +0 -1
- package/dist/src/shell/StoryPicker.js +0 -1
- package/dist/src/shell/Toolbar.d.ts +9 -3
- package/dist/src/shell/Toolbar.js +12 -7
- package/dist/src/shell/ToolbarControl.d.ts +6 -8
- package/dist/src/shell/ToolbarControl.js +28 -20
- package/dist/src/shell/UsedIn.d.ts +5 -6
- package/dist/src/shell/UsedIn.js +7 -20
- package/dist/src/shell/ViewMenu.d.ts +7 -7
- package/dist/src/shell/ViewMenu.js +61 -176
- package/dist/src/shell/ViewMenuPanel.d.ts +41 -0
- package/dist/src/shell/ViewMenuPanel.js +199 -0
- package/dist/src/shell/WidthField.d.ts +3 -2
- package/dist/src/shell/WidthField.js +2 -3
- package/dist/src/shell/asideStory.d.ts +34 -0
- package/dist/src/shell/asideStory.js +55 -0
- package/dist/src/shell/audienceLayout.d.ts +39 -0
- package/dist/src/shell/audienceLayout.js +33 -0
- package/dist/src/shell/audiencePage.d.ts +113 -0
- package/dist/src/shell/audiencePage.js +144 -0
- package/dist/src/shell/audienceSections.css +95 -0
- package/dist/src/shell/catalogueContext.d.ts +24 -2
- package/dist/src/shell/catalogueContext.js +12 -9
- package/dist/src/shell/codeTokens.d.ts +0 -1
- package/dist/src/shell/codeTokens.js +0 -1
- package/dist/src/shell/codeWriter.d.ts +0 -1
- package/dist/src/shell/codeWriter.js +0 -1
- package/dist/src/shell/compareVariants.d.ts +3 -3
- package/dist/src/shell/compareVariants.js +6 -5
- package/dist/src/shell/controlCycle.d.ts +0 -1
- package/dist/src/shell/controlCycle.js +13 -1
- package/dist/src/shell/controlLabel.d.ts +7 -0
- package/dist/src/shell/controlLabel.js +17 -0
- package/dist/src/shell/device/deviceFrame.css +42 -0
- package/dist/src/shell/device/deviceParts.d.ts +90 -0
- package/dist/src/shell/device/deviceParts.js +120 -0
- package/dist/src/shell/docPage.css +451 -0
- package/dist/src/shell/dockTabs.d.ts +15 -4
- package/dist/src/shell/dockTabs.js +69 -26
- package/dist/src/shell/embed.css +74 -0
- package/dist/src/shell/filesCode.d.ts +21 -0
- package/dist/src/shell/filesCode.js +37 -0
- package/dist/src/shell/forgebookMark.d.ts +15 -0
- package/dist/src/shell/forgebookMark.js +28 -0
- package/dist/src/shell/framesOrigin.d.ts +23 -0
- package/dist/src/shell/framesOrigin.js +69 -0
- package/dist/src/shell/icons.d.ts +4 -1
- package/dist/src/shell/icons.js +4 -1
- package/dist/src/shell/keyboard.d.ts +0 -1
- package/dist/src/shell/keyboard.js +0 -1
- package/dist/src/shell/laterStrings.d.ts +91 -0
- package/dist/src/shell/laterStrings.js +102 -0
- package/dist/src/shell/lazyModule.d.ts +49 -0
- package/dist/src/shell/lazyModule.js +72 -0
- package/dist/src/shell/lazyTab.d.ts +21 -0
- package/dist/src/shell/lazyTab.js +9 -0
- package/dist/src/shell/logicView.d.ts +24 -0
- package/dist/src/shell/logicView.js +39 -0
- package/dist/src/shell/mountShell.d.ts +5 -3
- package/dist/src/shell/mountShell.js +43 -12
- package/dist/src/shell/pageStrings.d.ts +24 -0
- package/dist/src/shell/pageStrings.js +26 -0
- package/dist/src/shell/pluginHosts.d.ts +9 -0
- package/dist/src/shell/pluginHosts.js +6 -0
- package/dist/src/shell/pluginHostsContext.d.ts +20 -0
- package/dist/src/shell/pluginHostsContext.js +16 -0
- package/dist/src/shell/pluginTabs.d.ts +63 -0
- package/dist/src/shell/pluginTabs.js +60 -0
- package/dist/src/shell/search.css +172 -0
- package/dist/src/shell/searchStrings.d.ts +24 -0
- package/dist/src/shell/searchStrings.js +31 -0
- package/dist/src/shell/shell.css +310 -136
- package/dist/src/shell/shellScheme.d.ts +37 -0
- package/dist/src/shell/shellScheme.js +32 -0
- package/dist/src/shell/storyTouch.d.ts +19 -6
- package/dist/src/shell/storyTouch.js +26 -4
- package/dist/src/shell/strings.d.ts +62 -80
- package/dist/src/shell/strings.js +60 -79
- package/dist/src/shell/switchView.d.ts +0 -1
- package/dist/src/shell/switchView.js +0 -1
- package/dist/src/shell/tabSummaries.d.ts +31 -0
- package/dist/src/shell/tabSummaries.js +27 -0
- package/dist/src/shell/treeSearch.d.ts +39 -3
- package/dist/src/shell/treeSearch.js +27 -1
- package/dist/src/shell/useAddressArgs.d.ts +55 -0
- package/dist/src/shell/useAddressArgs.js +62 -0
- package/dist/src/shell/useAnchorScroll.d.ts +24 -0
- package/dist/src/shell/useAnchorScroll.js +90 -0
- package/dist/src/shell/useAppearance.d.ts +7 -2
- package/dist/src/shell/useAppearance.js +14 -5
- package/dist/src/shell/useComponentDocs.d.ts +0 -1
- package/dist/src/shell/useComponentDocs.js +0 -1
- package/dist/src/shell/useControlKeys.d.ts +2 -1
- package/dist/src/shell/useControlKeys.js +2 -3
- package/dist/src/shell/useCopy.d.ts +2 -1
- package/dist/src/shell/useCopy.js +11 -6
- package/dist/src/shell/useFold.d.ts +0 -1
- package/dist/src/shell/useFold.js +0 -1
- package/dist/src/shell/useFrameMessages.d.ts +19 -4
- package/dist/src/shell/useFrameMessages.js +23 -7
- package/dist/src/shell/useFrameQueue.d.ts +7 -3
- package/dist/src/shell/useFrameQueue.js +39 -22
- package/dist/src/shell/useFullPage.d.ts +0 -1
- package/dist/src/shell/useFullPage.js +0 -1
- package/dist/src/shell/useLiveView.d.ts +0 -1
- package/dist/src/shell/useLiveView.js +0 -1
- package/dist/src/shell/useLoaded.d.ts +1 -2
- package/dist/src/shell/useLoaded.js +28 -6
- package/dist/src/shell/usePageDoc.d.ts +0 -1
- package/dist/src/shell/usePageDoc.js +0 -1
- package/dist/src/shell/usePageFrames.d.ts +46 -0
- package/dist/src/shell/usePageFrames.js +50 -0
- package/dist/src/shell/usePluginTabs.d.ts +18 -0
- package/dist/src/shell/usePluginTabs.js +45 -0
- package/dist/src/shell/usePopover.d.ts +0 -1
- package/dist/src/shell/usePopover.js +0 -1
- package/dist/src/shell/useProseLinks.d.ts +14 -0
- package/dist/src/shell/useProseLinks.js +30 -0
- package/dist/src/shell/useRecentPages.d.ts +3 -4
- package/dist/src/shell/useRecentPages.js +1 -2
- package/dist/src/shell/useScrollMemory.d.ts +9 -1
- package/dist/src/shell/useScrollMemory.js +2 -3
- package/dist/src/shell/useSearchIndex.d.ts +24 -0
- package/dist/src/shell/useSearchIndex.js +51 -0
- package/dist/src/shell/useShownView.d.ts +35 -0
- package/dist/src/shell/useShownView.js +36 -0
- package/dist/src/shell/useSidebarLayout.d.ts +0 -1
- package/dist/src/shell/useSidebarLayout.js +0 -1
- package/dist/src/shell/useStored.d.ts +13 -1
- package/dist/src/shell/useStored.js +13 -5
- package/dist/src/shell/useStoryCheck.d.ts +20 -0
- package/dist/src/shell/useStoryCheck.js +33 -0
- package/dist/src/shell/useStoryCode.d.ts +0 -1
- package/dist/src/shell/useStoryCode.js +0 -1
- package/dist/src/shell/useStoryHeights.d.ts +0 -1
- package/dist/src/shell/useStoryHeights.js +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts +0 -1
- package/dist/src/shell/useStoryIdsElement.js +0 -1
- package/dist/src/shell/useStoryKeys.d.ts +0 -1
- package/dist/src/shell/useStoryKeys.js +0 -1
- package/dist/src/shell/useSyncedTab.d.ts +8 -0
- package/dist/src/shell/useSyncedTab.js +60 -0
- package/dist/src/shell/useSystemDark.d.ts +0 -1
- package/dist/src/shell/useSystemDark.js +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts +0 -1
- package/dist/src/shell/useToolbarLayout.js +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts +0 -1
- package/dist/src/shell/useToolbarOverflow.js +0 -1
- package/dist/src/shell/useWorstCase.d.ts +0 -1
- package/dist/src/shell/useWorstCase.js +2 -2
- package/dist/src/shell/worstArgs.d.ts +0 -1
- package/dist/src/shell/worstArgs.js +0 -1
- package/dist/src/shellTheme.d.ts +64 -0
- package/dist/src/shellTheme.js +274 -0
- package/dist/src/shellTheme.types.d.ts +93 -0
- package/dist/src/shellTheme.types.js +10 -0
- package/dist/src/sourceFiles.d.ts +17 -3
- package/dist/src/sourceFiles.js +27 -1
- package/dist/src/spills.d.ts +0 -1
- package/dist/src/spills.js +0 -1
- package/dist/src/storyBackground.d.ts +0 -1
- package/dist/src/storyBackground.js +0 -1
- package/dist/src/storyCheck.d.ts +88 -2
- package/dist/src/storyCheck.js +12 -2
- package/dist/src/storyClock.d.ts +0 -1
- package/dist/src/storyClock.js +0 -1
- package/dist/src/storyGlobals.d.ts +0 -1
- package/dist/src/storyGlobals.js +0 -1
- package/dist/src/storyHeights.d.ts +0 -1
- package/dist/src/storyHeights.js +0 -1
- package/dist/src/storyIds.d.ts +36 -0
- package/dist/src/storyIds.js +52 -0
- package/dist/src/storyIdsElement.d.ts +0 -1
- package/dist/src/storyIdsElement.js +0 -1
- package/dist/src/storyTexts.d.ts +11 -5
- package/dist/src/storyTexts.js +16 -5
- package/dist/src/storyTree.d.ts +88 -25
- package/dist/src/storyTree.js +219 -126
- package/dist/src/switches.d.ts +0 -1
- package/dist/src/switches.js +6 -2
- package/dist/src/toolbarLayout.d.ts +0 -1
- package/dist/src/toolbarLayout.js +0 -1
- package/dist/src/treePlaces.d.ts +60 -0
- package/dist/src/treePlaces.js +89 -0
- package/dist/src/usedIn.d.ts +28 -1
- package/dist/src/usedIn.js +93 -3
- package/dist/src/viewState.d.ts +37 -9
- package/dist/src/viewState.js +67 -9
- package/dist/src/viewWords.d.ts +0 -13
- package/dist/src/viewWords.js +41 -3
- package/dist/src/vite/adapter.d.ts +62 -1
- package/dist/src/vite/adapter.js +20 -2
- package/dist/src/vite/agent.types.d.ts +281 -7
- package/dist/src/vite/agent.types.js +11 -1
- package/dist/src/vite/agentApi.d.ts +55 -2
- package/dist/src/vite/agentApi.js +131 -8
- package/dist/src/vite/agentIds.d.ts +25 -0
- package/dist/src/vite/agentIds.js +41 -0
- package/dist/src/vite/agentIndex.d.ts +63 -0
- package/dist/src/vite/agentIndex.js +91 -0
- package/dist/src/vite/agentIndexRoute.d.ts +10 -0
- package/dist/src/vite/agentIndexRoute.js +35 -0
- package/dist/src/vite/agentRoutes.d.ts +80 -19
- package/dist/src/vite/agentRoutes.js +167 -24
- package/dist/src/vite/autoTitle.d.ts +0 -1
- package/dist/src/vite/autoTitle.js +0 -1
- package/dist/src/vite/axeScript.d.ts +20 -0
- package/dist/src/vite/axeScript.js +60 -0
- package/dist/src/vite/builtTexts.d.ts +75 -0
- package/dist/src/vite/builtTexts.js +142 -0
- package/dist/src/vite/catalogueConfig.d.ts +10 -0
- package/dist/src/vite/catalogueConfig.js +64 -0
- package/dist/src/vite/checkCode.d.ts +67 -0
- package/dist/src/vite/checkCode.js +145 -0
- package/dist/src/vite/closeWatch.d.ts +96 -0
- package/dist/src/vite/closeWatch.js +219 -0
- package/dist/src/vite/codeFence.d.ts +78 -0
- package/dist/src/vite/codeFence.js +267 -0
- package/dist/src/vite/componentImport.d.ts +8 -0
- package/dist/src/vite/componentImport.js +35 -0
- package/dist/src/vite/componentPage.d.ts +15 -2
- package/dist/src/vite/componentPage.js +55 -16
- package/dist/src/vite/config.d.ts +51 -3
- package/dist/src/vite/config.js +0 -1
- package/dist/src/vite/configFile.d.ts +65 -9
- package/dist/src/vite/configFile.js +182 -28
- package/dist/src/vite/designTokens.d.ts +75 -0
- package/dist/src/vite/designTokens.js +382 -0
- package/dist/src/vite/diskCache.d.ts +51 -0
- package/dist/src/vite/diskCache.js +211 -0
- package/dist/src/vite/docDirectives.d.ts +116 -0
- package/dist/src/vite/docDirectives.js +425 -0
- package/dist/src/vite/docMarkdown.d.ts +76 -0
- package/dist/src/vite/docMarkdown.js +150 -0
- package/dist/src/vite/docPageBlocks.d.ts +64 -0
- package/dist/src/vite/docPageBlocks.js +322 -0
- package/dist/src/vite/docPageLinks.d.ts +72 -0
- package/dist/src/vite/docPageLinks.js +135 -0
- package/dist/src/vite/docPageMarkdown.d.ts +86 -0
- package/dist/src/vite/docPageMarkdown.js +133 -0
- package/dist/src/vite/docPageRender.d.ts +27 -0
- package/dist/src/vite/docPageRender.js +199 -0
- package/dist/src/vite/docPageTokens.d.ts +91 -0
- package/dist/src/vite/docPageTokens.js +186 -0
- package/dist/src/vite/docPagesModule.d.ts +50 -0
- package/dist/src/vite/docPagesModule.js +118 -0
- package/dist/src/vite/docPagesRoute.d.ts +38 -0
- package/dist/src/vite/docPagesRoute.js +154 -0
- package/dist/src/vite/docsDependencies.d.ts +6 -0
- package/dist/src/vite/docsDependencies.js +150 -0
- package/dist/src/vite/docsExtractor.d.ts +44 -3
- package/dist/src/vite/docsExtractor.js +160 -26
- package/dist/src/vite/docsProgram.d.ts +89 -9
- package/dist/src/vite/docsProgram.js +413 -50
- package/dist/src/vite/docsWorker.d.ts +0 -1
- package/dist/src/vite/docsWorker.js +49 -15
- package/dist/src/vite/figmaLink.d.ts +26 -0
- package/dist/src/vite/figmaLink.js +92 -0
- package/dist/src/vite/findComponent.d.ts +32 -0
- package/dist/src/vite/findComponent.js +52 -0
- package/dist/src/vite/findRoute.d.ts +14 -0
- package/dist/src/vite/findRoute.js +62 -0
- package/dist/src/vite/forcedStates.d.ts +0 -1
- package/dist/src/vite/forcedStates.js +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts +1 -2
- package/dist/src/vite/forgebookPlugin.js +330 -263
- package/dist/src/vite/framesConfig.d.ts +89 -0
- package/dist/src/vite/framesConfig.js +149 -0
- package/dist/src/vite/framesServer.d.ts +43 -0
- package/dist/src/vite/framesServer.js +326 -0
- package/dist/src/vite/functionComponentDocs.d.ts +26 -0
- package/dist/src/vite/functionComponentDocs.js +193 -0
- package/dist/src/vite/gitChange.d.ts +56 -0
- package/dist/src/vite/gitChange.js +86 -0
- package/dist/src/vite/heightsRoute.d.ts +24 -0
- package/dist/src/vite/heightsRoute.js +42 -0
- package/dist/src/vite/highlightCode.d.ts +0 -1
- package/dist/src/vite/highlightCode.js +8 -27
- package/dist/src/vite/hotSnippets.d.ts +86 -0
- package/dist/src/vite/hotSnippets.js +168 -0
- package/dist/src/vite/indexFields.d.ts +61 -0
- package/dist/src/vite/indexFields.js +149 -0
- package/dist/src/vite/indexStoryFile.d.ts +20 -19
- package/dist/src/vite/indexStoryFile.js +172 -201
- package/dist/src/vite/indexedParameters.d.ts +10 -0
- package/dist/src/vite/indexedParameters.js +110 -0
- package/dist/src/vite/mcpProtocol.d.ts +36 -2
- package/dist/src/vite/mcpProtocol.js +100 -15
- package/dist/src/vite/moduleSummary.d.ts +17 -0
- package/dist/src/vite/moduleSummary.js +40 -0
- package/dist/src/vite/nearestToken.d.ts +50 -0
- package/dist/src/vite/nearestToken.js +295 -0
- package/dist/src/vite/originGuard.d.ts +87 -0
- package/dist/src/vite/originGuard.js +163 -0
- package/dist/src/vite/packedModule.d.ts +40 -0
- package/dist/src/vite/packedModule.js +74 -0
- package/dist/src/vite/pages.d.ts +63 -10
- package/dist/src/vite/pages.js +264 -33
- package/dist/src/vite/parsedFiles.d.ts +18 -0
- package/dist/src/vite/parsedFiles.js +91 -0
- package/dist/src/vite/plainGrammars.d.ts +20 -0
- package/dist/src/vite/plainGrammars.js +113 -0
- package/dist/src/vite/pluginConfig.d.ts +47 -0
- package/dist/src/vite/pluginConfig.js +220 -0
- package/dist/src/vite/pluginIds.d.ts +20 -0
- package/dist/src/vite/pluginIds.js +61 -0
- package/dist/src/vite/pluginModules.d.ts +140 -0
- package/dist/src/vite/pluginModules.js +176 -0
- package/dist/src/vite/prebundled.d.ts +18 -5
- package/dist/src/vite/prebundled.js +28 -18
- package/dist/src/vite/previewPages.d.ts +14 -0
- package/dist/src/vite/previewPages.js +81 -0
- package/dist/src/vite/previewRoute.d.ts +8 -0
- package/dist/src/vite/previewRoute.js +8 -0
- package/dist/src/vite/previewRunner.d.ts +56 -0
- package/dist/src/vite/previewRunner.js +207 -0
- package/dist/src/vite/propDocs.d.ts +60 -0
- package/dist/src/vite/propDocs.js +387 -0
- package/dist/src/vite/searchModule.d.ts +40 -0
- package/dist/src/vite/searchModule.js +212 -0
- package/dist/src/vite/searchRoute.d.ts +7 -0
- package/dist/src/vite/searchRoute.js +79 -0
- package/dist/src/vite/serverConditions.d.ts +31 -0
- package/dist/src/vite/serverConditions.js +69 -0
- package/dist/src/vite/signatureDocs.d.ts +18 -0
- package/dist/src/vite/signatureDocs.js +64 -0
- package/dist/src/vite/sourceTokens.d.ts +57 -0
- package/dist/src/vite/sourceTokens.js +164 -0
- package/dist/src/vite/storyCode.d.ts +0 -1
- package/dist/src/vite/storyCode.js +2 -3
- package/dist/src/vite/storyExports.d.ts +32 -0
- package/dist/src/vite/storyExports.js +27 -0
- package/dist/src/vite/storyFilesModule.d.ts +56 -4
- package/dist/src/vite/storyFilesModule.js +122 -34
- package/dist/src/vite/storyMeta.d.ts +20 -11
- package/dist/src/vite/storyMeta.js +74 -38
- package/dist/src/vite/storyParse.d.ts +18 -0
- package/dist/src/vite/storyParse.js +20 -0
- package/dist/src/vite/storyPlay.d.ts +29 -0
- package/dist/src/vite/storyPlay.js +54 -0
- package/dist/src/vite/storyReach.d.ts +42 -0
- package/dist/src/vite/storyReach.js +43 -0
- package/dist/src/vite/storylessRoutes.d.ts +29 -0
- package/dist/src/vite/storylessRoutes.js +126 -0
- package/dist/src/vite/textModules.d.ts +63 -0
- package/dist/src/vite/textModules.js +132 -0
- package/dist/src/vite/textQueries.d.ts +20 -0
- package/dist/src/vite/textQueries.js +20 -0
- package/dist/src/vite/themeFromTokens.d.ts +35 -0
- package/dist/src/vite/themeFromTokens.js +73 -0
- package/dist/src/vite/tokenAnswers.d.ts +20 -0
- package/dist/src/vite/tokenAnswers.js +86 -0
- package/dist/src/vite/tokenClashes.d.ts +44 -0
- package/dist/src/vite/tokenClashes.js +45 -0
- package/dist/src/vite/touchMedia.d.ts +0 -1
- package/dist/src/vite/touchMedia.js +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts +0 -1
- package/dist/src/vite/typeScriptPieces.js +2 -3
- package/dist/src/vite/usageGraph.d.ts +6 -1
- package/dist/src/vite/usageGraph.js +41 -7
- package/dist/src/vite/usageGuidance.d.ts +33 -0
- package/dist/src/vite/usageGuidance.js +45 -0
- package/dist/src/vite/usageModule.d.ts +0 -1
- package/dist/src/vite/usageModule.js +0 -1
- package/dist/src/vite/vitePaths.d.ts +53 -0
- package/dist/src/vite/vitePaths.js +53 -0
- package/dist/src/worstCase.d.ts +0 -1
- package/dist/src/worstCase.js +0 -1
- package/package.json +66 -3
- package/dist/bin/forgebook/agentClient.d.ts.map +0 -1
- package/dist/bin/forgebook/agentClient.js.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs.map +0 -1
- package/dist/bin/forgebook/agentText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentText.js.map +0 -1
- package/dist/bin/forgebook/agentsText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentsText.js.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.js.map +0 -1
- package/dist/bin/forgebook/catalogueVite.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueVite.js.map +0 -1
- package/dist/bin/forgebook/errorsRun.d.ts.map +0 -1
- package/dist/bin/forgebook/errorsRun.js.map +0 -1
- package/dist/bin/forgebook/forgebook.d.mts.map +0 -1
- package/dist/bin/forgebook/forgebook.mjs.map +0 -1
- package/dist/bin/forgebook/importers/storybook.d.ts.map +0 -1
- package/dist/bin/forgebook/importers/storybook.js.map +0 -1
- package/dist/bin/forgebook/initCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/initCommands.mjs.map +0 -1
- package/dist/bin/forgebook/initConfig.d.ts.map +0 -1
- package/dist/bin/forgebook/initConfig.js.map +0 -1
- package/dist/bin/forgebook/mcpTools.d.ts.map +0 -1
- package/dist/bin/forgebook/mcpTools.js.map +0 -1
- package/dist/bin/forgebook/newStories.d.ts.map +0 -1
- package/dist/bin/forgebook/newStories.js.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.d.ts.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.js.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.d.ts.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.js.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.d.ts.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.js.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.js.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.d.ts +0 -9
- package/dist/bin/forgebook-docs/sourceId.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.js +0 -45
- package/dist/bin/forgebook-docs/sourceId.js.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js.map +0 -1
- package/dist/bin/frameworkDocs.d.ts.map +0 -1
- package/dist/bin/frameworkDocs.js.map +0 -1
- package/dist/src/a11y.d.ts.map +0 -1
- package/dist/src/a11y.js.map +0 -1
- package/dist/src/argTypes.d.ts.map +0 -1
- package/dist/src/argTypes.js.map +0 -1
- package/dist/src/backdrops.d.ts.map +0 -1
- package/dist/src/backdrops.js.map +0 -1
- package/dist/src/catalogue.d.ts.map +0 -1
- package/dist/src/catalogue.js.map +0 -1
- package/dist/src/componentDocs.d.ts.map +0 -1
- package/dist/src/componentDocs.js.map +0 -1
- package/dist/src/controlKeys.d.ts.map +0 -1
- package/dist/src/controlKeys.js.map +0 -1
- package/dist/src/frame/checkStory.d.ts.map +0 -1
- package/dist/src/frame/checkStory.js.map +0 -1
- package/dist/src/frame/frameClock.d.ts.map +0 -1
- package/dist/src/frame/frameClock.js.map +0 -1
- package/dist/src/frame/frameStatus.d.ts.map +0 -1
- package/dist/src/frame/frameStatus.js.map +0 -1
- package/dist/src/frame/frameView.d.ts.map +0 -1
- package/dist/src/frame/frameView.js.map +0 -1
- package/dist/src/frame/matrixLayout.d.ts.map +0 -1
- package/dist/src/frame/matrixLayout.js.map +0 -1
- package/dist/src/frame/measureTools.d.ts.map +0 -1
- package/dist/src/frame/measureTools.js.map +0 -1
- package/dist/src/frame/mountFrame.d.ts.map +0 -1
- package/dist/src/frame/mountFrame.js.map +0 -1
- package/dist/src/frame/playStory.d.ts.map +0 -1
- package/dist/src/frame/playStory.js.map +0 -1
- package/dist/src/frame/renderer.d.ts.map +0 -1
- package/dist/src/frame/renderer.js.map +0 -1
- package/dist/src/frame/settle.d.ts.map +0 -1
- package/dist/src/frame/settle.js.map +0 -1
- package/dist/src/frame/spillOutline.d.ts.map +0 -1
- package/dist/src/frame/spillOutline.js.map +0 -1
- package/dist/src/frame/staleModule.d.ts.map +0 -1
- package/dist/src/frame/staleModule.js.map +0 -1
- package/dist/src/frame/storyCanvas.d.ts.map +0 -1
- package/dist/src/frame/storyCanvas.js.map +0 -1
- package/dist/src/frame/storyHooks.d.ts.map +0 -1
- package/dist/src/frame/storyHooks.js.map +0 -1
- package/dist/src/frame/storyModule.d.ts.map +0 -1
- package/dist/src/frame/storyModule.js.map +0 -1
- package/dist/src/frame/storyRun.d.ts.map +0 -1
- package/dist/src/frame/storyRun.js.map +0 -1
- package/dist/src/frame/touchDots.d.ts.map +0 -1
- package/dist/src/frame/touchDots.js.map +0 -1
- package/dist/src/frame/touchEvents.d.ts.map +0 -1
- package/dist/src/frame/touchEvents.js.map +0 -1
- package/dist/src/frame/touchGesture.d.ts.map +0 -1
- package/dist/src/frame/touchGesture.js.map +0 -1
- package/dist/src/frame/touchLayer.d.ts.map +0 -1
- package/dist/src/frame/touchLayer.js.map +0 -1
- package/dist/src/frame/touchScroll.d.ts.map +0 -1
- package/dist/src/frame/touchScroll.js.map +0 -1
- package/dist/src/languages.d.ts.map +0 -1
- package/dist/src/languages.js.map +0 -1
- package/dist/src/liveErrors.d.ts.map +0 -1
- package/dist/src/liveErrors.js.map +0 -1
- package/dist/src/matrix.d.ts.map +0 -1
- package/dist/src/matrix.js.map +0 -1
- package/dist/src/messages.d.ts.map +0 -1
- package/dist/src/messages.js.map +0 -1
- package/dist/src/namedValues.d.ts.map +0 -1
- package/dist/src/namedValues.js.map +0 -1
- package/dist/src/namedViews.d.ts.map +0 -1
- package/dist/src/namedViews.js.map +0 -1
- package/dist/src/pageConfig.d.ts.map +0 -1
- package/dist/src/pageConfig.js.map +0 -1
- package/dist/src/playTrace.d.ts.map +0 -1
- package/dist/src/playTrace.js.map +0 -1
- package/dist/src/realTouch.d.ts.map +0 -1
- package/dist/src/realTouch.js.map +0 -1
- package/dist/src/shell/A11yTab.d.ts.map +0 -1
- package/dist/src/shell/A11yTab.js.map +0 -1
- package/dist/src/shell/ApiReference.d.ts.map +0 -1
- package/dist/src/shell/ApiReference.js.map +0 -1
- package/dist/src/shell/AppearanceMenu.d.ts.map +0 -1
- package/dist/src/shell/AppearanceMenu.js.map +0 -1
- package/dist/src/shell/BoxWidth.d.ts.map +0 -1
- package/dist/src/shell/BoxWidth.js.map +0 -1
- package/dist/src/shell/ClockControls.d.ts.map +0 -1
- package/dist/src/shell/ClockControls.js.map +0 -1
- package/dist/src/shell/Code.d.ts.map +0 -1
- package/dist/src/shell/Code.js.map +0 -1
- package/dist/src/shell/CodeTab.d.ts.map +0 -1
- package/dist/src/shell/CodeTab.js.map +0 -1
- package/dist/src/shell/CodeText.d.ts.map +0 -1
- package/dist/src/shell/CodeText.js.map +0 -1
- package/dist/src/shell/ComponentPage.d.ts.map +0 -1
- package/dist/src/shell/ComponentPage.js.map +0 -1
- package/dist/src/shell/ControlKeyField.d.ts.map +0 -1
- package/dist/src/shell/ControlKeyField.js.map +0 -1
- package/dist/src/shell/ControlRow.d.ts.map +0 -1
- package/dist/src/shell/ControlRow.js.map +0 -1
- package/dist/src/shell/Dock.d.ts.map +0 -1
- package/dist/src/shell/Dock.js.map +0 -1
- package/dist/src/shell/EventsTab.d.ts.map +0 -1
- package/dist/src/shell/EventsTab.js.map +0 -1
- package/dist/src/shell/Example.d.ts.map +0 -1
- package/dist/src/shell/Example.js.map +0 -1
- package/dist/src/shell/FrameView.d.ts.map +0 -1
- package/dist/src/shell/FrameView.js.map +0 -1
- package/dist/src/shell/HomePage.d.ts.map +0 -1
- package/dist/src/shell/HomePage.js.map +0 -1
- package/dist/src/shell/InfoTip.d.ts.map +0 -1
- package/dist/src/shell/InfoTip.js.map +0 -1
- package/dist/src/shell/InteractionsTab.d.ts.map +0 -1
- package/dist/src/shell/InteractionsTab.js.map +0 -1
- package/dist/src/shell/MatrixPicker.d.ts.map +0 -1
- package/dist/src/shell/MatrixPicker.js.map +0 -1
- package/dist/src/shell/NamedViews.d.ts.map +0 -1
- package/dist/src/shell/NamedViews.js.map +0 -1
- package/dist/src/shell/PackageHtml.d.ts.map +0 -1
- package/dist/src/shell/PackageHtml.js.map +0 -1
- package/dist/src/shell/PartsTab.d.ts.map +0 -1
- package/dist/src/shell/PartsTab.js.map +0 -1
- package/dist/src/shell/PinnedControl.d.ts.map +0 -1
- package/dist/src/shell/PinnedControl.js.map +0 -1
- package/dist/src/shell/PropFields.d.ts.map +0 -1
- package/dist/src/shell/PropFields.js.map +0 -1
- package/dist/src/shell/PropsTab.d.ts.map +0 -1
- package/dist/src/shell/PropsTab.js.map +0 -1
- package/dist/src/shell/Segmented.d.ts.map +0 -1
- package/dist/src/shell/Segmented.js.map +0 -1
- package/dist/src/shell/Shell.d.ts.map +0 -1
- package/dist/src/shell/Shell.js.map +0 -1
- package/dist/src/shell/Sidebar.d.ts.map +0 -1
- package/dist/src/shell/Sidebar.js.map +0 -1
- package/dist/src/shell/SidebarEntries.d.ts.map +0 -1
- package/dist/src/shell/SidebarEntries.js.map +0 -1
- package/dist/src/shell/SidebarHandle.d.ts.map +0 -1
- package/dist/src/shell/SidebarHandle.js.map +0 -1
- package/dist/src/shell/Stage.d.ts.map +0 -1
- package/dist/src/shell/Stage.js.map +0 -1
- package/dist/src/shell/StageTools.d.ts.map +0 -1
- package/dist/src/shell/StageTools.js.map +0 -1
- package/dist/src/shell/StageViewport.d.ts.map +0 -1
- package/dist/src/shell/StageViewport.js.map +0 -1
- package/dist/src/shell/StoryCodeBlock.d.ts.map +0 -1
- package/dist/src/shell/StoryCodeBlock.js.map +0 -1
- package/dist/src/shell/StoryPicker.d.ts.map +0 -1
- package/dist/src/shell/StoryPicker.js.map +0 -1
- package/dist/src/shell/Toolbar.d.ts.map +0 -1
- package/dist/src/shell/Toolbar.js.map +0 -1
- package/dist/src/shell/ToolbarControl.d.ts.map +0 -1
- package/dist/src/shell/ToolbarControl.js.map +0 -1
- package/dist/src/shell/UsedIn.d.ts.map +0 -1
- package/dist/src/shell/UsedIn.js.map +0 -1
- package/dist/src/shell/ViewMenu.d.ts.map +0 -1
- package/dist/src/shell/ViewMenu.js.map +0 -1
- package/dist/src/shell/WidthField.d.ts.map +0 -1
- package/dist/src/shell/WidthField.js.map +0 -1
- package/dist/src/shell/catalogueContext.d.ts.map +0 -1
- package/dist/src/shell/catalogueContext.js.map +0 -1
- package/dist/src/shell/codeTokens.d.ts.map +0 -1
- package/dist/src/shell/codeTokens.js.map +0 -1
- package/dist/src/shell/codeWriter.d.ts.map +0 -1
- package/dist/src/shell/codeWriter.js.map +0 -1
- package/dist/src/shell/compareVariants.d.ts.map +0 -1
- package/dist/src/shell/compareVariants.js.map +0 -1
- package/dist/src/shell/controlCycle.d.ts.map +0 -1
- package/dist/src/shell/controlCycle.js.map +0 -1
- package/dist/src/shell/dockTabs.d.ts.map +0 -1
- package/dist/src/shell/dockTabs.js.map +0 -1
- package/dist/src/shell/icons.d.ts.map +0 -1
- package/dist/src/shell/icons.js.map +0 -1
- package/dist/src/shell/keyboard.d.ts.map +0 -1
- package/dist/src/shell/keyboard.js.map +0 -1
- package/dist/src/shell/mountShell.d.ts.map +0 -1
- package/dist/src/shell/mountShell.js.map +0 -1
- package/dist/src/shell/storyTouch.d.ts.map +0 -1
- package/dist/src/shell/storyTouch.js.map +0 -1
- package/dist/src/shell/strings.d.ts.map +0 -1
- package/dist/src/shell/strings.js.map +0 -1
- package/dist/src/shell/switchView.d.ts.map +0 -1
- package/dist/src/shell/switchView.js.map +0 -1
- package/dist/src/shell/treeSearch.d.ts.map +0 -1
- package/dist/src/shell/treeSearch.js.map +0 -1
- package/dist/src/shell/useAppearance.d.ts.map +0 -1
- package/dist/src/shell/useAppearance.js.map +0 -1
- package/dist/src/shell/useComponentDocs.d.ts.map +0 -1
- package/dist/src/shell/useComponentDocs.js.map +0 -1
- package/dist/src/shell/useControlKeys.d.ts.map +0 -1
- package/dist/src/shell/useControlKeys.js.map +0 -1
- package/dist/src/shell/useCopy.d.ts.map +0 -1
- package/dist/src/shell/useCopy.js.map +0 -1
- package/dist/src/shell/useFold.d.ts.map +0 -1
- package/dist/src/shell/useFold.js.map +0 -1
- package/dist/src/shell/useFrameMessages.d.ts.map +0 -1
- package/dist/src/shell/useFrameMessages.js.map +0 -1
- package/dist/src/shell/useFrameQueue.d.ts.map +0 -1
- package/dist/src/shell/useFrameQueue.js.map +0 -1
- package/dist/src/shell/useFullPage.d.ts.map +0 -1
- package/dist/src/shell/useFullPage.js.map +0 -1
- package/dist/src/shell/useLiveView.d.ts.map +0 -1
- package/dist/src/shell/useLiveView.js.map +0 -1
- package/dist/src/shell/useLoaded.d.ts.map +0 -1
- package/dist/src/shell/useLoaded.js.map +0 -1
- package/dist/src/shell/usePageDoc.d.ts.map +0 -1
- package/dist/src/shell/usePageDoc.js.map +0 -1
- package/dist/src/shell/usePopover.d.ts.map +0 -1
- package/dist/src/shell/usePopover.js.map +0 -1
- package/dist/src/shell/useRecentPages.d.ts.map +0 -1
- package/dist/src/shell/useRecentPages.js.map +0 -1
- package/dist/src/shell/useScrollMemory.d.ts.map +0 -1
- package/dist/src/shell/useScrollMemory.js.map +0 -1
- package/dist/src/shell/useSidebarLayout.d.ts.map +0 -1
- package/dist/src/shell/useSidebarLayout.js.map +0 -1
- package/dist/src/shell/useStored.d.ts.map +0 -1
- package/dist/src/shell/useStored.js.map +0 -1
- package/dist/src/shell/useStoryCode.d.ts.map +0 -1
- package/dist/src/shell/useStoryCode.js.map +0 -1
- package/dist/src/shell/useStoryHeights.d.ts.map +0 -1
- package/dist/src/shell/useStoryHeights.js.map +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts.map +0 -1
- package/dist/src/shell/useStoryIdsElement.js.map +0 -1
- package/dist/src/shell/useStoryKeys.d.ts.map +0 -1
- package/dist/src/shell/useStoryKeys.js.map +0 -1
- package/dist/src/shell/useSystemDark.d.ts.map +0 -1
- package/dist/src/shell/useSystemDark.js.map +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts.map +0 -1
- package/dist/src/shell/useToolbarLayout.js.map +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts.map +0 -1
- package/dist/src/shell/useToolbarOverflow.js.map +0 -1
- package/dist/src/shell/useWorstCase.d.ts.map +0 -1
- package/dist/src/shell/useWorstCase.js.map +0 -1
- package/dist/src/shell/worstArgs.d.ts.map +0 -1
- package/dist/src/shell/worstArgs.js.map +0 -1
- package/dist/src/sourceFiles.d.ts.map +0 -1
- package/dist/src/sourceFiles.js.map +0 -1
- package/dist/src/spills.d.ts.map +0 -1
- package/dist/src/spills.js.map +0 -1
- package/dist/src/storyBackground.d.ts.map +0 -1
- package/dist/src/storyBackground.js.map +0 -1
- package/dist/src/storyCheck.d.ts.map +0 -1
- package/dist/src/storyCheck.js.map +0 -1
- package/dist/src/storyClock.d.ts.map +0 -1
- package/dist/src/storyClock.js.map +0 -1
- package/dist/src/storyGlobals.d.ts.map +0 -1
- package/dist/src/storyGlobals.js.map +0 -1
- package/dist/src/storyHeights.d.ts.map +0 -1
- package/dist/src/storyHeights.js.map +0 -1
- package/dist/src/storyIdsElement.d.ts.map +0 -1
- package/dist/src/storyIdsElement.js.map +0 -1
- package/dist/src/storyTexts.d.ts.map +0 -1
- package/dist/src/storyTexts.js.map +0 -1
- package/dist/src/storyTree.d.ts.map +0 -1
- package/dist/src/storyTree.js.map +0 -1
- package/dist/src/switches.d.ts.map +0 -1
- package/dist/src/switches.js.map +0 -1
- package/dist/src/toolbarLayout.d.ts.map +0 -1
- package/dist/src/toolbarLayout.js.map +0 -1
- package/dist/src/usedIn.d.ts.map +0 -1
- package/dist/src/usedIn.js.map +0 -1
- package/dist/src/viewState.d.ts.map +0 -1
- package/dist/src/viewState.js.map +0 -1
- package/dist/src/viewWords.d.ts.map +0 -1
- package/dist/src/viewWords.js.map +0 -1
- package/dist/src/vite/adapter.d.ts.map +0 -1
- package/dist/src/vite/adapter.js.map +0 -1
- package/dist/src/vite/agent.types.d.ts.map +0 -1
- package/dist/src/vite/agent.types.js.map +0 -1
- package/dist/src/vite/agentApi.d.ts.map +0 -1
- package/dist/src/vite/agentApi.js.map +0 -1
- package/dist/src/vite/agentRoutes.d.ts.map +0 -1
- package/dist/src/vite/agentRoutes.js.map +0 -1
- package/dist/src/vite/autoTitle.d.ts.map +0 -1
- package/dist/src/vite/autoTitle.js.map +0 -1
- package/dist/src/vite/componentPage.d.ts.map +0 -1
- package/dist/src/vite/componentPage.js.map +0 -1
- package/dist/src/vite/config.d.ts.map +0 -1
- package/dist/src/vite/config.js.map +0 -1
- package/dist/src/vite/configFile.d.ts.map +0 -1
- package/dist/src/vite/configFile.js.map +0 -1
- package/dist/src/vite/docsExtractor.d.ts.map +0 -1
- package/dist/src/vite/docsExtractor.js.map +0 -1
- package/dist/src/vite/docsProgram.d.ts.map +0 -1
- package/dist/src/vite/docsProgram.js.map +0 -1
- package/dist/src/vite/docsWorker.d.ts.map +0 -1
- package/dist/src/vite/docsWorker.js.map +0 -1
- package/dist/src/vite/forcedStates.d.ts.map +0 -1
- package/dist/src/vite/forcedStates.js.map +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts.map +0 -1
- package/dist/src/vite/forgebookPlugin.js.map +0 -1
- package/dist/src/vite/highlightCode.d.ts.map +0 -1
- package/dist/src/vite/highlightCode.js.map +0 -1
- package/dist/src/vite/indexStoryFile.d.ts.map +0 -1
- package/dist/src/vite/indexStoryFile.js.map +0 -1
- package/dist/src/vite/mcpProtocol.d.ts.map +0 -1
- package/dist/src/vite/mcpProtocol.js.map +0 -1
- package/dist/src/vite/pages.d.ts.map +0 -1
- package/dist/src/vite/pages.js.map +0 -1
- package/dist/src/vite/prebundled.d.ts.map +0 -1
- package/dist/src/vite/prebundled.js.map +0 -1
- package/dist/src/vite/storyCode.d.ts.map +0 -1
- package/dist/src/vite/storyCode.js.map +0 -1
- package/dist/src/vite/storyFilesModule.d.ts.map +0 -1
- package/dist/src/vite/storyFilesModule.js.map +0 -1
- package/dist/src/vite/storyMeta.d.ts.map +0 -1
- package/dist/src/vite/storyMeta.js.map +0 -1
- package/dist/src/vite/touchMedia.d.ts.map +0 -1
- package/dist/src/vite/touchMedia.js.map +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts.map +0 -1
- package/dist/src/vite/typeScriptPieces.js.map +0 -1
- package/dist/src/vite/usageGraph.d.ts.map +0 -1
- package/dist/src/vite/usageGraph.js.map +0 -1
- package/dist/src/vite/usageModule.d.ts.map +0 -1
- package/dist/src/vite/usageModule.js.map +0 -1
- package/dist/src/worstCase.d.ts.map +0 -1
- package/dist/src/worstCase.js.map +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { fenceInfo, missingLine } from "./codeFence.js";
|
|
2
|
+
import { isPageValue, isValueToken, LEXER } from "./docMarkdown.js";
|
|
3
|
+
import { assetAddress, isOutside, isOwnImage, isPageLink, linkedSlug, pageAddress, relativeTarget } from "./docPageLinks.js";
|
|
4
|
+
/**
|
|
5
|
+
* Where each character of a text made of lines sits in the file.
|
|
6
|
+
*
|
|
7
|
+
* @param lines - the lines the text joins.
|
|
8
|
+
*/
|
|
9
|
+
export const positionsOf = (lines) => {
|
|
10
|
+
const starts = [];
|
|
11
|
+
let total = 0;
|
|
12
|
+
for (const line of lines) {
|
|
13
|
+
starts.push(total);
|
|
14
|
+
total += line.text.length + 1;
|
|
15
|
+
}
|
|
16
|
+
return (offset) => {
|
|
17
|
+
let index = starts.findLastIndex((start) => start <= offset);
|
|
18
|
+
if (index === -1)
|
|
19
|
+
index = 0;
|
|
20
|
+
const line = lines[index];
|
|
21
|
+
return line === undefined
|
|
22
|
+
? { line: 1, column: 1 }
|
|
23
|
+
: { line: line.line, column: line.column + offset - (starts[index] ?? 0) };
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/** Notes a value token, and writes `version` in. */
|
|
27
|
+
const readValue = (token, position, reading) => {
|
|
28
|
+
if (!isValueToken(token))
|
|
29
|
+
return;
|
|
30
|
+
if (!isPageValue(token.name)) {
|
|
31
|
+
reading.notes.push({
|
|
32
|
+
position,
|
|
33
|
+
message: `\`${token.raw}\` is not a value a page can show: title, version, components, stories, libraries or pages`
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (token.name !== "version")
|
|
38
|
+
return;
|
|
39
|
+
const version = reading.version();
|
|
40
|
+
if (version === undefined)
|
|
41
|
+
reading.notes.push({
|
|
42
|
+
position,
|
|
43
|
+
message: "`{{version}}` has no version to show: its package.json has none"
|
|
44
|
+
});
|
|
45
|
+
token.text = version ?? "";
|
|
46
|
+
};
|
|
47
|
+
/** Checks and addresses a link or an image, in place. */
|
|
48
|
+
const readAddress = (token, position, reading) => {
|
|
49
|
+
if (token.type !== "link" && token.type !== "image")
|
|
50
|
+
return;
|
|
51
|
+
const href = token["href"];
|
|
52
|
+
if (typeof href !== "string" || isOutside(href))
|
|
53
|
+
return;
|
|
54
|
+
const { file, read } = reading;
|
|
55
|
+
if (token.type === "image") {
|
|
56
|
+
const image = relativeTarget(file, href).file;
|
|
57
|
+
if (!isOwnImage(file, image)) {
|
|
58
|
+
reading.notes.push({ position, message: `its image "${href}" is not a file of its package` });
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
reading.images.push(image);
|
|
62
|
+
token.href = assetAddress(reading.images.length - 1);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!isPageLink(href))
|
|
66
|
+
return;
|
|
67
|
+
const slug = linkedSlug(file, href, read);
|
|
68
|
+
if (slug === undefined) {
|
|
69
|
+
reading.notes.push({ position, message: `it links to "${href}", which is not there` });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
reading.links.push(slug);
|
|
73
|
+
token.href = pageAddress(file, href, read) ?? href;
|
|
74
|
+
};
|
|
75
|
+
/** The start of a fence's line after its backticks, where its words start. */
|
|
76
|
+
const fenceWordsStart = (raw) => /^ {0,3}(?:`{3,}|~{3,})\s*/.exec(raw)?.[0].length ?? 3;
|
|
77
|
+
/**
|
|
78
|
+
* Reads a top-level code fence: a story, a table, or code with its whole line.
|
|
79
|
+
*
|
|
80
|
+
* @param token - the fence.
|
|
81
|
+
* @param position - where it starts.
|
|
82
|
+
* @param reading - the reading.
|
|
83
|
+
*/
|
|
84
|
+
const readFence = (token, position, reading) => {
|
|
85
|
+
const info = typeof token.lang === "string" ? token.lang.trim() : "";
|
|
86
|
+
const words = info === "" ? [] : info.split(/\s+/);
|
|
87
|
+
const [kind, id, ...rest] = words;
|
|
88
|
+
if (kind !== undefined && reading.pluginFences.includes(kind)) {
|
|
89
|
+
reading.fences.set(token, { kind: "plugin", fence: kind, argument: words.slice(1).join(" ") });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (kind === "story" || kind === "props") {
|
|
93
|
+
if (id === undefined) {
|
|
94
|
+
reading.notes.push({ position, message: `a \`${kind}\` block names no id` });
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (rest.length > 0)
|
|
98
|
+
reading.notes.push({
|
|
99
|
+
position,
|
|
100
|
+
message: `a \`${kind}\` block takes only an id, not "${rest.join(" ")}"`
|
|
101
|
+
});
|
|
102
|
+
(kind === "story" ? reading.stories : reading.components).push(id);
|
|
103
|
+
reading.fences.set(token, { kind, id });
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const start = { line: position.line, column: position.column + fenceWordsStart(token.raw) };
|
|
107
|
+
const read = fenceInfo(info, start, reading.notes);
|
|
108
|
+
const missing = missingLine(token.text, read);
|
|
109
|
+
if (missing !== undefined)
|
|
110
|
+
reading.notes.push({
|
|
111
|
+
position: start,
|
|
112
|
+
message: `the code fence names line ${missing.line}, and its code has ${missing.count}`
|
|
113
|
+
});
|
|
114
|
+
reading.fences.set(token, { kind: "code", info: read });
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Whether a token is a code block.
|
|
118
|
+
*
|
|
119
|
+
* @param token - the token.
|
|
120
|
+
*/
|
|
121
|
+
export const isCode = (token) => token.type === "code" && typeof token["text"] === "string";
|
|
122
|
+
/**
|
|
123
|
+
* Whether a token is an ordered list.
|
|
124
|
+
*
|
|
125
|
+
* @param token - the token.
|
|
126
|
+
*/
|
|
127
|
+
export const isOrderedList = (token) => token?.type === "list" && token["ordered"] === true && Array.isArray(token["items"]);
|
|
128
|
+
/** Whether a fence names a page's own block (`story <id>`, `props <id>`). */
|
|
129
|
+
const isBlockFence = (token) => isCode(token) && typeof token.lang === "string" && /^(story|props)(\s|$)/.test(token.lang.trim());
|
|
130
|
+
/**
|
|
131
|
+
* Reads tokens that sit in a page's own flow: each fence a block, every link, image and value checked inside them.
|
|
132
|
+
*
|
|
133
|
+
* @param tokens - the tokens.
|
|
134
|
+
* @param container - the text they were read from.
|
|
135
|
+
* @param base - where that text starts in the text the positions are counted in.
|
|
136
|
+
* @param at - the position of a character of that text.
|
|
137
|
+
* @param reading - the reading.
|
|
138
|
+
*/
|
|
139
|
+
export const readTokens = (tokens, container, base, at, reading) => {
|
|
140
|
+
let cursor = 0;
|
|
141
|
+
for (const token of tokens) {
|
|
142
|
+
const found = container.indexOf(token.raw, cursor);
|
|
143
|
+
const start = found === -1 ? cursor : found;
|
|
144
|
+
cursor = start + token.raw.length;
|
|
145
|
+
const offset = base + start;
|
|
146
|
+
if (isCode(token))
|
|
147
|
+
readFence(token, at(offset), reading);
|
|
148
|
+
let inner = 0;
|
|
149
|
+
void LEXER.walkTokens([token], (child) => {
|
|
150
|
+
if (child === token)
|
|
151
|
+
return;
|
|
152
|
+
const place = placeIn(token.raw, child.raw, inner);
|
|
153
|
+
if (place !== -1)
|
|
154
|
+
inner = place;
|
|
155
|
+
const position = at(offset + (place === -1 ? 0 : place));
|
|
156
|
+
if (isBlockFence(child))
|
|
157
|
+
reading.notes.push({
|
|
158
|
+
position,
|
|
159
|
+
message: `a \`${(child.lang ?? "").trim()}\` block inside a list or a quote is not drawn`
|
|
160
|
+
});
|
|
161
|
+
readAddress(child, position, reading);
|
|
162
|
+
readValue(child, position, reading);
|
|
163
|
+
});
|
|
164
|
+
readAddress(token, at(offset), reading);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Where a nested token's text sits in its top-level token's, from a place on: its first line alone when the whole is
|
|
169
|
+
* not there, since a list item's lines lose their indent before they are read; -1 when neither is.
|
|
170
|
+
*/
|
|
171
|
+
const placeIn = (text, raw, from) => {
|
|
172
|
+
const whole = text.indexOf(raw, from);
|
|
173
|
+
if (whole !== -1)
|
|
174
|
+
return whole;
|
|
175
|
+
const firstLine = raw.split("\n")[0]?.trim() ?? "";
|
|
176
|
+
return firstLine === "" ? -1 : text.indexOf(firstLine, from);
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* A run of Markdown lines' text and its tokens.
|
|
180
|
+
*
|
|
181
|
+
* @param lines - the lines.
|
|
182
|
+
*/
|
|
183
|
+
export const lexed = (lines) => {
|
|
184
|
+
const text = lines.map((line) => line.text).join("\n");
|
|
185
|
+
return { text, tokens: [...LEXER.lexer(text)] };
|
|
186
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { DocPageIndex } from "@forgebook/story-format/source";
|
|
2
|
+
import type { ForgebookPlugin } from "../plugin.ts";
|
|
3
|
+
/** A page a pattern matches, with its key and its index. */
|
|
4
|
+
export type IndexedDocPage = {
|
|
5
|
+
/** Its path relative to the declaring module (`./docs/theming.md`). */
|
|
6
|
+
readonly key: string;
|
|
7
|
+
/** Its absolute path. */
|
|
8
|
+
readonly file: string;
|
|
9
|
+
/** Its index. */
|
|
10
|
+
readonly index: DocPageIndex;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Every page a pattern matches, indexed.
|
|
14
|
+
*
|
|
15
|
+
* @param root - the declaring module's folder.
|
|
16
|
+
* @param pattern - the pattern.
|
|
17
|
+
* @param watch - adds a file whose edit renews the module that read it.
|
|
18
|
+
* @param fences - the fences the catalogue's plugins draw, which are not code; none by default.
|
|
19
|
+
*/
|
|
20
|
+
export declare const indexedDocPages: (root: string, pattern: string, watch: (file: string) => void, fences?: readonly string[]) => IndexedDocPage[];
|
|
21
|
+
/**
|
|
22
|
+
* The code of the module for one pattern.
|
|
23
|
+
*
|
|
24
|
+
* @param root - the declaring module's folder.
|
|
25
|
+
* @param pattern - the pattern before `?forgebook-docs-pages`.
|
|
26
|
+
* @param watch - adds a file whose edit renews the module (each page: its index is in the module).
|
|
27
|
+
* @param isServing - whether a dev server runs, whose tools read a page's Markdown.
|
|
28
|
+
* @param plugins - the catalogue's plugins, whose fences a page may draw; none by default.
|
|
29
|
+
*/
|
|
30
|
+
export declare const docPagesModule: (root: string, pattern: string, watch: (file: string) => void, isServing: boolean, plugins?: readonly ForgebookPlugin[]) => string;
|
|
31
|
+
/**
|
|
32
|
+
* The code of one page's module: what the shell draws, each image imported so Vite answers its address, and, on the dev
|
|
33
|
+
* server, the page's Markdown for tools.
|
|
34
|
+
*
|
|
35
|
+
* @param file - the page's file, absolute.
|
|
36
|
+
* @param watch - adds a file whose edit renews the module.
|
|
37
|
+
* @param isServing - whether a dev server runs.
|
|
38
|
+
* @param plugins - the catalogue's plugins, whose fences a page may draw.
|
|
39
|
+
*/
|
|
40
|
+
export declare const docPageModule: (file: string, watch: (file: string) => void, isServing: boolean, plugins?: readonly ForgebookPlugin[]) => string;
|
|
41
|
+
/**
|
|
42
|
+
* The code of the written home's module: what the shell draws in place of the generated home, with its problems, and,
|
|
43
|
+
* on the dev server, its Markdown for tools.
|
|
44
|
+
*
|
|
45
|
+
* @param file - the home's file, absolute.
|
|
46
|
+
* @param watch - adds a file whose edit renews the module.
|
|
47
|
+
* @param isServing - whether a dev server runs.
|
|
48
|
+
* @param plugins - the catalogue's plugins, whose fences the home may draw; none by default.
|
|
49
|
+
*/
|
|
50
|
+
export declare const homeModule: (file: string, watch: (file: string) => void, isServing: boolean, plugins?: readonly ForgebookPlugin[]) => string;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The modules that answer a `?forgebook-docs-pages` import: every page a pattern matches as one module with each page's
|
|
3
|
+
* index, and the loader of the page itself, and each page's own module.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Shaped as `?forgebook-files` is, and keyed the same way: the sidebar needs every page's title at once, and a page's
|
|
7
|
+
* rendered blocks only when it opens. The Markdown itself goes to tools on the dev server alone: a static build has no
|
|
8
|
+
* tools to ask, and it would ship every page twice.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync } from "node:fs";
|
|
13
|
+
import { resolve } from "node:path";
|
|
14
|
+
import { codeLiteral } from "../codeLiteral.js";
|
|
15
|
+
import { readLinkedFile } from "./docPageLinks.js";
|
|
16
|
+
import { compiledDocPage, compiledHome, docPageIndex } from "./docPageMarkdown.js";
|
|
17
|
+
import { pluginFences } from "./pluginConfig.js";
|
|
18
|
+
import { PAGES_SEARCH_PREFIX, storyFileKeys, storyFilesGroupText } from "./storyFilesModule.js";
|
|
19
|
+
import { DOCS_PAGE_QUERY } from "./textQueries.js";
|
|
20
|
+
import { VITE_PATHS } from "./vitePaths.js";
|
|
21
|
+
/** Reads a linked page, watching it: its title makes the link's address, so a new title renews the page that links. */
|
|
22
|
+
const watchedRead = (watch) => (file) => {
|
|
23
|
+
const text = readLinkedFile(file);
|
|
24
|
+
if (text !== undefined)
|
|
25
|
+
watch(file);
|
|
26
|
+
return text;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Every page a pattern matches, indexed.
|
|
30
|
+
*
|
|
31
|
+
* @param root - the declaring module's folder.
|
|
32
|
+
* @param pattern - the pattern.
|
|
33
|
+
* @param watch - adds a file whose edit renews the module that read it.
|
|
34
|
+
* @param fences - the fences the catalogue's plugins draw, which are not code; none by default.
|
|
35
|
+
*/
|
|
36
|
+
export const indexedDocPages = (root, pattern, watch, fences = []) => {
|
|
37
|
+
return storyFileKeys(root, [pattern]).map((key) => {
|
|
38
|
+
const file = resolve(root, key);
|
|
39
|
+
watch(file);
|
|
40
|
+
return { key, file, index: docPageIndex(file, readFileSync(file, "utf8"), watchedRead(watch), fences) };
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
/** An object literal of a key per page, each value written by `value`. */
|
|
44
|
+
const objectOf = (keys, value) => `{${keys.map((key) => `${codeLiteral(key)}: ${value(key)}`).join(",\n")}}`;
|
|
45
|
+
/**
|
|
46
|
+
* The code of the module for one pattern.
|
|
47
|
+
*
|
|
48
|
+
* @param root - the declaring module's folder.
|
|
49
|
+
* @param pattern - the pattern before `?forgebook-docs-pages`.
|
|
50
|
+
* @param watch - adds a file whose edit renews the module (each page: its index is in the module).
|
|
51
|
+
* @param isServing - whether a dev server runs, whose tools read a page's Markdown.
|
|
52
|
+
* @param plugins - the catalogue's plugins, whose fences a page may draw; none by default.
|
|
53
|
+
*/
|
|
54
|
+
export const docPagesModule = (root, pattern, watch, isServing, plugins = []) => {
|
|
55
|
+
const pages = indexedDocPages(root, pattern, watch, pluginFences(plugins));
|
|
56
|
+
const keys = pages.map((page) => page.key);
|
|
57
|
+
const index = Object.fromEntries(pages.map((page) => [page.key, page.index]));
|
|
58
|
+
const page = (key) => codeLiteral(`${VITE_PATHS.resolve(root, key)}${DOCS_PAGE_QUERY}`);
|
|
59
|
+
const search = codeLiteral(`${PAGES_SEARCH_PREFIX}${storyFilesGroupText(root, pattern)}`);
|
|
60
|
+
return [
|
|
61
|
+
"export default {",
|
|
62
|
+
`index: ${codeLiteral(index)},`,
|
|
63
|
+
`pages: ${objectOf(keys, (key) => `() => import(${page(key)}).then((module) => module.default)`)},`,
|
|
64
|
+
`search: () => import(${search}).then((module) => module.default),`,
|
|
65
|
+
...(isServing
|
|
66
|
+
? [`text: ${objectOf(keys, (key) => `() => import(${page(key)}).then((module) => module.text)`)}`]
|
|
67
|
+
: []),
|
|
68
|
+
"};"
|
|
69
|
+
].join("\n");
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* The code of one page's module: what the shell draws, each image imported so Vite answers its address, and, on the dev
|
|
73
|
+
* server, the page's Markdown for tools.
|
|
74
|
+
*
|
|
75
|
+
* @param file - the page's file, absolute.
|
|
76
|
+
* @param watch - adds a file whose edit renews the module.
|
|
77
|
+
* @param isServing - whether a dev server runs.
|
|
78
|
+
* @param plugins - the catalogue's plugins, whose fences a page may draw.
|
|
79
|
+
*/
|
|
80
|
+
export const docPageModule = (file, watch, isServing, plugins = []) => {
|
|
81
|
+
watch(file);
|
|
82
|
+
const { blocks, headings, images, text } = compiledDocPage(file, readFileSync(file, "utf8"), watchedRead(watch), pluginFences(plugins));
|
|
83
|
+
return [
|
|
84
|
+
...imageImports(images),
|
|
85
|
+
`export default { blocks: ${codeLiteral(blocks)}, headings: ${codeLiteral(headings)}, assets: ${assetList(images)} };`,
|
|
86
|
+
...(isServing ? [`export const text = ${codeLiteral(text)};`] : [])
|
|
87
|
+
].join("\n");
|
|
88
|
+
};
|
|
89
|
+
/** The imports of a page's images, each answered with its address. */
|
|
90
|
+
const imageImports = (images) => images.map((image, place) => `import asset${place} from ${codeLiteral(`${VITE_PATHS.normalize(image)}?url`)};`);
|
|
91
|
+
/** The list of a page's images' addresses, as the module's code writes it. */
|
|
92
|
+
const assetList = (images) => `[${images.map((_image, place) => `asset${place}`).join(", ")}]`;
|
|
93
|
+
/**
|
|
94
|
+
* The code of the written home's module: what the shell draws in place of the generated home, with its problems, and,
|
|
95
|
+
* on the dev server, its Markdown for tools.
|
|
96
|
+
*
|
|
97
|
+
* @param file - the home's file, absolute.
|
|
98
|
+
* @param watch - adds a file whose edit renews the module.
|
|
99
|
+
* @param isServing - whether a dev server runs.
|
|
100
|
+
* @param plugins - the catalogue's plugins, whose fences the home may draw; none by default.
|
|
101
|
+
*/
|
|
102
|
+
export const homeModule = (file, watch, isServing, plugins = []) => {
|
|
103
|
+
watch(file);
|
|
104
|
+
const { title, description, blocks, stories, notes, images, text } = compiledHome(file, readFileSync(file, "utf8"), watchedRead(watch), pluginFences(plugins));
|
|
105
|
+
const document = {
|
|
106
|
+
...(title === undefined ? {} : { title }),
|
|
107
|
+
...(description === undefined ? {} : { description }),
|
|
108
|
+
blocks,
|
|
109
|
+
stories,
|
|
110
|
+
// what the author got wrong is the dev server's to show: a published home keeps its readers out of it
|
|
111
|
+
notes: isServing ? notes : []
|
|
112
|
+
};
|
|
113
|
+
return [
|
|
114
|
+
...imageImports(images),
|
|
115
|
+
`export default { ...${codeLiteral(document)}, assets: ${assetList(images)} };`,
|
|
116
|
+
...(isServing ? [`export const text = ${codeLiteral(text)};`] : [])
|
|
117
|
+
].join("\n");
|
|
118
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { StoryTree } from "../storyTree.ts";
|
|
2
|
+
import type { PagesDocument } from "./agent.types.ts";
|
|
3
|
+
import type { CataloguePages } from "./agentApi.ts";
|
|
4
|
+
import { type AgentAnswer, type RouteContext } from "./agentRoutes.ts";
|
|
5
|
+
import type { HomeIndex } from "./docPageMarkdown.ts";
|
|
6
|
+
/** The id `forgebook page` takes for the catalogue's written home. */
|
|
7
|
+
export declare const HOME_PAGE_ID = "home";
|
|
8
|
+
/** The written home read: its file from the configuration's folder, its index and its Markdown. */
|
|
9
|
+
type ReadHome = {
|
|
10
|
+
readonly file: string;
|
|
11
|
+
readonly index: HomeIndex;
|
|
12
|
+
readonly text: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The docs pages a catalogue has.
|
|
16
|
+
*
|
|
17
|
+
* @param title - the catalogue's name.
|
|
18
|
+
* @param tree - its tree.
|
|
19
|
+
* @param pages - where it is served, for the links.
|
|
20
|
+
* @param view - the view the links open in; empty for the default view.
|
|
21
|
+
* @param home - the written home read; none for the generated one.
|
|
22
|
+
*/
|
|
23
|
+
export declare const pagesDocument: (title: string, tree: StoryTree, pages: CataloguePages, view: string, home?: ReadHome) => PagesDocument;
|
|
24
|
+
/**
|
|
25
|
+
* The docs pages.
|
|
26
|
+
*
|
|
27
|
+
* @param context - what the routes read.
|
|
28
|
+
*/
|
|
29
|
+
export declare const pagesAnswer: ({ config, tree, pages, view }: RouteContext) => Promise<AgentAnswer>;
|
|
30
|
+
/**
|
|
31
|
+
* One docs page: a page that cannot be read gives its problem in the answer, never an error, as a story does.
|
|
32
|
+
*
|
|
33
|
+
* @param context - what the routes read.
|
|
34
|
+
*/
|
|
35
|
+
export declare const pageAnswer: ({ params, tree, loaded, pages, view, config }: Omit<RouteContext, "config"> & {
|
|
36
|
+
readonly config?: Pick<RouteContext["config"], "title" | "home" | "dir" | "plugins">;
|
|
37
|
+
}) => Promise<AgentAnswer>;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The answers about docs pages: the list, and one page to read; the catalogue's written home is listed beside them and
|
|
3
|
+
* read as the page `home`.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
8
|
+
import { relative } from "node:path";
|
|
9
|
+
import { isDocPage } from "../docPages.js";
|
|
10
|
+
import { findPage } from "../pageTree.js";
|
|
11
|
+
import { sourcePages } from "../sourceFiles.js";
|
|
12
|
+
import { docPageAddressOf } from "../viewState.js";
|
|
13
|
+
import { settled } from "./agentRoutes.js";
|
|
14
|
+
import { pluginFences } from "./pluginConfig.js";
|
|
15
|
+
/** The id `forgebook page` takes for the catalogue's written home. */
|
|
16
|
+
export const HOME_PAGE_ID = "home";
|
|
17
|
+
/**
|
|
18
|
+
* The catalogue's written home read from the disk; none without one, or when it cannot be read. The Markdown reader
|
|
19
|
+
* loads with the first question about it: a dev server whose tools never ask starts without it.
|
|
20
|
+
*
|
|
21
|
+
* @param home - its absolute path.
|
|
22
|
+
* @param dir - the configuration's folder.
|
|
23
|
+
* @param fences - the fences the catalogue's plugins draw, which are not code.
|
|
24
|
+
*/
|
|
25
|
+
const readHome = async (home, dir, fences) => {
|
|
26
|
+
if (home === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
let text;
|
|
29
|
+
try {
|
|
30
|
+
text = readFileSync(home, "utf8");
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const [{ homeIndex }, { frontMatterOf }, { readLinkedFile }] = await Promise.all([
|
|
36
|
+
import("./docPageMarkdown.js"),
|
|
37
|
+
import("./docMarkdown.js"),
|
|
38
|
+
import("./docPageLinks.js")
|
|
39
|
+
]);
|
|
40
|
+
return {
|
|
41
|
+
file: relative(dir, home),
|
|
42
|
+
index: homeIndex(home, text, readLinkedFile, fences),
|
|
43
|
+
text: frontMatterOf(text).body.trim()
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/** The written home as the documents give it. */
|
|
47
|
+
const agentHome = (title, home, pages, view) => ({
|
|
48
|
+
id: HOME_PAGE_ID,
|
|
49
|
+
title: home.index.title ?? title,
|
|
50
|
+
source: "",
|
|
51
|
+
file: home.file,
|
|
52
|
+
description: home.index.description,
|
|
53
|
+
stories: home.index.stories,
|
|
54
|
+
components: home.index.components,
|
|
55
|
+
links: { address: view === "" ? pages.page : `${pages.page}?${view}` }
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* What is wrong with the written home: its own notes, and the libraries its pieces name that the catalogue lacks.
|
|
59
|
+
*
|
|
60
|
+
* @param home - the home read.
|
|
61
|
+
* @param tree - the catalogue's tree.
|
|
62
|
+
*/
|
|
63
|
+
const homeProblems = (home, tree) => {
|
|
64
|
+
const known = new Set(tree.sources.map((source) => source.id));
|
|
65
|
+
const missing = [...new Set(home.index.sources)].filter((source) => !known.has(source));
|
|
66
|
+
return [
|
|
67
|
+
...home.index.notes.map((note) => `Home: ${home.file}: ${note}`),
|
|
68
|
+
...missing.map((source) => `Home: ${home.file}: it names the library "${source}", which the catalogue does not have`)
|
|
69
|
+
];
|
|
70
|
+
};
|
|
71
|
+
/** A page of the tree as the documents give it. */
|
|
72
|
+
const agentPage = (source, page, pages, view) => ({
|
|
73
|
+
id: page.id,
|
|
74
|
+
title: page.title,
|
|
75
|
+
source: source.id,
|
|
76
|
+
file: page.file,
|
|
77
|
+
description: page.description,
|
|
78
|
+
stories: page.stories,
|
|
79
|
+
components: page.components,
|
|
80
|
+
links: { address: docPageAddressOf(pages.page, page.id, view) }
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* The docs pages a catalogue has.
|
|
84
|
+
*
|
|
85
|
+
* @param title - the catalogue's name.
|
|
86
|
+
* @param tree - its tree.
|
|
87
|
+
* @param pages - where it is served, for the links.
|
|
88
|
+
* @param view - the view the links open in; empty for the default view.
|
|
89
|
+
* @param home - the written home read; none for the generated one.
|
|
90
|
+
*/
|
|
91
|
+
export const pagesDocument = (title, tree, pages, view, home) => ({
|
|
92
|
+
schema: 1,
|
|
93
|
+
title,
|
|
94
|
+
pages: tree.sources.flatMap((source) => source.pages.map((page) => agentPage(source, page, pages, view))),
|
|
95
|
+
...(home === undefined ? {} : { home: agentHome(title, home, pages, view) }),
|
|
96
|
+
problems: [...tree.problems, ...(home === undefined ? [] : homeProblems(home, tree))]
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* The docs pages.
|
|
100
|
+
*
|
|
101
|
+
* @param context - what the routes read.
|
|
102
|
+
*/
|
|
103
|
+
export const pagesAnswer = async ({ config, tree, pages, view }) => ({
|
|
104
|
+
status: 200,
|
|
105
|
+
body: pagesDocument(config.title, tree, pages, view, await readHome(config.home, config.dir, pluginFences(config.plugins)))
|
|
106
|
+
});
|
|
107
|
+
/**
|
|
108
|
+
* The written home, read as a page: its Markdown and its problems; a catalogue without one answers it has none.
|
|
109
|
+
*
|
|
110
|
+
* @param config - the configuration's name, home and folder.
|
|
111
|
+
* @param tree - the catalogue's tree.
|
|
112
|
+
* @param pages - where it is served, for the links.
|
|
113
|
+
* @param view - the view the links open in.
|
|
114
|
+
*/
|
|
115
|
+
const homeAnswer = async (config, tree, pages, view) => {
|
|
116
|
+
const home = await readHome(config.home, config.dir, pluginFences(config.plugins));
|
|
117
|
+
if (home === undefined)
|
|
118
|
+
return { status: 404, body: { error: "This catalogue has no written home: its home is generated" } };
|
|
119
|
+
const body = {
|
|
120
|
+
schema: 1,
|
|
121
|
+
page: agentHome(config.title, home, pages, view),
|
|
122
|
+
headings: [],
|
|
123
|
+
text: home.text,
|
|
124
|
+
problems: homeProblems(home, tree)
|
|
125
|
+
};
|
|
126
|
+
return { status: 200, body };
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* One docs page: a page that cannot be read gives its problem in the answer, never an error, as a story does.
|
|
130
|
+
*
|
|
131
|
+
* @param context - what the routes read.
|
|
132
|
+
*/
|
|
133
|
+
export const pageAnswer = async ({ params, tree, loaded, pages, view, config }) => {
|
|
134
|
+
const id = params.get("id") ?? "";
|
|
135
|
+
if (id === HOME_PAGE_ID && config !== undefined)
|
|
136
|
+
return await homeAnswer(config, tree, pages, view);
|
|
137
|
+
const location = findPage(tree, id);
|
|
138
|
+
const source = loaded.sources.find((each) => each.id === location?.source.id);
|
|
139
|
+
if (location === undefined || source === undefined)
|
|
140
|
+
return { status: 404, body: { error: `No page "${id}"` } };
|
|
141
|
+
const files = sourcePages(source);
|
|
142
|
+
const rendered = await settled(files.pages[location.page.file]);
|
|
143
|
+
const text = await settled(files.text[location.page.file]);
|
|
144
|
+
const failures = [rendered, text].flatMap((read) => ("error" in read ? [read.error] : []));
|
|
145
|
+
const page = "value" in rendered && isDocPage(rendered.value) ? rendered.value : undefined;
|
|
146
|
+
const body = {
|
|
147
|
+
schema: 1,
|
|
148
|
+
page: agentPage(location.source, location.page, pages, view),
|
|
149
|
+
headings: page?.headings ?? [],
|
|
150
|
+
text: "value" in text && typeof text.value === "string" ? text.value : "",
|
|
151
|
+
problems: failures.slice(0, 1).map((failure) => `The page failed to load: ${failure}`)
|
|
152
|
+
};
|
|
153
|
+
return { status: 200, body };
|
|
154
|
+
};
|