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
|
@@ -6,21 +6,194 @@
|
|
|
6
6
|
* The repo type-checks with TypeScript 7, whose native compiler has no JavaScript API; TypeScript 6 (the version
|
|
7
7
|
* typescript-eslint uses too) reads the same configurations.
|
|
8
8
|
*
|
|
9
|
+
* A file is read with the configuration an editor reads it with: the nearest `tsconfig.json` up its folders that holds
|
|
10
|
+
* it, or a project it references. A monorepo's package often holds only its sources while the root's configuration
|
|
11
|
+
* holds the stories too, with the paths that lead a package's name to its sources: reading a story with the package's
|
|
12
|
+
* configuration would leave its component's type unknown.
|
|
13
|
+
*
|
|
14
|
+
* A framework whose components are not TypeScript (Svelte's `.svelte`) hands the text TypeScript reads in a component's
|
|
15
|
+
* place (`ProgramSources`): its programs are kept apart from the plain ones, under the same configuration.
|
|
16
|
+
*
|
|
17
|
+
* A program is the largest thing a dev server holds, so three things keep the programs small:
|
|
18
|
+
* - a dev server's programs hold the files asked for and what they import (`readAskedFilesOnly`), with the files that
|
|
19
|
+
* hold for every file (declarations, augmentations), not every file of the configuration, until enough are asked
|
|
20
|
+
* that the whole is cheaper (`MOST_ASKED`);
|
|
21
|
+
* - parsed files are kept between programs and shared by every configuration that parses alike (`parsedFiles.ts`),
|
|
22
|
+
* the standard library's and `@types` without their documentation;
|
|
23
|
+
* - only the programs read last are kept (`KEPT_PROGRAMS`), with the parses they hold.
|
|
24
|
+
*
|
|
9
25
|
* @module
|
|
10
26
|
*/
|
|
11
27
|
import { dirname } from "node:path";
|
|
12
28
|
import ts from "typescript-6";
|
|
13
|
-
|
|
29
|
+
import { checkFileChanges, keepParsesOf, keptParse, mayFilesChange } from "./parsedFiles.js";
|
|
30
|
+
/**
|
|
31
|
+
* What the file system answered a build's programs' module resolution: in a monorepo every configuration's program
|
|
32
|
+
* resolves the same thousands of imports, and asking the disk again for each one, in `stat`, `open` and `realpath`, is
|
|
33
|
+
* most of a build's time. A dev server asks each time: an install, or a package's declarations built beside it, changes
|
|
34
|
+
* what an import finds without a source file changing.
|
|
35
|
+
*/
|
|
36
|
+
const answered = {
|
|
37
|
+
files: new Map(),
|
|
38
|
+
folders: new Map(),
|
|
39
|
+
realPaths: new Map()
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* An answer of the file system: asked once in a build, each time where files may change.
|
|
43
|
+
*
|
|
44
|
+
* @param kept - the answers kept.
|
|
45
|
+
* @param path - the path asked about.
|
|
46
|
+
* @param ask - asks the file system.
|
|
47
|
+
*/
|
|
48
|
+
const remembered = (kept, path, ask) => {
|
|
49
|
+
if (mayFilesChange())
|
|
50
|
+
return ask(path);
|
|
51
|
+
const known = kept.get(path);
|
|
52
|
+
if (known !== undefined)
|
|
53
|
+
return known;
|
|
54
|
+
const value = ask(path);
|
|
55
|
+
kept.set(path, value);
|
|
56
|
+
return value;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A compiler host that parses through the kept parses (`parsedFiles.ts`), remembers the file system's answers, and
|
|
60
|
+
* reads a framework's written sources as if they were on disk.
|
|
61
|
+
*
|
|
62
|
+
* @param options - the program's compiler options.
|
|
63
|
+
* @param sources - the files read in place of a framework's components; none for a plain program.
|
|
64
|
+
*/
|
|
65
|
+
const keepingHost = (options, sources) => {
|
|
66
|
+
const host = ts.createCompilerHost(options, true);
|
|
67
|
+
const { fileExists, readFile, directoryExists, realpath } = host;
|
|
68
|
+
const parse = keptParse(options, host.getSourceFile);
|
|
69
|
+
return {
|
|
70
|
+
...host,
|
|
71
|
+
fileExists: (fileName) => sources?.textOf(fileName) !== undefined || remembered(answered.files, fileName, fileExists),
|
|
72
|
+
readFile: (fileName) => sources?.textOf(fileName) ?? readFile(fileName),
|
|
73
|
+
...(directoryExists === undefined
|
|
74
|
+
? {}
|
|
75
|
+
: { directoryExists: (path) => remembered(answered.folders, path, directoryExists) }),
|
|
76
|
+
...(realpath === undefined
|
|
77
|
+
? {}
|
|
78
|
+
: { realpath: (path) => remembered(answered.realPaths, path, realpath) }),
|
|
79
|
+
getSourceFile: (fileName, languageVersion, onError, shouldCreate) => {
|
|
80
|
+
const text = sources?.textOf(fileName);
|
|
81
|
+
return text === undefined
|
|
82
|
+
? parse(fileName, languageVersion, onError, shouldCreate)
|
|
83
|
+
: ts.createSourceFile(fileName, text, languageVersion, true);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* How many programs are kept. A program holds all its package reaches, hundreds of megabytes in a monorepo whose
|
|
89
|
+
* `tsconfig` paths lead to every package's sources, and one is made per `tsconfig.json`: kept without a limit they fill
|
|
90
|
+
* the worker's heap, it stops, and every story still waiting gets that error instead of its docs. Making one again
|
|
91
|
+
* takes a second or so, which is the cheaper of the two.
|
|
92
|
+
*/
|
|
93
|
+
export const KEPT_PROGRAMS = 4;
|
|
94
|
+
/** The last program of each configuration, the one read last at the end: reused by the next read. */
|
|
14
95
|
const programs = new Map();
|
|
96
|
+
/**
|
|
97
|
+
* Keeps a program as the one read last, and lets the oldest go past the limit.
|
|
98
|
+
*
|
|
99
|
+
* @param key - the program's key.
|
|
100
|
+
* @param program - the program.
|
|
101
|
+
*/
|
|
102
|
+
const keepProgram = (key, program) => {
|
|
103
|
+
programs.delete(key);
|
|
104
|
+
programs.set(key, program);
|
|
105
|
+
for (const oldest of programs.keys()) {
|
|
106
|
+
if (programs.size <= KEPT_PROGRAMS)
|
|
107
|
+
break;
|
|
108
|
+
programs.delete(oldest);
|
|
109
|
+
outdated.delete(oldest);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
/** The files asked for, by program; none while every program holds all its configuration's files. */
|
|
113
|
+
let askedFiles;
|
|
114
|
+
/**
|
|
115
|
+
* From now on a program holds what was asked for and what that imports, not its whole configuration: a dev server shows
|
|
116
|
+
* one component at a time. A reader of everything asks for it (`programFor`'s `reach`).
|
|
117
|
+
*/
|
|
118
|
+
export const readAskedFilesOnly = () => {
|
|
119
|
+
askedFiles ??= new Map();
|
|
120
|
+
checkFileChanges();
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* The files asked for before a program takes all its configuration's files: each new root makes a new type checker,
|
|
124
|
+
* so a session that walks a whole library would pay more than the whole program costs at once.
|
|
125
|
+
*/
|
|
126
|
+
const MOST_ASKED = 16;
|
|
127
|
+
/** What declares types for files that do not import it: `declare global`, `declare module`. */
|
|
128
|
+
const AMBIENT_DECLARATION = /\bdeclare\s+(?:global\b|module\s)/;
|
|
129
|
+
/** The ambient files of each configuration read, found once: they are roots of every program, asked or not. */
|
|
130
|
+
const ambientFiles = new WeakMap();
|
|
131
|
+
/**
|
|
132
|
+
* A configuration's files that hold for every file without an import: its declarations, and the sources that augment a
|
|
133
|
+
* module or the global scope (a theme's registry, a library's typed options), which nothing may import.
|
|
134
|
+
*
|
|
135
|
+
* @param read - the configuration.
|
|
136
|
+
*/
|
|
137
|
+
const ambientOf = (read) => {
|
|
138
|
+
const known = ambientFiles.get(read);
|
|
139
|
+
if (known !== undefined)
|
|
140
|
+
return known;
|
|
141
|
+
const found = read.parsed.fileNames.filter((name) => name.endsWith(".d.ts") || AMBIENT_DECLARATION.test(ts.sys.readFile(name) ?? ""));
|
|
142
|
+
ambientFiles.set(read, found);
|
|
143
|
+
return found;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* The root files of a configuration's program: all of them, or, once only what is asked for is read, its ambient
|
|
147
|
+
* files and the files asked for so far, until enough are asked that the whole is cheaper.
|
|
148
|
+
*
|
|
149
|
+
* @param key - the program's key.
|
|
150
|
+
* @param read - its configuration.
|
|
151
|
+
* @param file - the file asked for.
|
|
152
|
+
* @param reach - what the reader needs.
|
|
153
|
+
*/
|
|
154
|
+
const rootsOf = (key, read, file, reach) => {
|
|
155
|
+
const { fileNames } = read.parsed;
|
|
156
|
+
if (askedFiles === undefined)
|
|
157
|
+
return fileNames;
|
|
158
|
+
const asked = askedFiles.get(key) ?? new Set();
|
|
159
|
+
askedFiles.set(key, asked);
|
|
160
|
+
// a program read whole stays whole: going back and forth would build it again each time
|
|
161
|
+
if (reach === "whole")
|
|
162
|
+
for (const name of fileNames)
|
|
163
|
+
asked.add(name);
|
|
164
|
+
if (asked.size >= MOST_ASKED)
|
|
165
|
+
return fileNames;
|
|
166
|
+
// a file the kept program reaches through an import needs no root of its own, while that program is current
|
|
167
|
+
const name = file.replaceAll("\\", "/");
|
|
168
|
+
const isHeld = !outdated.has(key) && programs.get(key)?.getSourceFile(name) !== undefined;
|
|
169
|
+
if (!isHeld && read.fileSet.has(name))
|
|
170
|
+
asked.add(name);
|
|
171
|
+
return [...new Set([...ambientOf(read), ...asked])];
|
|
172
|
+
};
|
|
15
173
|
/**
|
|
16
174
|
* The configurations whose program may hold an edited file: renewed on their next read. A program read again without
|
|
17
175
|
* a change answers at once, its type checker kept; renewing it on every read cost seconds a read.
|
|
18
176
|
*/
|
|
19
177
|
const outdated = new Set();
|
|
178
|
+
/** Each configuration read, with the files it holds, kept until a source changes; `undefined` when it cannot be read. */
|
|
179
|
+
const configurations = new Map();
|
|
180
|
+
/**
|
|
181
|
+
* The files read since the configurations were last read that none of them lists: they are not read again for each,
|
|
182
|
+
* which a project whose stories no configuration holds would otherwise pay on every read.
|
|
183
|
+
*/
|
|
184
|
+
const unlisted = new Set();
|
|
20
185
|
/** Marks every program as maybe holding an edited file: each is renewed on its next read. */
|
|
21
186
|
export const markSourcesChanged = () => {
|
|
187
|
+
checkFileChanges();
|
|
188
|
+
// a reader told of an edit from now on asks the disk each time: these answers may be out of date
|
|
189
|
+
answered.files.clear();
|
|
190
|
+
answered.folders.clear();
|
|
191
|
+
answered.realPaths.clear();
|
|
22
192
|
for (const configPath of programs.keys())
|
|
23
193
|
outdated.add(configPath);
|
|
194
|
+
// an edited configuration may hold other files, or have other options
|
|
195
|
+
configurations.clear();
|
|
196
|
+
unlisted.clear();
|
|
24
197
|
};
|
|
25
198
|
/**
|
|
26
199
|
* What a story file is read with when no `tsconfig.json` holds it (a JavaScript project, a `.jsx` story in a project
|
|
@@ -38,55 +211,243 @@ const FALLBACK_OPTIONS = {
|
|
|
38
211
|
/**
|
|
39
212
|
* A program from its root files, the one kept under the same key reused while no source changed.
|
|
40
213
|
*
|
|
41
|
-
* @param key - the program's key: its configuration file, or the
|
|
214
|
+
* @param key - the program's key: its configuration file, or what the files no configuration holds share.
|
|
42
215
|
* @param rootNames - its root files.
|
|
43
216
|
* @param options - its compiler options.
|
|
217
|
+
* @param sources - the files read in place of a framework's components; none for a plain program.
|
|
44
218
|
*/
|
|
45
|
-
const keptProgram = (key, rootNames, options) => {
|
|
219
|
+
const keptProgram = (key, rootNames, options, sources) => {
|
|
46
220
|
const oldProgram = programs.get(key);
|
|
47
|
-
|
|
221
|
+
const roots = sources === undefined ? rootNames : [...rootNames, ...sources.roots];
|
|
222
|
+
// a program asked for one more file is renewed: its roots grew
|
|
223
|
+
const isSameRoots = oldProgram?.getRootFileNames().length === roots.length;
|
|
224
|
+
if (oldProgram !== undefined && isSameRoots && !outdated.has(key)) {
|
|
225
|
+
keepProgram(key, oldProgram);
|
|
48
226
|
return oldProgram;
|
|
227
|
+
}
|
|
49
228
|
outdated.delete(key);
|
|
50
229
|
const program = ts.createProgram({
|
|
51
|
-
rootNames,
|
|
230
|
+
rootNames: roots,
|
|
52
231
|
options,
|
|
232
|
+
host: keepingHost(options, sources),
|
|
53
233
|
...(oldProgram === undefined ? {} : { oldProgram })
|
|
54
234
|
});
|
|
55
|
-
|
|
235
|
+
keepProgram(key, program);
|
|
236
|
+
// the parses only the programs let go held go with them
|
|
237
|
+
keepParsesOf(programs.values());
|
|
56
238
|
return program;
|
|
57
239
|
};
|
|
240
|
+
/** What a program's key adds for the sources it reads: nothing for a plain program. */
|
|
241
|
+
const sourcesKey = (sources) => sources === undefined ? "" : `#${sources.name}`;
|
|
242
|
+
/** The extensions a project's sources have. */
|
|
243
|
+
const SOURCE_EXTENSIONS = [".ts", ".tsx", ".js", ".jsx"];
|
|
244
|
+
/** The folders that hold no sources of the project. */
|
|
245
|
+
const NOT_SOURCES = ["**/node_modules", "**/dist", "**/build"];
|
|
246
|
+
/** The folder a file's project sits in: its nearest `package.json`'s, or its own. */
|
|
247
|
+
const projectFolder = (file) => {
|
|
248
|
+
const manifest = ts.findConfigFile(dirname(file), ts.sys.fileExists, "package.json");
|
|
249
|
+
return manifest === undefined ? dirname(file) : dirname(manifest);
|
|
250
|
+
};
|
|
58
251
|
/**
|
|
59
|
-
*
|
|
252
|
+
* The program of files no configuration holds, from which their imports reach the component: every source of the
|
|
253
|
+
* project at once, as a `tsconfig.json` would list them. A program holds the standard library's types and all that its
|
|
254
|
+
* files import, so one per file, or one rebuilt for each new file, filled the heap with what the last rebuild left:
|
|
255
|
+
* gigabytes in a project of a hundred stories with no `tsconfig.json`, up to Node's limit.
|
|
60
256
|
*
|
|
61
257
|
* @param file - the story file.
|
|
62
258
|
* @param options - the options of the configuration above it, when there is one; JavaScript is allowed on top.
|
|
259
|
+
* @param sources - the files read in place of a framework's components; none for a plain program.
|
|
63
260
|
*/
|
|
64
|
-
const
|
|
65
|
-
const
|
|
261
|
+
const looseProgram = (file, options, sources) => {
|
|
262
|
+
const merged = { ...options, ...sources?.options, allowJs: true, noEmit: true };
|
|
263
|
+
const folder = projectFolder(file);
|
|
264
|
+
const key = `${folder}#loose#${sourcesKey(sources)}${JSON.stringify(merged)}`;
|
|
265
|
+
const kept = programs.get(key);
|
|
266
|
+
// a file the program does not hold is new: reading the folder again finds it, and whatever else came with it
|
|
267
|
+
if (kept !== undefined && kept.getSourceFile(file) === undefined)
|
|
268
|
+
outdated.add(key);
|
|
269
|
+
// kept, its roots are read again as they were, so the program is reused
|
|
270
|
+
const files = kept === undefined || outdated.has(key)
|
|
271
|
+
? ts.sys.readDirectory(folder, SOURCE_EXTENSIONS, NOT_SOURCES)
|
|
272
|
+
: kept.getRootFileNames().filter((name) => !(sources?.roots ?? []).includes(name));
|
|
273
|
+
// in TypeScript's form, as the folder's files are listed, so a listed file is not added twice
|
|
274
|
+
const name = file.replaceAll("\\", "/");
|
|
275
|
+
const program = keptProgram(key, files.includes(name) ? files : [...files, name], merged, sources);
|
|
66
276
|
return { program, checker: program.getTypeChecker() };
|
|
67
277
|
};
|
|
68
278
|
/**
|
|
69
|
-
*
|
|
70
|
-
* program of the file alone (`FALLBACK_OPTIONS`, or the configuration's with JavaScript allowed).
|
|
279
|
+
* A configuration, read once until a source changes.
|
|
71
280
|
*
|
|
72
|
-
* @param
|
|
73
|
-
* @returns
|
|
281
|
+
* @param configPath - the `tsconfig.json`.
|
|
282
|
+
* @returns it with its files, or `undefined` when it cannot be read.
|
|
74
283
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return fileProgram(file, FALLBACK_OPTIONS);
|
|
284
|
+
const readConfiguration = (configPath) => {
|
|
285
|
+
if (configurations.has(configPath))
|
|
286
|
+
return configurations.get(configPath);
|
|
79
287
|
const parsed = ts.getParsedCommandLineOfConfigFile(configPath, {}, {
|
|
80
288
|
...ts.sys,
|
|
81
289
|
onUnRecoverableConfigFileDiagnostic: () => undefined
|
|
82
290
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
291
|
+
const read = parsed === undefined ? undefined : { parsed, fileSet: new Set(parsed.fileNames) };
|
|
292
|
+
configurations.set(configPath, read);
|
|
293
|
+
return read;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* The configuration a config file stands for, then the projects it references (a root's `tsconfig.json` that only
|
|
297
|
+
* lists its packages' projects), in an editor's order.
|
|
298
|
+
*
|
|
299
|
+
* @param configPath - the `tsconfig.json`.
|
|
300
|
+
*/
|
|
301
|
+
const withReferences = (configPath) => [
|
|
302
|
+
configPath,
|
|
303
|
+
...(readConfiguration(configPath)?.parsed.projectReferences ?? []).map((reference) => ts.resolveProjectReferencePath(reference))
|
|
304
|
+
];
|
|
305
|
+
/**
|
|
306
|
+
* The first configuration up a file's folders (or a project one references) that lists it, as an editor finds it.
|
|
307
|
+
* Each is read only when the ones below it do not list the file, so a configuration far above (a home folder's) is
|
|
308
|
+
* read only for a file nothing closer holds.
|
|
309
|
+
*
|
|
310
|
+
* @param file - an absolute path to a source file.
|
|
311
|
+
*/
|
|
312
|
+
const holdingConfiguration = (file) => {
|
|
313
|
+
const name = file.replaceAll("\\", "/");
|
|
314
|
+
let folder = dirname(file);
|
|
315
|
+
for (;;) {
|
|
316
|
+
const configPath = ts.findConfigFile(folder, ts.sys.fileExists, "tsconfig.json");
|
|
317
|
+
if (configPath === undefined)
|
|
318
|
+
return undefined;
|
|
319
|
+
const holding = withReferences(configPath).find((candidate) => readConfiguration(candidate)?.fileSet.has(name) === true);
|
|
320
|
+
if (holding !== undefined)
|
|
321
|
+
return holding;
|
|
322
|
+
const parent = dirname(dirname(configPath));
|
|
323
|
+
if (parent === dirname(configPath))
|
|
324
|
+
return undefined;
|
|
325
|
+
folder = parent;
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* The files a configuration was read from: itself and those it extends.
|
|
330
|
+
*
|
|
331
|
+
* @param configPath - the `tsconfig.json`.
|
|
332
|
+
*/
|
|
333
|
+
const configurationSources = (configPath) => {
|
|
334
|
+
const configFile = readConfiguration(configPath)?.parsed.options["configFile"];
|
|
335
|
+
const extended = typeof configFile === "object" && configFile !== null && "extendedSourceFiles" in configFile
|
|
336
|
+
? (configFile.extendedSourceFiles ?? [])
|
|
337
|
+
: [];
|
|
338
|
+
return [configPath, ...extended];
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* The files besides a source's own imports that what is read of it can change with: every configuration looked at to
|
|
342
|
+
* find the one that holds it (up its folders, with the projects they reference) and those they extend, and the files
|
|
343
|
+
* that hold for every file of that configuration (its declarations, its augmentations). Kept answers are checked
|
|
344
|
+
* against them (`diskCache.ts`).
|
|
345
|
+
*
|
|
346
|
+
* @param file - an absolute path to a source file.
|
|
347
|
+
*/
|
|
348
|
+
export const configurationFiles = (file) => {
|
|
349
|
+
const name = file.replaceAll("\\", "/");
|
|
350
|
+
const files = [];
|
|
351
|
+
let folder = dirname(file);
|
|
352
|
+
for (;;) {
|
|
353
|
+
const configPath = ts.findConfigFile(folder, ts.sys.fileExists, "tsconfig.json");
|
|
354
|
+
if (configPath === undefined)
|
|
355
|
+
break;
|
|
356
|
+
const candidates = withReferences(configPath);
|
|
357
|
+
for (const candidate of candidates)
|
|
358
|
+
files.push(...configurationSources(candidate));
|
|
359
|
+
const holding = candidates.find((candidate) => readConfiguration(candidate)?.fileSet.has(name) === true);
|
|
360
|
+
const read = holding === undefined ? undefined : readConfiguration(holding);
|
|
361
|
+
if (read !== undefined) {
|
|
362
|
+
files.push(...ambientOf(read));
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
const parent = dirname(dirname(configPath));
|
|
366
|
+
if (parent === dirname(configPath))
|
|
367
|
+
break;
|
|
368
|
+
folder = parent;
|
|
369
|
+
}
|
|
370
|
+
return [...new Set(files)];
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* The compiler options a file is read with, as `programFor` finds its configuration, without making a program: its
|
|
374
|
+
* imports resolve with them.
|
|
375
|
+
*
|
|
376
|
+
* @param file - an absolute path to a source file.
|
|
377
|
+
*/
|
|
378
|
+
export const compilerOptionsFor = (file) => {
|
|
379
|
+
const holding = holdingConfiguration(file);
|
|
380
|
+
const nearest = ts.findConfigFile(dirname(file), ts.sys.fileExists, "tsconfig.json");
|
|
381
|
+
const configPath = holding ?? nearest;
|
|
382
|
+
return ((configPath === undefined ? undefined : readConfiguration(configPath)?.parsed.options) ?? FALLBACK_OPTIONS);
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* A configuration's program, renewed when it lacks a file the configuration lists: a story file added since the
|
|
386
|
+
* program was made.
|
|
387
|
+
*
|
|
388
|
+
* @param configPath - the `tsconfig.json`.
|
|
389
|
+
* @param read - the configuration, read.
|
|
390
|
+
* @param file - the file the program is for.
|
|
391
|
+
* @param sources - the files read in place of a framework's components; none for a plain program.
|
|
392
|
+
* @param reach - what the reader needs: what the file reaches, or every file of the configuration.
|
|
393
|
+
*/
|
|
394
|
+
const configurationProgram = (configPath, read, file, sources, reach) => {
|
|
395
|
+
const key = `${configPath}${sourcesKey(sources)}`;
|
|
396
|
+
const roots = rootsOf(key, read, file, reach);
|
|
397
|
+
const kept = programs.get(key);
|
|
398
|
+
// a file the configuration lists that the program, with the same roots, does not hold was added since it was made
|
|
399
|
+
const keptRoots = (kept?.getRootFileNames().length ?? 0) - (sources?.roots.length ?? 0);
|
|
400
|
+
if (kept !== undefined && kept.getSourceFile(file) === undefined && roots.length === keptRoots)
|
|
401
|
+
outdated.add(key);
|
|
402
|
+
const options = { ...read.parsed.options, ...sources?.options };
|
|
403
|
+
const program = keptProgram(key, roots, options, sources);
|
|
404
|
+
return { program, checker: program.getTypeChecker() };
|
|
405
|
+
};
|
|
406
|
+
/**
|
|
407
|
+
* The program that holds a file: the one of the first configuration up its folders (or a project it references) that
|
|
408
|
+
* lists it; else the nearest one's, when the file reaches it through an import; else the one the files no
|
|
409
|
+
* configuration holds share (`FALLBACK_OPTIONS`, or the nearest configuration's with JavaScript allowed).
|
|
410
|
+
*
|
|
411
|
+
* @param file - an absolute path to a source file, or to a file the sources write.
|
|
412
|
+
* @param options - the sources a framework writes, and what the reader needs.
|
|
413
|
+
* @returns the program, or a message when the configuration above it cannot be read.
|
|
414
|
+
*/
|
|
415
|
+
export const programFor = (file, { sources, reach = "asked" } = {}) => {
|
|
416
|
+
const nearest = ts.findConfigFile(dirname(file), ts.sys.fileExists, "tsconfig.json");
|
|
417
|
+
if (nearest === undefined)
|
|
418
|
+
return looseProgram(file, FALLBACK_OPTIONS, sources);
|
|
419
|
+
// a file the sources write is on no configuration's list, so reading them again would not find it
|
|
420
|
+
const isWritten = sources?.textOf(file) !== undefined;
|
|
421
|
+
// a file added since the configurations were read is in none of their lists: they are read again, once per file
|
|
422
|
+
let holding = holdingConfiguration(file);
|
|
423
|
+
if (holding === undefined && !isWritten && !unlisted.has(file)) {
|
|
424
|
+
configurations.clear();
|
|
425
|
+
unlisted.clear();
|
|
426
|
+
holding = holdingConfiguration(file);
|
|
427
|
+
}
|
|
428
|
+
if (holding === undefined)
|
|
429
|
+
unlisted.add(file);
|
|
430
|
+
const holdingRead = holding === undefined ? undefined : readConfiguration(holding);
|
|
431
|
+
if (holding !== undefined && holdingRead !== undefined)
|
|
432
|
+
return configurationProgram(holding, holdingRead, file, sources, reach);
|
|
433
|
+
const read = readConfiguration(nearest);
|
|
434
|
+
if (read === undefined)
|
|
435
|
+
return `${nearest} could not be read`;
|
|
436
|
+
const options = { ...read.parsed.options, ...sources?.options };
|
|
437
|
+
const key = `${nearest}${sourcesKey(sources)}`;
|
|
438
|
+
const program = keptProgram(key, rootsOf(key, read, file, reach), options, sources);
|
|
86
439
|
if (program.getSourceFile(file) === undefined)
|
|
87
|
-
return
|
|
440
|
+
return looseProgram(file, read.parsed.options, sources);
|
|
88
441
|
return { program, checker: program.getTypeChecker() };
|
|
89
442
|
};
|
|
443
|
+
/**
|
|
444
|
+
* The configuration that holds a file, as `programFor` finds it; empty for a file none holds: what "Used in" groups a
|
|
445
|
+
* library's story files by, to read one configuration at a time.
|
|
446
|
+
*
|
|
447
|
+
* @internal
|
|
448
|
+
* @param file - an absolute path to a source file.
|
|
449
|
+
*/
|
|
450
|
+
export const configurationOf = (file) => holdingConfiguration(file) ?? "";
|
|
90
451
|
/**
|
|
91
452
|
* The first paragraph of a symbol's TSDoc.
|
|
92
453
|
*
|
|
@@ -97,34 +458,17 @@ export const summaryOf = (symbol, checker) => (ts.displayPartsToString(symbol.ge
|
|
|
97
458
|
.replace(/\s+/g, " ")
|
|
98
459
|
.trim();
|
|
99
460
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* @param
|
|
104
|
-
* @
|
|
105
|
-
*/
|
|
106
|
-
export const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const comment = text.slice(range.pos, range.end);
|
|
112
|
-
if (!comment.startsWith("/**") || !comment.includes("@module"))
|
|
113
|
-
return "";
|
|
114
|
-
const lines = comment
|
|
115
|
-
.replace(/^\/\*\*/, "")
|
|
116
|
-
.replace(/\*\/$/, "")
|
|
117
|
-
.split("\n")
|
|
118
|
-
.map((line) => line.replace(/^\s*\* ?/, "").trimEnd());
|
|
119
|
-
const start = lines.findIndex((line) => line !== "");
|
|
120
|
-
const paragraph = [];
|
|
121
|
-
for (const line of lines.slice(Math.max(start, 0))) {
|
|
122
|
-
if (line === "" || line.startsWith("@"))
|
|
123
|
-
break;
|
|
124
|
-
paragraph.push(line);
|
|
125
|
-
}
|
|
126
|
-
return paragraph.join(" ").replace(/\s+/g, " ").trim();
|
|
127
|
-
};
|
|
461
|
+
* Each of a TSDoc tag's texts, for a tag that can be written more than once.
|
|
462
|
+
*
|
|
463
|
+
* @param symbol - a declared symbol.
|
|
464
|
+
* @param checker - the program's type checker.
|
|
465
|
+
* @param name - the tag (`useWhen`).
|
|
466
|
+
*/
|
|
467
|
+
export const tagsOf = (symbol, checker, name) => symbol
|
|
468
|
+
.getJsDocTags(checker)
|
|
469
|
+
.filter((candidate) => candidate.name === name)
|
|
470
|
+
.map((tag) => ts.displayPartsToString(tag.text).trim())
|
|
471
|
+
.filter((text) => text !== "");
|
|
128
472
|
/**
|
|
129
473
|
* A TSDoc tag's text, without the backticks it is often written in.
|
|
130
474
|
*
|
|
@@ -141,4 +485,23 @@ export const tagOf = (symbol, checker, name) => {
|
|
|
141
485
|
.trim()
|
|
142
486
|
.replace(/^`(.*)`$/, "$1");
|
|
143
487
|
};
|
|
144
|
-
|
|
488
|
+
/**
|
|
489
|
+
* The component asked for among a file's: the one named, or the only one.
|
|
490
|
+
*
|
|
491
|
+
* @param components - the names of the components the file exports.
|
|
492
|
+
* @param exportName - the export asked for; the file's only component when none.
|
|
493
|
+
* @param file - the file, for the message.
|
|
494
|
+
* @returns the name, or a message naming the components when there is none or several.
|
|
495
|
+
*/
|
|
496
|
+
export const chosenExport = (components, exportName, file) => {
|
|
497
|
+
const chosen = exportName === undefined ? components : components.filter((each) => each === exportName);
|
|
498
|
+
const [only] = chosen;
|
|
499
|
+
if (only !== undefined && chosen.length === 1)
|
|
500
|
+
return only;
|
|
501
|
+
const names = components.join(", ") || "none";
|
|
502
|
+
return {
|
|
503
|
+
problem: exportName === undefined
|
|
504
|
+
? `${file} exports ${components.length === 0 ? "no component" : `several components (${names})`}: name one`
|
|
505
|
+
: `${file} exports no component ${exportName} (its components: ${names})`
|
|
506
|
+
};
|
|
507
|
+
};
|
|
@@ -16,42 +16,52 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
16
16
|
* programs of `docsProgram.ts` between requests, so only a package's first
|
|
17
17
|
* read builds one, and a changed source file (`{ kind: "changed" }`) renews them on their next read. A usage request
|
|
18
18
|
* (`{ kind: "usage", id, files }`) is answered from the same programs (`usageGraph.ts`). A request is `{ id, storyFile }`, the answer `{ id, result }`, `extractStoryComponent`'s result as
|
|
19
|
-
* it is (plain data)
|
|
19
|
+
* it is (plain data), with the files it can change with (`docsDependencies.ts`), which the dev server keeps it on disk
|
|
20
|
+
* with.
|
|
20
21
|
*
|
|
21
22
|
* @module
|
|
22
23
|
*/
|
|
23
24
|
import { parentPort, workerData } from "node:worker_threads";
|
|
24
25
|
import { isDocsModule } from "./adapter.js";
|
|
25
|
-
import {
|
|
26
|
+
import { isSettledSince, nowNs, stampPaths } from "./diskCache.js";
|
|
27
|
+
import { docsDependencies } from "./docsDependencies.js";
|
|
28
|
+
import { markSourcesChanged, readAskedFilesOnly } from "./docsProgram.js";
|
|
26
29
|
import { usageGraph } from "./usageGraph.js";
|
|
27
30
|
/** Whether the worker's data names a docs module. */
|
|
28
31
|
const isWorkerData = (value) => typeof value === "object" &&
|
|
29
32
|
value !== null &&
|
|
30
33
|
"docsModule" in value &&
|
|
31
|
-
typeof value.docsModule === "string"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
typeof value.docsModule === "string" &&
|
|
35
|
+
"readsEverything" in value &&
|
|
36
|
+
typeof value.readsEverything === "boolean" &&
|
|
37
|
+
"keepsAnswers" in value &&
|
|
38
|
+
typeof value.keepsAnswers === "boolean";
|
|
39
|
+
/** The framework's docs module, or why it could not be loaded: every request is then answered with that. */
|
|
40
|
+
const loadDocsModule = async () => {
|
|
34
41
|
if (!isWorkerData(workerData))
|
|
35
42
|
return "The docs' worker was started without a docs module";
|
|
36
43
|
try {
|
|
37
44
|
const module = await import(__rewriteRelativeImportExtension(workerData.docsModule));
|
|
38
45
|
if (isDocsModule(module))
|
|
39
|
-
return module
|
|
46
|
+
return module;
|
|
40
47
|
return `${workerData.docsModule} exports no extractStoryComponent`;
|
|
41
48
|
}
|
|
42
49
|
catch (error) {
|
|
43
50
|
return `${workerData.docsModule} could not be loaded: ${error instanceof Error ? error.message : String(error)}`;
|
|
44
51
|
}
|
|
45
52
|
};
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
// a dev server shows one component at a time: its programs hold what was asked for, not every file of a package
|
|
54
|
+
if (isWorkerData(workerData) && !workerData.readsEverything)
|
|
55
|
+
readAskedFilesOnly();
|
|
56
|
+
/** The framework's docs module, loaded once, before the first answer. */
|
|
57
|
+
const docsModule = loadDocsModule();
|
|
48
58
|
/** The extractor's result, or why it threw: a throw would end the worker and every request waiting on it. */
|
|
49
59
|
const extracted = async (storyFile) => {
|
|
50
|
-
const
|
|
51
|
-
if (typeof
|
|
52
|
-
return
|
|
60
|
+
const module = await docsModule;
|
|
61
|
+
if (typeof module === "string")
|
|
62
|
+
return module;
|
|
53
63
|
try {
|
|
54
|
-
return
|
|
64
|
+
return module.extractStoryComponent(storyFile);
|
|
55
65
|
}
|
|
56
66
|
catch (error) {
|
|
57
67
|
return `${storyFile}: the docs could not be read: ${error instanceof Error ? error.message : String(error)}`;
|
|
@@ -66,19 +76,43 @@ const usage = (files) => {
|
|
|
66
76
|
return `The stories' usage could not be read: ${error instanceof Error ? error.message : String(error)}`;
|
|
67
77
|
}
|
|
68
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* The stamps an answer is kept with: its story files' dependencies as they are now, or none when one changed since the
|
|
81
|
+
* answer's making started, which may then hold what the file was before.
|
|
82
|
+
*
|
|
83
|
+
* @param storyFiles - the story files read.
|
|
84
|
+
* @param since - when the reading started.
|
|
85
|
+
*/
|
|
86
|
+
const keptStamps = (storyFiles, since) => {
|
|
87
|
+
// a worker whose answers are not kept (a build's) does not walk their files
|
|
88
|
+
if (!isWorkerData(workerData) || !workerData.keepsAnswers)
|
|
89
|
+
return undefined;
|
|
90
|
+
const stamps = stampPaths(docsDependencies(storyFiles));
|
|
91
|
+
return isSettledSince(stamps, since) ? stamps : undefined;
|
|
92
|
+
};
|
|
69
93
|
parentPort?.on("message", (request) => {
|
|
70
94
|
if (request.kind === "changed") {
|
|
71
95
|
markSourcesChanged();
|
|
96
|
+
void docsModule.then((module) => {
|
|
97
|
+
if (typeof module !== "string")
|
|
98
|
+
module.sourcesChanged?.();
|
|
99
|
+
});
|
|
72
100
|
return;
|
|
73
101
|
}
|
|
74
102
|
if (request.kind === "usage") {
|
|
75
|
-
const
|
|
103
|
+
const since = nowNs();
|
|
104
|
+
const result = usage(request.files);
|
|
105
|
+
const stamps = typeof result === "string"
|
|
106
|
+
? undefined
|
|
107
|
+
: keptStamps(request.files.map((file) => file.storyFile), since);
|
|
108
|
+
const response = { kind: "usage", id: request.id, result, stamps };
|
|
76
109
|
parentPort?.postMessage(response);
|
|
77
110
|
return;
|
|
78
111
|
}
|
|
112
|
+
const since = nowNs();
|
|
79
113
|
void extracted(request.storyFile).then((result) => {
|
|
80
|
-
const
|
|
114
|
+
const stamps = typeof result === "string" ? undefined : keptStamps([request.storyFile], since);
|
|
115
|
+
const response = { kind: "extract", id: request.id, result, stamps };
|
|
81
116
|
parentPort?.postMessage(response);
|
|
82
117
|
});
|
|
83
118
|
});
|
|
84
|
-
//# sourceMappingURL=docsWorker.js.map
|