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
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
* The packages Vite pre-bundles, and the story files it scans, before the catalogue's first page opens, so the pages
|
|
3
|
-
* never reload while they load.
|
|
4
|
-
*
|
|
5
|
-
* @remarks
|
|
6
|
-
* Vite finds what to pre-bundle by scanning the app's HTML and entries on disk; a catalogue's pages and their entries
|
|
7
|
-
* are generated (`pages.ts`), so without this list Vite discovers each package as a page imports it, pre-bundles it
|
|
8
|
-
* then, and reloads the page, more than once on a first start. The list is the shell's and the frame's packages (the
|
|
9
|
-
* shell is React), the framework's, Testing Library's when the project installs it, what the plugins name, and
|
|
10
|
-
* Forgebook's own modules and the plugins' when they come from an installed package (a linked one is source, which Vite
|
|
11
|
-
* does not pre-bundle). axe is not among them: the frame loads it as a script (`axeScript.ts`). A package the project
|
|
12
|
-
* cannot resolve is left out, since Vite fails on one it cannot find. Pure: a resolver in, names out.
|
|
13
|
-
*
|
|
14
|
-
* @module
|
|
15
|
-
*/
|
|
1
|
+
import type { UserConfig } from "vite";
|
|
16
2
|
import { type ResolvedConfig } from "./configFile.ts";
|
|
3
|
+
import { type ScriptProblems } from "./scriptProblems.ts";
|
|
17
4
|
/**
|
|
18
5
|
* Resolves a package as Node would from the catalogue's folder: its file's real path, or none when it is not there.
|
|
19
6
|
*
|
|
@@ -41,3 +28,58 @@ export declare const prebundled: (config: ResolvedConfig, resolve: Resolve) => s
|
|
|
41
28
|
* @param readText - reads a file's text; none when it cannot.
|
|
42
29
|
*/
|
|
43
30
|
export declare const scannedEntries: (config: ResolvedConfig, resolve: Resolve, readText: (file: string) => string | undefined) => string[];
|
|
31
|
+
/** Vite's options of its dependency scan. */
|
|
32
|
+
type ScanOptions = NonNullable<NonNullable<UserConfig["optimizeDeps"]>["rolldownOptions"]>;
|
|
33
|
+
/** A module the scan reads in place of a file's own text. */
|
|
34
|
+
type ScanModule = {
|
|
35
|
+
code: string;
|
|
36
|
+
moduleType: "js" | "jsx";
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* What the scan reads for one of the project's scripts: nothing in its place when it parses (the scan reads it), the
|
|
40
|
+
* same text read as JSX when only JSX makes a `.js` file parse, and its imports alone when it does not parse at all,
|
|
41
|
+
* which the parser still finds, so their packages are pre-bundled with the rest.
|
|
42
|
+
*
|
|
43
|
+
* @param file - the script's path; its extension decides TypeScript and JSX.
|
|
44
|
+
* @param text - its source.
|
|
45
|
+
* @returns the module to scan, or none to let the scan read the file, and why the file does not parse.
|
|
46
|
+
*/
|
|
47
|
+
export declare const scannedScript: (file: string, text: string) => {
|
|
48
|
+
module: ScanModule | undefined;
|
|
49
|
+
problem: string | undefined;
|
|
50
|
+
};
|
|
51
|
+
/** Where the scan's findings go. */
|
|
52
|
+
export type ScanFindings = {
|
|
53
|
+
/** The catalogue's folder: a warning names a file relative to it; absolute without it. */
|
|
54
|
+
readonly root?: string;
|
|
55
|
+
/** Writes one warning line; none are written without it. */
|
|
56
|
+
readonly warn?: (line: string) => void;
|
|
57
|
+
/** Keeps what the scan found of each of the project's scripts, other than story files (`scriptProblems.ts`). */
|
|
58
|
+
readonly scanned?: ScriptProblems["scanned"];
|
|
59
|
+
/**
|
|
60
|
+
* Whether every `.js` file is read as JSX, for a framework whose adapter compiles their JSX (`compilesJsxInScripts`):
|
|
61
|
+
* JSX is a superset of what such a file may hold, so the others give the same imports. Without it, only a file that
|
|
62
|
+
* parses as nothing else is.
|
|
63
|
+
*/
|
|
64
|
+
readonly isJsxInScripts?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Whether the scan reads only the story files here and leaves every other script to the scanner, which parses it
|
|
67
|
+
* itself: a first start's pre-bundling tries that first, since reading and parsing every component a second time in
|
|
68
|
+
* JavaScript costs a large library a quarter of a second, and scans again without it only when a script stops the
|
|
69
|
+
* scan (`prebundleRun.ts`). A server's own scan reads them all.
|
|
70
|
+
*/
|
|
71
|
+
readonly isQuick?: boolean;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Keeps Vite's dependency scan going past one of the project's scripts that does not parse, a story file or a
|
|
75
|
+
* component, and reads a `.js` file holding JSX as JSX. One such file otherwise stops the scan, and with it the
|
|
76
|
+
* pre-bundling of every other story's packages, and fills the log with the scanner's stack; the pages then reload as
|
|
77
|
+
* each package is found. A script that does not parse is read as its imports alone: a story file is named by the
|
|
78
|
+
* catalogue itself (`storyFilesModule.ts`), any other is kept among the index's problems (`scriptProblems.ts`) and
|
|
79
|
+
* named by one warning with its place. The texts are read here on the scan only: a start that keeps its pre-bundled
|
|
80
|
+
* packages does not scan.
|
|
81
|
+
*
|
|
82
|
+
* @param findings - the catalogue's folder, where warnings and problems go, and whether `.js` is read as JSX.
|
|
83
|
+
*/
|
|
84
|
+
export declare const scanOptions: (findings?: ScanFindings) => ScanOptions;
|
|
85
|
+
export {};
|
|
@@ -13,9 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @module
|
|
15
15
|
*/
|
|
16
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
17
|
+
import { STORY_FILE } from "./autoTitle.js";
|
|
16
18
|
import { PLAY_TOOLS_PACKAGES } from "./configFile.js";
|
|
17
19
|
import { hasPluginViews, PLUGIN_HOSTS_MODULE, WRITTEN_HOME_MODULE } from "./pages.js";
|
|
18
20
|
import { pluginModules } from "./pluginConfig.js";
|
|
21
|
+
import { REFS_MODULE } from "./refsConfig.js";
|
|
22
|
+
import { INSTALLED, parsedScript, SCRIPT } from "./scriptProblems.js";
|
|
19
23
|
import { VITE_PATHS } from "./vitePaths.js";
|
|
20
24
|
/** What the shell and the frame import in the browser from the project's packages (React is a peer of the core). */
|
|
21
25
|
const CORE_BROWSER_DEPENDENCIES = [
|
|
@@ -40,6 +44,7 @@ export const prebundled = (config, resolve) => {
|
|
|
40
44
|
// imported on first use, so the scanner never sees it: named, or the first home would wait for the optimizer
|
|
41
45
|
...(config.home === undefined ? [] : [WRITTEN_HOME_MODULE]),
|
|
42
46
|
...(hasPluginViews(config) ? [PLUGIN_HOSTS_MODULE] : []),
|
|
47
|
+
...(config.refs.length === 0 ? [] : [REFS_MODULE]),
|
|
43
48
|
config.framework.pages.frame,
|
|
44
49
|
config.framework.pages.code,
|
|
45
50
|
...pluginModules(config.plugins, config.framework.name)
|
|
@@ -90,3 +95,78 @@ export const scannedEntries = (config, resolve, readText) => {
|
|
|
90
95
|
// `!` patterns stay as they are, which Vite's scanner reads as fast-glob does, from the same folder
|
|
91
96
|
return [...config.stories, ...fromSources, ...config.previews];
|
|
92
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* What the scan reads for one of the project's scripts: nothing in its place when it parses (the scan reads it), the
|
|
100
|
+
* same text read as JSX when only JSX makes a `.js` file parse, and its imports alone when it does not parse at all,
|
|
101
|
+
* which the parser still finds, so their packages are pre-bundled with the rest.
|
|
102
|
+
*
|
|
103
|
+
* @param file - the script's path; its extension decides TypeScript and JSX.
|
|
104
|
+
* @param text - its source.
|
|
105
|
+
* @returns the module to scan, or none to let the scan read the file, and why the file does not parse.
|
|
106
|
+
*/
|
|
107
|
+
export const scannedScript = (file, text) => {
|
|
108
|
+
const { imports, isJsx, problem } = parsedScript(file, text);
|
|
109
|
+
if (isJsx)
|
|
110
|
+
return { module: { code: text, moduleType: "jsx" }, problem };
|
|
111
|
+
if (problem === undefined)
|
|
112
|
+
return { module: undefined, problem };
|
|
113
|
+
const code = imports.map((name) => `import ${JSON.stringify(name)};`).join("\n");
|
|
114
|
+
return { module: { code, moduleType: "js" }, problem };
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Whether the scan reads a script here rather than leave it to the scanner: a quick scan reads the story files alone,
|
|
118
|
+
* whose problems the catalogue names as they are edited, and an id that names no file (a plugin's own module) is not
|
|
119
|
+
* the scan's to answer.
|
|
120
|
+
*
|
|
121
|
+
* @param id - the module's id.
|
|
122
|
+
* @param isQuick - whether the scan is a quick one (`ScanFindings.isQuick`).
|
|
123
|
+
*/
|
|
124
|
+
const isReadHere = (id, isQuick) => (!isQuick || STORY_FILE.test(id)) && existsSync(id);
|
|
125
|
+
/**
|
|
126
|
+
* The warnings this process wrote: a first start's pre-bundling scans again after leaving out an import it could not
|
|
127
|
+
* resolve (`prebundleRun.ts`), and a file is named once.
|
|
128
|
+
*/
|
|
129
|
+
const WARNED = new Set();
|
|
130
|
+
/**
|
|
131
|
+
* Keeps Vite's dependency scan going past one of the project's scripts that does not parse, a story file or a
|
|
132
|
+
* component, and reads a `.js` file holding JSX as JSX. One such file otherwise stops the scan, and with it the
|
|
133
|
+
* pre-bundling of every other story's packages, and fills the log with the scanner's stack; the pages then reload as
|
|
134
|
+
* each package is found. A script that does not parse is read as its imports alone: a story file is named by the
|
|
135
|
+
* catalogue itself (`storyFilesModule.ts`), any other is kept among the index's problems (`scriptProblems.ts`) and
|
|
136
|
+
* named by one warning with its place. The texts are read here on the scan only: a start that keeps its pre-bundled
|
|
137
|
+
* packages does not scan.
|
|
138
|
+
*
|
|
139
|
+
* @param findings - the catalogue's folder, where warnings and problems go, and whether `.js` is read as JSX.
|
|
140
|
+
*/
|
|
141
|
+
export const scanOptions = (findings = {}) => {
|
|
142
|
+
// the scan names files by their real path: a folder reached through a link (`/tmp` on macOS) would not prefix them
|
|
143
|
+
const root = findings.root === undefined || !existsSync(findings.root) ? undefined : realpathSync(findings.root);
|
|
144
|
+
return {
|
|
145
|
+
...(findings.isJsxInScripts === true ? { moduleTypes: { ".js": "jsx", ".mjs": "jsx" } } : {}),
|
|
146
|
+
plugins: [
|
|
147
|
+
{
|
|
148
|
+
name: "forgebook:scan-scripts",
|
|
149
|
+
load: {
|
|
150
|
+
filter: { id: { include: SCRIPT, exclude: INSTALLED } },
|
|
151
|
+
handler: (id) => {
|
|
152
|
+
if (!isReadHere(id, findings.isQuick === true))
|
|
153
|
+
return null;
|
|
154
|
+
const file = VITE_PATHS.normalize(id);
|
|
155
|
+
const { module, problem } = scannedScript(file, readFileSync(id, "utf8"));
|
|
156
|
+
if (STORY_FILE.test(id))
|
|
157
|
+
return module ?? null;
|
|
158
|
+
findings.scanned?.(file, problem);
|
|
159
|
+
if (problem !== undefined) {
|
|
160
|
+
const shown = root === undefined ? file : VITE_PATHS.relative(root, file);
|
|
161
|
+
const line = `The dependency scan skipped ${problem.replace(file, shown)}`;
|
|
162
|
+
if (!WARNED.has(line))
|
|
163
|
+
findings.warn?.(line);
|
|
164
|
+
WARNED.add(line);
|
|
165
|
+
}
|
|
166
|
+
return module ?? null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
};
|
|
172
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IndexedStoryFile } from "./storyFilesModule.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The tags a preview's text writes: none when it writes none, or none plainly.
|
|
4
|
+
*
|
|
5
|
+
* @param file - the preview's path, for the parser's language.
|
|
6
|
+
* @param text - its text.
|
|
7
|
+
*/
|
|
8
|
+
export declare const tagsOfPreviewText: (file: string, text: string) => readonly string[];
|
|
9
|
+
/**
|
|
10
|
+
* The tags of a catalogue's previews, the first preview's under the next's.
|
|
11
|
+
*
|
|
12
|
+
* @param config - the catalogue, with its previews' paths, the presets' first; none has no previews.
|
|
13
|
+
* @param watch - adds a file whose edit renews the module that reads them.
|
|
14
|
+
*/
|
|
15
|
+
export declare const previewTagsOf: (config: {
|
|
16
|
+
readonly previews: readonly string[];
|
|
17
|
+
} | undefined, watch: (file: string) => void) => readonly string[];
|
|
18
|
+
/**
|
|
19
|
+
* Story files with a preview's tags under each story's own, and under the meta's: a preview that marks every story
|
|
20
|
+
* marks every component.
|
|
21
|
+
*
|
|
22
|
+
* @param files - the story files, indexed.
|
|
23
|
+
* @param tags - the previews' tags.
|
|
24
|
+
*/
|
|
25
|
+
export declare const withPreviewTags: (files: readonly IndexedStoryFile[], tags: readonly string[]) => readonly IndexedStoryFile[];
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tags a preview gives every story (`tags` in `forgebook.preview.ts`), read from its text as a story file's are, so
|
|
3
|
+
* the list of stories needs no preview run.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* CSF puts them under a meta's and a story's, whose `!name` takes one away. The story index is kept between starts per
|
|
7
|
+
* file, so they join each story when the group's module is written, not in the kept index. Only tags written plainly
|
|
8
|
+
* count, as in a story file. Pure, but for reading the files.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync } from "node:fs";
|
|
13
|
+
import { objectFields, stringListOf } from "./indexFields.js";
|
|
14
|
+
import { combinedTags, storyFileMeta } from "./indexStoryFile.js";
|
|
15
|
+
import { parseStoryFile } from "./storyParse.js";
|
|
16
|
+
/**
|
|
17
|
+
* The tags a preview's text writes: none when it writes none, or none plainly.
|
|
18
|
+
*
|
|
19
|
+
* @param file - the preview's path, for the parser's language.
|
|
20
|
+
* @param text - its text.
|
|
21
|
+
*/
|
|
22
|
+
export const tagsOfPreviewText = (file, text) => {
|
|
23
|
+
const meta = storyFileMeta(parseStoryFile(file, text).program);
|
|
24
|
+
const tags = meta === undefined ? undefined : stringListOf(objectFields(meta), "tags");
|
|
25
|
+
return tags === undefined || tags instanceof Error ? [] : tags;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The tags of a catalogue's previews, the first preview's under the next's.
|
|
29
|
+
*
|
|
30
|
+
* @param config - the catalogue, with its previews' paths, the presets' first; none has no previews.
|
|
31
|
+
* @param watch - adds a file whose edit renews the module that reads them.
|
|
32
|
+
*/
|
|
33
|
+
export const previewTagsOf = (config, watch) => combinedTags((config?.previews ?? []).map((file) => {
|
|
34
|
+
watch(file);
|
|
35
|
+
return tagsOfPreviewText(file, readFileSync(file, "utf8"));
|
|
36
|
+
}));
|
|
37
|
+
/**
|
|
38
|
+
* Story files with a preview's tags under each story's own, and under the meta's: a preview that marks every story
|
|
39
|
+
* marks every component.
|
|
40
|
+
*
|
|
41
|
+
* @param files - the story files, indexed.
|
|
42
|
+
* @param tags - the previews' tags.
|
|
43
|
+
*/
|
|
44
|
+
export const withPreviewTags = (files, tags) => tags.length === 0
|
|
45
|
+
? files
|
|
46
|
+
: files.map((file) => ({
|
|
47
|
+
...file,
|
|
48
|
+
index: {
|
|
49
|
+
...file.index,
|
|
50
|
+
tags: combinedTags([tags, file.index.tags]),
|
|
51
|
+
stories: file.index.stories.map((story) => ({
|
|
52
|
+
...story,
|
|
53
|
+
tags: combinedTags([tags, story.tags])
|
|
54
|
+
}))
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** A file of a project. */
|
|
2
|
+
export type ProjectFile = {
|
|
3
|
+
/** Its path, relative to the folder asked about. */
|
|
4
|
+
readonly file: string;
|
|
5
|
+
/** Its text. */
|
|
6
|
+
readonly text: string;
|
|
7
|
+
};
|
|
8
|
+
/** A package of a repository. */
|
|
9
|
+
export type WorkspacePackage = {
|
|
10
|
+
/** Its name; empty for none. */
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/** Its folder, from the repository; empty for its root. */
|
|
13
|
+
readonly dir: string;
|
|
14
|
+
/** The packages it depends on, by name. */
|
|
15
|
+
readonly dependsOn: readonly string[];
|
|
16
|
+
};
|
|
17
|
+
/** What git is asked for. */
|
|
18
|
+
export declare const UI_PATTERNS: readonly string[];
|
|
19
|
+
/** Past this much text a report stops reading, rather than run out of memory on what no one wrote by hand. */
|
|
20
|
+
export declare const MOST_BYTES = 200000000;
|
|
21
|
+
/**
|
|
22
|
+
* The project's files inside its repository, relative to its folder, without reading them.
|
|
23
|
+
*
|
|
24
|
+
* @param dir - its folder.
|
|
25
|
+
* @param notes - told of what is left out.
|
|
26
|
+
*/
|
|
27
|
+
export declare const listedProjectFiles: (dir: string, notes: string[]) => string[];
|
|
28
|
+
/**
|
|
29
|
+
* Reads a project's files.
|
|
30
|
+
*
|
|
31
|
+
* @param dir - its folder.
|
|
32
|
+
* @param notes - told of what is left out.
|
|
33
|
+
*/
|
|
34
|
+
export declare const projectFiles: (dir: string, notes: string[]) => ProjectFile[];
|
|
35
|
+
/** A project's files and its scripts, read under one bound of files and bytes. */
|
|
36
|
+
export type FilesAndScripts = {
|
|
37
|
+
/** Its styles and components, as {@link projectFiles} reads them. */
|
|
38
|
+
readonly files: readonly ProjectFile[];
|
|
39
|
+
/** Its scripts, read with what room the files left. */
|
|
40
|
+
readonly scripts: readonly ProjectFile[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Reads a project's files and then its scripts, the two together held to the bounds {@link projectFiles} keeps alone.
|
|
44
|
+
*
|
|
45
|
+
* @param dir - its folder.
|
|
46
|
+
* @param notes - told of what is left out.
|
|
47
|
+
*/
|
|
48
|
+
export declare const projectFilesAndScripts: (dir: string, notes: string[]) => FilesAndScripts;
|
|
49
|
+
/**
|
|
50
|
+
* The packages of a repository, from their manifests, read and not run.
|
|
51
|
+
*
|
|
52
|
+
* @param root - the repository.
|
|
53
|
+
*/
|
|
54
|
+
export declare const workspacePackages: (root: string) => WorkspacePackage[];
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The files of a project a static reading takes: its styles and components, what git knows of them, inside the repository.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Shared by what reads a whole project without a catalogue (`forgebook audit`) and by `check-code`; the audit also reads
|
|
6
|
+
* the scripts, which import components and hold stories. A tracked link may lead
|
|
7
|
+
* anywhere, and a repository may hold more than memory, so both are bounded here and said in `notes`.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { listedFiles, repositoryOf, smallFileText } from "./appTokenFiles.js";
|
|
13
|
+
import { isInside } from "./sourceTokens.js";
|
|
14
|
+
/** What git is asked for. */
|
|
15
|
+
export const UI_PATTERNS = [
|
|
16
|
+
"*.css",
|
|
17
|
+
"*.scss",
|
|
18
|
+
"*.sass",
|
|
19
|
+
"*.less",
|
|
20
|
+
"*.tsx",
|
|
21
|
+
"*.jsx",
|
|
22
|
+
"*.vue",
|
|
23
|
+
"*.svelte",
|
|
24
|
+
"*.astro"
|
|
25
|
+
];
|
|
26
|
+
/** The same, for a file's name. */
|
|
27
|
+
const UI_FILE = /\.(?:css|scss|sass|less|tsx|jsx|vue|svelte|astro)$/;
|
|
28
|
+
/** What is not the project's own code: copies, generated output and what a package brought. */
|
|
29
|
+
const NOT_ITS_CODE = /(?:^|\/)(?:node_modules|dist|build|out|coverage|vendor|vendors|public|static|\.next|\.nuxt|\.svelte-kit|\.astro|\.turbo|storybook-static)\//;
|
|
30
|
+
/** Past this a project's files are not all read, and the report says so. */
|
|
31
|
+
const MOST_FILES = 5000;
|
|
32
|
+
/** Past this much text a report stops reading, rather than run out of memory on what no one wrote by hand. */
|
|
33
|
+
export const MOST_BYTES = 200_000_000;
|
|
34
|
+
/**
|
|
35
|
+
* The project's files inside its repository, relative to its folder, without reading them.
|
|
36
|
+
*
|
|
37
|
+
* @param dir - its folder.
|
|
38
|
+
* @param notes - told of what is left out.
|
|
39
|
+
*/
|
|
40
|
+
export const listedProjectFiles = (dir, notes) => {
|
|
41
|
+
const root = repositoryOf(dir);
|
|
42
|
+
const listed = listedFiles(dir, UI_PATTERNS, UI_FILE, NOT_ITS_CODE).filter((file) => !NOT_ITS_CODE.test(file));
|
|
43
|
+
if (listed.length > MOST_FILES)
|
|
44
|
+
notes.push(`${listed.length - MOST_FILES} files past the first ${MOST_FILES} not read`);
|
|
45
|
+
// a tracked link may lead anywhere
|
|
46
|
+
return listed.slice(0, MOST_FILES).filter((file) => isInside(root, join(dir, file)));
|
|
47
|
+
};
|
|
48
|
+
/** Reads listed files, up to the bytes a report reads, and says when it stops. */
|
|
49
|
+
const readFiles = (dir, listed, notes) => {
|
|
50
|
+
let bytes = 0;
|
|
51
|
+
const read = listed.flatMap((file) => {
|
|
52
|
+
const text = bytes > MOST_BYTES ? undefined : smallFileText(join(dir, file));
|
|
53
|
+
bytes += text?.length ?? 0;
|
|
54
|
+
return text === undefined ? [] : [{ file, text }];
|
|
55
|
+
});
|
|
56
|
+
if (bytes > MOST_BYTES)
|
|
57
|
+
notes.push(`files past the first ${MOST_BYTES} bytes not read`);
|
|
58
|
+
return read;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Reads a project's files.
|
|
62
|
+
*
|
|
63
|
+
* @param dir - its folder.
|
|
64
|
+
* @param notes - told of what is left out.
|
|
65
|
+
*/
|
|
66
|
+
export const projectFiles = (dir, notes) => readFiles(dir, listedProjectFiles(dir, notes), notes);
|
|
67
|
+
/** The scripts git is asked for: what may import a component or hold a story, with no markup of its own. */
|
|
68
|
+
const SCRIPT_PATTERNS = ["*.ts", "*.mts", "*.cts", "*.js", "*.mjs", "*.cjs"];
|
|
69
|
+
/** The same, for a file's name; a type declaration imports nothing that runs. */
|
|
70
|
+
const SCRIPT_FILE = /(?<!\.d)\.[cm]?[jt]s$/;
|
|
71
|
+
/**
|
|
72
|
+
* Reads a project's files and then its scripts, the two together held to the bounds {@link projectFiles} keeps alone.
|
|
73
|
+
*
|
|
74
|
+
* @param dir - its folder.
|
|
75
|
+
* @param notes - told of what is left out.
|
|
76
|
+
*/
|
|
77
|
+
export const projectFilesAndScripts = (dir, notes) => {
|
|
78
|
+
const root = repositoryOf(dir);
|
|
79
|
+
const ui = listedProjectFiles(dir, notes);
|
|
80
|
+
const listed = listedFiles(dir, SCRIPT_PATTERNS, SCRIPT_FILE, NOT_ITS_CODE).filter((file) => SCRIPT_FILE.test(file) && !NOT_ITS_CODE.test(file));
|
|
81
|
+
const room = Math.max(0, MOST_FILES - ui.length);
|
|
82
|
+
if (listed.length > room)
|
|
83
|
+
notes.push(`${listed.length - room} scripts past the first ${MOST_FILES} files not read`);
|
|
84
|
+
const scripts = new Set(listed.slice(0, room).filter((file) => isInside(root, join(dir, file))));
|
|
85
|
+
const read = readFiles(dir, [...ui, ...scripts], notes);
|
|
86
|
+
return {
|
|
87
|
+
files: read.filter(({ file }) => !scripts.has(file)),
|
|
88
|
+
scripts: read.filter(({ file }) => scripts.has(file))
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* The packages of a repository, from their manifests, read and not run.
|
|
93
|
+
*
|
|
94
|
+
* @param root - the repository.
|
|
95
|
+
*/
|
|
96
|
+
export const workspacePackages = (root) => listedFiles(root, ["package.json", "*/package.json"], /^package\.json$/, NOT_ITS_CODE)
|
|
97
|
+
.filter((file) => !NOT_ITS_CODE.test(file))
|
|
98
|
+
.slice(0, MOST_FILES)
|
|
99
|
+
.flatMap((file) => {
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(smallFileText(join(root, file)) ?? "");
|
|
102
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
103
|
+
return [];
|
|
104
|
+
const fields = new Map(Object.entries(parsed));
|
|
105
|
+
const name = fields.get("name");
|
|
106
|
+
const dependsOn = ["dependencies", "devDependencies", "peerDependencies"].flatMap((key) => {
|
|
107
|
+
const list = fields.get(key);
|
|
108
|
+
return typeof list === "object" && list !== null ? Object.keys(list) : [];
|
|
109
|
+
});
|
|
110
|
+
const dir = file === "package.json" ? "" : file.slice(0, -"/package.json".length);
|
|
111
|
+
return [{ name: typeof name === "string" ? name : "", dir, dependsOn }];
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** What PostCSS's `process` gives, as this module reads it. */
|
|
2
|
+
export type Processed = {
|
|
3
|
+
/** The style sheet. */
|
|
4
|
+
readonly css: string;
|
|
5
|
+
/** What the plugins said: among them, the files they read. */
|
|
6
|
+
readonly messages: readonly unknown[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The files PostCSS's plugins said they read: each `dependency`, and each file of a `dir-dependency`'s glob.
|
|
10
|
+
*
|
|
11
|
+
* @param messages - the messages of PostCSS's result.
|
|
12
|
+
*/
|
|
13
|
+
export declare const watchedFiles: (messages: readonly unknown[]) => string[];
|
|
14
|
+
/** Where a project's configuration is. */
|
|
15
|
+
export type PostcssConfigPlace = {
|
|
16
|
+
/** A file of its own. */
|
|
17
|
+
readonly kind: "file";
|
|
18
|
+
/** Its absolute path. */
|
|
19
|
+
readonly file: string;
|
|
20
|
+
} | {
|
|
21
|
+
/** The `postcss` key of a `package.json`. */
|
|
22
|
+
readonly kind: "package";
|
|
23
|
+
/** That file's absolute path. */
|
|
24
|
+
readonly file: string;
|
|
25
|
+
/** What the key holds. */
|
|
26
|
+
readonly config: unknown;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Where a project's PostCSS configuration is, or none: in its folder, else in the ones above it, up to its repository's
|
|
30
|
+
* root.
|
|
31
|
+
*
|
|
32
|
+
* @param dir - the project's folder.
|
|
33
|
+
*/
|
|
34
|
+
export declare const postcssConfigPlace: (dir: string) => PostcssConfigPlace | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* The project's PostCSS configuration file, or none.
|
|
37
|
+
*
|
|
38
|
+
* @param dir - the project's folder.
|
|
39
|
+
*/
|
|
40
|
+
export declare const postcssConfigFile: (dir: string) => string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The plugins a configuration names, each loaded from the project and given its options; one set to `false` is off.
|
|
43
|
+
*
|
|
44
|
+
* @param plugins - the configuration's `plugins`: an object of names and options, or a list.
|
|
45
|
+
* @param load - loads a plugin's package by name.
|
|
46
|
+
*/
|
|
47
|
+
export declare const configuredPlugins: (plugins: unknown, load: (name: string) => Promise<unknown>) => Promise<unknown[]>;
|
|
48
|
+
/**
|
|
49
|
+
* A project's PostCSS configuration that could not be loaded, which is a different thing from a sheet it refuses: every
|
|
50
|
+
* sheet would fail alike, so a catalogue goes on without it and says so once.
|
|
51
|
+
*/
|
|
52
|
+
export declare class PostcssConfigError extends Error {
|
|
53
|
+
}
|
|
54
|
+
/** Runs the project's PostCSS on a style sheet. */
|
|
55
|
+
export type PostcssRunner = (css: string, file: string) => Promise<Processed>;
|
|
56
|
+
/** What a project's PostCSS is made from, when it is not read from a configuration of its own. */
|
|
57
|
+
export type PostcssOptions = {
|
|
58
|
+
/** A package of the project that brings its own PostCSS and plugins (Next.js does), looked in after the project. */
|
|
59
|
+
readonly bringsPostcss?: string;
|
|
60
|
+
/** The plugins, already made (Vite's `css.postcss`): no file is looked for. */
|
|
61
|
+
readonly plugins?: readonly unknown[];
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The project's PostCSS, ready to run: its configuration and plugins loaded on the first style sheet.
|
|
65
|
+
*
|
|
66
|
+
* @param dir - the project's folder.
|
|
67
|
+
* @param options - where else to look, and plugins already made.
|
|
68
|
+
* @returns the runner, or none for a project without a PostCSS configuration.
|
|
69
|
+
*/
|
|
70
|
+
export declare const projectPostcss: (dir: string, options?: PostcssOptions) => PostcssRunner | undefined;
|