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,96 @@
|
|
|
1
|
+
import type { ViteDevServer, WatchOptions } from "vite";
|
|
2
|
+
/** How many files are followed at most: each holds a file descriptor while it is followed. */
|
|
3
|
+
export declare const CLOSE_WATCH_LIMIT = 64;
|
|
4
|
+
/** A file's watch, as `watchFile` opens it. */
|
|
5
|
+
export type FileWatch = {
|
|
6
|
+
/** Stops watching. */
|
|
7
|
+
readonly close: () => void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Opens a file's watch: Node's `fs.watch`, unless a test hands its own.
|
|
11
|
+
*
|
|
12
|
+
* @param file - the file.
|
|
13
|
+
* @param onEvent - called with `"change"` when the file's content changed, `"rename"` when the file was replaced or
|
|
14
|
+
* removed (an editor that saves through a new file), `"error"` when the watch failed.
|
|
15
|
+
* @throws when the file cannot be watched (gone, or no file descriptor left).
|
|
16
|
+
*/
|
|
17
|
+
export type WatchFile = (file: string, onEvent: (kind: "change" | "rename" | "error") => void) => FileWatch;
|
|
18
|
+
/** The files followed, and what the dev server took of each. */
|
|
19
|
+
export type CloseWatch = {
|
|
20
|
+
/**
|
|
21
|
+
* Follows a file, or keeps following it as the most recent; a file that cannot be watched is left to Vite's watcher.
|
|
22
|
+
*
|
|
23
|
+
* @param file - the file, in Node's or Vite's form.
|
|
24
|
+
*/
|
|
25
|
+
readonly follow: (file: string) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Whether an update of a followed file is the late report of an edit the environment took already: one the close
|
|
28
|
+
* watch did not hand on since the environment's last update of the file, whose text is the one it took then. Each
|
|
29
|
+
* update the close watch handed on is taken, the same text or not; the text is kept for the next. Always false for
|
|
30
|
+
* a file not followed.
|
|
31
|
+
*
|
|
32
|
+
* @param environment - the environment's name.
|
|
33
|
+
* @param file - the file, in Node's or Vite's form.
|
|
34
|
+
*/
|
|
35
|
+
readonly isLateReport: (environment: string, file: string) => boolean;
|
|
36
|
+
/** Stops following every file. */
|
|
37
|
+
readonly close: () => void;
|
|
38
|
+
};
|
|
39
|
+
/** What `closeWatch` is made with. */
|
|
40
|
+
export type CloseWatchOptions = {
|
|
41
|
+
/**
|
|
42
|
+
* Hands a followed file's change to the dev server's watcher.
|
|
43
|
+
*
|
|
44
|
+
* @param file - the file, in Vite's form.
|
|
45
|
+
*/
|
|
46
|
+
readonly onChange: (file: string) => void;
|
|
47
|
+
/** How many files are followed at most; `CLOSE_WATCH_LIMIT` by default. */
|
|
48
|
+
readonly limit?: number;
|
|
49
|
+
/** Opens a file's watch; Node's `fs.watch` by default. */
|
|
50
|
+
readonly watchFile?: WatchFile;
|
|
51
|
+
/**
|
|
52
|
+
* A file's text now, or none when it cannot be read; read from the disk by default.
|
|
53
|
+
*
|
|
54
|
+
* @param file - the file.
|
|
55
|
+
*/
|
|
56
|
+
readonly readText?: (file: string) => string | undefined;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Whether a dev server's watcher hears of changes through FSEvents, which deliver them late: Vite's on macOS, unless
|
|
60
|
+
* it polls, was told not to use them, or waits for writes to finish; none when the dev server watches nothing.
|
|
61
|
+
*
|
|
62
|
+
* @param options - the dev server's `server.watch`.
|
|
63
|
+
* @param platform - the system, `process.platform` by default.
|
|
64
|
+
*/
|
|
65
|
+
export declare const isWatchingByFileEvents: (options: WatchOptions | null | undefined, platform?: NodeJS.Platform) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Follows the files a person is working on, each on its own.
|
|
68
|
+
*
|
|
69
|
+
* @param options - where a change goes, how many files at most, and how a file is watched and read.
|
|
70
|
+
*/
|
|
71
|
+
export declare const closeWatch: (options: CloseWatchOptions) => CloseWatch;
|
|
72
|
+
/**
|
|
73
|
+
* A dev server's close watch, where its watcher reads FSEvents and it sends updates: changes go to its watcher, and a
|
|
74
|
+
* file a page loaded that the person edits is followed from then on, since it is likely edited again. Closed with the
|
|
75
|
+
* server's HTTP server; the plugin closes it with the server too, which may have none.
|
|
76
|
+
*
|
|
77
|
+
* @param server - the dev server.
|
|
78
|
+
* @param platform - the system, `process.platform` by default.
|
|
79
|
+
* @returns the close watch; none where the watcher hears of changes at once, or polls.
|
|
80
|
+
*/
|
|
81
|
+
export declare const serverCloseWatch: (server: ViteDevServer, platform?: NodeJS.Platform) => CloseWatch | undefined;
|
|
82
|
+
/** The close watch of the dev server that runs now, as the plugin holds it across restarts. */
|
|
83
|
+
export type CurrentCloseWatch = Pick<CloseWatch, "follow" | "isLateReport" | "close"> & {
|
|
84
|
+
/**
|
|
85
|
+
* Ends the watch of the server before, if any, and starts this server's: a restart configures the new server before
|
|
86
|
+
* it closes the old one.
|
|
87
|
+
*
|
|
88
|
+
* @param server - the dev server; none in a run where no person waits for a page (a test run).
|
|
89
|
+
* @param platform - the system, `process.platform` by default.
|
|
90
|
+
*/
|
|
91
|
+
readonly serve: (server: ViteDevServer | undefined, platform?: NodeJS.Platform) => void;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* The close watch of the dev server that runs now; none follows a file until a server is served.
|
|
95
|
+
*/
|
|
96
|
+
export declare const currentCloseWatch: () => CurrentCloseWatch;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The files a person is working on, each watched on its own, so the dev server hears of an edit at once: the story
|
|
3
|
+
* files the open frames loaded, and each file a page loaded that was edited since the server started.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* On macOS, Vite's watcher hears of a change through FSEvents, by streams that deliver it a tenth of a second late by
|
|
7
|
+
* design, and later still while the system's file-event service is busy: on a large library that wait is most of the
|
|
8
|
+
* time an edit takes to reach the page, and most of its spread. A file watched on its own (`fs.watch` on the file,
|
|
9
|
+
* a kernel event) is told at once, so each followed file's change is handed to Vite's watcher as its own. Its
|
|
10
|
+
* FSEvents event still comes, a little later: the dev server drops an update the close watch did not hand on when it
|
|
11
|
+
* finds the text the environment took last (`isLateReport`), so an edit is drawn once, while a save that changes
|
|
12
|
+
* nothing still draws anew when the close watch reports it (a story retried after an error). Vite still marks the
|
|
13
|
+
* file's modules stale for a dropped report, and no later plugin's `hotUpdate` sees it. A watch holds a file
|
|
14
|
+
* descriptor, so only a bounded few files are followed, the least recently followed dropped first; never a
|
|
15
|
+
* dependency's file, which Vite's watcher ignores, nor a page (`.html`), for which Vite answers an update it drops
|
|
16
|
+
* with a reload of the pages.
|
|
17
|
+
*
|
|
18
|
+
* Only where Vite's watcher reads FSEvents and the dev server sends updates: elsewhere its events already come at
|
|
19
|
+
* once, polling (`--poll`) is the choice where no event can be trusted, and a watcher told to wait for writes to
|
|
20
|
+
* finish (`awaitWriteFinish`) is left to wait.
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import { createHash } from "node:crypto";
|
|
25
|
+
import { existsSync, readFileSync, watch } from "node:fs";
|
|
26
|
+
import { VITE_PATHS } from "./vitePaths.js";
|
|
27
|
+
/** Where a project's dependencies are installed, whose files Vite's watcher ignores and none is followed in. */
|
|
28
|
+
const DEPENDENCIES = "/node_modules/";
|
|
29
|
+
/** A page, whose update Vite answers with a reload when it is dropped: never followed. */
|
|
30
|
+
const PAGE_FILE = /\.html?$/;
|
|
31
|
+
/** How many files are followed at most: each holds a file descriptor while it is followed. */
|
|
32
|
+
export const CLOSE_WATCH_LIMIT = 64;
|
|
33
|
+
/**
|
|
34
|
+
* Node's watch of one file: a kernel event per change (kqueue on macOS). Not persistent, so it never keeps a process
|
|
35
|
+
* that is ending alive.
|
|
36
|
+
*
|
|
37
|
+
* @param file - the file.
|
|
38
|
+
* @param onEvent - the watch's events.
|
|
39
|
+
*/
|
|
40
|
+
const nodeWatchFile = (file, onEvent) => {
|
|
41
|
+
const watcher = watch(file, { persistent: false }, (kind) => onEvent(kind === "rename" ? "rename" : "change"));
|
|
42
|
+
watcher.on("error", () => onEvent("error"));
|
|
43
|
+
return { close: () => watcher.close() };
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A file's text, or none when it cannot be read.
|
|
47
|
+
*
|
|
48
|
+
* @param file - the file.
|
|
49
|
+
*/
|
|
50
|
+
const diskText = (file) => {
|
|
51
|
+
try {
|
|
52
|
+
return readFileSync(file, "utf8");
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A text's digest: what is kept of a file's last update, so a long file is not held twice.
|
|
60
|
+
*
|
|
61
|
+
* @param text - the text.
|
|
62
|
+
*/
|
|
63
|
+
const digestOf = (text) => createHash("sha256").update(text).digest("hex");
|
|
64
|
+
/**
|
|
65
|
+
* Whether a dev server's watcher hears of changes through FSEvents, which deliver them late: Vite's on macOS, unless
|
|
66
|
+
* it polls, was told not to use them, or waits for writes to finish; none when the dev server watches nothing.
|
|
67
|
+
*
|
|
68
|
+
* @param options - the dev server's `server.watch`.
|
|
69
|
+
* @param platform - the system, `process.platform` by default.
|
|
70
|
+
*/
|
|
71
|
+
export const isWatchingByFileEvents = (options, platform = process.platform) => platform === "darwin" &&
|
|
72
|
+
options !== null &&
|
|
73
|
+
options?.usePolling !== true &&
|
|
74
|
+
options?.useFsEvents !== false &&
|
|
75
|
+
(options?.awaitWriteFinish === undefined || options.awaitWriteFinish === false);
|
|
76
|
+
/**
|
|
77
|
+
* Follows the files a person is working on, each on its own.
|
|
78
|
+
*
|
|
79
|
+
* @param options - where a change goes, how many files at most, and how a file is watched and read.
|
|
80
|
+
*/
|
|
81
|
+
export const closeWatch = (options) => {
|
|
82
|
+
const limit = options.limit ?? CLOSE_WATCH_LIMIT;
|
|
83
|
+
const watchFile = options.watchFile ?? nodeWatchFile;
|
|
84
|
+
const readText = options.readText ?? diskText;
|
|
85
|
+
// by file in Vite's form, the least recently followed first
|
|
86
|
+
const followed = new Map();
|
|
87
|
+
// how many changes of each followed file the close watch handed on
|
|
88
|
+
const handed = new Map();
|
|
89
|
+
// what each environment last took of a followed file, by environment and file: the handed count it had reached and
|
|
90
|
+
// the text's digest
|
|
91
|
+
const taken = new Map();
|
|
92
|
+
// the files whose change is handed on at the end of this turn: a save is often two events (emptied, then written)
|
|
93
|
+
const handing = new Set();
|
|
94
|
+
const handOn = (file) => {
|
|
95
|
+
if (handing.has(file))
|
|
96
|
+
return;
|
|
97
|
+
handing.add(file);
|
|
98
|
+
setImmediate(() => {
|
|
99
|
+
handing.delete(file);
|
|
100
|
+
if (!followed.has(file))
|
|
101
|
+
return;
|
|
102
|
+
handed.set(file, (handed.get(file) ?? 0) + 1);
|
|
103
|
+
options.onChange(file);
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const stop = (file) => {
|
|
107
|
+
followed.get(file)?.close();
|
|
108
|
+
followed.delete(file);
|
|
109
|
+
};
|
|
110
|
+
const forget = (file) => {
|
|
111
|
+
stop(file);
|
|
112
|
+
handed.delete(file);
|
|
113
|
+
for (const key of [...taken.keys()]) {
|
|
114
|
+
if (key.endsWith(`\0${file}`))
|
|
115
|
+
taken.delete(key);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const open = (file) => {
|
|
119
|
+
try {
|
|
120
|
+
followed.set(file, watchFile(file, (kind) => {
|
|
121
|
+
if (kind === "change") {
|
|
122
|
+
handOn(file);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// a file saved through a new one is another file now: the old watch hears nothing more of it, and what
|
|
126
|
+
// was taken of it still tells the late event of this save from a new edit
|
|
127
|
+
if (kind === "rename" && existsSync(file)) {
|
|
128
|
+
stop(file);
|
|
129
|
+
open(file);
|
|
130
|
+
handOn(file);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// removed, or the watch failed: Vite's own watcher reports what follows
|
|
134
|
+
forget(file);
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// gone already, or no file descriptor left: Vite's own watcher still reports it
|
|
139
|
+
}
|
|
140
|
+
while (followed.size > limit) {
|
|
141
|
+
const oldest = followed.keys().next().value;
|
|
142
|
+
if (oldest === undefined)
|
|
143
|
+
break;
|
|
144
|
+
forget(oldest);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
return {
|
|
148
|
+
follow: (file) => {
|
|
149
|
+
const key = VITE_PATHS.normalize(file);
|
|
150
|
+
if (key.includes(DEPENDENCIES) || PAGE_FILE.test(key))
|
|
151
|
+
return;
|
|
152
|
+
const kept = followed.get(key);
|
|
153
|
+
if (kept === undefined) {
|
|
154
|
+
open(key);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
followed.delete(key);
|
|
158
|
+
followed.set(key, kept);
|
|
159
|
+
},
|
|
160
|
+
isLateReport: (environment, file) => {
|
|
161
|
+
const key = VITE_PATHS.normalize(file);
|
|
162
|
+
if (!followed.has(key))
|
|
163
|
+
return false;
|
|
164
|
+
const text = readText(key);
|
|
165
|
+
if (text === undefined)
|
|
166
|
+
return false;
|
|
167
|
+
const digest = digestOf(text);
|
|
168
|
+
const takenKey = `${environment}\0${key}`;
|
|
169
|
+
const last = taken.get(takenKey);
|
|
170
|
+
const count = handed.get(key) ?? 0;
|
|
171
|
+
const isHandedOn = last === undefined || count > last.handed;
|
|
172
|
+
if (!isHandedOn && last.digest === digest)
|
|
173
|
+
return true;
|
|
174
|
+
taken.set(takenKey, { handed: count, digest });
|
|
175
|
+
return false;
|
|
176
|
+
},
|
|
177
|
+
close: () => {
|
|
178
|
+
for (const file of [...followed.keys()])
|
|
179
|
+
forget(file);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* A dev server's close watch, where its watcher reads FSEvents and it sends updates: changes go to its watcher, and a
|
|
185
|
+
* file a page loaded that the person edits is followed from then on, since it is likely edited again. Closed with the
|
|
186
|
+
* server's HTTP server; the plugin closes it with the server too, which may have none.
|
|
187
|
+
*
|
|
188
|
+
* @param server - the dev server.
|
|
189
|
+
* @param platform - the system, `process.platform` by default.
|
|
190
|
+
* @returns the close watch; none where the watcher hears of changes at once, or polls.
|
|
191
|
+
*/
|
|
192
|
+
export const serverCloseWatch = (server, platform = process.platform) => {
|
|
193
|
+
const { watch, hmr } = server.config.server;
|
|
194
|
+
if (!isWatchingByFileEvents(watch, platform) || hmr === false)
|
|
195
|
+
return undefined;
|
|
196
|
+
const watching = closeWatch({ onChange: (file) => void server.watcher.emit("change", file) });
|
|
197
|
+
server.watcher.on("change", (file) => {
|
|
198
|
+
const loaded = server.environments.client.moduleGraph.getModulesByFile(VITE_PATHS.normalize(file));
|
|
199
|
+
if (loaded !== undefined && loaded.size > 0)
|
|
200
|
+
watching.follow(file);
|
|
201
|
+
});
|
|
202
|
+
server.httpServer?.on("close", () => watching.close());
|
|
203
|
+
return watching;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* The close watch of the dev server that runs now; none follows a file until a server is served.
|
|
207
|
+
*/
|
|
208
|
+
export const currentCloseWatch = () => {
|
|
209
|
+
let current;
|
|
210
|
+
return {
|
|
211
|
+
serve: (server, platform = process.platform) => {
|
|
212
|
+
current?.close();
|
|
213
|
+
current = server === undefined ? undefined : serverCloseWatch(server, platform);
|
|
214
|
+
},
|
|
215
|
+
follow: (file) => current?.follow(file),
|
|
216
|
+
isLateReport: (environment, file) => current?.isLateReport(environment, file) === true,
|
|
217
|
+
close: () => current?.close()
|
|
218
|
+
};
|
|
219
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A code fence's whole line read, and its code drawn by it: a title, marked lines, inserted and deleted lines, a diff
|
|
3
|
+
* coloured in its own language, and long lines wrapped.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The line after the backticks is written as Expressive Code and VitePress write it, so an author knows it: the
|
|
7
|
+
* language, then `title="Button.tsx"`, the marked lines in braces (`1,4-6`), `ins=` and `del=` with lines in braces,
|
|
8
|
+
* and `wrap`; a `diff` fence takes `lang="tsx"`, so its `+` and `-` lines keep the colours of their language. Everything is done here, at build time: the page gets HTML
|
|
9
|
+
* whose lines are elements (`<mark>`, `<ins>`, `<del>`), so a screen reader hears what changed and the shell needs no
|
|
10
|
+
* script for it. The copied text is the code as it reads after the change: its diff signs taken off and its deleted
|
|
11
|
+
* lines left out, so what is pasted runs. Pure.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import type { PageNote, SourcePosition } from "./docDirectives.ts";
|
|
16
|
+
/** What a code fence's line says. */
|
|
17
|
+
export type FenceInfo = {
|
|
18
|
+
/** The language the code is coloured in; none leaves it plain. */
|
|
19
|
+
readonly language: string | undefined;
|
|
20
|
+
/** Its title, a file's name most often; none when it has none. */
|
|
21
|
+
readonly title: string | undefined;
|
|
22
|
+
/** The lines marked, from 1. */
|
|
23
|
+
readonly marked: ReadonlySet<number>;
|
|
24
|
+
/** The lines inserted, from 1. */
|
|
25
|
+
readonly inserted: ReadonlySet<number>;
|
|
26
|
+
/** The lines deleted, from 1. */
|
|
27
|
+
readonly deleted: ReadonlySet<number>;
|
|
28
|
+
/** Whether it is a diff, whose lines start with `+`, `-` or a space. */
|
|
29
|
+
readonly isDiff: boolean;
|
|
30
|
+
/** Whether long lines wrap instead of scrolling. */
|
|
31
|
+
readonly isWrapped: boolean;
|
|
32
|
+
};
|
|
33
|
+
/** A code block as the page draws it. */
|
|
34
|
+
export type FencedCode = {
|
|
35
|
+
/** The code as the copy button copies it. */
|
|
36
|
+
readonly text: string;
|
|
37
|
+
/** The code as HTML, coloured, its lines elements when some are marked. */
|
|
38
|
+
readonly html: string;
|
|
39
|
+
/** Its language, when it has one. */
|
|
40
|
+
readonly language: string | undefined;
|
|
41
|
+
/** Its title, when it has one. */
|
|
42
|
+
readonly title: string | undefined;
|
|
43
|
+
/** Whether long lines wrap. */
|
|
44
|
+
readonly isWrapped: boolean;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* What a code fence's line says, every word it does not read reported where it is.
|
|
48
|
+
*
|
|
49
|
+
* @param info - the line after the backticks.
|
|
50
|
+
* @param start - where the line starts in the file, for the notes.
|
|
51
|
+
* @param notes - receives what cannot be read.
|
|
52
|
+
*/
|
|
53
|
+
export declare const fenceInfo: (info: string, start: SourcePosition, notes: PageNote[]) => FenceInfo;
|
|
54
|
+
/**
|
|
55
|
+
* Coloured HTML split at its lines, every span closed at a line's end and opened again on the next, so each line can
|
|
56
|
+
* be an element of its own.
|
|
57
|
+
*
|
|
58
|
+
* @param html - the coloured code.
|
|
59
|
+
*/
|
|
60
|
+
export declare const htmlLines: (html: string) => string[];
|
|
61
|
+
/**
|
|
62
|
+
* The first line a fence names that its code does not have; none when every line it names is there.
|
|
63
|
+
*
|
|
64
|
+
* @param code - the code as the fence holds it.
|
|
65
|
+
* @param info - what its fence's line says.
|
|
66
|
+
* @returns the line, and how many the code has.
|
|
67
|
+
*/
|
|
68
|
+
export declare const missingLine: (code: string, info: FenceInfo) => {
|
|
69
|
+
readonly line: number;
|
|
70
|
+
readonly count: number;
|
|
71
|
+
} | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* A fenced block's code as the page draws it.
|
|
74
|
+
*
|
|
75
|
+
* @param code - the code as the fence holds it.
|
|
76
|
+
* @param info - what its fence's line says.
|
|
77
|
+
*/
|
|
78
|
+
export declare const fencedCode: (code: string, info: FenceInfo) => FencedCode;
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { highlightCode } from "./highlightCode.js";
|
|
2
|
+
/** The class of every line of a block whose lines are elements. */
|
|
3
|
+
const LINE_CLASS = "forgebook-code-line";
|
|
4
|
+
/** A fence's line split into words: a quoted value or braces stay whole. */
|
|
5
|
+
const fenceWords = (info) => {
|
|
6
|
+
const words = [];
|
|
7
|
+
const pattern = /(?:[^\s"'{=]+(?:=(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\{[^}]*\}|[^\s]*))?|\{[^}]*\}|"[^"]*"|\S+)/g;
|
|
8
|
+
for (const match of info.matchAll(pattern))
|
|
9
|
+
words.push({ text: match[0], offset: match.index });
|
|
10
|
+
return words;
|
|
11
|
+
};
|
|
12
|
+
/** The highest line a fence may name. */
|
|
13
|
+
const MAX_LINE = 100_000;
|
|
14
|
+
/**
|
|
15
|
+
* The lines a range list names: `1,4-6` is 1, 4, 5 and 6.
|
|
16
|
+
*
|
|
17
|
+
* @param text - the list, without its braces.
|
|
18
|
+
* @returns the lines, or none when the list cannot be read.
|
|
19
|
+
*/
|
|
20
|
+
const rangeLines = (text) => {
|
|
21
|
+
const lines = new Set();
|
|
22
|
+
for (const part of text.split(",")) {
|
|
23
|
+
const range = /^\s*(\d+)\s*(?:-\s*(\d+)\s*)?$/.exec(part);
|
|
24
|
+
if (range?.[1] === undefined)
|
|
25
|
+
return undefined;
|
|
26
|
+
const from = Number(range[1]);
|
|
27
|
+
const to = range[2] === undefined ? from : Number(range[2]);
|
|
28
|
+
// a range no code can hold is a mistake, and would fill the set with millions of lines
|
|
29
|
+
if (from < 1 || to < from || to > MAX_LINE)
|
|
30
|
+
return undefined;
|
|
31
|
+
for (let line = from; line <= to; line += 1)
|
|
32
|
+
lines.add(line);
|
|
33
|
+
}
|
|
34
|
+
return lines;
|
|
35
|
+
};
|
|
36
|
+
/** A value without its quotes or braces, its escapes read. */
|
|
37
|
+
const bareValue = (value) => {
|
|
38
|
+
const first = value.charAt(0);
|
|
39
|
+
if ((first === '"' || first === "'") && value.endsWith(first) && value.length > 1)
|
|
40
|
+
return value.slice(1, -1).replace(/\\(.)/g, "$1");
|
|
41
|
+
return value;
|
|
42
|
+
};
|
|
43
|
+
/** The words that name lines, and the set each fills. */
|
|
44
|
+
const RANGE_KEYS = {
|
|
45
|
+
mark: "marked",
|
|
46
|
+
ins: "inserted",
|
|
47
|
+
del: "deleted"
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Adds the lines a `{1,4-6}` list names to a set, or notes that it is no list.
|
|
51
|
+
*
|
|
52
|
+
* @param target - the set.
|
|
53
|
+
* @param value - the list, with its braces.
|
|
54
|
+
* @param position - where it starts, for the note.
|
|
55
|
+
* @param notes - receives what cannot be read.
|
|
56
|
+
*/
|
|
57
|
+
const addRanges = (target, value, position, notes) => {
|
|
58
|
+
const lines = value.startsWith("{") && value.endsWith("}") ? rangeLines(value.slice(1, -1)) : undefined;
|
|
59
|
+
if (lines === undefined) {
|
|
60
|
+
notes.push({ position, message: `"${value}" is not a list of lines: write {1,4-6}` });
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
for (const line of lines)
|
|
64
|
+
target.add(line);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Reads one word of a fence's line into what it says.
|
|
68
|
+
*
|
|
69
|
+
* @param word - the word.
|
|
70
|
+
* @param isDiff - whether the fence is a diff, the one that takes `lang`.
|
|
71
|
+
* @param reading - what the line says so far.
|
|
72
|
+
* @param at - the position of a place of the line.
|
|
73
|
+
* @param notes - receives what cannot be read.
|
|
74
|
+
*/
|
|
75
|
+
const readFenceWord = ({ text, offset }, isDiff, reading, at, notes) => {
|
|
76
|
+
if (text.startsWith("{")) {
|
|
77
|
+
addRanges(reading.marked, text, at(offset), notes);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (text === "wrap") {
|
|
81
|
+
reading.isWrapped = true;
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const equals = text.indexOf("=");
|
|
85
|
+
const key = equals === -1 ? text : text.slice(0, equals);
|
|
86
|
+
const value = equals === -1 ? "" : text.slice(equals + 1);
|
|
87
|
+
const range = RANGE_KEYS[key];
|
|
88
|
+
if (range !== undefined) {
|
|
89
|
+
addRanges(reading[range], value, at(offset + equals + 1), notes);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (key === "title" && value !== "") {
|
|
93
|
+
reading.title = bareValue(value);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (key === "lang" && isDiff && value !== "") {
|
|
97
|
+
reading.language = bareValue(value);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const hint = key === "lang"
|
|
101
|
+
? '`lang` goes with a diff (```diff lang="tsx")'
|
|
102
|
+
: 'it reads title="…", {1,4-6}, ins={…}, del={…} and wrap';
|
|
103
|
+
notes.push({ position: at(offset), message: `the code fence's "${text}" is not read: ${hint}` });
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* What a code fence's line says, every word it does not read reported where it is.
|
|
107
|
+
*
|
|
108
|
+
* @param info - the line after the backticks.
|
|
109
|
+
* @param start - where the line starts in the file, for the notes.
|
|
110
|
+
* @param notes - receives what cannot be read.
|
|
111
|
+
*/
|
|
112
|
+
export const fenceInfo = (info, start, notes) => {
|
|
113
|
+
const at = (offset) => ({ line: start.line, column: start.column + offset });
|
|
114
|
+
const words = fenceWords(info);
|
|
115
|
+
const first = words[0];
|
|
116
|
+
const named = first !== undefined && first.text !== "wrap" && !first.text.includes("=") && !/^[{"]/.test(first.text)
|
|
117
|
+
? first.text
|
|
118
|
+
: undefined;
|
|
119
|
+
const isDiff = named === "diff";
|
|
120
|
+
const reading = {
|
|
121
|
+
language: isDiff ? undefined : named,
|
|
122
|
+
title: undefined,
|
|
123
|
+
isWrapped: false,
|
|
124
|
+
marked: new Set(),
|
|
125
|
+
inserted: new Set(),
|
|
126
|
+
deleted: new Set()
|
|
127
|
+
};
|
|
128
|
+
for (const word of named === undefined ? words : words.slice(1))
|
|
129
|
+
readFenceWord(word, isDiff, reading, at, notes);
|
|
130
|
+
return { ...reading, isDiff };
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Coloured HTML split at its lines, every span closed at a line's end and opened again on the next, so each line can
|
|
134
|
+
* be an element of its own.
|
|
135
|
+
*
|
|
136
|
+
* @param html - the coloured code.
|
|
137
|
+
*/
|
|
138
|
+
export const htmlLines = (html) => {
|
|
139
|
+
const lines = [];
|
|
140
|
+
const open = [];
|
|
141
|
+
let current = "";
|
|
142
|
+
for (const part of html.split(/(<span[^>]*>|<\/span>|\n)/)) {
|
|
143
|
+
if (part === "\n") {
|
|
144
|
+
lines.push(current + "</span>".repeat(open.length));
|
|
145
|
+
current = open.join("");
|
|
146
|
+
}
|
|
147
|
+
else if (part.startsWith("<span")) {
|
|
148
|
+
open.push(part);
|
|
149
|
+
current += part;
|
|
150
|
+
}
|
|
151
|
+
else if (part === "</span>") {
|
|
152
|
+
open.pop();
|
|
153
|
+
current += part;
|
|
154
|
+
}
|
|
155
|
+
else
|
|
156
|
+
current += part;
|
|
157
|
+
}
|
|
158
|
+
lines.push(current);
|
|
159
|
+
return lines;
|
|
160
|
+
};
|
|
161
|
+
/** The kind of line each sign of a diff starts. */
|
|
162
|
+
const DIFF_SIGNS = { "+": "ins", "-": "del" };
|
|
163
|
+
/** A patch's file headers (`--- a/x`, `+++ b/x`): plain lines, never a deletion or an insertion. */
|
|
164
|
+
const PATCH_HEADER = /^(---|\+\+\+)( |$)/;
|
|
165
|
+
/**
|
|
166
|
+
* A diff's lines and the kind of each. A diff in a language (`lang="tsx"`) is code whose signs come off, so it is
|
|
167
|
+
* coloured and copied as code; one without is a patch, kept as written, so what is copied still applies.
|
|
168
|
+
*
|
|
169
|
+
* @param code - the diff.
|
|
170
|
+
* @param isCode - whether its signs come off.
|
|
171
|
+
*/
|
|
172
|
+
const diffLines = (code, isCode) => {
|
|
173
|
+
const kinds = [];
|
|
174
|
+
const lines = code.split("\n").map((line) => {
|
|
175
|
+
const sign = line.charAt(0);
|
|
176
|
+
kinds.push(PATCH_HEADER.test(line) ? "plain" : (DIFF_SIGNS[sign] ?? "plain"));
|
|
177
|
+
return isCode && (sign === "+" || sign === "-" || sign === " ") ? line.slice(1) : line;
|
|
178
|
+
});
|
|
179
|
+
return { code: lines.join("\n"), kinds };
|
|
180
|
+
};
|
|
181
|
+
/** Whether a fence is a diff of code in a language, whose signs come off: a diff without one is a patch. */
|
|
182
|
+
const isCodeDiff = (info) => info.isDiff && info.language !== undefined;
|
|
183
|
+
/** A line as an element of its kind. */
|
|
184
|
+
const lineElement = (html, kind) => {
|
|
185
|
+
const element = kind === "plain" ? "span" : kind;
|
|
186
|
+
return `<${element} class="${LINE_CLASS}">${html}</${element}>`;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Each line coloured, the code before the change and after it apart: a deleted line that leaves a string or a comment
|
|
190
|
+
* open would otherwise colour the inserted line after it as part of it.
|
|
191
|
+
*
|
|
192
|
+
* @param code - the code, its diff signs taken off.
|
|
193
|
+
* @param kinds - each line's kind.
|
|
194
|
+
* @param language - the language it is coloured in.
|
|
195
|
+
*/
|
|
196
|
+
const coloredLines = (code, kinds, language) => {
|
|
197
|
+
const lines = code.split("\n");
|
|
198
|
+
if (!kinds.includes("del"))
|
|
199
|
+
return htmlLines(highlightCode(code, language));
|
|
200
|
+
const version = (left) => {
|
|
201
|
+
const places = lines.flatMap((_line, index) => (kinds[index] === left ? [] : [index]));
|
|
202
|
+
const html = htmlLines(highlightCode(places.map((index) => lines[index] ?? "").join("\n"), language));
|
|
203
|
+
return { places, html };
|
|
204
|
+
};
|
|
205
|
+
const coloured = [];
|
|
206
|
+
for (const { places, html } of [version("ins"), version("del")]) {
|
|
207
|
+
places.forEach((index, at) => {
|
|
208
|
+
coloured[index] ??= html[at] ?? "";
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
return lines.map((_line, index) => coloured[index] ?? "");
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* A diff's code without its signs, or the code itself.
|
|
215
|
+
*
|
|
216
|
+
* @param code - the code as the fence holds it.
|
|
217
|
+
* @param info - what its fence's line says.
|
|
218
|
+
*/
|
|
219
|
+
const shownCode = (code, info) => info.isDiff ? diffLines(code, isCodeDiff(info)).code : code;
|
|
220
|
+
/**
|
|
221
|
+
* The first line a fence names that its code does not have; none when every line it names is there.
|
|
222
|
+
*
|
|
223
|
+
* @param code - the code as the fence holds it.
|
|
224
|
+
* @param info - what its fence's line says.
|
|
225
|
+
* @returns the line, and how many the code has.
|
|
226
|
+
*/
|
|
227
|
+
export const missingLine = (code, info) => {
|
|
228
|
+
const count = shownCode(code, info).split("\n").length;
|
|
229
|
+
const beyond = [...info.marked, ...info.inserted, ...info.deleted].filter((line) => line > count);
|
|
230
|
+
return beyond.length === 0 ? undefined : { line: Math.min(...beyond), count };
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* A fenced block's code as the page draws it.
|
|
234
|
+
*
|
|
235
|
+
* @param code - the code as the fence holds it.
|
|
236
|
+
* @param info - what its fence's line says.
|
|
237
|
+
*/
|
|
238
|
+
export const fencedCode = (code, info) => {
|
|
239
|
+
const diff = info.isDiff ? diffLines(code, isCodeDiff(info)) : undefined;
|
|
240
|
+
const plain = shownCode(code, info);
|
|
241
|
+
const base = { language: info.language, title: info.title, isWrapped: info.isWrapped };
|
|
242
|
+
if (diff === undefined && info.marked.size + info.inserted.size + info.deleted.size === 0) {
|
|
243
|
+
return { ...base, text: code, html: highlightCode(code, info.language) };
|
|
244
|
+
}
|
|
245
|
+
const kinds = plain.split("\n").map((_line, index) => {
|
|
246
|
+
const line = index + 1;
|
|
247
|
+
if (info.deleted.has(line))
|
|
248
|
+
return "del";
|
|
249
|
+
if (info.inserted.has(line))
|
|
250
|
+
return "ins";
|
|
251
|
+
if (info.marked.has(line))
|
|
252
|
+
return "mark";
|
|
253
|
+
return diff?.kinds[index] ?? "plain";
|
|
254
|
+
});
|
|
255
|
+
const html = coloredLines(plain, kinds, info.language)
|
|
256
|
+
.map((line, index) => lineElement(line, kinds[index] ?? "plain"))
|
|
257
|
+
.join("\n");
|
|
258
|
+
// a patch is copied whole, to apply; code is copied as it reads after the change
|
|
259
|
+
const isPatch = info.isDiff && !isCodeDiff(info);
|
|
260
|
+
const text = isPatch
|
|
261
|
+
? plain
|
|
262
|
+
: plain
|
|
263
|
+
.split("\n")
|
|
264
|
+
.filter((_line, index) => kinds[index] !== "del")
|
|
265
|
+
.join("\n");
|
|
266
|
+
return { ...base, text, html };
|
|
267
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The module a story file imports its meta's component from (`./Button`).
|
|
3
|
+
*
|
|
4
|
+
* @param storyFile - the story file's path, for the parser (its extension decides TypeScript and JSX).
|
|
5
|
+
* @param text - the story file's text.
|
|
6
|
+
* @returns the import's module specifier, or none when the meta names no imported component.
|
|
7
|
+
*/
|
|
8
|
+
export declare const componentImport: (storyFile: string, text: string) => string | undefined;
|