forgebook 0.1.8 → 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 +875 -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 +141 -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 -17
- 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 +22 -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 +67 -19
- 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 +122 -30
- 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 +56 -20
- package/dist/src/catalogue.js +33 -14
- package/dist/src/codeLiteral.d.ts +41 -0
- package/dist/src/codeLiteral.js +51 -0
- package/dist/src/componentDocs.d.ts +57 -1
- package/dist/src/componentDocs.js +20 -3
- package/dist/src/controlKeys.d.ts +0 -1
- package/dist/src/controlKeys.js +0 -1
- 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 +11 -4
- package/dist/src/shell/ApiReference.js +73 -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 +105 -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 +0 -1
- package/dist/src/shell/LogicMark.js +0 -1
- 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 +271 -70
- 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 +9 -1
- package/dist/src/shell/SidebarEntries.js +1 -2
- 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 +0 -1
- package/dist/src/shell/SignatureReference.js +1 -2
- package/dist/src/shell/Stage.d.ts +9 -4
- package/dist/src/shell/Stage.js +112 -59
- 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 +7 -3
- package/dist/src/shell/Toolbar.js +6 -6
- 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 +0 -1
- package/dist/src/shell/compareVariants.js +2 -2
- 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 +13 -5
- package/dist/src/shell/dockTabs.js +40 -18
- 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 +3 -1
- package/dist/src/shell/icons.js +3 -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 +0 -12
- package/dist/src/shell/logicView.js +2 -2
- 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 +285 -139
- 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 +56 -80
- package/dist/src/shell/strings.js +53 -78
- 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 +3 -1
- package/dist/src/shell/useShownView.js +5 -5
- 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 +86 -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 +79 -25
- package/dist/src/storyTree.js +211 -127
- 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 +279 -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 +130 -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 +321 -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 +0 -1
- package/dist/src/vite/heightsRoute.js +0 -1
- 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 +19 -18
- package/dist/src/vite/indexStoryFile.js +165 -221
- 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 +68 -5
- 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/LogicMark.d.ts.map +0 -1
- package/dist/src/shell/LogicMark.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/SignatureReference.d.ts.map +0 -1
- package/dist/src/shell/SignatureReference.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/logicView.d.ts.map +0 -1
- package/dist/src/shell/logicView.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/useShownView.d.ts.map +0 -1
- package/dist/src/shell/useShownView.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/heightsRoute.d.ts.map +0 -1
- package/dist/src/vite/heightsRoute.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,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the module of a package's source declares, read without running it: its id and its tokens files; and tokens files
|
|
3
|
+
* read from disk, for the catalogue's answers and for `forgebook docs`.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A source's module imports the stories' index, its texts and whatever its named values need, and only a catalogue's
|
|
7
|
+
* bundler answers those imports, so running it would let a broken story take the tokens down, and `forgebook docs` has
|
|
8
|
+
* no bundler at all. The text is enough when `export const source` is an object written plainly. A source built by code
|
|
9
|
+
* gives no id, and a `tokens` key inside it is a problem, named: its tokens would otherwise vanish in silence.
|
|
10
|
+
*
|
|
11
|
+
* A module that cannot be read says nothing either way, so it is `unread`, apart from `problems`: a tool shows it, but
|
|
12
|
+
* only tokens known to be declared stop a check, or every catalogue would fail on a source mid-edit that has none.
|
|
13
|
+
*
|
|
14
|
+
* A source's paths stay inside its package. A dependency writes them and the answers travel, so a path leading out would
|
|
15
|
+
* read files the dev server's `server.fs` never serves.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
20
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
21
|
+
import { parseSync } from "vite";
|
|
22
|
+
import { readTokens } from "./designTokens.js";
|
|
23
|
+
import { propertyValue, unwrapped } from "./indexFields.js";
|
|
24
|
+
/** What to do about tokens the module's text does not give. */
|
|
25
|
+
const NOT_PLAIN = "tokens are read without running the module: write them as a list of strings or `{ file, mode }` in `export const source = { … }`";
|
|
26
|
+
/** What a top-level `export const source = …` holds, if the statement is one. */
|
|
27
|
+
const sourceValue = (statement) => {
|
|
28
|
+
if (statement.type !== "ExportNamedDeclaration" || statement.declaration?.type !== "VariableDeclaration")
|
|
29
|
+
return undefined;
|
|
30
|
+
for (const declarator of statement.declaration.declarations) {
|
|
31
|
+
if (declarator.id.type === "Identifier" && declarator.id.name === "source" && declarator.init !== null)
|
|
32
|
+
return unwrapped(declarator.init);
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
};
|
|
36
|
+
/** Whether a syntax tree holds a `tokens` key: how a source built by code still shows it means tokens. */
|
|
37
|
+
const holdsTokensKey = (node) => {
|
|
38
|
+
if (Array.isArray(node))
|
|
39
|
+
return node.some(holdsTokensKey);
|
|
40
|
+
if (typeof node !== "object" || node === null)
|
|
41
|
+
return false;
|
|
42
|
+
const isKey = "type" in node &&
|
|
43
|
+
node.type === "Property" &&
|
|
44
|
+
"key" in node &&
|
|
45
|
+
typeof node.key === "object" &&
|
|
46
|
+
node.key !== null &&
|
|
47
|
+
(("name" in node.key && node.key.name === "tokens") ||
|
|
48
|
+
("value" in node.key && node.key.value === "tokens"));
|
|
49
|
+
return isKey || Object.values(node).some(holdsTokensKey);
|
|
50
|
+
};
|
|
51
|
+
/** A property's text, when it is written as one. */
|
|
52
|
+
const plainText = (object, name) => {
|
|
53
|
+
const value = propertyValue(object, name);
|
|
54
|
+
return value?.type === "Literal" && typeof value.value === "string" ? value.value : undefined;
|
|
55
|
+
};
|
|
56
|
+
/** One entry of the list, or none when it is not written plainly. */
|
|
57
|
+
const tokensEntry = (element) => {
|
|
58
|
+
if (element === null || element.type === "SpreadElement")
|
|
59
|
+
return undefined;
|
|
60
|
+
const entry = unwrapped(element);
|
|
61
|
+
if (entry.type === "Literal" && typeof entry.value === "string")
|
|
62
|
+
return { file: entry.value, mode: undefined };
|
|
63
|
+
if (entry.type !== "ObjectExpression")
|
|
64
|
+
return undefined;
|
|
65
|
+
const file = plainText(entry, "file");
|
|
66
|
+
const mode = plainText(entry, "mode");
|
|
67
|
+
return file === undefined || mode === undefined ? undefined : { file, mode };
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* What a source's module declares, from its text.
|
|
71
|
+
*
|
|
72
|
+
* @param file - the module's path, for the parser (its extension says TypeScript or JSX).
|
|
73
|
+
* @param text - the module's text.
|
|
74
|
+
*/
|
|
75
|
+
export const declaredSource = (file, text) => {
|
|
76
|
+
const { program, errors } = parseSync(file, text);
|
|
77
|
+
if (errors.length > 0) {
|
|
78
|
+
const unread = `it cannot be parsed: ${errors[0]?.message ?? ""}`;
|
|
79
|
+
return { id: undefined, tokens: [], problems: [], unread };
|
|
80
|
+
}
|
|
81
|
+
const value = program.body.map(sourceValue).find((each) => each !== undefined);
|
|
82
|
+
if (value?.type !== "ObjectExpression")
|
|
83
|
+
return { id: undefined, tokens: [], problems: holdsTokensKey(value ?? program.body) ? [NOT_PLAIN] : [] };
|
|
84
|
+
const object = value;
|
|
85
|
+
const id = plainText(object, "id");
|
|
86
|
+
const list = propertyValue(object, "tokens");
|
|
87
|
+
if (list === undefined)
|
|
88
|
+
return { id, tokens: [], problems: [] };
|
|
89
|
+
if (list.type !== "ArrayExpression")
|
|
90
|
+
return { id, tokens: [], problems: [NOT_PLAIN] };
|
|
91
|
+
const entries = list.elements.map(tokensEntry);
|
|
92
|
+
return {
|
|
93
|
+
id,
|
|
94
|
+
tokens: entries.filter((entry) => entry !== undefined),
|
|
95
|
+
problems: entries.includes(undefined) ? [NOT_PLAIN] : []
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
/** The folder of the package a module is in: the nearest with a manifest, or the module's own. */
|
|
99
|
+
const packageRoot = (file) => {
|
|
100
|
+
const start = dirname(file);
|
|
101
|
+
for (let dir = start; dir !== dirname(dir); dir = dirname(dir)) {
|
|
102
|
+
if (existsSync(join(dir, "package.json")))
|
|
103
|
+
return dir;
|
|
104
|
+
}
|
|
105
|
+
return start;
|
|
106
|
+
};
|
|
107
|
+
/** Whether a path, its links followed where it exists, is inside a folder. */
|
|
108
|
+
const isInside = (root, path) => {
|
|
109
|
+
const real = (each) => (existsSync(each) ? realpathSync(each) : each);
|
|
110
|
+
const fromRoot = relative(real(root), real(path));
|
|
111
|
+
return fromRoot !== ".." && !fromRoot.startsWith(`..${sep}`) && !isAbsolute(fromRoot);
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* What the source in a module gives, its paths absolute.
|
|
115
|
+
*
|
|
116
|
+
* @param file - the module's absolute path.
|
|
117
|
+
* @param name - what names the module, for the problems and the files' labels (`@acme/ui/stories`).
|
|
118
|
+
*/
|
|
119
|
+
export const sourceTokensIn = (file, name) => {
|
|
120
|
+
let declared;
|
|
121
|
+
try {
|
|
122
|
+
declared = declaredSource(file, readFileSync(file, "utf8"));
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
126
|
+
return { id: undefined, files: [], problems: [], unread: `${name}: ${reason}` };
|
|
127
|
+
}
|
|
128
|
+
const source = declared.id ?? name;
|
|
129
|
+
const root = packageRoot(file);
|
|
130
|
+
const located = declared.tokens.map((each) => ({ ...each, path: resolve(dirname(file), each.file) }));
|
|
131
|
+
const outside = located.filter(({ path }) => !isInside(root, path));
|
|
132
|
+
return {
|
|
133
|
+
id: declared.id,
|
|
134
|
+
files: located
|
|
135
|
+
.filter(({ path }) => isInside(root, path))
|
|
136
|
+
.map(({ file: written, mode, path }) => ({ path, mode, label: `${name}: ${written}`, source })),
|
|
137
|
+
problems: [...declared.problems, ...outside.map((each) => `${each.file} is outside the package`)].map((problem) => `${name}: ${problem}`),
|
|
138
|
+
...(declared.unread === undefined ? {} : { unread: `${name}: ${declared.unread}` })
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
/** A file's content as a reading's input, or none with a problem. */
|
|
142
|
+
const fileInput = (file, unread) => {
|
|
143
|
+
const { path, mode, label, source } = file;
|
|
144
|
+
try {
|
|
145
|
+
const content = JSON.parse(readFileSync(path, "utf8"));
|
|
146
|
+
return [{ label, mode, file: content, ...(source === undefined ? {} : { source }) }];
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
// the parser's message quotes the file, and a path may not lead to tokens at all
|
|
150
|
+
const reason = error instanceof SyntaxError ? "it is not JSON" : String(error);
|
|
151
|
+
unread.push(`${label}: ${reason}`);
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Reads tokens files from disk.
|
|
157
|
+
*
|
|
158
|
+
* @param files - the files: each source's, then the catalogue's own.
|
|
159
|
+
*/
|
|
160
|
+
export const readTokenFiles = (files) => {
|
|
161
|
+
const unread = [];
|
|
162
|
+
const { tokens, problems, clashes } = readTokens(files.flatMap((file) => fileInput(file, unread)));
|
|
163
|
+
return { tokens, problems: [...unread, ...problems], clashes };
|
|
164
|
+
};
|
|
@@ -25,4 +25,3 @@ export declare const dedented: (text: string, indent: number) => string;
|
|
|
25
25
|
* @returns the texts by export name, or a message saying why the file cannot be read.
|
|
26
26
|
*/
|
|
27
27
|
export declare const storyCode: (file: string, text: string) => Readonly<Record<string, string>> | string;
|
|
28
|
-
//# sourceMappingURL=storyCode.d.ts.map
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { parseStoryFile } from "./storyParse.js";
|
|
13
13
|
/** An expression without the TypeScript wrappers around it (`satisfies`, `as`, parentheses). */
|
|
14
14
|
const unwrapped = (expression) => {
|
|
15
15
|
if (expression.type === "TSSatisfiesExpression" ||
|
|
@@ -61,7 +61,7 @@ const renderText = (declarator, text) => {
|
|
|
61
61
|
* @returns the texts by export name, or a message saying why the file cannot be read.
|
|
62
62
|
*/
|
|
63
63
|
export const storyCode = (file, text) => {
|
|
64
|
-
const { program, errors } =
|
|
64
|
+
const { program, errors } = parseStoryFile(file, text);
|
|
65
65
|
const [error] = errors;
|
|
66
66
|
if (error !== undefined)
|
|
67
67
|
return `${file} does not parse: ${error.message}`;
|
|
@@ -77,4 +77,3 @@ export const storyCode = (file, text) => {
|
|
|
77
77
|
}
|
|
78
78
|
return code;
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=storyCode.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A story file's named exports, read from its parsed source: the names the index takes as stories.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Kept apart from `indexStoryFile.ts`, which reads each export's fields. Pure.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { ESTree } from "vite";
|
|
10
|
+
/**
|
|
11
|
+
* One named export of the file: its exported name, the local name it points at (none for a re-export from another
|
|
12
|
+
* file), whether its statement declares it (`export const A = …`, not `export { A }`), and where the statement starts.
|
|
13
|
+
*/
|
|
14
|
+
export type NamedExport = {
|
|
15
|
+
/** The name it is exported as. */
|
|
16
|
+
readonly exportName: string;
|
|
17
|
+
/** The local name it points at; none for a re-export from another file. */
|
|
18
|
+
readonly local: string | undefined;
|
|
19
|
+
/** Whether its statement declares it (`export const A = …`), not only names it (`export { A }`). */
|
|
20
|
+
readonly isDeclared: boolean;
|
|
21
|
+
/** Where its statement starts. */
|
|
22
|
+
readonly start: number;
|
|
23
|
+
};
|
|
24
|
+
/** An export's or an import's name: an identifier's, or a string's (`export { A as "a story" }`). */
|
|
25
|
+
export declare const moduleName: (name: ESTree.ModuleExportName) => string;
|
|
26
|
+
/**
|
|
27
|
+
* The file's named exports that exist when it runs, in their order: declared ones and re-exports (`export { A as B }`,
|
|
28
|
+
* from this file or another); never the default export, a type, or the names of an `export *`.
|
|
29
|
+
*
|
|
30
|
+
* @param program - the parsed file.
|
|
31
|
+
*/
|
|
32
|
+
export declare const namedExports: (program: ESTree.Program) => NamedExport[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** An export's or an import's name: an identifier's, or a string's (`export { A as "a story" }`). */
|
|
2
|
+
export const moduleName = (name) => name.type === "Literal" ? String(name.value) : name.name;
|
|
3
|
+
/**
|
|
4
|
+
* The file's named exports that exist when it runs, in their order: declared ones and re-exports (`export { A as B }`,
|
|
5
|
+
* from this file or another); never the default export, a type, or the names of an `export *`.
|
|
6
|
+
*
|
|
7
|
+
* @param program - the parsed file.
|
|
8
|
+
*/
|
|
9
|
+
export const namedExports = (program) => program.body.flatMap((statement) => {
|
|
10
|
+
if (statement.type !== "ExportNamedDeclaration" || statement.exportKind === "type")
|
|
11
|
+
return [];
|
|
12
|
+
const { declaration, start } = statement;
|
|
13
|
+
if (declaration?.type === "VariableDeclaration") {
|
|
14
|
+
return declaration.declarations.flatMap((declarator) => declarator.id.type === "Identifier"
|
|
15
|
+
? [{ exportName: declarator.id.name, local: declarator.id.name, isDeclared: true, start }]
|
|
16
|
+
: []);
|
|
17
|
+
}
|
|
18
|
+
if (declaration?.type === "FunctionDeclaration" && declaration.id !== null)
|
|
19
|
+
return [{ exportName: declaration.id.name, local: declaration.id.name, isDeclared: true, start }];
|
|
20
|
+
return statement.specifiers.flatMap((specifier) => {
|
|
21
|
+
const exportName = moduleName(specifier.exported);
|
|
22
|
+
if (specifier.exportKind === "type" || exportName === "default")
|
|
23
|
+
return [];
|
|
24
|
+
const local = statement.source === null ? moduleName(specifier.local) : undefined;
|
|
25
|
+
return [{ exportName, local, isDeclared: false, start }];
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StoryFileIndex } from "@forgebook/story-format/source";
|
|
2
|
+
import { type DiskCache } from "./diskCache.ts";
|
|
2
3
|
/** A pattern of story files and the folder it is read from: the declaring module's folder, the import's pattern. */
|
|
3
4
|
export type StoryFilesGroup = {
|
|
4
5
|
/** The declaring module's folder, absolute: the files' keys are relative to it. */
|
|
@@ -35,6 +36,23 @@ export declare const storyFileKeys: (root: string, patterns: readonly string[])
|
|
|
35
36
|
* module's id. The plugin answers it (`usageModule.ts`) only when a page asks.
|
|
36
37
|
*/
|
|
37
38
|
export declare const USAGE_PREFIX = "virtual:forgebook-usage:";
|
|
39
|
+
/**
|
|
40
|
+
* The id prefix of a group's search index: the group follows (`storyFilesGroupText`). The plugin answers it
|
|
41
|
+
* (`searchModule.ts`) only when a page asks, on the first search.
|
|
42
|
+
*/
|
|
43
|
+
export declare const SEARCH_PREFIX = "virtual:forgebook-search:";
|
|
44
|
+
/** The id prefix of a docs pages' search index, the same way: the plugin answers it only on the first search. */
|
|
45
|
+
export declare const PAGES_SEARCH_PREFIX = "virtual:forgebook-search-pages:";
|
|
46
|
+
/**
|
|
47
|
+
* The id prefix of a group's texts module, the same way: a build's, imported by the group's module, which holds each
|
|
48
|
+
* file's docs, code and page as data (`builtTexts.ts`).
|
|
49
|
+
*/
|
|
50
|
+
export declare const TEXTS_PREFIX = "virtual:forgebook-texts:";
|
|
51
|
+
/**
|
|
52
|
+
* The id prefix of a group's reach module, what each story reaches, the same way: only the dev server's tools ask for
|
|
53
|
+
* it, so a page that shows "Used in" never downloads it.
|
|
54
|
+
*/
|
|
55
|
+
export declare const REACH_PREFIX = "virtual:forgebook-reach:";
|
|
38
56
|
/** A story file a pattern matches, with its key and its index. */
|
|
39
57
|
export type IndexedStoryFile = {
|
|
40
58
|
/** Its path relative to the declaring module (`../src/x.stories.tsx`). */
|
|
@@ -44,23 +62,57 @@ export type IndexedStoryFile = {
|
|
|
44
62
|
/** Its index. */
|
|
45
63
|
readonly index: StoryFileIndex;
|
|
46
64
|
};
|
|
65
|
+
/** A pattern's index as it is kept between starts, by file key. */
|
|
66
|
+
export type KeptIndex = Readonly<Record<string, StoryFileIndex>>;
|
|
67
|
+
/** Whether what a cache file holds is a pattern's index. */
|
|
68
|
+
export declare const isKeptIndex: (value: unknown) => value is KeptIndex;
|
|
69
|
+
/**
|
|
70
|
+
* One story file a pattern matches, indexed from its text on disk, with the title its path makes when it writes none.
|
|
71
|
+
*
|
|
72
|
+
* @internal
|
|
73
|
+
* @param root - the declaring module's folder.
|
|
74
|
+
* @param pattern - the pattern.
|
|
75
|
+
* @param key - the file's path relative to the declaring module.
|
|
76
|
+
* @returns the index, or a message saying why the file cannot be indexed.
|
|
77
|
+
*/
|
|
78
|
+
export declare const storyFileIndex: (root: string, pattern: string, key: string) => StoryFileIndex | string;
|
|
47
79
|
/**
|
|
48
80
|
* Every story file a pattern matches, indexed.
|
|
49
81
|
*
|
|
50
82
|
* @param root - the declaring module's folder.
|
|
51
83
|
* @param pattern - the pattern.
|
|
52
84
|
* @param watch - adds a file whose edit renews the module that read it.
|
|
85
|
+
* @param cache - the index kept between starts, which holds while the files it came from do; none reads them all.
|
|
53
86
|
* @throws when a story file cannot be indexed.
|
|
54
87
|
*/
|
|
55
|
-
export declare const indexedStoryFiles: (root: string, pattern: string, watch: (file: string) => void) => IndexedStoryFile[];
|
|
88
|
+
export declare const indexedStoryFiles: (root: string, pattern: string, watch: (file: string) => void, cache?: DiskCache<KeptIndex>) => IndexedStoryFile[];
|
|
89
|
+
/** The loaders a group offers besides its story files'. */
|
|
90
|
+
export type GroupLoaders = {
|
|
91
|
+
/** Whether it offers its "Used in" (the catalogue did not turn it off). */
|
|
92
|
+
readonly hasUsage: boolean;
|
|
93
|
+
/** Whether it offers what each story reaches: only on a dev server, for its tools. */
|
|
94
|
+
readonly hasReach: boolean;
|
|
95
|
+
};
|
|
56
96
|
/**
|
|
57
97
|
* The code of the module for one pattern.
|
|
58
98
|
*
|
|
59
99
|
* @param root - the declaring module's folder.
|
|
60
100
|
* @param pattern - the pattern before `?forgebook-files`.
|
|
61
101
|
* @param watch - adds a file whose edit renews the module (each story file: its index is in the module).
|
|
62
|
-
* @param
|
|
102
|
+
* @param loaders - the group's loaders besides its story files'; both by default.
|
|
103
|
+
* @param cache - the index kept between starts.
|
|
63
104
|
* @returns the module's code, or a message saying which file cannot be indexed.
|
|
64
105
|
*/
|
|
65
|
-
export declare const storyFilesModule: (root: string, pattern: string, watch: (file: string) => void,
|
|
66
|
-
|
|
106
|
+
export declare const storyFilesModule: (root: string, pattern: string, watch: (file: string) => void, loaders?: GroupLoaders, cache?: DiskCache<KeptIndex>) => string;
|
|
107
|
+
/**
|
|
108
|
+
* The code of the module for one pattern, from its story files indexed.
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
111
|
+
* @param root - the declaring module's folder.
|
|
112
|
+
* @param pattern - the pattern before `?forgebook-files`.
|
|
113
|
+
* @param files - the story files it matches, indexed.
|
|
114
|
+
* @param loaders - the group's loaders besides its story files'.
|
|
115
|
+
* @param hasTexts - a build's: whether each file's docs, code and page come from the group's texts module, in the
|
|
116
|
+
* rows' order (`TEXTS_PREFIX`), and not each from its query.
|
|
117
|
+
*/
|
|
118
|
+
export declare const storyFilesCode: (root: string, pattern: string, files: readonly IndexedStoryFile[], loaders: GroupLoaders, hasTexts?: boolean) => string;
|
|
@@ -6,14 +6,18 @@
|
|
|
6
6
|
* @remarks
|
|
7
7
|
* One module per pattern, instead of an import per file: in development the browser fetched every index module one by
|
|
8
8
|
* one, a few hundred requests per frame. The keys are the files' paths relative to the declaring module
|
|
9
|
-
* (`../src/x.stories.tsx`), the same keys `storyFileKeys` gives the tests that read the files from the disk.
|
|
9
|
+
* (`../src/x.stories.tsx`), the same keys `storyFileKeys` gives the tests that read the files from the disk. A build
|
|
10
|
+
* takes each file's docs, code and page from the group's texts module, written as data, instead of their loaders'
|
|
11
|
+
* imports (`builtTexts.ts`).
|
|
10
12
|
*
|
|
11
13
|
* @module
|
|
12
14
|
*/
|
|
13
15
|
import { globSync, readFileSync } from "node:fs";
|
|
14
|
-
import {
|
|
16
|
+
import { codeLiteral } from "../codeLiteral.js";
|
|
15
17
|
import { autoTitle, patternBase } from "./autoTitle.js";
|
|
18
|
+
import { isSettledSince, nowNs, stampPaths } from "./diskCache.js";
|
|
16
19
|
import { indexStoryFile } from "./indexStoryFile.js";
|
|
20
|
+
import { VITE_PATHS } from "./vitePaths.js";
|
|
17
21
|
/** Between a group's parts in a module's id: no path or pattern holds it. */
|
|
18
22
|
const GROUP_SEPARATOR = "::";
|
|
19
23
|
/**
|
|
@@ -43,6 +47,15 @@ export const storyFilesGroupOf = (text) => {
|
|
|
43
47
|
const [root = "", up = "0", own = ""] = text.split(GROUP_SEPARATOR);
|
|
44
48
|
return { root, pattern: `${"../".repeat(Number(up))}${own}` };
|
|
45
49
|
};
|
|
50
|
+
/** The folder of a project's dependencies. */
|
|
51
|
+
const DEPENDENCIES = "node_modules";
|
|
52
|
+
/**
|
|
53
|
+
* What a pattern leaves out: the dependencies, unless it names them. A `**` from a monorepo's root would otherwise walk
|
|
54
|
+
* every package's, seconds on the server's thread for files nobody asked for, as Storybook's own globs skip them.
|
|
55
|
+
*
|
|
56
|
+
* @param pattern - the pattern.
|
|
57
|
+
*/
|
|
58
|
+
const excludedFrom = (pattern) => pattern.includes(DEPENDENCIES) ? () => false : (name) => name === DEPENDENCIES;
|
|
46
59
|
/**
|
|
47
60
|
* The story files patterns match, as paths relative to `root` starting with `./` or `../`, sorted.
|
|
48
61
|
*
|
|
@@ -50,62 +63,137 @@ export const storyFilesGroupOf = (text) => {
|
|
|
50
63
|
* @param patterns - the patterns (`../src/**\/*.stories.tsx`).
|
|
51
64
|
*/
|
|
52
65
|
export const storyFileKeys = (root, patterns) => patterns
|
|
53
|
-
.flatMap((pattern) => globSync(pattern, { cwd: root }))
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return path.startsWith(".") ? path : `./${path}`;
|
|
57
|
-
})
|
|
66
|
+
.flatMap((pattern) => globSync(pattern, { cwd: root, exclude: excludedFrom(pattern) }))
|
|
67
|
+
// with forward slashes on every system, so a story file has the same key wherever the catalogue runs
|
|
68
|
+
.map((file) => VITE_PATHS.relativeKey(root, file))
|
|
58
69
|
.sort();
|
|
59
70
|
/**
|
|
60
71
|
* The id prefix of a group's "Used in" module: the group follows (`storyFilesGroupText`), as in a `?forgebook-files`
|
|
61
72
|
* module's id. The plugin answers it (`usageModule.ts`) only when a page asks.
|
|
62
73
|
*/
|
|
63
74
|
export const USAGE_PREFIX = "virtual:forgebook-usage:";
|
|
75
|
+
/**
|
|
76
|
+
* The id prefix of a group's search index: the group follows (`storyFilesGroupText`). The plugin answers it
|
|
77
|
+
* (`searchModule.ts`) only when a page asks, on the first search.
|
|
78
|
+
*/
|
|
79
|
+
export const SEARCH_PREFIX = "virtual:forgebook-search:";
|
|
80
|
+
/** The id prefix of a docs pages' search index, the same way: the plugin answers it only on the first search. */
|
|
81
|
+
export const PAGES_SEARCH_PREFIX = "virtual:forgebook-search-pages:";
|
|
82
|
+
/**
|
|
83
|
+
* The id prefix of a group's texts module, the same way: a build's, imported by the group's module, which holds each
|
|
84
|
+
* file's docs, code and page as data (`builtTexts.ts`).
|
|
85
|
+
*/
|
|
86
|
+
export const TEXTS_PREFIX = "virtual:forgebook-texts:";
|
|
87
|
+
/**
|
|
88
|
+
* The id prefix of a group's reach module, what each story reaches, the same way: only the dev server's tools ask for
|
|
89
|
+
* it, so a page that shows "Used in" never downloads it.
|
|
90
|
+
*/
|
|
91
|
+
export const REACH_PREFIX = "virtual:forgebook-reach:";
|
|
92
|
+
/** Whether what a cache file holds is a pattern's index. */
|
|
93
|
+
export const isKeptIndex = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
94
|
+
/**
|
|
95
|
+
* One story file a pattern matches, indexed from its text on disk, with the title its path makes when it writes none.
|
|
96
|
+
*
|
|
97
|
+
* @internal
|
|
98
|
+
* @param root - the declaring module's folder.
|
|
99
|
+
* @param pattern - the pattern.
|
|
100
|
+
* @param key - the file's path relative to the declaring module.
|
|
101
|
+
* @returns the index, or a message saying why the file cannot be indexed.
|
|
102
|
+
*/
|
|
103
|
+
export const storyFileIndex = (root, pattern, key) => {
|
|
104
|
+
const file = VITE_PATHS.resolve(root, key);
|
|
105
|
+
const title = autoTitle(patternBase(pattern), key);
|
|
106
|
+
return indexStoryFile(file, readFileSync(file, "utf8"), title === undefined ? {} : { autoTitle: title });
|
|
107
|
+
};
|
|
64
108
|
/**
|
|
65
109
|
* Every story file a pattern matches, indexed.
|
|
66
110
|
*
|
|
67
111
|
* @param root - the declaring module's folder.
|
|
68
112
|
* @param pattern - the pattern.
|
|
69
113
|
* @param watch - adds a file whose edit renews the module that read it.
|
|
114
|
+
* @param cache - the index kept between starts, which holds while the files it came from do; none reads them all.
|
|
70
115
|
* @throws when a story file cannot be indexed.
|
|
71
116
|
*/
|
|
72
|
-
export const indexedStoryFiles = (root, pattern, watch
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
117
|
+
export const indexedStoryFiles = (root, pattern, watch, cache) => {
|
|
118
|
+
const name = storyFilesGroupText(VITE_PATHS.normalize(root), pattern);
|
|
119
|
+
const since = nowNs();
|
|
120
|
+
const kept = cache?.read(name);
|
|
121
|
+
const files = storyFileKeys(root, [pattern]).map((key) => {
|
|
122
|
+
const file = VITE_PATHS.resolve(root, key);
|
|
123
|
+
watch(file);
|
|
124
|
+
const known = kept?.[key];
|
|
125
|
+
if (known !== undefined)
|
|
126
|
+
return { key, file, index: known };
|
|
127
|
+
const index = storyFileIndex(root, pattern, key);
|
|
128
|
+
if (typeof index === "string")
|
|
129
|
+
throw new Error(index);
|
|
130
|
+
return { key, file, index };
|
|
131
|
+
});
|
|
132
|
+
// kept again when anything was read anew: a file added, or the kept index out of date
|
|
133
|
+
if (cache !== undefined && files.some(({ key }) => kept?.[key] === undefined)) {
|
|
134
|
+
const stamps = stampPaths(files.map((each) => each.file));
|
|
135
|
+
const index = Object.fromEntries(files.map((each) => [each.key, each.index]));
|
|
136
|
+
if (isSettledSince(stamps, since))
|
|
137
|
+
cache.write(name, index, stamps);
|
|
138
|
+
}
|
|
139
|
+
return files;
|
|
140
|
+
};
|
|
83
141
|
/**
|
|
84
142
|
* The code of the module for one pattern.
|
|
85
143
|
*
|
|
86
144
|
* @param root - the declaring module's folder.
|
|
87
145
|
* @param pattern - the pattern before `?forgebook-files`.
|
|
88
146
|
* @param watch - adds a file whose edit renews the module (each story file: its index is in the module).
|
|
89
|
-
* @param
|
|
147
|
+
* @param loaders - the group's loaders besides its story files'; both by default.
|
|
148
|
+
* @param cache - the index kept between starts.
|
|
90
149
|
* @returns the module's code, or a message saying which file cannot be indexed.
|
|
91
150
|
*/
|
|
92
|
-
export const storyFilesModule = (root, pattern, watch,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
151
|
+
export const storyFilesModule = (root, pattern, watch, loaders = { hasUsage: true, hasReach: true }, cache) => storyFilesCode(root, pattern, indexedStoryFiles(root, pattern, watch, cache), loaders);
|
|
152
|
+
/**
|
|
153
|
+
* The code of the module for one pattern, from its story files indexed.
|
|
154
|
+
*
|
|
155
|
+
* @internal
|
|
156
|
+
* @param root - the declaring module's folder.
|
|
157
|
+
* @param pattern - the pattern before `?forgebook-files`.
|
|
158
|
+
* @param files - the story files it matches, indexed.
|
|
159
|
+
* @param loaders - the group's loaders besides its story files'.
|
|
160
|
+
* @param hasTexts - a build's: whether each file's docs, code and page come from the group's texts module, in the
|
|
161
|
+
* rows' order (`TEXTS_PREFIX`), and not each from its query.
|
|
162
|
+
*/
|
|
163
|
+
export const storyFilesCode = (root, pattern, files, loaders, hasTexts = false) => {
|
|
164
|
+
const { hasUsage, hasReach } = loaders;
|
|
165
|
+
// the group's id in Vite's form, as the plugin names the declaring module's folder
|
|
166
|
+
const folder = VITE_PATHS.normalize(root);
|
|
167
|
+
const usage = codeLiteral(`${USAGE_PREFIX}${storyFilesGroupText(folder, pattern)}`);
|
|
168
|
+
const search = codeLiteral(`${SEARCH_PREFIX}${storyFilesGroupText(folder, pattern)}`);
|
|
169
|
+
const reach = codeLiteral(`${REACH_PREFIX}${storyFilesGroupText(folder, pattern)}`);
|
|
170
|
+
const texts = codeLiteral(`${TEXTS_PREFIX}${storyFilesGroupText(folder, pattern)}`);
|
|
171
|
+
// absolute paths in Vite's form: the module has no folder of its own, Vite serves them under /@fs/ in development,
|
|
172
|
+
// and the queries' ids come back to the plugin as written here
|
|
173
|
+
const absolute = (key) => VITE_PATHS.resolve(folder, key);
|
|
174
|
+
const path = (key) => codeLiteral(absolute(key));
|
|
175
|
+
const query = (key, name) => `() => import(${codeLiteral(`${absolute(key)}?${name}`)}).then((module) => module.default)`;
|
|
176
|
+
const textLoaders = (key) => hasTexts
|
|
177
|
+
? []
|
|
178
|
+
: [query(key, "forgebook-docs"), query(key, "forgebook-code"), query(key, "forgebook-page")];
|
|
179
|
+
// a row per file, its name written once and not once per column (its index, each loader): a large catalogue's
|
|
180
|
+
// names are a tenth of its index
|
|
181
|
+
const rows = files.map(({ key, index }) => [codeLiteral(key), codeLiteral(index), `() => import(${path(key)})`, ...textLoaders(key)].join(", "));
|
|
182
|
+
const written = `[${rows.map((row) => `[${row}]`).join(",\n")}]`;
|
|
100
183
|
return [
|
|
184
|
+
...(hasTexts ? [`import texts from ${texts};`] : []),
|
|
185
|
+
// a build's texts are their module's rows, in the same order: each joins its file's
|
|
186
|
+
`const rows = ${hasTexts ? `${written}.map((row, at) => row.concat(texts[at]))` : written};`,
|
|
187
|
+
"const column = (at) => Object.fromEntries(rows.map((row) => [row[0], row[at]]));",
|
|
101
188
|
"export default {",
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
189
|
+
"index: column(1),",
|
|
190
|
+
"stories: column(2),",
|
|
191
|
+
"docs: column(3),",
|
|
192
|
+
"code: column(4),",
|
|
193
|
+
"pages: column(5),",
|
|
194
|
+
`search: () => import(${search}).then((module) => module.default),`,
|
|
195
|
+
...(hasUsage ? [`usage: () => import(${usage}).then((module) => module.default),`] : []),
|
|
196
|
+
...(hasReach ? [`reach: () => import(${reach}).then((module) => module.default),`] : []),
|
|
108
197
|
"};"
|
|
109
198
|
].join("\n");
|
|
110
199
|
};
|
|
111
|
-
//# sourceMappingURL=storyFilesModule.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A story file's meta, read from its source with the TypeScript compiler's parser: the value of one of its
|
|
3
|
-
* component it names and
|
|
2
|
+
* A story file's meta, read from its source with the TypeScript compiler's parser, for the docs: the value of one of its
|
|
3
|
+
* fields, the component it names and its subcomponents.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
|
-
* CSF is the same whatever framework a story is written for, so
|
|
7
|
-
*
|
|
6
|
+
* CSF is the same whatever framework a story is written for, so `forgebook-docs` and every framework's docs extractor
|
|
7
|
+
* read the meta through this module, inside their TypeScript program. The plugin's own reading, outside any program,
|
|
8
|
+
* is `componentImport.ts`. Pure: a parsed file in, nodes out.
|
|
8
9
|
*
|
|
9
10
|
* @module
|
|
10
11
|
*/
|
|
@@ -22,13 +23,21 @@ export declare const metaField: (source: ts.SourceFile, name: string) => ts.Expr
|
|
|
22
23
|
* @param source - the story file, parsed.
|
|
23
24
|
*/
|
|
24
25
|
export declare const metaComponent: (source: ts.SourceFile) => ts.Expression | undefined;
|
|
26
|
+
/** An expression without the wrappers around a literal list (`as const`, `satisfies`, parentheses). */
|
|
27
|
+
export declare const unwrapped: (expression: ts.Expression) => ts.Expression;
|
|
28
|
+
/** A subcomponent the meta names: the name it gives it, and where the code names its value. */
|
|
29
|
+
export type MetaSubcomponent = {
|
|
30
|
+
/** Its key in `subcomponents`. */
|
|
31
|
+
readonly name: string;
|
|
32
|
+
/** The expression that names the component, the location the checker reads its type at. */
|
|
33
|
+
readonly expression: ts.Expression;
|
|
34
|
+
/** The component's symbol as written there; a shorthand (`{ ChipList }`) names the value, not the key. */
|
|
35
|
+
readonly symbol: ts.Symbol | undefined;
|
|
36
|
+
};
|
|
25
37
|
/**
|
|
26
|
-
* The
|
|
27
|
-
* it answers at once, where the docs need the package's program.
|
|
38
|
+
* The subcomponents the meta names, in the order it writes them: `subcomponents: { ChipList, Items: MenuItem }`.
|
|
28
39
|
*
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
31
|
-
* @returns the import's module specifier, or none when the meta names no imported component.
|
|
40
|
+
* @param source - the story file, parsed.
|
|
41
|
+
* @param checker - the program's checker.
|
|
32
42
|
*/
|
|
33
|
-
export declare const
|
|
34
|
-
//# sourceMappingURL=storyMeta.d.ts.map
|
|
43
|
+
export declare const metaSubcomponents: (source: ts.SourceFile, checker: ts.TypeChecker) => MetaSubcomponent[];
|