forgebook 0.3.2 → 0.4.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 +917 -74
- package/dist/bin/forgebook/agentClient.d.ts +2 -1
- package/dist/bin/forgebook/agentClient.js +13 -6
- package/dist/bin/forgebook/agentGuide.d.ts +59 -0
- package/dist/bin/forgebook/agentGuide.js +203 -0
- package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
- package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
- package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
- package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
- package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
- package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
- package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
- package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
- package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
- package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
- package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
- package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
- package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
- package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
- package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
- package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
- package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
- package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
- package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
- package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
- package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
- package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
- package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
- package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
- package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
- package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
- package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
- package/dist/bin/forgebook/agentText.d.ts +23 -3
- package/dist/bin/forgebook/agentText.js +175 -28
- package/dist/bin/forgebook/agents.md +20 -191
- package/dist/bin/forgebook/agentsText.js +2 -1
- package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
- package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
- package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
- package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
- package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
- package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
- package/dist/bin/forgebook/auditCommand.d.mts +8 -0
- package/dist/bin/forgebook/auditCommand.mjs +75 -0
- package/dist/bin/forgebook/auditRun.d.ts +95 -0
- package/dist/bin/forgebook/auditRun.js +270 -0
- package/dist/bin/forgebook/browserRun.d.ts +21 -0
- package/dist/bin/forgebook/browserRun.js +57 -0
- package/dist/bin/forgebook/buildFailure.d.ts +7 -0
- package/dist/bin/forgebook/buildFailure.js +47 -0
- package/dist/bin/forgebook/buildWatch.d.ts +52 -0
- package/dist/bin/forgebook/buildWatch.js +137 -0
- package/dist/bin/forgebook/builtCatalogue.js +9 -5
- package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
- package/dist/bin/forgebook/catalogueCommands.js +23 -0
- package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
- package/dist/bin/forgebook/catalogueVite.js +14 -6
- package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
- package/dist/bin/forgebook/commandCacheClaim.js +170 -0
- package/dist/bin/forgebook/commandServer.d.ts +8 -0
- package/dist/bin/forgebook/commandServer.js +61 -13
- package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
- package/dist/bin/forgebook/graphCommand.d.mts +8 -0
- package/dist/bin/forgebook/graphCommand.mjs +84 -0
- package/dist/bin/forgebook/guide/commands.md +57 -0
- package/dist/bin/forgebook/guide/devices.md +17 -0
- package/dist/bin/forgebook/guide/docs-pages.md +13 -0
- package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
- package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
- package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
- package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
- package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
- package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
- package/dist/bin/forgebook/guide/links.md +29 -0
- package/dist/bin/forgebook/guide/setup.md +23 -0
- package/dist/bin/forgebook/guide/stories.md +90 -0
- package/dist/bin/forgebook/guide/switches.md +43 -0
- package/dist/bin/forgebook/guideCommand.d.mts +13 -0
- package/dist/bin/forgebook/guideCommand.mjs +37 -0
- package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
- package/dist/bin/forgebook/importers/storybook.js +11 -5
- package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
- package/dist/bin/forgebook/initCommands.d.mts +11 -0
- package/dist/bin/forgebook/initCommands.mjs +51 -78
- package/dist/bin/forgebook/initConfig.d.ts +5 -3
- package/dist/bin/forgebook/initConfig.js +6 -3
- package/dist/bin/forgebook/initInstall.d.ts +15 -0
- package/dist/bin/forgebook/initInstall.js +77 -0
- package/dist/bin/forgebook/initPrint.d.ts +9 -0
- package/dist/bin/forgebook/initPrint.js +60 -0
- package/dist/bin/forgebook/initRefusals.d.ts +45 -0
- package/dist/bin/forgebook/initRefusals.js +91 -0
- package/dist/bin/forgebook/initRun.d.ts +28 -0
- package/dist/bin/forgebook/initRun.js +311 -0
- package/dist/bin/forgebook/mcpCommand.mjs +38 -4
- package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
- package/dist/bin/forgebook/mcpGraph.js +24 -0
- package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
- package/dist/bin/forgebook/mcpTokens.js +58 -0
- package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
- package/dist/bin/forgebook/mcpToolParts.js +10 -0
- package/dist/bin/forgebook/mcpTools.d.ts +13 -6
- package/dist/bin/forgebook/mcpTools.js +57 -90
- package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
- package/dist/bin/forgebook/mcpVerify.js +36 -0
- package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
- package/dist/bin/forgebook/migrate/codemods.js +61 -0
- package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
- package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
- package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
- package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
- package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
- package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
- package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
- package/dist/bin/forgebook/migrate/migrateText.js +30 -0
- package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
- package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
- package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
- package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
- package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
- package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
- package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
- package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
- package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
- package/dist/bin/forgebook/newProject/newProject.js +180 -0
- package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
- package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
- package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
- package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
- package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
- package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
- package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
- package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
- package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
- package/dist/bin/forgebook/newProject/projectLook.js +293 -0
- package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
- package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
- package/dist/bin/forgebook/newRepair.d.ts +45 -0
- package/dist/bin/forgebook/newRepair.js +157 -0
- package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
- package/dist/bin/forgebook/newRepairRun.js +148 -0
- package/dist/bin/forgebook/newStories.d.ts +23 -1
- package/dist/bin/forgebook/newStories.js +101 -11
- package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
- package/dist/bin/forgebook/newStoriesFile.js +43 -4
- package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
- package/dist/bin/forgebook/prebundleRun.js +28 -8
- package/dist/bin/forgebook/proofCommand.d.mts +15 -0
- package/dist/bin/forgebook/proofCommand.mjs +212 -0
- package/dist/bin/forgebook/proofRun.d.ts +63 -0
- package/dist/bin/forgebook/proofRun.js +412 -0
- package/dist/bin/forgebook/proofText.d.ts +36 -0
- package/dist/bin/forgebook/proofText.js +131 -0
- package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
- package/dist/bin/forgebook/proofWorkflow.js +205 -0
- package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
- package/dist/bin/forgebook/setArgsTool.js +70 -0
- package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
- package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
- package/dist/bin/forgebook/storyCheckRun.js +83 -9
- package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
- package/dist/bin/forgebook/storyFileIds.js +14 -0
- package/dist/bin/forgebook/stressCases.d.ts +31 -0
- package/dist/bin/forgebook/stressCases.js +79 -0
- package/dist/bin/forgebook/stressRun.d.ts +12 -0
- package/dist/bin/forgebook/stressRun.js +61 -0
- package/dist/bin/forgebook/stressText.d.ts +27 -0
- package/dist/bin/forgebook/stressText.js +46 -0
- package/dist/bin/forgebook/verifyBase.d.ts +45 -0
- package/dist/bin/forgebook/verifyBase.js +196 -0
- package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
- package/dist/bin/forgebook/verifyCommand.mjs +125 -0
- package/dist/bin/forgebook/verifyRun.d.ts +63 -0
- package/dist/bin/forgebook/verifyRun.js +108 -0
- package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
- package/dist/bin/forgebook/verifyVerdict.js +297 -0
- package/dist/bin/forgebook/workflowActions.d.ts +23 -0
- package/dist/bin/forgebook/workflowActions.js +23 -0
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
- package/dist/src/addressArgs.d.ts +54 -6
- package/dist/src/addressArgs.js +72 -16
- package/dist/src/addressArgsParam.d.ts +54 -0
- package/dist/src/addressArgsParam.js +51 -0
- package/dist/src/addressTexts.d.ts +14 -0
- package/dist/src/addressTexts.js +28 -21
- package/dist/src/agentIndexFile.d.ts +11 -0
- package/dist/src/agentIndexFile.js +11 -0
- package/dist/src/argConditions.d.ts +52 -0
- package/dist/src/argConditions.js +80 -0
- package/dist/src/argControl.d.ts +100 -0
- package/dist/src/argControl.js +0 -0
- package/dist/src/argExpression.d.ts +21 -0
- package/dist/src/argExpression.js +30 -0
- package/dist/src/argTypes.d.ts +40 -51
- package/dist/src/argTypes.js +66 -184
- package/dist/src/argsProps.d.ts +3 -3
- package/dist/src/argsProps.js +11 -5
- package/dist/src/bundlerErrors.d.ts +29 -0
- package/dist/src/bundlerErrors.js +49 -0
- package/dist/src/catalogue.d.ts +31 -0
- package/dist/src/catalogue.js +13 -2
- package/dist/src/catalogueRefs.d.ts +75 -0
- package/dist/src/catalogueRefs.js +122 -0
- package/dist/src/componentDocs.d.ts +71 -0
- package/dist/src/componentDocs.js +15 -2
- package/dist/src/frame/callValues.d.ts +19 -0
- package/dist/src/frame/callValues.js +58 -0
- package/dist/src/frame/canvasScheme.d.ts +33 -0
- package/dist/src/frame/canvasScheme.js +67 -0
- package/dist/src/frame/frame.css +36 -3
- package/dist/src/frame/frameStatus.d.ts +16 -1
- package/dist/src/frame/frameStatus.js +16 -1
- package/dist/src/frame/frameView.js +4 -3
- package/dist/src/frame/mountFrame.d.ts +7 -1
- package/dist/src/frame/mountFrame.js +153 -46
- package/dist/src/frame/panelValues.d.ts +35 -0
- package/dist/src/frame/panelValues.js +127 -0
- package/dist/src/frame/playActions.d.ts +39 -0
- package/dist/src/frame/playActions.js +98 -0
- package/dist/src/frame/playStepper.d.ts +28 -0
- package/dist/src/frame/playStepper.js +38 -0
- package/dist/src/frame/playStory.d.ts +9 -1
- package/dist/src/frame/playStory.js +49 -3
- package/dist/src/frame/renderer.d.ts +34 -1
- package/dist/src/frame/renderer.js +24 -0
- package/dist/src/frame/shellChannel.d.ts +1 -1
- package/dist/src/frame/shellChannel.js +1 -1
- package/dist/src/frame/shellCheck.d.ts +17 -0
- package/dist/src/frame/shellCheck.js +25 -0
- package/dist/src/frame/shellMessageCheck.d.ts +7 -0
- package/dist/src/frame/shellMessageCheck.js +53 -0
- package/dist/src/frame/storyContent.d.ts +50 -0
- package/dist/src/frame/storyContent.js +73 -0
- package/dist/src/frame/storyModule.d.ts +9 -0
- package/dist/src/frame/storyModule.js +20 -2
- package/dist/src/frame/storyRun.d.ts +15 -7
- package/dist/src/frame/storyRun.js +64 -15
- package/dist/src/frame/valueSheets.d.ts +35 -0
- package/dist/src/frame/valueSheets.js +99 -0
- package/dist/src/hotModules.d.ts +20 -0
- package/dist/src/hotModules.js +23 -0
- package/dist/src/jsxCode.d.ts +1 -14
- package/dist/src/jsxCode.js +46 -10
- package/dist/src/liveErrors.d.ts +30 -4
- package/dist/src/liveErrors.js +18 -3
- package/dist/src/messages.d.ts +77 -27
- package/dist/src/messages.js +58 -100
- package/dist/src/namedValues.d.ts +2 -26
- package/dist/src/namedValues.js +0 -47
- package/dist/src/pageConfig.d.ts +2 -0
- package/dist/src/playTrace.d.ts +19 -2
- package/dist/src/playTrace.js +10 -5
- package/dist/src/plugin.d.ts +10 -3
- package/dist/src/previewRelay.js +9 -1
- package/dist/src/printable.d.ts +12 -0
- package/dist/src/printable.js +22 -0
- package/dist/src/propsSignature.d.ts +37 -0
- package/dist/src/propsSignature.js +40 -0
- package/dist/src/search.d.ts +41 -5
- package/dist/src/search.js +93 -23
- package/dist/src/searchMatch.d.ts +4 -1
- package/dist/src/searchMatch.js +26 -5
- package/dist/src/searchTypos.d.ts +88 -0
- package/dist/src/searchTypos.js +178 -0
- package/dist/src/shapeValues.d.ts +86 -0
- package/dist/src/shapeValues.js +295 -0
- package/dist/src/shell/ApiReference.js +6 -3
- package/dist/src/shell/ApiTableBox.d.ts +15 -0
- package/dist/src/shell/ApiTableBox.js +11 -0
- package/dist/src/shell/AppearanceMenu.d.ts +4 -1
- package/dist/src/shell/AppearanceMenu.js +9 -6
- package/dist/src/shell/CodeTab.d.ts +3 -2
- package/dist/src/shell/CodeTab.js +3 -2
- package/dist/src/shell/CodeText.d.ts +1 -1
- package/dist/src/shell/CodeText.js +2 -3
- package/dist/src/shell/CompareGrid.js +1 -1
- package/dist/src/shell/ComponentPage.d.ts +1 -1
- package/dist/src/shell/ComponentPage.js +5 -1
- package/dist/src/shell/CustomControl.d.ts +34 -0
- package/dist/src/shell/CustomControl.js +132 -0
- package/dist/src/shell/DocContainers.js +1 -1
- package/dist/src/shell/DocPage.js +2 -2
- package/dist/src/shell/DroppedArgsList.d.ts +2 -2
- package/dist/src/shell/DroppedArgsList.js +1 -1
- package/dist/src/shell/EmbedPage.js +58 -14
- package/dist/src/shell/Example.d.ts +5 -1
- package/dist/src/shell/Example.js +16 -8
- package/dist/src/shell/FrameView.d.ts +6 -3
- package/dist/src/shell/FrameView.js +2 -2
- package/dist/src/shell/HomePage.d.ts +3 -1
- package/dist/src/shell/HomePage.js +16 -6
- package/dist/src/shell/InfoTip.js +2 -2
- package/dist/src/shell/InteractionsTab.d.ts +11 -4
- package/dist/src/shell/InteractionsTab.js +18 -2
- package/dist/src/shell/LazyPage.js +1 -1
- package/dist/src/shell/PackageHtml.js +3 -1
- package/dist/src/shell/PinnedControl.js +14 -62
- package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
- package/dist/src/shell/PinnedControlMenu.js +72 -0
- package/dist/src/shell/PluginBlockHost.js +2 -1
- package/dist/src/shell/PluginTabHost.js +19 -2
- package/dist/src/shell/PropFields.d.ts +3 -1
- package/dist/src/shell/PropFields.js +9 -6
- package/dist/src/shell/PropRows.d.ts +23 -2
- package/dist/src/shell/PropRows.js +58 -19
- package/dist/src/shell/PropsTab.d.ts +12 -5
- package/dist/src/shell/PropsTab.js +9 -21
- package/dist/src/shell/RefStoryPage.d.ts +33 -0
- package/dist/src/shell/RefStoryPage.js +123 -0
- package/dist/src/shell/SearchPanel.js +51 -24
- package/dist/src/shell/Shell.d.ts +18 -0
- package/dist/src/shell/Shell.js +137 -22
- package/dist/src/shell/ShortcutHelp.d.ts +22 -0
- package/dist/src/shell/ShortcutHelp.js +66 -0
- package/dist/src/shell/Sidebar.d.ts +17 -4
- package/dist/src/shell/Sidebar.js +92 -41
- package/dist/src/shell/SidebarDocs.js +2 -2
- package/dist/src/shell/SidebarEntries.js +5 -3
- package/dist/src/shell/SidebarHandle.d.ts +3 -5
- package/dist/src/shell/SidebarHandle.js +4 -4
- package/dist/src/shell/SidebarRefs.d.ts +39 -0
- package/dist/src/shell/SidebarRefs.js +99 -0
- package/dist/src/shell/SidebarSearch.js +37 -9
- package/dist/src/shell/SignatureReference.js +3 -1
- package/dist/src/shell/Stage.d.ts +10 -2
- package/dist/src/shell/Stage.js +35 -60
- package/dist/src/shell/StatusBadges.d.ts +54 -0
- package/dist/src/shell/StatusBadges.js +77 -0
- package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
- package/dist/src/shell/StoryCodeBlock.js +7 -6
- package/dist/src/shell/SwitchGallery.d.ts +36 -0
- package/dist/src/shell/SwitchGallery.js +17 -0
- package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
- package/dist/src/shell/SwitchGalleryPanel.js +99 -0
- package/dist/src/shell/TagFilter.d.ts +24 -0
- package/dist/src/shell/TagFilter.js +45 -0
- package/dist/src/shell/TagViews.d.ts +39 -0
- package/dist/src/shell/TagViews.js +20 -0
- package/dist/src/shell/Toolbar.d.ts +4 -1
- package/dist/src/shell/Toolbar.js +17 -7
- package/dist/src/shell/ToolbarControl.d.ts +3 -0
- package/dist/src/shell/ToolbarControl.js +23 -6
- package/dist/src/shell/ViewMenuPanel.js +6 -1
- package/dist/src/shell/argChecks.d.ts +22 -0
- package/dist/src/shell/argChecks.js +20 -0
- package/dist/src/shell/asideStory.d.ts +17 -4
- package/dist/src/shell/asideStory.js +21 -4
- package/dist/src/shell/audienceSections.css +9 -9
- package/dist/src/shell/catalogueContext.d.ts +1 -1
- package/dist/src/shell/catalogueContext.js +6 -1
- package/dist/src/shell/codeSpans.d.ts +27 -0
- package/dist/src/shell/codeSpans.js +76 -0
- package/dist/src/shell/compareVariants.d.ts +4 -2
- package/dist/src/shell/compareVariants.js +16 -8
- package/dist/src/shell/composition.d.ts +23 -0
- package/dist/src/shell/composition.js +26 -0
- package/dist/src/shell/controlCycle.d.ts +1 -1
- package/dist/src/shell/controlCycle.js +3 -2
- package/dist/src/shell/customControls.d.ts +55 -0
- package/dist/src/shell/customControls.js +70 -0
- package/dist/src/shell/docPage.css +22 -22
- package/dist/src/shell/dockTabs.d.ts +19 -3
- package/dist/src/shell/dockTabs.js +28 -20
- package/dist/src/shell/embed.css +7 -7
- package/dist/src/shell/framesOrigin.d.ts +7 -0
- package/dist/src/shell/framesOrigin.js +1 -1
- package/dist/src/shell/galleryPlace.d.ts +20 -0
- package/dist/src/shell/galleryPlace.js +26 -0
- package/dist/src/shell/icons.d.ts +1 -0
- package/dist/src/shell/icons.js +1 -0
- package/dist/src/shell/keyboard.d.ts +14 -12
- package/dist/src/shell/keyboard.js +21 -6
- package/dist/src/shell/laterStrings.d.ts +29 -0
- package/dist/src/shell/laterStrings.js +42 -3
- package/dist/src/shell/mountShell.js +3 -0
- package/dist/src/shell/pageStrings.d.ts +4 -0
- package/dist/src/shell/pageStrings.js +4 -0
- package/dist/src/shell/pageTagView.d.ts +18 -0
- package/dist/src/shell/pageTagView.js +10 -0
- package/dist/src/shell/playMemory.d.ts +14 -0
- package/dist/src/shell/playMemory.js +8 -0
- package/dist/src/shell/propNotes.d.ts +23 -0
- package/dist/src/shell/propNotes.js +37 -0
- package/dist/src/shell/refIndexLoad.d.ts +17 -0
- package/dist/src/shell/refIndexLoad.js +38 -0
- package/dist/src/shell/refParts.d.ts +34 -0
- package/dist/src/shell/refParts.js +9 -0
- package/dist/src/shell/refStory.css +21 -0
- package/dist/src/shell/refStrings.d.ts +13 -0
- package/dist/src/shell/refStrings.js +21 -0
- package/dist/src/shell/search.css +11 -11
- package/dist/src/shell/shell.css +348 -168
- package/dist/src/shell/shellScheme.js +2 -2
- package/dist/src/shell/shortcutHelp.css +64 -0
- package/dist/src/shell/stageArgs.d.ts +53 -0
- package/dist/src/shell/stageArgs.js +64 -0
- package/dist/src/shell/statusBadges.css +51 -0
- package/dist/src/shell/strings.d.ts +7 -16
- package/dist/src/shell/strings.js +12 -17
- package/dist/src/shell/switchGallery.css +104 -0
- package/dist/src/shell/tagFilter.css +46 -0
- package/dist/src/shell/tagView.d.ts +20 -0
- package/dist/src/shell/tagView.js +10 -0
- package/dist/src/shell/useAddressArgs.d.ts +27 -2
- package/dist/src/shell/useAddressArgs.js +71 -14
- package/dist/src/shell/useControlKeys.js +2 -2
- package/dist/src/shell/useEditedProblems.d.ts +6 -0
- package/dist/src/shell/useEditedProblems.js +40 -0
- package/dist/src/shell/useFrameMessages.js +3 -0
- package/dist/src/shell/useListedTree.d.ts +13 -0
- package/dist/src/shell/useListedTree.js +32 -0
- package/dist/src/shell/usePageFrames.js +2 -2
- package/dist/src/shell/usePopover.d.ts +5 -0
- package/dist/src/shell/usePopover.js +7 -1
- package/dist/src/shell/useRefIndex.d.ts +22 -0
- package/dist/src/shell/useRefIndex.js +36 -0
- package/dist/src/shell/useScrollStops.d.ts +20 -0
- package/dist/src/shell/useScrollStops.js +41 -0
- package/dist/src/shell/useShortcutHelp.d.ts +18 -0
- package/dist/src/shell/useShortcutHelp.js +32 -0
- package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
- package/dist/src/shell/useSidebarOverlay.js +12 -4
- package/dist/src/shell/useStoryCode.d.ts +2 -1
- package/dist/src/shell/useStoryCode.js +12 -7
- package/dist/src/shell/useToolbarLayout.d.ts +5 -1
- package/dist/src/shell/useToolbarLayout.js +2 -2
- package/dist/src/shell/useWorstCase.d.ts +8 -2
- package/dist/src/shell/useWorstCase.js +2 -2
- package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
- package/dist/src/shell/valueEditors/FileEditor.js +66 -0
- package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
- package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
- package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
- package/dist/src/shell/valueEditors/ListEditor.js +82 -0
- package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
- package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
- package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
- package/dist/src/shell/valueEditors/PropEditor.js +53 -0
- package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
- package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
- package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
- package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
- package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
- package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
- package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
- package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
- package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
- package/dist/src/shell/valueEditors/ValueField.js +147 -0
- package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
- package/dist/src/shell/valueEditors/editorStrings.js +66 -0
- package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
- package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
- package/dist/src/shell/valueEditors/valueEditors.css +153 -0
- package/dist/src/shell/worstArgs.d.ts +8 -5
- package/dist/src/shell/worstArgs.js +14 -7
- package/dist/src/shellTheme.d.ts +1 -1
- package/dist/src/shellTheme.js +15 -1
- package/dist/src/shellTheme.types.d.ts +4 -0
- package/dist/src/shellWord.d.ts +12 -0
- package/dist/src/shellWord.js +15 -0
- package/dist/src/sourceFiles.js +2 -1
- package/dist/src/storyArgTypes.d.ts +57 -0
- package/dist/src/storyArgTypes.js +195 -0
- package/dist/src/storyBackground.js +14 -3
- package/dist/src/storyCheck.d.ts +85 -3
- package/dist/src/storyCheck.js +23 -1
- package/dist/src/storyCodeText.d.ts +46 -0
- package/dist/src/storyCodeText.js +27 -0
- package/dist/src/storyControls.d.ts +100 -0
- package/dist/src/storyControls.js +100 -0
- package/dist/src/storyStatuses.d.ts +55 -0
- package/dist/src/storyStatuses.js +104 -0
- package/dist/src/storyTagNames.d.ts +25 -0
- package/dist/src/storyTagNames.js +25 -0
- package/dist/src/storyTags.d.ts +29 -0
- package/dist/src/storyTags.js +85 -0
- package/dist/src/storyTree.d.ts +13 -0
- package/dist/src/storyTree.js +24 -4
- package/dist/src/storybookArgs.d.ts +24 -0
- package/dist/src/storybookArgs.js +185 -0
- package/dist/src/switches.d.ts +66 -3
- package/dist/src/switches.js +42 -1
- package/dist/src/valueSchema.d.ts +28 -0
- package/dist/src/valueSchema.js +196 -0
- package/dist/src/valueShape.d.ts +94 -0
- package/dist/src/valueShape.js +25 -0
- package/dist/src/viewState.d.ts +8 -3
- package/dist/src/viewState.js +27 -10
- package/dist/src/vite/adapter.d.ts +40 -2
- package/dist/src/vite/adapter.js +1 -0
- package/dist/src/vite/agent.types.d.ts +347 -7
- package/dist/src/vite/agentApi.d.ts +23 -0
- package/dist/src/vite/agentApi.js +90 -17
- package/dist/src/vite/agentIndex.d.ts +0 -2
- package/dist/src/vite/agentIndex.js +5 -6
- package/dist/src/vite/agentRoutes.d.ts +20 -1
- package/dist/src/vite/agentRoutes.js +106 -65
- package/dist/src/vite/agentStatuses.d.ts +42 -0
- package/dist/src/vite/agentStatuses.js +67 -0
- package/dist/src/vite/agentStoryCode.d.ts +48 -0
- package/dist/src/vite/agentStoryCode.js +38 -0
- package/dist/src/vite/agentVisibility.d.ts +47 -0
- package/dist/src/vite/agentVisibility.js +174 -0
- package/dist/src/vite/appAudit.d.ts +134 -0
- package/dist/src/vite/appAudit.js +333 -0
- package/dist/src/vite/appBuildOption.d.ts +53 -0
- package/dist/src/vite/appBuildOption.js +55 -0
- package/dist/src/vite/appTokenFiles.d.ts +92 -0
- package/dist/src/vite/appTokenFiles.js +433 -0
- package/dist/src/vite/appTokens.d.ts +23 -0
- package/dist/src/vite/appTokens.js +275 -0
- package/dist/src/vite/builtTexts.d.ts +10 -0
- package/dist/src/vite/builtTexts.js +59 -22
- package/dist/src/vite/catalogueConfig.d.ts +3 -1
- package/dist/src/vite/catalogueConfig.js +15 -3
- package/dist/src/vite/changeCoverage.d.ts +74 -0
- package/dist/src/vite/changeCoverage.js +120 -0
- package/dist/src/vite/changedRoute.d.ts +30 -0
- package/dist/src/vite/changedRoute.js +197 -0
- package/dist/src/vite/checkCode.d.ts +105 -3
- package/dist/src/vite/checkCode.js +323 -36
- package/dist/src/vite/checkoutWatch.d.ts +97 -0
- package/dist/src/vite/checkoutWatch.js +287 -0
- package/dist/src/vite/closeWatch.d.ts +8 -0
- package/dist/src/vite/closeWatch.js +1 -1
- package/dist/src/vite/componentCache.d.ts +8 -0
- package/dist/src/vite/componentCache.js +66 -0
- package/dist/src/vite/componentGraph.d.ts +71 -0
- package/dist/src/vite/componentGraph.js +133 -0
- package/dist/src/vite/componentRules.d.ts +33 -0
- package/dist/src/vite/componentRules.js +105 -0
- package/dist/src/vite/componentScan.d.ts +69 -0
- package/dist/src/vite/componentScan.js +418 -0
- package/dist/src/vite/compositionCheck.d.ts +15 -0
- package/dist/src/vite/compositionCheck.js +243 -0
- package/dist/src/vite/config.d.ts +32 -1
- package/dist/src/vite/configFile.d.ts +14 -2
- package/dist/src/vite/configFile.js +124 -40
- package/dist/src/vite/configKeys.d.ts +15 -0
- package/dist/src/vite/configKeys.js +171 -0
- package/dist/src/vite/configLoadError.d.ts +23 -0
- package/dist/src/vite/configLoadError.js +71 -0
- package/dist/src/vite/cssDeclarations.d.ts +71 -0
- package/dist/src/vite/cssDeclarations.js +290 -0
- package/dist/src/vite/cssImports.d.ts +14 -0
- package/dist/src/vite/cssImports.js +48 -0
- package/dist/src/vite/cssReferences.d.ts +54 -0
- package/dist/src/vite/cssReferences.js +157 -0
- package/dist/src/vite/cssTokenValues.d.ts +50 -0
- package/dist/src/vite/cssTokenValues.js +233 -0
- package/dist/src/vite/designTokens.d.ts +24 -0
- package/dist/src/vite/designTokens.js +5 -1
- package/dist/src/vite/docsExtractor.d.ts +9 -3
- package/dist/src/vite/docsExtractor.js +11 -3
- package/dist/src/vite/docsProgram.d.ts +17 -4
- package/dist/src/vite/docsProgram.js +52 -11
- package/dist/src/vite/docsWorker.js +7 -2
- package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
- package/dist/src/vite/emptyStoryGlobs.js +52 -0
- package/dist/src/vite/fileImports.d.ts +17 -0
- package/dist/src/vite/fileImports.js +57 -0
- package/dist/src/vite/findComponent.d.ts +10 -2
- package/dist/src/vite/findComponent.js +27 -22
- package/dist/src/vite/findRoute.js +3 -2
- package/dist/src/vite/forcedStates.d.ts +9 -2
- package/dist/src/vite/forcedStates.js +12 -3
- package/dist/src/vite/forgebookPlugin.d.ts +2 -0
- package/dist/src/vite/forgebookPlugin.js +52 -72
- package/dist/src/vite/frameErrors.d.ts +19 -0
- package/dist/src/vite/frameErrors.js +70 -0
- package/dist/src/vite/framesServer.d.ts +12 -0
- package/dist/src/vite/framesServer.js +21 -4
- package/dist/src/vite/functionComponentDocs.js +81 -12
- package/dist/src/vite/generatedModules.js +4 -2
- package/dist/src/vite/gitChange.d.ts +38 -5
- package/dist/src/vite/gitChange.js +71 -11
- package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
- package/dist/src/vite/hiddenStoryFiles.js +107 -0
- package/dist/src/vite/hotSnippets.d.ts +38 -14
- package/dist/src/vite/hotSnippets.js +137 -39
- package/dist/src/vite/importedNames.d.ts +37 -0
- package/dist/src/vite/importedNames.js +138 -0
- package/dist/src/vite/indexFields.d.ts +6 -0
- package/dist/src/vite/indexFields.js +21 -0
- package/dist/src/vite/indexStoryFile.d.ts +8 -1
- package/dist/src/vite/indexStoryFile.js +22 -157
- package/dist/src/vite/jsxCallSites.d.ts +33 -0
- package/dist/src/vite/jsxCallSites.js +200 -0
- package/dist/src/vite/jsxInScripts.d.ts +67 -0
- package/dist/src/vite/jsxInScripts.js +138 -0
- package/dist/src/vite/jsxTree.d.ts +20 -0
- package/dist/src/vite/jsxTree.js +163 -0
- package/dist/src/vite/lineAndColumn.d.ts +13 -0
- package/dist/src/vite/lineAndColumn.js +18 -0
- package/dist/src/vite/lookAlikes.d.ts +65 -0
- package/dist/src/vite/lookAlikes.js +228 -0
- package/dist/src/vite/nearestToken.d.ts +17 -0
- package/dist/src/vite/nearestToken.js +9 -2
- package/dist/src/vite/packageEntries.d.ts +42 -0
- package/dist/src/vite/packageEntries.js +127 -0
- package/dist/src/vite/pages.d.ts +9 -1
- package/dist/src/vite/pages.js +108 -4
- package/dist/src/vite/pluginConfig.js +4 -0
- package/dist/src/vite/pluginIds.d.ts +2 -0
- package/dist/src/vite/pluginIds.js +5 -1
- package/dist/src/vite/pluginModules.d.ts +81 -11
- package/dist/src/vite/pluginModules.js +109 -21
- package/dist/src/vite/prebundled.d.ts +57 -15
- package/dist/src/vite/prebundled.js +80 -0
- package/dist/src/vite/previewTags.d.ts +25 -0
- package/dist/src/vite/previewTags.js +56 -0
- package/dist/src/vite/projectFiles.d.ts +54 -0
- package/dist/src/vite/projectFiles.js +116 -0
- package/dist/src/vite/projectPostcss.d.ts +70 -0
- package/dist/src/vite/projectPostcss.js +250 -0
- package/dist/src/vite/propDocs.d.ts +12 -0
- package/dist/src/vite/propDocs.js +130 -58
- package/dist/src/vite/propKind.d.ts +40 -0
- package/dist/src/vite/propKind.js +71 -0
- package/dist/src/vite/propTypeNotes.d.ts +22 -0
- package/dist/src/vite/propTypeNotes.js +51 -0
- package/dist/src/vite/publishedExports.d.ts +27 -0
- package/dist/src/vite/publishedExports.js +298 -0
- package/dist/src/vite/realFolder.d.ts +6 -0
- package/dist/src/vite/realFolder.js +25 -0
- package/dist/src/vite/refsConfig.d.ts +39 -0
- package/dist/src/vite/refsConfig.js +54 -0
- package/dist/src/vite/reuseCheck.d.ts +45 -0
- package/dist/src/vite/reuseCheck.js +260 -0
- package/dist/src/vite/runningVersions.d.ts +33 -0
- package/dist/src/vite/runningVersions.js +25 -0
- package/dist/src/vite/scriptProblems.d.ts +60 -0
- package/dist/src/vite/scriptProblems.js +155 -0
- package/dist/src/vite/searchModule.js +3 -2
- package/dist/src/vite/searchRoute.js +4 -2
- package/dist/src/vite/shapeDocs.d.ts +36 -0
- package/dist/src/vite/shapeDocs.js +177 -0
- package/dist/src/vite/singleFileComponent.d.ts +17 -0
- package/dist/src/vite/singleFileComponent.js +83 -0
- package/dist/src/vite/sourceText.d.ts +34 -0
- package/dist/src/vite/sourceText.js +72 -0
- package/dist/src/vite/sourceTokens.d.ts +7 -0
- package/dist/src/vite/sourceTokens.js +7 -2
- package/dist/src/vite/stackLines.d.ts +49 -0
- package/dist/src/vite/stackLines.js +96 -0
- package/dist/src/vite/storyCode.d.ts +22 -7
- package/dist/src/vite/storyCode.js +263 -37
- package/dist/src/vite/storyCoverage.d.ts +48 -0
- package/dist/src/vite/storyCoverage.js +179 -0
- package/dist/src/vite/storyFilesModule.d.ts +48 -3
- package/dist/src/vite/storyFilesModule.js +105 -15
- package/dist/src/vite/storyPatterns.d.ts +31 -0
- package/dist/src/vite/storyPatterns.js +140 -5
- package/dist/src/vite/storyReach.d.ts +10 -2
- package/dist/src/vite/storyReach.js +15 -11
- package/dist/src/vite/storyTopLevel.d.ts +51 -0
- package/dist/src/vite/storyTopLevel.js +146 -0
- package/dist/src/vite/storylessRoutes.d.ts +4 -3
- package/dist/src/vite/storylessRoutes.js +210 -19
- package/dist/src/vite/switchValuesCheck.d.ts +19 -0
- package/dist/src/vite/switchValuesCheck.js +164 -0
- package/dist/src/vite/switchesDocument.d.ts +15 -0
- package/dist/src/vite/switchesDocument.js +47 -0
- package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
- package/dist/src/vite/tailwindConfigTokens.js +306 -0
- package/dist/src/vite/textImports.d.ts +15 -0
- package/dist/src/vite/textImports.js +58 -0
- package/dist/src/vite/textModules.d.ts +6 -5
- package/dist/src/vite/textModules.js +13 -8
- package/dist/src/vite/tokenAnswers.d.ts +6 -2
- package/dist/src/vite/tokenAnswers.js +11 -7
- package/dist/src/vite/typeParameters.d.ts +83 -0
- package/dist/src/vite/typeParameters.js +270 -0
- package/dist/src/vite/unionProps.d.ts +37 -0
- package/dist/src/vite/unionProps.js +121 -0
- package/dist/src/vite/unresolvedTokens.d.ts +20 -0
- package/dist/src/vite/unresolvedTokens.js +193 -0
- package/dist/src/vite/usageGraph.js +10 -52
- package/dist/src/vite/usageGuidance.d.ts +9 -2
- package/dist/src/vite/usageGuidance.js +36 -8
- package/dist/src/vite/usageImports.d.ts +35 -0
- package/dist/src/vite/usageImports.js +280 -0
- package/dist/src/vite/visibilityRoute.d.ts +16 -0
- package/dist/src/vite/visibilityRoute.js +320 -0
- package/dist/src/worstCase.d.ts +2 -0
- package/dist/src/worstCase.js +2 -0
- package/package.json +28 -8
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which of a project's components to try first when `forgebook init --draw` looks for one that draws.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* A leaf of a design system needs the least of what the app sets up, so names and folders that say so come first, smaller
|
|
6
|
+
* files before larger, and what says page, layout, provider or route comes last or not at all. Only the names are read
|
|
7
|
+
* here, with each file's size: `forgebook new` reads the file itself, and says when it exports no component.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { readdirSync, statSync } from "node:fs";
|
|
12
|
+
import { join, relative } from "node:path";
|
|
13
|
+
import { VITE_PATHS } from "../../../src/vite/vitePaths.js";
|
|
14
|
+
/** What a component file of each framework ends in. */
|
|
15
|
+
const COMPONENT_FILES = {
|
|
16
|
+
vue: /\.vue$/,
|
|
17
|
+
nuxt: /\.vue$/,
|
|
18
|
+
svelte: /\.svelte$/,
|
|
19
|
+
sveltekit: /\.svelte$/,
|
|
20
|
+
angular: /\.component\.ts$/,
|
|
21
|
+
"web-components": /\.[jt]s$/,
|
|
22
|
+
html: /\.[jt]s$/
|
|
23
|
+
};
|
|
24
|
+
/** A component file where the framework's are TSX or JSX. */
|
|
25
|
+
const JSX_FILE = /\.[jt]sx$/;
|
|
26
|
+
/** What is never a component to draw, by its path. */
|
|
27
|
+
const NOT_COMPONENT = /(?:\.(?:test|spec|stories|e2e|cy|d)\.|(?:^|\/)(?:__\w+__|tests?|e2e|cypress|mocks?|fixtures|stories|node_modules|dist|build|out|coverage|public|\.[^/]+)\/|(?:^|\/)\+|\[[^/]*\]|(?:^|\/)(?:_app|_document|_error|main|index|entry[-.\w]*|root|error|global-error|loading|not-found|template|default|middleware|instrumentation)\.[^/]+$)/i;
|
|
28
|
+
/** Names a small, self-contained component usually has. */
|
|
29
|
+
const LEAF_NAME = /(?:^|[/-])(?:button|badge|label|separator|spinner|skeleton|icon|logo|avatar|kbd|tag|chip|card|alert|input|text|title|heading|divider|link|progress|checkbox|switch)[^/]*$/i;
|
|
30
|
+
/** A folder a design system keeps its parts in. */
|
|
31
|
+
const UI_FOLDER = /(?:^|\/)(?:ui|atoms|primitives|base|common|shared|elements|design-system)\//i;
|
|
32
|
+
/** A folder of components. */
|
|
33
|
+
const COMPONENT_FOLDER = /(?:^|\/)components?\//i;
|
|
34
|
+
/** What needs most of what the app sets up. */
|
|
35
|
+
const APP_SHAPED = /(?:page|layout|provider|route|router|app|screen|view|context|store|modal|dialog|form|table|chart|editor|sidebar|nav|header|footer|shell)[^/]*$|(?:^|\/)(?:app|pages|routes|views|screens|features|layouts|providers)\//i;
|
|
36
|
+
/** How many folders a search goes through, so a huge repository's first run stays quick. */
|
|
37
|
+
const SEARCH_LIMIT = 5000;
|
|
38
|
+
/** How many files are ranked. */
|
|
39
|
+
const FILE_LIMIT = 5000;
|
|
40
|
+
/** How many candidates come back: past these, the reason is rarely the component. */
|
|
41
|
+
export const CANDIDATE_LIMIT = 8;
|
|
42
|
+
/**
|
|
43
|
+
* How promising a component's path is: lower comes first.
|
|
44
|
+
*
|
|
45
|
+
* @param path - the file, from the project's folder, with forward slashes.
|
|
46
|
+
* @param size - its size in bytes.
|
|
47
|
+
*/
|
|
48
|
+
export const candidateRank = (path, size) => {
|
|
49
|
+
let rank = Math.min(size / 200, 40);
|
|
50
|
+
if (LEAF_NAME.test(path))
|
|
51
|
+
rank -= 60;
|
|
52
|
+
if (UI_FOLDER.test(path))
|
|
53
|
+
rank -= 40;
|
|
54
|
+
else if (COMPONENT_FOLDER.test(path))
|
|
55
|
+
rank -= 15;
|
|
56
|
+
if (APP_SHAPED.test(path))
|
|
57
|
+
rank += 60;
|
|
58
|
+
return rank;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* The top folders story patterns cover: a component outside them gets stories the catalogue does not list.
|
|
62
|
+
*
|
|
63
|
+
* @param patterns - the patterns (`{app,components}/**\/*.stories.tsx`).
|
|
64
|
+
* @returns the folders; none when any pattern covers more than folders can say, so nothing is left out.
|
|
65
|
+
*/
|
|
66
|
+
export const storyFolders = (patterns) => {
|
|
67
|
+
const folders = [];
|
|
68
|
+
for (const pattern of patterns) {
|
|
69
|
+
if (pattern.startsWith("!"))
|
|
70
|
+
continue;
|
|
71
|
+
const first = pattern.split("/")[0] ?? "";
|
|
72
|
+
if (first === "" || !pattern.includes("/") || first === "**" || first.startsWith("."))
|
|
73
|
+
return [];
|
|
74
|
+
folders.push(...first.replace(/^\{|\}$/g, "").split(","));
|
|
75
|
+
}
|
|
76
|
+
return folders;
|
|
77
|
+
};
|
|
78
|
+
/** A folder's entries; none for one the command may not read, which only leaves its files out. */
|
|
79
|
+
const entriesOf = (dir) => {
|
|
80
|
+
try {
|
|
81
|
+
return readdirSync(dir, { withFileTypes: true });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* The project's component files to try, the most promising first.
|
|
89
|
+
*
|
|
90
|
+
* @param projectDir - the project's folder.
|
|
91
|
+
* @param framework - the adapter's name.
|
|
92
|
+
* @param folders - the top folders to look in; every one when none.
|
|
93
|
+
* @returns the files, from the project's folder.
|
|
94
|
+
*/
|
|
95
|
+
export const drawCandidates = (projectDir, framework, folders = []) => {
|
|
96
|
+
const isComponent = COMPONENT_FILES[framework] ?? JSX_FILE;
|
|
97
|
+
const queue = folders.length === 0 ? [projectDir] : folders.map((folder) => join(projectDir, folder));
|
|
98
|
+
const found = [];
|
|
99
|
+
const noteEntry = (entry, full) => {
|
|
100
|
+
const path = VITE_PATHS.normalize(relative(projectDir, full));
|
|
101
|
+
if (entry.isDirectory() && !NOT_COMPONENT.test(`${path}/`))
|
|
102
|
+
queue.push(full);
|
|
103
|
+
if (entry.isFile() && isComponent.test(entry.name) && !NOT_COMPONENT.test(path))
|
|
104
|
+
found.push({ path, rank: candidateRank(path, statSync(full).size) });
|
|
105
|
+
};
|
|
106
|
+
for (const dir of queue) {
|
|
107
|
+
if (queue.length > SEARCH_LIMIT || found.length > FILE_LIMIT)
|
|
108
|
+
break;
|
|
109
|
+
for (const entry of entriesOf(dir))
|
|
110
|
+
noteEntry(entry, join(dir, entry.name));
|
|
111
|
+
}
|
|
112
|
+
return found
|
|
113
|
+
.sort((a, b) => a.rank - b.rank || a.path.localeCompare(b.path))
|
|
114
|
+
.slice(0, CANDIDATE_LIMIT)
|
|
115
|
+
.map(({ path }) => path);
|
|
116
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a story did not draw, named: what an agent or a person reads instead of a bundler's words, with the step to take.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Pure: a message in, a diagnosis out. The patterns are what Vite, Node, the browser and the libraries really say, and an
|
|
6
|
+
* unknown message stays itself, under its own kind, never a guess. A project's text is only ever shown, cut short.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
/** What stopped a story from drawing. */
|
|
11
|
+
export type DrawFailureKind = "no-component" | "missing-import" | "provider" | "server-only" | "style-sheet" | "native-build" | "browser" | "app-config" | "older-forgebook" | "nuxt-runtime" | "network" | "unbuilt-package" | "generated-files" | "needs-props" | "old-sass" | "blank" | "timeout" | "unknown";
|
|
12
|
+
/** Why a story did not draw. */
|
|
13
|
+
export type DrawDiagnosis = {
|
|
14
|
+
/** What kind of thing stopped it. */
|
|
15
|
+
readonly kind: DrawFailureKind;
|
|
16
|
+
/** What was said, cut short. */
|
|
17
|
+
readonly message: string;
|
|
18
|
+
/** What to do. */
|
|
19
|
+
readonly nextStep: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Why a story did not draw.
|
|
23
|
+
*
|
|
24
|
+
* @param said - what the command or the frame said.
|
|
25
|
+
*/
|
|
26
|
+
export declare const diagnosed: (said: string) => DrawDiagnosis;
|
|
27
|
+
/** The diagnosis of a story that drew nothing visible. */
|
|
28
|
+
export declare const BLANK: DrawDiagnosis;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a story did not draw, named: what an agent or a person reads instead of a bundler's words, with the step to take.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Pure: a message in, a diagnosis out. The patterns are what Vite, Node, the browser and the libraries really say, and an
|
|
6
|
+
* unknown message stays itself, under its own kind, never a guess. A project's text is only ever shown, cut short.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { printable } from "../../../src/printable.js";
|
|
11
|
+
/** The longest message kept: a stack would flood an agent's context. */
|
|
12
|
+
const MESSAGE_LENGTH = 400;
|
|
13
|
+
/** What a package manager runs when it installs a package with native code, which `--ignore-scripts` leaves undone. */
|
|
14
|
+
const NATIVE_STEP = "A package's install step did not run: run the project's install without --ignore-scripts, or rebuild that package";
|
|
15
|
+
/** The rules, the most telling first. */
|
|
16
|
+
const RULES = [
|
|
17
|
+
{
|
|
18
|
+
pattern: /fetch failed|ETIMEDOUT|ENOTFOUND|ECONNREFUSED|ECONNRESET|Fetch web fonts timeout/,
|
|
19
|
+
kind: "network",
|
|
20
|
+
nextStep: () => "Something the app's build runs fetched from the network and could not (UnoCSS's web fonts, a fonts module): check the connection and run this again, or name the plugin in appBuild.skipPlugins"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
pattern: /written by Nuxt's build, which a catalogue does not run|#nuxt-i18n\/|forgebook-nuxt:(?:kept|build):/i,
|
|
24
|
+
kind: "nuxt-runtime",
|
|
25
|
+
nextStep: () => "The component reads what a Nuxt module sets up when Nuxt's app runs (i18n's messages, a plugin's provide), which a catalogue does not run: give it in a decorator of forgebook.preview, or try a component that needs none"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
pattern: /TSCONFIG_ERROR|Failed to load tsconfig|Cannot find base config/i,
|
|
29
|
+
kind: "generated-files",
|
|
30
|
+
nextStep: () => "The project's tsconfig.json extends a file a tool writes: run that tool (svelte-kit sync, nuxt prepare), or an install with its scripts"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
pattern: /sass\.initAsyncCompiler is not a function/i,
|
|
34
|
+
kind: "old-sass",
|
|
35
|
+
nextStep: () => "The project's Sass is older than the catalogue's Vite can use: upgrade sass, to 1.70 or later"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
pattern: /no valid target file was found|Package path \S+ is (?:not )?exported/i,
|
|
39
|
+
kind: "unbuilt-package",
|
|
40
|
+
nextStep: () => "A package the project imports has no built files: in a workspace, build its packages first, then run this again"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
pattern: /Unexpected token Function\("theme"\)|Unknown at rule: @(?:tailwind|apply|theme|source)/i,
|
|
44
|
+
kind: "style-sheet",
|
|
45
|
+
nextStep: () => "Tailwind's own syntax reached the compiler unprocessed. On Nuxt a module's work is not done (@nuxt/ui, @nuxtjs/tailwindcss): keep to a sheet with no such import in nuxt.config's css, or give the catalogue its own; elsewhere, check the project's Tailwind plugin or PostCSS is declared"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
pattern: /Unknown option '--json'|unknown command (?:new|check|shot|stories)/i,
|
|
49
|
+
kind: "older-forgebook",
|
|
50
|
+
nextStep: () => "The project installed an older forgebook than the one running this: a package manager's release-age or trust rule can do that; install the same version, then run this again"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
pattern: /Executable doesn't exist|playwright install|Stories run in a browser with/i,
|
|
54
|
+
kind: "browser",
|
|
55
|
+
nextStep: () => "Install the browser: forgebook browser (or forgebook init --browser)"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
pattern: /exports no component|cannot read a component|no component/i,
|
|
59
|
+
kind: "no-component",
|
|
60
|
+
nextStep: () => "This file exports no component to draw: name one with forgebook new <file> --export <name>"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
pattern: /native binding|\.node['" ]|was compiled against|NODE_MODULE_VERSION|bindings file/i,
|
|
64
|
+
kind: "native-build",
|
|
65
|
+
nextStep: () => NATIVE_STEP
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
pattern: /could not be loaded, so its aliases|vite\.config[^ ]* could not|failed to load config/i,
|
|
69
|
+
kind: "app-config",
|
|
70
|
+
nextStep: () => "The app's Vite configuration did not load: fix what it says, or set appBuild: { viteConfig: false } in forgebook.config.ts"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
pattern: /(?:Failed to resolve import|Cannot find (?:module|package)|Rollup failed to resolve|Could not resolve)\s+["']?([^"'\s]+)/i,
|
|
74
|
+
kind: "missing-import",
|
|
75
|
+
// never the name in the sentence: it is the project's text, and "install it" would make it an instruction
|
|
76
|
+
nextStep: (name) => name.startsWith(".") || name.startsWith("/")
|
|
77
|
+
? "A file the component imports is not there: one a build step writes, perhaps; run that step first"
|
|
78
|
+
: "An import does not resolve: if the message names a package the project's manifest declares, install the project; if an alias of the app's build, check what forgebook dev says it read (appBuild)"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
pattern: /does the file exist|Failed to fetch dynamically imported module/i,
|
|
82
|
+
kind: "missing-import",
|
|
83
|
+
nextStep: () => "A module of the story did not load: open the frame to see which, and install or generate it"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
pattern: /\b(next\/headers|server-only|cookies\(\)|async Client Component|Server Component)\b/i,
|
|
87
|
+
kind: "server-only",
|
|
88
|
+
nextStep: () => "This component runs on the server: try a client component, or give it what it reads through the story's parameters"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
pattern: /must be (?:used|rendered|wrapped) (?:with)?in|\bwithin (?:a|an|the) [A-Za-z<]*(?:Provider|Router|Context|Root)\b|outside (?:of )?(?:a |an |the )?[<A-Za-z]*(?:Provider|Router|Context)\b|No QueryClient set|could not find [a-z-]*\s?(?:store|context|react-redux)|use[A-Z]\w+(?:\(\))? (?:may be used|can only be used)|Cannot destructure property .* of .*(?:useContext|Context)|injection "[^"]+" not found|No [A-Za-z]+ (?:context|provider)|Context is (?:undefined|null)|lifecycle_outside_component|set_context_after_init|No router|without first setting the initial locale|Missing Provider/i,
|
|
92
|
+
kind: "provider",
|
|
93
|
+
nextStep: () => "The component needs what the app wraps it in: add a decorator to forgebook.preview with that provider (init's next steps name the ones the entry sets up)"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
pattern: /Cannot apply unknown utility|@apply|Unexpected token|Unknown at rule|lightningcss|CssSyntaxError|Tailwind/i,
|
|
97
|
+
kind: "style-sheet",
|
|
98
|
+
nextStep: () => "A style sheet did not compile: check the preview's imports; forgebook dev prints what it read of the app's PostCSS and plugins"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
pattern: /Cannot read propert(?:y|ies) of (?:undefined|null)|is not iterable|is not a function/i,
|
|
102
|
+
kind: "needs-props",
|
|
103
|
+
nextStep: () => "The component reads a prop or data the first story does not give: complete its args in the story file"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
pattern: /did not say it was ready|timed? ?out/i,
|
|
107
|
+
kind: "timeout",
|
|
108
|
+
nextStep: () => "No answer in time: the component may wait for data the story does not give, or a plugin of the app's starts a process of its own (name it in appBuild.skipPlugins)"
|
|
109
|
+
}
|
|
110
|
+
];
|
|
111
|
+
/**
|
|
112
|
+
* Why a story did not draw.
|
|
113
|
+
*
|
|
114
|
+
* @param said - what the command or the frame said.
|
|
115
|
+
*/
|
|
116
|
+
export const diagnosed = (said) => {
|
|
117
|
+
const message = printable(said.trim().slice(0, MESSAGE_LENGTH));
|
|
118
|
+
for (const { pattern, kind, nextStep } of RULES) {
|
|
119
|
+
const found = said.match(pattern);
|
|
120
|
+
if (found !== null)
|
|
121
|
+
return { kind, message, nextStep: printable(nextStep(found[1] ?? "")) };
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
kind: "unknown",
|
|
125
|
+
message,
|
|
126
|
+
nextStep: "Nothing known says this: open the frame with forgebook dev, and read the error it shows"
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
/** The diagnosis of a story that drew nothing visible. */
|
|
130
|
+
export const BLANK = {
|
|
131
|
+
kind: "blank",
|
|
132
|
+
message: "The story drew and nothing can be seen: no text, and no element with a size",
|
|
133
|
+
nextStep: "The component may need props or data the first story does not give: complete its args in the story file"
|
|
134
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type StoryCheckResult } from "../../../src/storyCheck.ts";
|
|
2
|
+
import { type DrawDiagnosis } from "./drawDiagnosis.ts";
|
|
3
|
+
/** One component tried. */
|
|
4
|
+
export type DrawAttempt = {
|
|
5
|
+
/** The component's file, or the story's when the project had it; from the project's folder. */
|
|
6
|
+
readonly file: string;
|
|
7
|
+
/** Why it did not draw. */
|
|
8
|
+
readonly diagnosis: DrawDiagnosis;
|
|
9
|
+
};
|
|
10
|
+
/** What came of trying to draw. */
|
|
11
|
+
export type DrawResult = {
|
|
12
|
+
/** Whether a story drew, none was tried, or all that were tried failed. */
|
|
13
|
+
readonly status: "drawn" | "failed" | "not-run";
|
|
14
|
+
/** The story that drew, by its id. */
|
|
15
|
+
readonly story: string | undefined;
|
|
16
|
+
/** The story file it is in, from the project's folder. */
|
|
17
|
+
readonly storyFile: string | undefined;
|
|
18
|
+
/** Whether this run wrote that file. */
|
|
19
|
+
readonly isWritten: boolean;
|
|
20
|
+
/** The picture of it, absolute. */
|
|
21
|
+
readonly picture: string | undefined;
|
|
22
|
+
/** What was tried before it, each with why it did not draw. */
|
|
23
|
+
readonly attempts: readonly DrawAttempt[];
|
|
24
|
+
/** Why the run stopped short; none when it went through all it could. */
|
|
25
|
+
readonly stoppedBecause: string | undefined;
|
|
26
|
+
/** The wrappers of the app's entry written into the preview for it to draw; none when it needed none. */
|
|
27
|
+
readonly liftedProviders?: readonly string[];
|
|
28
|
+
};
|
|
29
|
+
/** What a step's process said. */
|
|
30
|
+
type StepOutput = {
|
|
31
|
+
readonly stdout: string;
|
|
32
|
+
readonly stderr: string;
|
|
33
|
+
readonly isOk: boolean;
|
|
34
|
+
};
|
|
35
|
+
/** Where the steps run. */
|
|
36
|
+
export type DrawContext = {
|
|
37
|
+
/** The project's folder. */
|
|
38
|
+
readonly dir: string;
|
|
39
|
+
/** The adapter's name. */
|
|
40
|
+
readonly framework: string;
|
|
41
|
+
/** The top folders to look for components in; every one when none. */
|
|
42
|
+
readonly folders?: readonly string[];
|
|
43
|
+
/**
|
|
44
|
+
* Gives the preview the providers of the app's entry: a way to undo it, when it could; run when components fail for want
|
|
45
|
+
* of one.
|
|
46
|
+
*/
|
|
47
|
+
readonly liftProviders?: () => {
|
|
48
|
+
readonly names: readonly string[];
|
|
49
|
+
readonly undo: () => void;
|
|
50
|
+
} | undefined;
|
|
51
|
+
/** Writes what a framework's tools write on install and an install without scripts leaves undone; none has none. */
|
|
52
|
+
readonly prepare?: () => Promise<void>;
|
|
53
|
+
/** Runs the project's `forgebook` with these arguments. */
|
|
54
|
+
readonly run: (args: readonly string[]) => Promise<StepOutput>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The file of the `forgebook` command a project installed; none when it has not.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Run by Node and not through the package manager, which reads some of the arguments as its own: Yarn 1 takes `--json`.
|
|
61
|
+
*
|
|
62
|
+
* @param dir - the project's folder.
|
|
63
|
+
*/
|
|
64
|
+
export declare const installedForgebook: (dir: string) => string | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Runs the project's own `forgebook`.
|
|
67
|
+
*
|
|
68
|
+
* @param dir - the project's folder.
|
|
69
|
+
* @param env - the environment.
|
|
70
|
+
*/
|
|
71
|
+
export declare const projectForgebook: (dir: string, env: Readonly<Record<string, string | undefined>>) => (args: readonly string[]) => Promise<StepOutput>;
|
|
72
|
+
/**
|
|
73
|
+
* Writes a framework's generated folder when it is missing: its `prepare` script does on an install, and every module fails
|
|
74
|
+
* to compile without it after one that ran no scripts. A failure is left for the stories to say.
|
|
75
|
+
*
|
|
76
|
+
* @param dir - the project's folder.
|
|
77
|
+
* @param framework - the adapter's name.
|
|
78
|
+
* @param env - the environment.
|
|
79
|
+
*/
|
|
80
|
+
export declare const prepareGenerated: (dir: string, framework: string, env: Readonly<Record<string, string | undefined>>) => Promise<void>;
|
|
81
|
+
/** Why one story's result does not count as drawn; none when it does. */
|
|
82
|
+
export declare const resultProblem: (result: StoryCheckResult) => DrawDiagnosis | undefined;
|
|
83
|
+
/** The component to choose in a file of several: its name's, or the first. */
|
|
84
|
+
export declare const chosenExport: (file: string, names: readonly string[]) => string | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Draws a story of the project.
|
|
87
|
+
*
|
|
88
|
+
* @param context - where the steps run.
|
|
89
|
+
*/
|
|
90
|
+
export declare const runDraw: (context: DrawContext) => Promise<DrawResult>;
|
|
91
|
+
export {};
|