forgebook 0.3.3 → 0.4.1
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 +994 -72
- 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 +182 -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 +62 -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 +95 -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 +204 -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 +323 -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 +29 -5
- package/dist/src/addressArgs.js +58 -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 +148 -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 +69 -185
- 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 +83 -0
- package/dist/src/componentDocs.js +20 -3
- package/dist/src/controlCode.d.ts +27 -0
- package/dist/src/controlCode.js +41 -0
- 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/controlValues.d.ts +39 -0
- package/dist/src/frame/controlValues.js +143 -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 +10 -1
- package/dist/src/frame/mountFrame.js +160 -55
- package/dist/src/frame/panelControls.d.ts +67 -0
- package/dist/src/frame/panelControls.js +110 -0
- 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/AuthoredHome.js +3 -1
- package/dist/src/shell/CodeTab.d.ts +12 -6
- package/dist/src/shell/CodeTab.js +47 -3
- 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 +6 -6
- package/dist/src/shell/ComponentPage.js +8 -2
- package/dist/src/shell/CustomControl.d.ts +34 -0
- package/dist/src/shell/CustomControl.js +125 -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 +30 -12
- 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 +18 -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/PageWidth.d.ts +29 -0
- package/dist/src/shell/PageWidth.js +18 -0
- 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/PropFields.d.ts +3 -1
- package/dist/src/shell/PropFields.js +9 -6
- package/dist/src/shell/PropRows.d.ts +22 -11
- package/dist/src/shell/PropRows.js +62 -24
- package/dist/src/shell/PropsTab.d.ts +12 -5
- package/dist/src/shell/PropsTab.js +9 -22
- 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 +141 -23
- 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 +29 -49
- 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/StoryPicker.d.ts +4 -2
- package/dist/src/shell/StoryPicker.js +3 -3
- package/dist/src/shell/Switch.d.ts +29 -0
- package/dist/src/shell/Switch.js +11 -0
- 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.js +7 -2
- 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 +62 -0
- package/dist/src/shell/customControls.js +81 -0
- package/dist/src/shell/docPage.css +22 -22
- package/dist/src/shell/dockTabs.d.ts +19 -3
- package/dist/src/shell/dockTabs.js +29 -20
- package/dist/src/shell/embed.css +7 -7
- package/dist/src/shell/frameOrder.d.ts +35 -0
- package/dist/src/shell/frameOrder.js +45 -0
- 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 +30 -0
- package/dist/src/shell/laterStrings.js +43 -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 +376 -169
- 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 +9 -0
- package/dist/src/shell/useAddressArgs.js +56 -11
- 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/useFrameQueue.d.ts +8 -3
- package/dist/src/shell/useFrameQueue.js +42 -12
- 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/useScrollSettled.d.ts +18 -0
- package/dist/src/shell/useScrollSettled.js +56 -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 +148 -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 +99 -3
- package/dist/src/storyCheck.js +39 -1
- package/dist/src/storyCodeText.d.ts +52 -0
- package/dist/src/storyCodeText.js +30 -0
- package/dist/src/storyControls.d.ts +103 -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 +354 -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 +135 -66
- package/dist/src/vite/agentStatuses.d.ts +42 -0
- package/dist/src/vite/agentStatuses.js +67 -0
- package/dist/src/vite/agentStoryCode.d.ts +51 -0
- package/dist/src/vite/agentStoryCode.js +44 -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/argControlsConfig.d.ts +30 -0
- package/dist/src/vite/argControlsConfig.js +176 -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 +21 -4
- 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 +67 -1
- package/dist/src/vite/configFile.d.ts +15 -2
- package/dist/src/vite/configFile.js +109 -40
- package/dist/src/vite/configKeys.d.ts +15 -0
- package/dist/src/vite/configKeys.js +172 -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 +55 -73
- 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 +119 -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 +187 -60
- 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/typedControls.d.ts +31 -0
- package/dist/src/vite/typedControls.js +66 -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,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tokens of an application's sheets that a browser gives no value, as problems: a reference that leads back to
|
|
3
|
+
* itself, or one to a name nothing declares.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A token that resolves to nothing draws the UI with no colour or no size, and nothing else says so: the browser drops the
|
|
7
|
+
* declaration in silence. A cycle in the base is always a problem. A name the sheets do not declare may still get a value:
|
|
8
|
+
* another rule declares it, `@property` registers it, an installed package's sheet does, or code sets it (`next/font`
|
|
9
|
+
* writes `--font-geist-sans` on the page's element). So the names every sheet read declares count, those of the packages
|
|
10
|
+
* the sheets import count, and so does a name the repository's files write as code sets one: in quotes, as a declaration
|
|
11
|
+
* (`--gap:` in a template, a `.vue` style block, a sheet not read), a Svelte `style:` directive, a Tailwind arbitrary
|
|
12
|
+
* property. When that cannot all be known (a package's sheet that cannot be read, a sheet that builds names with Sass or
|
|
13
|
+
* Less, the files that cannot be searched), or when a cycle exists only inside a theme, which depends on the element the
|
|
14
|
+
* theme is set on, the line is something not read, which fails nothing, and never a problem that might be false. The
|
|
15
|
+
* repository is searched only for names already found missing, so an answer with none reads nothing more.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { spawnSync } from "node:child_process";
|
|
20
|
+
import { importedPackageSheets, repositoryOf } from "./appTokenFiles.js";
|
|
21
|
+
import { readCssText } from "./cssDeclarations.js";
|
|
22
|
+
import { brokenReferences } from "./cssReferences.js";
|
|
23
|
+
/** The files a custom property is set in, by code or by a sheet this does not read as the application's system. */
|
|
24
|
+
const SEARCHED_FILES = [
|
|
25
|
+
"*.js",
|
|
26
|
+
"*.jsx",
|
|
27
|
+
"*.mjs",
|
|
28
|
+
"*.cjs",
|
|
29
|
+
"*.ts",
|
|
30
|
+
"*.tsx",
|
|
31
|
+
"*.mts",
|
|
32
|
+
"*.cts",
|
|
33
|
+
"*.vue",
|
|
34
|
+
"*.svelte",
|
|
35
|
+
"*.astro",
|
|
36
|
+
"*.html",
|
|
37
|
+
"*.css",
|
|
38
|
+
"*.scss",
|
|
39
|
+
"*.sass",
|
|
40
|
+
"*.less",
|
|
41
|
+
"*.pcss",
|
|
42
|
+
"*.postcss"
|
|
43
|
+
];
|
|
44
|
+
/** How long git may take to search the repository, in milliseconds. */
|
|
45
|
+
const SEARCH_TIMEOUT = 10_000;
|
|
46
|
+
/** How many names a line gives, of a cycle or of tokens that could not be told: past a few, they say nothing more. */
|
|
47
|
+
const MOST_NAMED = 5;
|
|
48
|
+
/** A name built by Sass or Less interpolation (`--#{$key}`, `--@{key}`), which no reading of the text can know. */
|
|
49
|
+
const BUILT_NAME = /--(?:#\{|@\{)/;
|
|
50
|
+
/** A custom property `@property` registers: it has its initial value wherever nothing else sets it. */
|
|
51
|
+
const REGISTERED = /@property\s+(--[\w-]+)/g;
|
|
52
|
+
/**
|
|
53
|
+
* The names of custom properties sheets declare. A cleared one (`initial`) gives no value, and one that only reads its own
|
|
54
|
+
* name (Tailwind's `@theme inline { --font-sans: var(--font-sans); }`) takes its value from elsewhere.
|
|
55
|
+
*/
|
|
56
|
+
const declaredNames = (readings, texts) => {
|
|
57
|
+
const declared = new Set(readings.flatMap(({ declarations }) => declarations.flatMap(({ name, value }) => (isOwnReference(name, value) ? [] : [name]))));
|
|
58
|
+
for (const text of texts)
|
|
59
|
+
for (const [, name = ""] of text.matchAll(REGISTERED))
|
|
60
|
+
declared.add(name);
|
|
61
|
+
return declared;
|
|
62
|
+
};
|
|
63
|
+
/** Whether a value gives no value of its own: cleared, or reading only its own name. */
|
|
64
|
+
const isOwnReference = (name, value) => value === "initial" || value.replace(/\s/g, "") === `var(${name})`;
|
|
65
|
+
/**
|
|
66
|
+
* Whether a line of a file sets a name: in quotes (`variable: "--font-sans"`, `style={{ "--gap": … }}`,
|
|
67
|
+
* `setProperty("--gap", …)`), as a declaration (`--gap: 4px`) that is not only its own name, a Svelte `style:` directive
|
|
68
|
+
* or a Tailwind arbitrary property (`[--gap:4px]`). A reference is `var(--gap)`, which none of these match.
|
|
69
|
+
*/
|
|
70
|
+
const setsName = (line, name) => {
|
|
71
|
+
if ([`"${name}"`, `'${name}'`, `\`${name}\``, `style:${name}=`, `[${name}:`].some((form) => line.includes(form))) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
const at = line.indexOf(`${name}:`);
|
|
75
|
+
if (at === -1)
|
|
76
|
+
return false;
|
|
77
|
+
const value = line.slice(at + name.length + 1).split(/[;}]/)[0] ?? "";
|
|
78
|
+
return !isOwnReference(name, value.trim());
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* The names among some that the repository's files set, searched as fixed strings, which git matches all at once where
|
|
82
|
+
* a pattern per name takes seconds; the strings go on its input, since a command line has a limit on Windows. None when
|
|
83
|
+
* the files cannot be searched.
|
|
84
|
+
*/
|
|
85
|
+
const namesSetIn = (root, names) => {
|
|
86
|
+
// a repository's configuration may name a program for git to run: nothing here is to run
|
|
87
|
+
const found = spawnSync("git", [
|
|
88
|
+
"-c",
|
|
89
|
+
"core.fsmonitor=false",
|
|
90
|
+
"grep",
|
|
91
|
+
"--untracked",
|
|
92
|
+
"-I",
|
|
93
|
+
"-h",
|
|
94
|
+
"-F",
|
|
95
|
+
"-f",
|
|
96
|
+
"-",
|
|
97
|
+
"--",
|
|
98
|
+
...SEARCHED_FILES
|
|
99
|
+
], {
|
|
100
|
+
cwd: root,
|
|
101
|
+
input: names.join("\n"),
|
|
102
|
+
encoding: "utf8",
|
|
103
|
+
timeout: SEARCH_TIMEOUT,
|
|
104
|
+
maxBuffer: 64 * 1024 * 1024
|
|
105
|
+
});
|
|
106
|
+
if (found.status === 1)
|
|
107
|
+
return new Set();
|
|
108
|
+
if (found.status !== 0)
|
|
109
|
+
return undefined;
|
|
110
|
+
const lines = found.stdout.split("\n");
|
|
111
|
+
return new Set(names.filter((name) => lines.some((line) => line.includes(name) && setsName(line, name))));
|
|
112
|
+
};
|
|
113
|
+
/** Where a declaration stands, for a line that names it. */
|
|
114
|
+
const placeOf = ({ origin }) => origin.line === undefined ? origin.file : `${origin.file}:${origin.line}`;
|
|
115
|
+
/** What is wrong with a declaration, without where. */
|
|
116
|
+
const whatOf = (broken) => {
|
|
117
|
+
const { name } = broken.declaration;
|
|
118
|
+
if (broken.kind === "undeclared")
|
|
119
|
+
return `${name} reads var(${broken.target})`;
|
|
120
|
+
const shown = broken.through.slice(0, MOST_NAMED);
|
|
121
|
+
const more = broken.through.length - shown.length;
|
|
122
|
+
const names = more > 0 ? `${shown.join(", ")} and ${more} more` : shown.join(", ");
|
|
123
|
+
const theme = broken.mode === undefined ? "" : ` in the ${broken.mode} theme`;
|
|
124
|
+
return `${name} leads back to ${shown.length === 0 ? "itself" : `itself through ${names}`}${theme}`;
|
|
125
|
+
};
|
|
126
|
+
/** A problem's line. */
|
|
127
|
+
const problemOf = (broken) => {
|
|
128
|
+
const at = placeOf(broken.declaration);
|
|
129
|
+
if (broken.kind === "cycle")
|
|
130
|
+
return `${at}: ${whatOf(broken)}, so a browser gives it no value`;
|
|
131
|
+
return `${at}: ${whatOf(broken)}, which nothing declares, so a browser gives it no value: declare ${broken.target} or give it a fallback`;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* What could not be told for one reason, one line a token, or one line in all past a few: an application whose
|
|
135
|
+
* dependencies are not installed has hundreds, and each says the same.
|
|
136
|
+
*/
|
|
137
|
+
const unsureLines = (unsure, why) => {
|
|
138
|
+
if (unsure.length <= MOST_NAMED)
|
|
139
|
+
return unsure.map((each) => `${placeOf(each.declaration)}: ${whatOf(each)}: ${why}`);
|
|
140
|
+
const shown = unsure.slice(0, MOST_NAMED).map(whatOf).join("; ");
|
|
141
|
+
return [
|
|
142
|
+
`${unsure.length} tokens may have no value (${shown}; and ${unsure.length - MOST_NAMED} more): ${why}`
|
|
143
|
+
];
|
|
144
|
+
};
|
|
145
|
+
/** Why a name nothing read declares cannot be called missing; none when it can. */
|
|
146
|
+
const doubtOf = (unreadable, hasBuiltNames, setInFiles) => {
|
|
147
|
+
if (setInFiles === undefined)
|
|
148
|
+
return "nothing read declares it, and the repository could not be searched for it";
|
|
149
|
+
if (hasBuiltNames)
|
|
150
|
+
return "nothing read declares it, and a sheet builds names with Sass or Less, which only running it knows";
|
|
151
|
+
if (unreadable.length > 0) {
|
|
152
|
+
const named = unreadable.map((each) => `"${each}"`).join(", ");
|
|
153
|
+
return `nothing read declares it; it may come from ${named}, which could not be read`;
|
|
154
|
+
}
|
|
155
|
+
return undefined;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Finds the tokens that resolve to nothing.
|
|
159
|
+
*
|
|
160
|
+
* @param dir - the catalogue's folder, its links followed.
|
|
161
|
+
* @param read - the sheets and configurations read, and the declarations tokens are made from, the lowest first.
|
|
162
|
+
*/
|
|
163
|
+
export const unresolvedTokens = (dir, read) => {
|
|
164
|
+
const packages = importedPackageSheets(dir, read.sheets);
|
|
165
|
+
const declared = declaredNames([...read.sheets.map(({ reading }) => reading), ...packages.texts.map((text) => readCssText(text))], [...read.sheets.map(({ text }) => text), ...packages.texts]);
|
|
166
|
+
for (const { reading } of read.configs)
|
|
167
|
+
for (const { name } of reading.tokens)
|
|
168
|
+
declared.add(name);
|
|
169
|
+
const broken = brokenReferences(read.declarations, (name) => declared.has(name)).filter(({ declaration }) => declaration.origin.kind !== "tailwind-default");
|
|
170
|
+
const missing = [...new Set(broken.flatMap((each) => (each.kind === "undeclared" ? [each.target] : [])))];
|
|
171
|
+
const setInFiles = missing.length === 0 ? new Set() : namesSetIn(repositoryOf(dir), missing);
|
|
172
|
+
const hasBuiltNames = read.sheets.some(({ text }) => BUILT_NAME.test(text));
|
|
173
|
+
const doubt = doubtOf(packages.unreadable, hasBuiltNames, setInFiles);
|
|
174
|
+
const problems = [];
|
|
175
|
+
const inTheme = [];
|
|
176
|
+
const doubted = [];
|
|
177
|
+
for (const each of broken) {
|
|
178
|
+
if (each.kind === "cycle" && each.mode !== undefined)
|
|
179
|
+
inTheme.push(each);
|
|
180
|
+
else if (each.kind === "cycle" || (doubt === undefined && setInFiles?.has(each.target) !== true)) {
|
|
181
|
+
problems.push(problemOf(each));
|
|
182
|
+
}
|
|
183
|
+
else if (setInFiles?.has(each.target) !== true)
|
|
184
|
+
doubted.push(each);
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
problems,
|
|
188
|
+
unread: [
|
|
189
|
+
...unsureLines(inTheme, "a browser gives it no value if the theme is set on the root, as its base is"),
|
|
190
|
+
...(doubt === undefined ? [] : unsureLines(doubted, doubt))
|
|
191
|
+
]
|
|
192
|
+
};
|
|
193
|
+
};
|
|
@@ -9,13 +9,15 @@
|
|
|
9
9
|
* into its own JSX; a story without JSX renders its meta's component. A component is known by the file that declares
|
|
10
10
|
* it and its name there, so two imports of one component are one. The import graph holds the modules the rendered
|
|
11
11
|
* components reach through the package's own imports, never a dependency's (`node_modules`): "used through" follows
|
|
12
|
-
* those edges
|
|
12
|
+
* those edges, by what each import names: a name taken through a barrel counts for the file that declares it, or every
|
|
13
|
+
* file a barrel lists would look used (`usageImports.ts`). A lowercase tag is an element (`<div>`), not a component. A component reached only through code the
|
|
13
14
|
* checker cannot follow (a computed lazy import, a component handed in as a prop) is not found.
|
|
14
15
|
*
|
|
15
16
|
* @module
|
|
16
17
|
*/
|
|
17
18
|
import ts from "typescript-6";
|
|
18
19
|
import { configurationOf, programFor } from "./docsProgram.js";
|
|
20
|
+
import { importsOf, textImportsOf } from "./usageImports.js";
|
|
19
21
|
import { VITE_PATHS } from "./vitePaths.js";
|
|
20
22
|
/**
|
|
21
23
|
* The symbol a name stands for, through its imports and re-exports.
|
|
@@ -169,53 +171,6 @@ const fileUsage = (request, program) => {
|
|
|
169
171
|
});
|
|
170
172
|
return { storyFile: request.storyFile, ...(component === undefined ? {} : { component }), stories };
|
|
171
173
|
};
|
|
172
|
-
/**
|
|
173
|
-
* The package's own modules a module imports or re-exports from, resolved as its program resolves them.
|
|
174
|
-
*
|
|
175
|
-
* @param source - the module.
|
|
176
|
-
* @param program - its program.
|
|
177
|
-
* @param cache - the program's resolution cache.
|
|
178
|
-
*/
|
|
179
|
-
/**
|
|
180
|
-
* Whether an import or an export takes types only (`import type`, `export type`, `import { type A }`).
|
|
181
|
-
*
|
|
182
|
-
* @param statement - the statement.
|
|
183
|
-
*/
|
|
184
|
-
const isTypeOnly = (statement) => {
|
|
185
|
-
if (ts.isExportDeclaration(statement))
|
|
186
|
-
return statement.isTypeOnly;
|
|
187
|
-
if (!ts.isImportDeclaration(statement))
|
|
188
|
-
return false;
|
|
189
|
-
const clause = statement.importClause;
|
|
190
|
-
if (clause === undefined)
|
|
191
|
-
return false;
|
|
192
|
-
if (clause.isTypeOnly)
|
|
193
|
-
return true;
|
|
194
|
-
// `import { type A, type B }`: every name a type, and no default
|
|
195
|
-
const bindings = clause.namedBindings;
|
|
196
|
-
return (clause.name === undefined &&
|
|
197
|
-
bindings !== undefined &&
|
|
198
|
-
ts.isNamedImports(bindings) &&
|
|
199
|
-
bindings.elements.length > 0 &&
|
|
200
|
-
bindings.elements.every((element) => element.isTypeOnly));
|
|
201
|
-
};
|
|
202
|
-
const importsOf = (source, program, cache) => {
|
|
203
|
-
const targets = [];
|
|
204
|
-
for (const statement of source.statements) {
|
|
205
|
-
const specifier = (ts.isImportDeclaration(statement) || ts.isExportDeclaration(statement)) &&
|
|
206
|
-
statement.moduleSpecifier !== undefined &&
|
|
207
|
-
ts.isStringLiteral(statement.moduleSpecifier)
|
|
208
|
-
? statement.moduleSpecifier.text
|
|
209
|
-
: undefined;
|
|
210
|
-
// a type renders nothing: a file that only takes types from another does not use its components
|
|
211
|
-
if (specifier === undefined || isTypeOnly(statement))
|
|
212
|
-
continue;
|
|
213
|
-
const resolved = ts.resolveModuleName(specifier, source.fileName, program.getCompilerOptions(), ts.sys, cache).resolvedModule;
|
|
214
|
-
if (resolved !== undefined && !resolved.isExternalLibraryImport)
|
|
215
|
-
targets.push(resolved.resolvedFileName);
|
|
216
|
-
}
|
|
217
|
-
return targets;
|
|
218
|
-
};
|
|
219
174
|
/**
|
|
220
175
|
* The import graph of the modules the given files reach, through the package's own imports.
|
|
221
176
|
*
|
|
@@ -236,8 +191,9 @@ const reachedImports = (starts, programs) => {
|
|
|
236
191
|
const program = programs.find((candidate) => candidate.getSourceFile(file) !== undefined);
|
|
237
192
|
const source = program?.getSourceFile(file);
|
|
238
193
|
const cache = program === undefined ? undefined : caches.get(program);
|
|
194
|
+
// a style sheet or a single-file component is in no program, and it still imports what it draws with
|
|
239
195
|
const targets = program === undefined || source === undefined || cache === undefined
|
|
240
|
-
? []
|
|
196
|
+
? textImportsOf(file, programs[0], programs[0] === undefined ? undefined : caches.get(programs[0]))
|
|
241
197
|
: importsOf(source, program, cache);
|
|
242
198
|
imports[file] = targets;
|
|
243
199
|
queue.push(...targets);
|
|
@@ -245,7 +201,7 @@ const reachedImports = (starts, programs) => {
|
|
|
245
201
|
return imports;
|
|
246
202
|
};
|
|
247
203
|
/**
|
|
248
|
-
* The facts of the story files one configuration holds, read with
|
|
204
|
+
* The facts of the story files one configuration holds, read with the program of what they all reach.
|
|
249
205
|
*
|
|
250
206
|
* @param group - the story files, in Vite's form, each held by the same configuration.
|
|
251
207
|
* @returns the facts, or why a story file's program could not be read.
|
|
@@ -254,8 +210,8 @@ const groupGraph = (group) => {
|
|
|
254
210
|
const files = [];
|
|
255
211
|
const programs = new Set();
|
|
256
212
|
for (const request of group) {
|
|
257
|
-
// what every story of the configuration reaches
|
|
258
|
-
const docsProgram = programFor(request.storyFile, { reach: "
|
|
213
|
+
// what every story of the configuration reaches, in one program built once
|
|
214
|
+
const docsProgram = programFor(request.storyFile, { reach: "stories" });
|
|
259
215
|
if (typeof docsProgram === "string")
|
|
260
216
|
return docsProgram;
|
|
261
217
|
programs.add(docsProgram.program);
|
|
@@ -264,6 +220,8 @@ const groupGraph = (group) => {
|
|
|
264
220
|
files.push(usage);
|
|
265
221
|
}
|
|
266
222
|
const starts = files.flatMap((file) => [
|
|
223
|
+
// what a story file imports itself runs with its stories: a single-file component, a sheet, a fixture
|
|
224
|
+
file.storyFile,
|
|
267
225
|
...(file.component === undefined ? [] : [file.component.file]),
|
|
268
226
|
...file.stories.flatMap((story) => story.renders.map((ref) => ref.file))
|
|
269
227
|
]);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* When to use a component and when not, read from its TSDoc tags. Shared by the frameworks' docs modules: a framework
|
|
3
|
-
* whose components have no symbol to carry a comment (a Vue single-file component) hands the tags it read itself.
|
|
3
|
+
* whose components have no symbol to carry a comment (a Vue single-file component) hands the tags it read itself. It holds
|
|
4
|
+
* only the compiler's types, so that what reads a whole project in a moment, from comments' text, does not load it.
|
|
4
5
|
*
|
|
5
6
|
* @module
|
|
6
7
|
*/
|
|
7
|
-
import ts from "typescript-6";
|
|
8
|
+
import type ts from "typescript-6";
|
|
8
9
|
import type { UsageGuidance } from "../componentDocs.ts";
|
|
9
10
|
/** One TSDoc tag, read. */
|
|
10
11
|
export type DocTag = {
|
|
@@ -22,6 +23,12 @@ export type DocTag = {
|
|
|
22
23
|
export declare const guidanceOfTags: (tags: readonly DocTag[]) => {
|
|
23
24
|
readonly guidance?: UsageGuidance;
|
|
24
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* The tags of a documentation comment's text, each with the lines that follow it.
|
|
28
|
+
*
|
|
29
|
+
* @param comment - the comment, with or without its stars.
|
|
30
|
+
*/
|
|
31
|
+
export declare const tagsOfComment: (comment: string) => DocTag[];
|
|
25
32
|
/**
|
|
26
33
|
* The field of a component's docs saying when to use it and when not, from its symbol's TSDoc.
|
|
27
34
|
*
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* whose components have no symbol to carry a comment (a Vue single-file component) hands the tags it read itself.
|
|
4
|
-
*
|
|
5
|
-
* @module
|
|
6
|
-
*/
|
|
7
|
-
import ts from "typescript-6";
|
|
1
|
+
/** A tag at a word's start. */
|
|
2
|
+
const TAG = /(?:^|\s)@(\w+)/g;
|
|
8
3
|
/**
|
|
9
4
|
* The field of a component's docs saying when to use it and when not; none when its TSDoc says nothing, so most
|
|
10
5
|
* components carry nothing.
|
|
@@ -33,6 +28,36 @@ export const guidanceOfTags = (tags) => {
|
|
|
33
28
|
};
|
|
34
29
|
return Object.keys(guidance).length === 0 ? {} : { guidance };
|
|
35
30
|
};
|
|
31
|
+
/** A comment's text without its fenced examples: what an example shows is not said of this component. */
|
|
32
|
+
const withoutFences = (text) => {
|
|
33
|
+
const parts = text.split("```");
|
|
34
|
+
return parts.filter((_, index) => index % 2 === 0).join(" ");
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The tags of a documentation comment's text, each with the lines that follow it.
|
|
38
|
+
*
|
|
39
|
+
* @param comment - the comment, with or without its stars.
|
|
40
|
+
*/
|
|
41
|
+
export const tagsOfComment = (comment) => {
|
|
42
|
+
const plain = comment
|
|
43
|
+
.split("\n")
|
|
44
|
+
.map((line) => {
|
|
45
|
+
const text = line.trimEnd();
|
|
46
|
+
const open = text.replace(/^\s*\/?\*+\/?\s?/, "");
|
|
47
|
+
return open.endsWith("*/") ? open.slice(0, -2) : open;
|
|
48
|
+
})
|
|
49
|
+
.join(" ");
|
|
50
|
+
const shown = withoutFences(plain);
|
|
51
|
+
const found = [...shown.matchAll(TAG)];
|
|
52
|
+
return found.map((match, index) => ({
|
|
53
|
+
name: match[1] ?? "",
|
|
54
|
+
text: shown
|
|
55
|
+
.slice(match.index + match[0].length, found[index + 1]?.index ?? shown.length)
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.join(" ")
|
|
58
|
+
.trim()
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
36
61
|
/**
|
|
37
62
|
* The field of a component's docs saying when to use it and when not, from its symbol's TSDoc.
|
|
38
63
|
*
|
|
@@ -41,5 +66,8 @@ export const guidanceOfTags = (tags) => {
|
|
|
41
66
|
*/
|
|
42
67
|
export const guidanceOf = (symbol, checker) => guidanceOfTags(symbol.getJsDocTags(checker).map((tag) => ({
|
|
43
68
|
name: tag.name,
|
|
44
|
-
text:
|
|
69
|
+
text: (tag.text ?? [])
|
|
70
|
+
.map((part) => part.text)
|
|
71
|
+
.join("")
|
|
72
|
+
.trim()
|
|
45
73
|
})));
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The edges of the import graph: what a module takes from the package's own modules, what a style sheet or a single-file
|
|
3
|
+
* component names in its text.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* An import counts for the file that declares each name it takes, not for the module it is written against: a barrel
|
|
7
|
+
* lists every component, so following it would make a story of one component reach all of them, and a new component
|
|
8
|
+
* would look verified for being exported. A name only an ambient declaration knows (a `.vue` shim) counts for the file its
|
|
9
|
+
* last re-export names, and a name from a dependency for nothing. A barrel is followed only for a namespace import or a
|
|
10
|
+
* side effect, and what it imports for its side effects (a global sheet) still runs when a name is taken through it. A
|
|
11
|
+
* module's own `export … from` stays an edge, for those cases. A relative import that resolves to nothing is kept as an edge to where it points: the file may
|
|
12
|
+
* have just been deleted, and the stories behind the edge are the ones that break. TypeScript does not resolve a style
|
|
13
|
+
* sheet or a single-file component, so their names are read from the text; an Angular component's `templateUrl` and
|
|
14
|
+
* `styleUrls` are found the same way.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import ts from "typescript-6";
|
|
19
|
+
/**
|
|
20
|
+
* The edges of a file no program holds, read from its text; a file that cannot be read has none.
|
|
21
|
+
*
|
|
22
|
+
* @param file - the file, absolute.
|
|
23
|
+
* @param program - a program whose rules resolve its imports.
|
|
24
|
+
* @param cache - that program's resolution cache.
|
|
25
|
+
*/
|
|
26
|
+
export declare const textImportsOf: (file: string, program: ts.Program | undefined, cache: ts.ModuleResolutionCache | undefined) => string[];
|
|
27
|
+
/**
|
|
28
|
+
* The package's own modules a module imports or re-exports from, resolved as its program resolves them, with the assets
|
|
29
|
+
* and lazy modules its text names.
|
|
30
|
+
*
|
|
31
|
+
* @param source - the module.
|
|
32
|
+
* @param program - its program.
|
|
33
|
+
* @param cache - the program's resolution cache.
|
|
34
|
+
*/
|
|
35
|
+
export declare const importsOf: (source: ts.SourceFile, program: ts.Program, cache: ts.ModuleResolutionCache) => string[];
|