forgebook 0.3.3 → 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 +914 -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 +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 +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 +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 +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 +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/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 +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/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 +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 +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/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,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The components a package's entries export, by the file that declares each: what "published" means to `verify`.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Read from each file's syntax, with no program: a whole package must take moments on a change that touches one file, and
|
|
6
|
+
* an export's shape says enough. Only relative paths are followed, since a package's own files are what it publishes and
|
|
7
|
+
* another package of the repository has its own entries. A file counts as one finding however many parts it declares
|
|
8
|
+
* (`Dialog`, `DialogTrigger`): one story page shows them together, and a finding per part would bury the one that matters.
|
|
9
|
+
* Only what reads as a component counts. A context, a value, a constant in capitals and a hook are published too, and no
|
|
10
|
+
* story is owed for them.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import ts from "typescript-6";
|
|
15
|
+
/** A file that is a component by its extension alone: its default export is what it draws. */
|
|
16
|
+
const COMPONENT_FILE = /\.(?:vue|svelte|astro)$/;
|
|
17
|
+
/** A file whose capitalised functions draw something. */
|
|
18
|
+
const DRAWN_FILE = /\.[cm]?[jt]sx$/;
|
|
19
|
+
/** A script's text that defines a component with no JSX in it. */
|
|
20
|
+
const DEFINES_COMPONENT = /\bcustomElements\.define\(|@customElement\(|\bextends\s+(?:LitElement|HTMLElement)\b|@Component\(|\bdefineComponent\(|\bforwardRef\(|\bcreateElement\(|\bstyled[.(]|<\/[A-Za-z][\w.-]{0,80}>|<[A-Z][\w.]{0,80}[^<>\n]{0,500}\/>/;
|
|
21
|
+
/** A name a component can have: capitalised and not a constant. */
|
|
22
|
+
const COMPONENT_NAME = /^[A-Z](?:[a-z0-9]|[A-Z]+[a-z0-9])\w*$|^[A-Z]$/;
|
|
23
|
+
/** A call whose result is no component. */
|
|
24
|
+
const NOT_A_COMPONENT_CALL = /^(?:React\.)?(?:createContext|cva|tv|defineConfig|Symbol|Object\.freeze)$/;
|
|
25
|
+
/** An import through a project's alias rather than a package's name. */
|
|
26
|
+
const ALIASED = /^(?:[@~#]\/|#)/;
|
|
27
|
+
/** Whether a call's name says its result is no component. */
|
|
28
|
+
const isPlainCall = (call) => NOT_A_COMPONENT_CALL.test(call.expression.getText());
|
|
29
|
+
/** How the expression a name is given reads. */
|
|
30
|
+
const shapeOfExpression = (node) => {
|
|
31
|
+
if (ts.isArrowFunction(node) || ts.isFunctionExpression(node))
|
|
32
|
+
return { takesProps: node.parameters.length > 0 };
|
|
33
|
+
if (ts.isClassExpression(node))
|
|
34
|
+
return { takesProps: true };
|
|
35
|
+
if (ts.isCallExpression(node)) {
|
|
36
|
+
if (isPlainCall(node))
|
|
37
|
+
return undefined;
|
|
38
|
+
const inner = node.arguments.find((each) => ts.isArrowFunction(each) || ts.isFunctionExpression(each));
|
|
39
|
+
const typed = (node.typeArguments?.length ?? 0) > 0;
|
|
40
|
+
return { takesProps: typed || (inner !== undefined && (shapeOfExpression(inner)?.takesProps ?? false)) };
|
|
41
|
+
}
|
|
42
|
+
if (ts.isTaggedTemplateExpression(node))
|
|
43
|
+
return { takesProps: false };
|
|
44
|
+
// `export const Tooltip = Primitive.Root`, a library's part under a name of its own
|
|
45
|
+
if (ts.isPropertyAccessExpression(node) && /^[A-Z]/.test(node.name.text))
|
|
46
|
+
return { takesProps: false };
|
|
47
|
+
if (ts.isAsExpression(node) || ts.isParenthesizedExpression(node) || ts.isSatisfiesExpression(node))
|
|
48
|
+
return shapeOfExpression(node.expression);
|
|
49
|
+
return undefined;
|
|
50
|
+
};
|
|
51
|
+
/** How a variable's declaration reads: its value, or the type it is written with. */
|
|
52
|
+
const shapeOfVariable = (declaration) => {
|
|
53
|
+
const shape = declaration.initializer === undefined ? undefined : shapeOfExpression(declaration.initializer);
|
|
54
|
+
if (shape !== undefined || declaration.type === undefined)
|
|
55
|
+
return shape;
|
|
56
|
+
return ts.isTypeReferenceNode(declaration.type) && /(?:FC|ComponentType)\b/.test(declaration.type.getText())
|
|
57
|
+
? { takesProps: (declaration.type.typeArguments?.length ?? 0) > 0 }
|
|
58
|
+
: undefined;
|
|
59
|
+
};
|
|
60
|
+
/** Whether a statement carries a modifier. */
|
|
61
|
+
const hasModifier = (node, kind) => ts.getModifiers(node)?.some((modifier) => modifier.kind === kind) ?? false;
|
|
62
|
+
/** The named variables a statement declares. */
|
|
63
|
+
const variablesOf = (statement) => statement.declarationList.declarations.filter((declaration) => ts.isIdentifier(declaration.name));
|
|
64
|
+
/** A variable's name, which `variablesOf` has seen to be an identifier. */
|
|
65
|
+
const variableName = (declaration) => declaration.name.getText();
|
|
66
|
+
/** Reads what a statement declares into a file's scope. */
|
|
67
|
+
const addDeclared = (statement, scope) => {
|
|
68
|
+
const isCommented = ts.getJSDocCommentsAndTags(statement).length > 0;
|
|
69
|
+
const declare = (name, shape) => {
|
|
70
|
+
scope.declared.set(name, shape);
|
|
71
|
+
if (isCommented)
|
|
72
|
+
scope.commented.add(name);
|
|
73
|
+
};
|
|
74
|
+
if (ts.isFunctionDeclaration(statement) && statement.name !== undefined)
|
|
75
|
+
declare(statement.name.text, { takesProps: statement.parameters.length > 0 });
|
|
76
|
+
if (ts.isClassDeclaration(statement) && statement.name !== undefined)
|
|
77
|
+
declare(statement.name.text, { takesProps: true });
|
|
78
|
+
if (ts.isVariableStatement(statement))
|
|
79
|
+
for (const declaration of variablesOf(statement))
|
|
80
|
+
declare(variableName(declaration), shapeOfVariable(declaration));
|
|
81
|
+
};
|
|
82
|
+
/** Reads what a statement imports into a file's scope; a type's import brings no component. */
|
|
83
|
+
const addImported = (statement, scope) => {
|
|
84
|
+
if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier))
|
|
85
|
+
return;
|
|
86
|
+
const from = statement.moduleSpecifier.text;
|
|
87
|
+
const clause = statement.importClause;
|
|
88
|
+
if (clause === undefined || clause.isTypeOnly)
|
|
89
|
+
return;
|
|
90
|
+
if (clause.name !== undefined)
|
|
91
|
+
scope.imported.set(clause.name.text, { from, name: "default" });
|
|
92
|
+
if (clause.namedBindings === undefined || !ts.isNamedImports(clause.namedBindings))
|
|
93
|
+
return;
|
|
94
|
+
for (const each of clause.namedBindings.elements)
|
|
95
|
+
if (!each.isTypeOnly)
|
|
96
|
+
scope.imported.set(each.name.text, { from, name: (each.propertyName ?? each.name).text });
|
|
97
|
+
};
|
|
98
|
+
/** How a default export written in place reads. */
|
|
99
|
+
const defaultThing = (expression, file, isDrawn) => {
|
|
100
|
+
const shape = shapeOfExpression(expression);
|
|
101
|
+
return shape === undefined
|
|
102
|
+
? undefined
|
|
103
|
+
: { file, isComponent: isDrawn, takesProps: shape.takesProps, hasComment: false };
|
|
104
|
+
};
|
|
105
|
+
/** How TypeScript is told to read a file. */
|
|
106
|
+
const scriptKindOf = (file) => {
|
|
107
|
+
if (/\.tsx$/.test(file))
|
|
108
|
+
return ts.ScriptKind.TSX;
|
|
109
|
+
if (/\.jsx$/.test(file))
|
|
110
|
+
return ts.ScriptKind.JSX;
|
|
111
|
+
if (/\.[cm]?js$/.test(file))
|
|
112
|
+
return ts.ScriptKind.JSX;
|
|
113
|
+
return ts.ScriptKind.TS;
|
|
114
|
+
};
|
|
115
|
+
/** Records an export, when it is something this can tell of. */
|
|
116
|
+
const record = (context, name, thing) => {
|
|
117
|
+
if (thing !== undefined)
|
|
118
|
+
context.found.set(name, thing);
|
|
119
|
+
};
|
|
120
|
+
/** Adds what `export { … }`, with or without a `from`, exports. */
|
|
121
|
+
const addNamedExports = (clause, specifier, context) => {
|
|
122
|
+
for (const each of clause.elements) {
|
|
123
|
+
if (each.isTypeOnly)
|
|
124
|
+
continue;
|
|
125
|
+
const name = (each.propertyName ?? each.name).text;
|
|
126
|
+
const thing = specifier === undefined ? context.local(name) : context.followed(specifier, name);
|
|
127
|
+
record(context, each.name.text, thing);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
/** Adds what an `export … from`, or `export { … }`, exports. */
|
|
131
|
+
const addExportDeclaration = (statement, context) => {
|
|
132
|
+
if (statement.isTypeOnly)
|
|
133
|
+
return;
|
|
134
|
+
const { moduleSpecifier, exportClause } = statement;
|
|
135
|
+
const specifier = moduleSpecifier !== undefined && ts.isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : undefined;
|
|
136
|
+
if (exportClause !== undefined && ts.isNamedExports(exportClause)) {
|
|
137
|
+
addNamedExports(exportClause, specifier, context);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (specifier === undefined)
|
|
141
|
+
return;
|
|
142
|
+
// `export * as Dialog from`, or `export *`: either way what that file exports is published under its own name
|
|
143
|
+
for (const [name, thing] of context.allOf(specifier)) {
|
|
144
|
+
if (name !== "default" && !context.found.has(name))
|
|
145
|
+
context.found.set(name, thing);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
/** Adds what `export default <expression>` exports. */
|
|
149
|
+
const addExportAssignment = (statement, context) => {
|
|
150
|
+
const { expression } = statement;
|
|
151
|
+
const thing = ts.isIdentifier(expression)
|
|
152
|
+
? context.local(expression.text)
|
|
153
|
+
: defaultThing(expression, context.file, context.isDrawn);
|
|
154
|
+
record(context, "default", thing);
|
|
155
|
+
};
|
|
156
|
+
/** Adds what `export function` or `export class`, with a name or as the default, exports. */
|
|
157
|
+
const addExportedDeclaration = (statement, context) => {
|
|
158
|
+
const name = statement.name?.text;
|
|
159
|
+
const thing = name === undefined
|
|
160
|
+
? {
|
|
161
|
+
file: context.file,
|
|
162
|
+
isComponent: context.isDrawn,
|
|
163
|
+
takesProps: ts.isClassDeclaration(statement),
|
|
164
|
+
hasComment: ts.getJSDocCommentsAndTags(statement).length > 0
|
|
165
|
+
}
|
|
166
|
+
: context.local(name);
|
|
167
|
+
const isDefault = hasModifier(statement, ts.SyntaxKind.DefaultKeyword);
|
|
168
|
+
record(context, isDefault ? "default" : (name ?? "default"), thing);
|
|
169
|
+
};
|
|
170
|
+
/** Adds what one statement exports. */
|
|
171
|
+
const addExports = (statement, context) => {
|
|
172
|
+
if (ts.isExportDeclaration(statement)) {
|
|
173
|
+
addExportDeclaration(statement, context);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (ts.isExportAssignment(statement)) {
|
|
177
|
+
if (!statement.isExportEquals)
|
|
178
|
+
addExportAssignment(statement, context);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (!ts.canHaveModifiers(statement) || !hasModifier(statement, ts.SyntaxKind.ExportKeyword))
|
|
182
|
+
return;
|
|
183
|
+
if (ts.isVariableStatement(statement)) {
|
|
184
|
+
for (const declaration of variablesOf(statement)) {
|
|
185
|
+
const name = variableName(declaration);
|
|
186
|
+
record(context, name, context.local(name));
|
|
187
|
+
}
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement))
|
|
191
|
+
addExportedDeclaration(statement, context);
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Reads files' exports, each file once.
|
|
195
|
+
*
|
|
196
|
+
* @param disk - what is asked of the disk.
|
|
197
|
+
* @returns what reads one file; a file reached again while it is read (a cycle) has none yet, as a cycle adds nothing.
|
|
198
|
+
*/
|
|
199
|
+
const exportReader = (disk) => {
|
|
200
|
+
const seen = new Map();
|
|
201
|
+
const targetOf = (specifier, from) => {
|
|
202
|
+
if (ALIASED.test(specifier))
|
|
203
|
+
disk.onAlias?.(specifier, from);
|
|
204
|
+
return specifier.startsWith(".") ? disk.resolve(specifier, from) : undefined;
|
|
205
|
+
};
|
|
206
|
+
const exportsOf = (file) => {
|
|
207
|
+
const known = seen.get(file);
|
|
208
|
+
if (known !== undefined)
|
|
209
|
+
return known;
|
|
210
|
+
const found = new Map();
|
|
211
|
+
seen.set(file, found);
|
|
212
|
+
const text = disk.readText(file);
|
|
213
|
+
if (text === undefined)
|
|
214
|
+
return found;
|
|
215
|
+
if (COMPONENT_FILE.test(file)) {
|
|
216
|
+
found.set("default", { file, isComponent: true, takesProps: false, hasComment: false });
|
|
217
|
+
return found;
|
|
218
|
+
}
|
|
219
|
+
const source = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true, scriptKindOf(file));
|
|
220
|
+
const isDrawn = DRAWN_FILE.test(file) || DEFINES_COMPONENT.test(text);
|
|
221
|
+
const scope = { declared: new Map(), commented: new Set(), imported: new Map() };
|
|
222
|
+
for (const statement of source.statements) {
|
|
223
|
+
addDeclared(statement, scope);
|
|
224
|
+
addImported(statement, scope);
|
|
225
|
+
}
|
|
226
|
+
const followed = (specifier, name) => {
|
|
227
|
+
const target = targetOf(specifier, file);
|
|
228
|
+
return target === undefined ? undefined : exportsOf(target).get(name);
|
|
229
|
+
};
|
|
230
|
+
// once per file: the text may be large, and every export of it asks
|
|
231
|
+
const hasModuleComment = text.includes("@module");
|
|
232
|
+
const context = {
|
|
233
|
+
file,
|
|
234
|
+
isDrawn,
|
|
235
|
+
found,
|
|
236
|
+
followed,
|
|
237
|
+
allOf: (specifier) => {
|
|
238
|
+
const target = targetOf(specifier, file);
|
|
239
|
+
return target === undefined ? new Map() : exportsOf(target);
|
|
240
|
+
},
|
|
241
|
+
local: (name) => {
|
|
242
|
+
const imported = scope.imported.get(name);
|
|
243
|
+
if (imported !== undefined)
|
|
244
|
+
return followed(imported.from, imported.name);
|
|
245
|
+
if (!scope.declared.has(name))
|
|
246
|
+
return undefined;
|
|
247
|
+
const shape = scope.declared.get(name);
|
|
248
|
+
return {
|
|
249
|
+
file,
|
|
250
|
+
isComponent: isDrawn && shape !== undefined,
|
|
251
|
+
takesProps: shape?.takesProps ?? false,
|
|
252
|
+
hasComment: scope.commented.has(name) || hasModuleComment
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
for (const statement of source.statements)
|
|
257
|
+
addExports(statement, context);
|
|
258
|
+
return found;
|
|
259
|
+
};
|
|
260
|
+
return exportsOf;
|
|
261
|
+
};
|
|
262
|
+
/** The name a file goes by: its own, or its folder's for an index. */
|
|
263
|
+
const stemOf = (file) => {
|
|
264
|
+
const parts = file.split("/");
|
|
265
|
+
const name = (parts.at(-1) ?? "").replace(/\.[^.]+$/, "");
|
|
266
|
+
return name === "index" ? (parts.at(-2) ?? name) : name;
|
|
267
|
+
};
|
|
268
|
+
/** The name a published thing goes by, when it reads as a component: a default export by its file's. */
|
|
269
|
+
const componentNameOf = (name, thing) => {
|
|
270
|
+
if (!thing.isComponent)
|
|
271
|
+
return undefined;
|
|
272
|
+
const stem = stemOf(thing.file);
|
|
273
|
+
const named = name === "default" ? `${stem.charAt(0).toUpperCase()}${stem.slice(1)}` : name;
|
|
274
|
+
return COMPONENT_NAME.test(named) && !named.endsWith("Context") ? named : undefined;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* The components some entries publish, one element per declaring file.
|
|
278
|
+
*
|
|
279
|
+
* @param entries - the entries' source files, absolute.
|
|
280
|
+
* @param disk - what is asked of the disk.
|
|
281
|
+
*/
|
|
282
|
+
export const publishedComponents = (entries, disk) => {
|
|
283
|
+
const exportsOf = exportReader(disk);
|
|
284
|
+
const files = new Map();
|
|
285
|
+
const things = entries.flatMap((entry) => [...exportsOf(entry)]);
|
|
286
|
+
for (const [name, thing] of things) {
|
|
287
|
+
const named = componentNameOf(name, thing);
|
|
288
|
+
if (named === undefined)
|
|
289
|
+
continue;
|
|
290
|
+
const file = files.get(thing.file) ?? { names: [], takesProps: false, hasComment: false };
|
|
291
|
+
if (!file.names.includes(named))
|
|
292
|
+
file.names.push(named);
|
|
293
|
+
file.takesProps ||= thing.takesProps;
|
|
294
|
+
file.hasComment ||= thing.hasComment;
|
|
295
|
+
files.set(thing.file, file);
|
|
296
|
+
}
|
|
297
|
+
return [...files].map(([file, each]) => ({ file, ...each }));
|
|
298
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A folder written as Vite writes its root: links followed and, on Windows, short names (`RUNNER~1`) written out in
|
|
3
|
+
* full. The configuration's folder and the build's output are named this way, so they compare with Vite's root.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Vite reads its root with one of Node's two real paths on Windows, the plain one until a check it runs in the
|
|
7
|
+
* background ends and the native one after: they agree only on a path already written out. A root that differs from
|
|
8
|
+
* the folder the pages are named under makes the build's names climb out of it, and an output it does not see inside
|
|
9
|
+
* it is never emptied.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, realpathSync } from "node:fs";
|
|
14
|
+
import { basename, dirname, join } from "node:path";
|
|
15
|
+
/**
|
|
16
|
+
* A folder's real path; for one not made yet, its nearest folder that is, with the rest of the path after it.
|
|
17
|
+
*
|
|
18
|
+
* @param folder - the folder, absolute.
|
|
19
|
+
*/
|
|
20
|
+
export const realFolder = (folder) => {
|
|
21
|
+
if (existsSync(folder))
|
|
22
|
+
return realpathSync.native(folder);
|
|
23
|
+
const parent = dirname(folder);
|
|
24
|
+
return parent === folder ? folder : join(realFolder(parent), basename(folder));
|
|
25
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The configuration's `refs`, checked and made ready for the shell, and what the shell's generated entry says of them:
|
|
3
|
+
* the catalogues shown in the sidebar after this one's stories.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { type CatalogueRef } from "../catalogueRefs.ts";
|
|
8
|
+
import type { RefOption } from "./config.ts";
|
|
9
|
+
import type { ResolvedConfig } from "./configFile.ts";
|
|
10
|
+
/** The composed catalogues, ready for the shell, in the configuration's order. */
|
|
11
|
+
export type ResolvedRefs = readonly CatalogueRef[];
|
|
12
|
+
/**
|
|
13
|
+
* Why the configuration's `refs` cannot be used, or none.
|
|
14
|
+
*
|
|
15
|
+
* @param config - the configuration, as loaded.
|
|
16
|
+
*/
|
|
17
|
+
export declare const refsProblem: (config: object) => string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* The composed catalogues, each address its folder, in the configuration's order.
|
|
20
|
+
*
|
|
21
|
+
* @param refs - the configuration's `refs`, checked by `refsProblem`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const resolvedRefs: (refs: Readonly<Record<string, RefOption>> | undefined) => readonly CatalogueRef[];
|
|
24
|
+
/** The module that draws the composed catalogues, imported only by a catalogue that composes one. */
|
|
25
|
+
export declare const REFS_MODULE = "forgebook/shell/refs";
|
|
26
|
+
/**
|
|
27
|
+
* The composed catalogues and the code that draws them, for the shell; nothing for a catalogue that composes none, so
|
|
28
|
+
* its first load carries not even the way to that code.
|
|
29
|
+
*
|
|
30
|
+
* @param config - the configuration.
|
|
31
|
+
*/
|
|
32
|
+
export declare const refsLines: (config: Pick<ResolvedConfig, "refs">) => string[];
|
|
33
|
+
/**
|
|
34
|
+
* What the plugin defines in the build for composition: whether the catalogue composes others, so a shell that composes
|
|
35
|
+
* none has every part of composition removed.
|
|
36
|
+
*
|
|
37
|
+
* @param refs - the composed catalogues.
|
|
38
|
+
*/
|
|
39
|
+
export declare const refsDefine: (refs: ResolvedRefs) => Readonly<Record<string, string>>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The configuration's `refs`, checked and made ready for the shell, and what the shell's generated entry says of them:
|
|
3
|
+
* the catalogues shown in the sidebar after this one's stories.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { refFolder, refProblem } from "../catalogueRefs.js";
|
|
8
|
+
import { codeLiteral } from "../codeLiteral.js";
|
|
9
|
+
/**
|
|
10
|
+
* Why the configuration's `refs` cannot be used, or none.
|
|
11
|
+
*
|
|
12
|
+
* @param config - the configuration, as loaded.
|
|
13
|
+
*/
|
|
14
|
+
export const refsProblem = (config) => {
|
|
15
|
+
const refs = Reflect.get(config, "refs");
|
|
16
|
+
if (refs === undefined)
|
|
17
|
+
return undefined;
|
|
18
|
+
if (typeof refs !== "object" || refs === null || Array.isArray(refs))
|
|
19
|
+
return 'refs must be an object of catalogues by id (`refs: { "design-system": { title, url } }`)';
|
|
20
|
+
return Object.entries(refs).flatMap(([id, ref]) => refProblem(id, ref) ?? [])[0];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* The composed catalogues, each address its folder, in the configuration's order.
|
|
24
|
+
*
|
|
25
|
+
* @param refs - the configuration's `refs`, checked by `refsProblem`.
|
|
26
|
+
*/
|
|
27
|
+
export const resolvedRefs = (refs) => Object.entries(refs ?? {}).map(([id, ref]) => ({ id, title: ref.title.trim(), url: refFolder(ref.url) }));
|
|
28
|
+
/** The module that draws the composed catalogues, imported only by a catalogue that composes one. */
|
|
29
|
+
export const REFS_MODULE = "forgebook/shell/refs";
|
|
30
|
+
/**
|
|
31
|
+
* The composed catalogues and the code that draws them, for the shell; nothing for a catalogue that composes none, so
|
|
32
|
+
* its first load carries not even the way to that code.
|
|
33
|
+
*
|
|
34
|
+
* @param config - the configuration.
|
|
35
|
+
*/
|
|
36
|
+
export const refsLines = (config) => config.refs.length === 0
|
|
37
|
+
? []
|
|
38
|
+
: [
|
|
39
|
+
" refs: {",
|
|
40
|
+
` catalogues: ${codeLiteral(config.refs)},`,
|
|
41
|
+
` load: () => import(${codeLiteral(REFS_MODULE)}).then((module) => module.RefPart)`,
|
|
42
|
+
" },"
|
|
43
|
+
];
|
|
44
|
+
/** The name the build gives whether the catalogue composes others (`shell/composition.ts`). */
|
|
45
|
+
const REFS_CONSTANT = "__FORGEBOOK_REFS__";
|
|
46
|
+
/**
|
|
47
|
+
* What the plugin defines in the build for composition: whether the catalogue composes others, so a shell that composes
|
|
48
|
+
* none has every part of composition removed.
|
|
49
|
+
*
|
|
50
|
+
* @param refs - the composed catalogues.
|
|
51
|
+
*/
|
|
52
|
+
export const refsDefine = (refs) => ({
|
|
53
|
+
[REFS_CONSTANT]: JSON.stringify(refs.length > 0)
|
|
54
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a change adds against the components a project already has: imports of what is deprecated or replaced, and new
|
|
3
|
+
* components that look like one that exists. Props are left to the type checker, which catches them where this cannot.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Pure. It reads only what the change adds, as the rest of `check-code` does. A component's own words decide what is
|
|
7
|
+
* deprecated (`@deprecated`, `@replacedBy`). What fails has to be sure: a new exported component fails as a copy under any
|
|
8
|
+
* name, with the same name and two signs of being the same thing, or rebuilding a plain element a component of its name
|
|
9
|
+
* exists for. One sign is said as `advice`, as is what `@useWhen` and `@avoidWhen` say of a component just imported, since
|
|
10
|
+
* only a reader can weigh them. It compares only what the file could use: its package and those its package depends on.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import type { AddedLine, CodeAdvice, CodeProblem, ExcusedValue } from "./checkCode.ts";
|
|
15
|
+
import { type ScannedComponent } from "./componentScan.ts";
|
|
16
|
+
import type { ProjectFile, WorkspacePackage } from "./projectFiles.ts";
|
|
17
|
+
/** What the reuse check found. */
|
|
18
|
+
export type ReuseFindings = {
|
|
19
|
+
/** What fails. */
|
|
20
|
+
readonly problems: readonly CodeProblem[];
|
|
21
|
+
/** What to weigh. */
|
|
22
|
+
readonly advice: readonly CodeAdvice[];
|
|
23
|
+
/** New components a comment says are meant. */
|
|
24
|
+
readonly excused: readonly ExcusedValue[];
|
|
25
|
+
};
|
|
26
|
+
/** What the reuse check reads. */
|
|
27
|
+
export type ReuseInput = {
|
|
28
|
+
/** The lines the change adds, with paths from the repository. */
|
|
29
|
+
readonly added: readonly AddedLine[];
|
|
30
|
+
/** The changed files that can hold components, as they are now. */
|
|
31
|
+
readonly changed: readonly ProjectFile[];
|
|
32
|
+
/** The same as they were, and those the change deleted. */
|
|
33
|
+
readonly previous: readonly ProjectFile[];
|
|
34
|
+
/** Every component of the project as it is now. */
|
|
35
|
+
readonly components: readonly ScannedComponent[];
|
|
36
|
+
/** The repository's packages. */
|
|
37
|
+
readonly packages: readonly WorkspacePackage[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* What a change adds against the components the project has. New means new against the commit it starts from: an edit of a
|
|
41
|
+
* line that declares a component is no new component, nor is a file moved, nor a name a file already imported.
|
|
42
|
+
*
|
|
43
|
+
* @param input - the change and the project.
|
|
44
|
+
*/
|
|
45
|
+
export declare const reuseFindings: (input: ReuseInput) => ReuseFindings;
|