polen 0.10.0-next.14 → 0.10.0-next.4
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 +1 -2
- package/build/api/builder/builder.js +1 -1
- package/build/api/builder/builder.js.map +1 -1
- package/build/api/config/load.js +6 -6
- package/build/api/config/load.js.map +1 -1
- package/build/api/config-resolver/resolve.js +2 -2
- package/build/api/config-resolver/resolve.js.map +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
- package/build/api/vite/plugins/branding/index.js +4 -4
- package/build/api/vite/plugins/branding/index.js.map +1 -1
- package/build/api/vite/plugins/build.d.ts.map +1 -1
- package/build/api/vite/plugins/build.js +4 -12
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts +2 -2
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +13 -13
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.d.ts +14 -8
- package/build/api/vite/plugins/pages.d.ts.map +1 -1
- package/build/api/vite/plugins/pages.js +185 -111
- package/build/api/vite/plugins/pages.js.map +1 -1
- package/build/api/vite/plugins/serve.d.ts.map +1 -1
- package/build/api/vite/plugins/serve.js +12 -52
- package/build/api/vite/plugins/serve.js.map +1 -1
- package/build/cli/_/self-contained-mode.js +5 -5
- package/build/cli/_/self-contained-mode.js.map +1 -1
- package/build/lib/demos/config-schema.d.ts +20 -20
- package/build/lib/file-router/diagnostic-reporter.js +2 -2
- package/build/lib/file-router/diagnostic-reporter.js.map +1 -1
- package/build/lib/file-router/file-router.d.ts +2 -0
- package/build/lib/file-router/file-router.d.ts.map +1 -1
- package/build/lib/file-router/file-router.js +2 -0
- package/build/lib/file-router/file-router.js.map +1 -1
- package/build/lib/file-router/route.d.ts +0 -2
- package/build/lib/file-router/route.d.ts.map +1 -1
- package/build/lib/file-router/route.js.map +1 -1
- package/build/lib/file-router/scan-tree.d.ts +20 -0
- package/build/lib/file-router/scan-tree.d.ts.map +1 -0
- package/build/lib/file-router/scan-tree.js +158 -0
- package/build/lib/file-router/scan-tree.js.map +1 -0
- package/build/lib/file-router/scan.d.ts.map +1 -1
- package/build/lib/file-router/scan.js +13 -22
- package/build/lib/file-router/scan.js.map +1 -1
- package/build/lib/file-router/sidebar/index.d.ts +3 -0
- package/build/lib/file-router/sidebar/index.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/index.js +4 -0
- package/build/lib/file-router/sidebar/index.js.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts +9 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js +85 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js.map +1 -0
- package/build/lib/file-router/sidebar/types.d.ts +17 -0
- package/build/lib/file-router/sidebar/types.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/types.js.map +1 -0
- package/build/lib/github-actions/runner.js +2 -2
- package/build/lib/github-actions/runner.js.map +1 -1
- package/build/lib/github-actions/schemas/context.d.ts +2 -2
- package/build/lib/kit-temp.d.ts +0 -103
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +3 -239
- package/build/lib/kit-temp.js.map +1 -1
- package/build/lib/tree/index.d.ts +3 -0
- package/build/lib/tree/index.d.ts.map +1 -0
- package/build/lib/tree/index.js +2 -0
- package/build/lib/tree/index.js.map +1 -0
- package/build/lib/tree/tree.d.ts +62 -0
- package/build/lib/tree/tree.d.ts.map +1 -0
- package/build/lib/tree/tree.js +134 -0
- package/build/lib/tree/tree.js.map +1 -0
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +8 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +1 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +53 -48
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +1 -1
- package/build/package-paths.js +3 -3
- package/build/package-paths.js.map +1 -1
- package/build/sandbox.js +2 -17
- package/build/sandbox.js.map +1 -1
- package/build/singletons/debug.d.ts +1 -1
- package/build/singletons/debug.d.ts.map +1 -1
- package/build/singletons/debug.js +1 -1
- package/build/singletons/debug.js.map +1 -1
- package/build/template/components/ArgumentAnnotation.jsx +16 -0
- package/build/template/components/ArgumentAnnotation.jsx.map +1 -0
- package/build/template/components/ArgumentList.jsx +16 -0
- package/build/template/components/ArgumentList.jsx.map +1 -0
- package/build/template/components/ArgumentListAnnotation.jsx +23 -0
- package/build/template/components/ArgumentListAnnotation.jsx.map +1 -0
- package/build/template/components/Changelog.jsx +68 -0
- package/build/template/components/Changelog.jsx.map +1 -0
- package/build/template/components/{CodeBlock.js → CodeBlock.jsx} +5 -4
- package/build/template/components/{CodeBlock.js.map → CodeBlock.jsx.map} +1 -1
- package/build/template/components/DeprecationReason.jsx +10 -0
- package/build/template/components/DeprecationReason.jsx.map +1 -0
- package/build/template/components/Description.jsx +10 -0
- package/build/template/components/Description.jsx.map +1 -0
- package/build/template/components/Field.jsx +22 -0
- package/build/template/components/Field.jsx.map +1 -0
- package/build/template/components/{FieldList.js → FieldList.jsx} +5 -4
- package/build/template/components/FieldList.jsx.map +1 -0
- package/build/template/components/{FieldListSection.js → FieldListSection.jsx} +6 -4
- package/build/template/components/FieldListSection.jsx.map +1 -0
- package/build/template/components/Link.d.ts +2 -2
- package/build/template/components/Link.d.ts.map +1 -1
- package/build/template/components/{Link.js → Link.jsx} +9 -17
- package/build/template/components/Link.jsx.map +1 -0
- package/build/template/components/Logo.jsx +29 -0
- package/build/template/components/Logo.jsx.map +1 -0
- package/build/template/components/{Markdown.js → Markdown.jsx} +2 -3
- package/build/template/components/Markdown.jsx.map +1 -0
- package/build/template/components/MissingSchema.d.ts +1 -1
- package/build/template/components/MissingSchema.d.ts.map +1 -1
- package/build/template/components/MissingSchema.jsx +4 -0
- package/build/template/components/MissingSchema.jsx.map +1 -0
- package/build/template/components/NamedType.jsx +17 -0
- package/build/template/components/NamedType.jsx.map +1 -0
- package/build/template/components/{RadixLink.js → RadixLink.jsx} +1 -1
- package/build/template/components/RadixLink.jsx.map +1 -0
- package/build/template/components/Texts/{MinorHeading.js → MinorHeading.jsx} +3 -4
- package/build/template/components/Texts/MinorHeading.jsx.map +1 -0
- package/build/template/components/Texts/texts.js +1 -1
- package/build/template/components/Texts/texts.js.map +1 -1
- package/build/template/components/{TypeAnnotation.js → TypeAnnotation.jsx} +18 -8
- package/build/template/components/TypeAnnotation.jsx.map +1 -0
- package/build/template/components/TypeFieldsLinkList.jsx +17 -0
- package/build/template/components/TypeFieldsLinkList.jsx.map +1 -0
- package/build/template/components/TypeIndex.jsx +27 -0
- package/build/template/components/TypeIndex.jsx.map +1 -0
- package/build/template/components/graphql/graphql.d.ts +2 -2
- package/build/template/components/graphql/graphql.jsx +3 -0
- package/build/template/components/graphql/graphql.jsx.map +1 -0
- package/build/template/components/graphql/index.d.ts +1 -1
- package/build/template/components/graphql/index.js +1 -1
- package/build/template/components/graphql/index.js.map +1 -1
- package/build/template/components/graphql/{type-kind-icon.js → type-kind-icon.jsx} +2 -3
- package/build/template/components/graphql/type-kind-icon.jsx.map +1 -0
- package/build/template/components/graphql/type-link.jsx +16 -0
- package/build/template/components/graphql/type-link.jsx.map +1 -0
- package/build/template/components/sidebar/Sidebar.d.ts +3 -3
- package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
- package/build/template/components/sidebar/Sidebar.jsx +15 -0
- package/build/template/components/sidebar/Sidebar.jsx.map +1 -0
- package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
- package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
- package/build/template/components/sidebar/{SidebarItem.js → SidebarItem.jsx} +35 -18
- package/build/template/components/sidebar/SidebarItem.jsx.map +1 -0
- package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
- package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
- package/build/template/components/sidebar/ToggleButton.jsx +6 -0
- package/build/template/components/sidebar/ToggleButton.jsx.map +1 -0
- package/build/template/entry.client.d.ts +0 -1
- package/build/template/entry.client.d.ts.map +1 -1
- package/build/template/{entry.client.js → entry.client.jsx} +9 -5
- package/build/template/entry.client.jsx.map +1 -0
- package/build/template/routes/changelog.d.ts +1 -1
- package/build/template/routes/{changelog.js → changelog.jsx} +4 -5
- package/build/template/routes/changelog.jsx.map +1 -0
- package/build/template/routes/{index.js → index.jsx} +2 -3
- package/build/template/routes/index.jsx.map +1 -0
- package/build/template/routes/reference.$type.$field.d.ts +1 -1
- package/build/template/routes/{reference.$type.$field.js → reference.$type.$field.jsx} +5 -6
- package/build/template/routes/reference.$type.$field.jsx.map +1 -0
- package/build/template/routes/reference.$type.d.ts +1 -1
- package/build/template/routes/{reference.$type.js → reference.$type.jsx} +5 -6
- package/build/template/routes/reference.$type.jsx.map +1 -0
- package/build/template/routes/reference.d.ts +2 -2
- package/build/template/routes/reference.d.ts.map +1 -1
- package/build/template/routes/{reference.js → reference.jsx} +12 -7
- package/build/template/routes/reference.jsx.map +1 -0
- package/build/template/routes/root.d.ts +2 -2
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.jsx +188 -0
- package/build/template/routes/root.jsx.map +1 -0
- package/build/template/routes.jsx +5 -0
- package/build/template/routes.jsx.map +1 -0
- package/build/template/server/app.d.ts +1 -8
- package/build/template/server/app.d.ts.map +1 -1
- package/build/template/server/app.js +21 -21
- package/build/template/server/app.js.map +1 -1
- package/build/template/server/main.js +1 -2
- package/build/template/server/main.js.map +1 -1
- package/build/template/server/render-page.d.ts +3 -0
- package/build/template/server/render-page.d.ts.map +1 -0
- package/build/template/server/{create-page-html-response.js → render-page.jsx} +17 -11
- package/build/template/server/render-page.jsx.map +1 -0
- package/build/template/server/ssg/generate.d.ts.map +1 -1
- package/build/template/server/ssg/generate.js +34 -33
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/ssg/get-route-paths.js +1 -1
- package/build/template/server/ssg/get-route-paths.js.map +1 -1
- package/build/template/server/view.js +1 -1
- package/build/template/server/view.js.map +1 -1
- package/package.json +9 -66
- package/src/api/config/load.ts +5 -5
- package/src/api/config-resolver/resolve.ts +2 -2
- package/src/api/schema/data-sources/schema-directory/schema-directory.ts +1 -1
- package/src/api/singletons/markdown/markdown.test.ts +1 -1
- package/src/api/vite/plugins/branding/index.ts +4 -4
- package/src/api/vite/plugins/build.ts +89 -97
- package/src/api/vite/plugins/core.ts +16 -18
- package/src/api/vite/plugins/pages.ts +209 -135
- package/src/api/vite/plugins/serve.ts +14 -67
- package/src/cli/_/self-contained-mode.ts +5 -5
- package/src/lib/deployment/$$.ts +1 -1
- package/src/lib/deployment/$.test.ts +3 -3
- package/src/lib/deployment/$.ts +1 -1
- package/src/lib/file-router/diagnostic-reporter.ts +2 -2
- package/src/lib/file-router/file-router.ts +2 -0
- package/src/lib/file-router/linter.test.ts +0 -2
- package/src/lib/file-router/route.ts +0 -2
- package/src/lib/file-router/scan-tree.test.ts +189 -0
- package/src/lib/file-router/scan-tree.ts +205 -0
- package/src/lib/file-router/scan.ts +14 -26
- package/src/lib/file-router/sidebar/index.ts +3 -0
- package/src/lib/file-router/sidebar/sidebar-tree.test.ts +123 -0
- package/src/lib/file-router/sidebar/sidebar-tree.ts +110 -0
- package/src/lib/file-router/sidebar/types.ts +19 -0
- package/src/lib/kit-temp.test.ts +7 -19
- package/src/lib/kit-temp.ts +5 -307
- package/src/lib/task/$.test.ts +3 -3
- package/src/lib/tree/index.ts +2 -0
- package/src/lib/tree/tree.test.ts +117 -0
- package/src/lib/tree/tree.ts +183 -0
- package/src/lib/version-history/index.test.ts +4 -12
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +58 -52
- package/src/package-paths.ts +3 -3
- package/src/sandbox.ts +1 -20
- package/src/singletons/debug.ts +1 -1
- package/src/template/components/ArgumentAnnotation.tsx +1 -1
- package/src/template/components/ArgumentList.tsx +1 -1
- package/src/template/components/ArgumentListAnnotation.tsx +2 -2
- package/src/template/components/DeprecationReason.tsx +1 -1
- package/src/template/components/Description.tsx +1 -1
- package/src/template/components/Field.tsx +4 -4
- package/src/template/components/FieldList.tsx +1 -1
- package/src/template/components/FieldListSection.tsx +1 -1
- package/src/template/components/Link.tsx +14 -22
- package/src/template/components/NamedType.tsx +2 -2
- package/src/template/components/TypeAnnotation.tsx +1 -1
- package/src/template/components/TypeFieldsLinkList.tsx +1 -1
- package/src/template/components/TypeIndex.tsx +1 -1
- package/src/template/components/graphql/graphql.tsx +2 -2
- package/src/template/components/graphql/index.ts +1 -1
- package/src/template/components/graphql/type-link.tsx +2 -2
- package/src/template/components/sidebar/Sidebar.tsx +2 -2
- package/src/template/components/sidebar/SidebarItem.tsx +14 -14
- package/src/template/entry.client.tsx +5 -2
- package/src/template/routes/changelog.tsx +1 -1
- package/src/template/routes/reference.$type.$field.tsx +3 -3
- package/src/template/routes/reference.$type.tsx +3 -3
- package/src/template/routes/reference.tsx +10 -6
- package/src/template/routes/root.tsx +108 -112
- package/src/template/routes.tsx +1 -1
- package/src/template/server/app.ts +23 -33
- package/src/template/server/main.ts +1 -2
- package/src/template/server/{create-page-html-response.ts → render-page.tsx} +16 -19
- package/src/template/server/ssg/generate.ts +72 -68
- package/src/template/server/ssg/get-route-paths.ts +1 -1
- package/src/template/server/view.ts +1 -1
- package/src/template/styles/code-block.css +0 -32
- package/build/api/content/$$.d.ts +0 -7
- package/build/api/content/$$.d.ts.map +0 -1
- package/build/api/content/$$.js +0 -7
- package/build/api/content/$$.js.map +0 -1
- package/build/api/content/$.d.ts +0 -2
- package/build/api/content/$.d.ts.map +0 -1
- package/build/api/content/$.js +0 -2
- package/build/api/content/$.js.map +0 -1
- package/build/api/content/metadata.d.ts +0 -10
- package/build/api/content/metadata.d.ts.map +0 -1
- package/build/api/content/metadata.js +0 -9
- package/build/api/content/metadata.js.map +0 -1
- package/build/api/content/navbar.d.ts +0 -10
- package/build/api/content/navbar.d.ts.map +0 -1
- package/build/api/content/navbar.js +0 -45
- package/build/api/content/navbar.js.map +0 -1
- package/build/api/content/page.d.ts +0 -11
- package/build/api/content/page.d.ts.map +0 -1
- package/build/api/content/page.js +0 -2
- package/build/api/content/page.js.map +0 -1
- package/build/api/content/scan.d.ts +0 -19
- package/build/api/content/scan.d.ts.map +0 -1
- package/build/api/content/scan.js +0 -90
- package/build/api/content/scan.js.map +0 -1
- package/build/api/content/sidebar.d.ts +0 -104
- package/build/api/content/sidebar.d.ts.map +0 -1
- package/build/api/content/sidebar.js +0 -166
- package/build/api/content/sidebar.js.map +0 -1
- package/build/api/content/utils.d.ts +0 -5
- package/build/api/content/utils.d.ts.map +0 -1
- package/build/api/content/utils.js +0 -8
- package/build/api/content/utils.js.map +0 -1
- package/build/exports/components.d.ts +0 -5
- package/build/exports/components.d.ts.map +0 -1
- package/build/exports/components.js +0 -5
- package/build/exports/components.js.map +0 -1
- package/build/lib/graphql-document/$$.d.ts +0 -5
- package/build/lib/graphql-document/$$.d.ts.map +0 -1
- package/build/lib/graphql-document/$$.js +0 -5
- package/build/lib/graphql-document/$$.js.map +0 -1
- package/build/lib/graphql-document/$.d.ts +0 -2
- package/build/lib/graphql-document/$.d.ts.map +0 -1
- package/build/lib/graphql-document/$.js +0 -2
- package/build/lib/graphql-document/$.js.map +0 -1
- package/build/lib/graphql-document/analysis.d.ts +0 -44
- package/build/lib/graphql-document/analysis.d.ts.map +0 -1
- package/build/lib/graphql-document/analysis.js +0 -361
- package/build/lib/graphql-document/analysis.js.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.d.ts +0 -19
- package/build/lib/graphql-document/components/CopyButton.d.ts.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.js +0 -43
- package/build/lib/graphql-document/components/CopyButton.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -38
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.js +0 -142
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +0 -7
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +0 -45
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +0 -33
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +0 -48
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +0 -39
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.js +0 -75
- package/build/lib/graphql-document/components/IdentifierLink.js.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +0 -5
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.js +0 -167
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +0 -1
- package/build/lib/graphql-document/components/index.d.ts +0 -6
- package/build/lib/graphql-document/components/index.d.ts.map +0 -1
- package/build/lib/graphql-document/components/index.js +0 -6
- package/build/lib/graphql-document/components/index.js.map +0 -1
- package/build/lib/graphql-document/example.d.ts +0 -25
- package/build/lib/graphql-document/example.d.ts.map +0 -1
- package/build/lib/graphql-document/example.js +0 -140
- package/build/lib/graphql-document/example.js.map +0 -1
- package/build/lib/graphql-document/graphql-document.d.ts +0 -35
- package/build/lib/graphql-document/graphql-document.d.ts.map +0 -1
- package/build/lib/graphql-document/graphql-document.js +0 -36
- package/build/lib/graphql-document/graphql-document.js.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +0 -43
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +0 -132
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +0 -1
- package/build/lib/graphql-document/positioning-simple.d.ts +0 -63
- package/build/lib/graphql-document/positioning-simple.d.ts.map +0 -1
- package/build/lib/graphql-document/positioning-simple.js +0 -185
- package/build/lib/graphql-document/positioning-simple.js.map +0 -1
- package/build/lib/graphql-document/schema-context.d.ts +0 -8
- package/build/lib/graphql-document/schema-context.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-context.js +0 -11
- package/build/lib/graphql-document/schema-context.js.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.d.ts +0 -27
- package/build/lib/graphql-document/schema-integration-example.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.js +0 -297
- package/build/lib/graphql-document/schema-integration-example.js.map +0 -1
- package/build/lib/graphql-document/schema-integration.d.ts +0 -135
- package/build/lib/graphql-document/schema-integration.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration.js +0 -328
- package/build/lib/graphql-document/schema-integration.js.map +0 -1
- package/build/lib/graphql-document/types.d.ts +0 -117
- package/build/lib/graphql-document/types.d.ts.map +0 -1
- package/build/lib/graphql-document/types.js.map +0 -1
- package/build/template/components/ArgumentAnnotation.js +0 -10
- package/build/template/components/ArgumentAnnotation.js.map +0 -1
- package/build/template/components/ArgumentList.js +0 -9
- package/build/template/components/ArgumentList.js.map +0 -1
- package/build/template/components/ArgumentListAnnotation.js +0 -15
- package/build/template/components/ArgumentListAnnotation.js.map +0 -1
- package/build/template/components/Changelog.js +0 -44
- package/build/template/components/Changelog.js.map +0 -1
- package/build/template/components/CodeBlockEnhancer.d.ts +0 -2
- package/build/template/components/CodeBlockEnhancer.d.ts.map +0 -1
- package/build/template/components/CodeBlockEnhancer.js +0 -175
- package/build/template/components/CodeBlockEnhancer.js.map +0 -1
- package/build/template/components/DeprecationReason.js +0 -9
- package/build/template/components/DeprecationReason.js.map +0 -1
- package/build/template/components/Description.js +0 -9
- package/build/template/components/Description.js.map +0 -1
- package/build/template/components/Field.js +0 -14
- package/build/template/components/Field.js.map +0 -1
- package/build/template/components/FieldList.js.map +0 -1
- package/build/template/components/FieldListSection.js.map +0 -1
- package/build/template/components/HamburgerMenu.d.ts +0 -9
- package/build/template/components/HamburgerMenu.d.ts.map +0 -1
- package/build/template/components/HamburgerMenu.js +0 -30
- package/build/template/components/HamburgerMenu.js.map +0 -1
- package/build/template/components/Link.js.map +0 -1
- package/build/template/components/Logo.js +0 -20
- package/build/template/components/Logo.js.map +0 -1
- package/build/template/components/MDXComponents.d.ts +0 -11
- package/build/template/components/MDXComponents.d.ts.map +0 -1
- package/build/template/components/MDXComponents.js +0 -70
- package/build/template/components/MDXComponents.js.map +0 -1
- package/build/template/components/Markdown.js.map +0 -1
- package/build/template/components/MissingSchema.js +0 -5
- package/build/template/components/MissingSchema.js.map +0 -1
- package/build/template/components/NamedType.js +0 -12
- package/build/template/components/NamedType.js.map +0 -1
- package/build/template/components/NotFound.d.ts +0 -2
- package/build/template/components/NotFound.d.ts.map +0 -1
- package/build/template/components/NotFound.js +0 -7
- package/build/template/components/NotFound.js.map +0 -1
- package/build/template/components/RadixLink.js.map +0 -1
- package/build/template/components/TestComponent.d.ts +0 -5
- package/build/template/components/TestComponent.d.ts.map +0 -1
- package/build/template/components/TestComponent.js +0 -7
- package/build/template/components/TestComponent.js.map +0 -1
- package/build/template/components/Texts/MinorHeading.js.map +0 -1
- package/build/template/components/ThemeToggle.d.ts +0 -3
- package/build/template/components/ThemeToggle.d.ts.map +0 -1
- package/build/template/components/ThemeToggle.js +0 -9
- package/build/template/components/ThemeToggle.js.map +0 -1
- package/build/template/components/TypeAnnotation.js.map +0 -1
- package/build/template/components/TypeFieldsLinkList.js +0 -9
- package/build/template/components/TypeFieldsLinkList.js.map +0 -1
- package/build/template/components/TypeIndex.js +0 -17
- package/build/template/components/TypeIndex.js.map +0 -1
- package/build/template/components/content/$$.d.ts +0 -3
- package/build/template/components/content/$$.d.ts.map +0 -1
- package/build/template/components/content/$$.js +0 -3
- package/build/template/components/content/$$.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +0 -8
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.js +0 -13
- package/build/template/components/content/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts +0 -7
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.js +0 -63
- package/build/template/components/content/GraphQLDocumentWrapper.js.map +0 -1
- package/build/template/components/graphql/graphql.js +0 -3
- package/build/template/components/graphql/graphql.js.map +0 -1
- package/build/template/components/graphql/type-kind-icon.js.map +0 -1
- package/build/template/components/graphql/type-link.js +0 -11
- package/build/template/components/graphql/type-link.js.map +0 -1
- package/build/template/components/sidebar/Sidebar.js +0 -11
- package/build/template/components/sidebar/Sidebar.js.map +0 -1
- package/build/template/components/sidebar/SidebarItem.js.map +0 -1
- package/build/template/components/sidebar/ToggleButton.js +0 -5
- package/build/template/components/sidebar/ToggleButton.js.map +0 -1
- package/build/template/contexts/ThemeContext.d.ts +0 -12
- package/build/template/contexts/ThemeContext.d.ts.map +0 -1
- package/build/template/contexts/ThemeContext.js +0 -40
- package/build/template/contexts/ThemeContext.js.map +0 -1
- package/build/template/entry.client.js.map +0 -1
- package/build/template/hooks/useClientOnly.d.ts +0 -9
- package/build/template/hooks/useClientOnly.d.ts.map +0 -1
- package/build/template/hooks/useClientOnly.js +0 -16
- package/build/template/hooks/useClientOnly.js.map +0 -1
- package/build/template/routes/changelog.js.map +0 -1
- package/build/template/routes/index.js.map +0 -1
- package/build/template/routes/reference.$type.$field.js.map +0 -1
- package/build/template/routes/reference.$type.js.map +0 -1
- package/build/template/routes/reference.js.map +0 -1
- package/build/template/routes/root.js +0 -138
- package/build/template/routes/root.js.map +0 -1
- package/build/template/routes.js +0 -5
- package/build/template/routes.js.map +0 -1
- package/build/template/server/create-page-html-response.d.ts +0 -7
- package/build/template/server/create-page-html-response.d.ts.map +0 -1
- package/build/template/server/create-page-html-response.js.map +0 -1
- package/build/template/server/middleware/page.d.ts +0 -4
- package/build/template/server/middleware/page.d.ts.map +0 -1
- package/build/template/server/middleware/page.js +0 -15
- package/build/template/server/middleware/page.js.map +0 -1
- package/build/template/server/middleware/unsupported-assets.d.ts +0 -10
- package/build/template/server/middleware/unsupported-assets.d.ts.map +0 -1
- package/build/template/server/middleware/unsupported-assets.js +0 -21
- package/build/template/server/middleware/unsupported-assets.js.map +0 -1
- package/build/template/styles/code-block.css +0 -218
- package/src/api/content/$$.ts +0 -6
- package/src/api/content/$.test.ts +0 -72
- package/src/api/content/$.ts +0 -1
- package/src/api/content/metadata.ts +0 -11
- package/src/api/content/navbar.test.ts +0 -55
- package/src/api/content/navbar.ts +0 -61
- package/src/api/content/page.ts +0 -12
- package/src/api/content/scan.ts +0 -117
- package/src/api/content/sidebar.test.ts +0 -297
- package/src/api/content/sidebar.ts +0 -283
- package/src/api/content/utils.ts +0 -7
- package/src/exports/components.ts +0 -4
- package/src/lib/graphql-document/$$.ts +0 -4
- package/src/lib/graphql-document/$.test.ts +0 -132
- package/src/lib/graphql-document/$.ts +0 -1
- package/src/lib/graphql-document/README.md +0 -102
- package/src/lib/graphql-document/analysis.ts +0 -415
- package/src/lib/graphql-document/components/CopyButton.tsx +0 -76
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +0 -262
- package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +0 -188
- package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +0 -70
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +0 -197
- package/src/lib/graphql-document/components/IdentifierLink.tsx +0 -160
- package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -167
- package/src/lib/graphql-document/components/index.ts +0 -5
- package/src/lib/graphql-document/demo.md +0 -155
- package/src/lib/graphql-document/example.ts +0 -163
- package/src/lib/graphql-document/graphql-document.ts +0 -37
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +0 -76
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +0 -191
- package/src/lib/graphql-document/positioning-simple.test.ts +0 -248
- package/src/lib/graphql-document/positioning-simple.ts +0 -260
- package/src/lib/graphql-document/schema-context.tsx +0 -20
- package/src/lib/graphql-document/schema-integration-example.ts +0 -341
- package/src/lib/graphql-document/schema-integration.test.ts +0 -365
- package/src/lib/graphql-document/schema-integration.ts +0 -497
- package/src/lib/graphql-document/types.ts +0 -129
- package/src/template/components/CodeBlockEnhancer.tsx +0 -192
- package/src/template/components/HamburgerMenu.tsx +0 -96
- package/src/template/components/MDXComponents.tsx +0 -101
- package/src/template/components/NotFound.tsx +0 -28
- package/src/template/components/TestComponent.tsx +0 -6
- package/src/template/components/ThemeToggle.tsx +0 -21
- package/src/template/components/content/$$.ts +0 -2
- package/src/template/components/content/GraphQLDocumentWithSchema.tsx +0 -13
- package/src/template/components/content/GraphQLDocumentWrapper.tsx +0 -89
- package/src/template/contexts/ThemeContext.tsx +0 -60
- package/src/template/hooks/useClientOnly.ts +0 -21
- package/src/template/server/middleware/page.ts +0 -19
- package/src/template/server/middleware/unsupported-assets.ts +0 -25
- /package/build/lib/{graphql-document → file-router/sidebar}/types.js +0 -0
@@ -1,34 +1,36 @@
|
|
1
1
|
import type { Config } from '#api/config/index'
|
2
|
-
import { Content } from '#api/content/$'
|
3
|
-
import { createNavbar } from '#api/content/navbar'
|
4
2
|
import type { NavbarDataRegistry } from '#api/vite/data/navbar'
|
5
3
|
import { polenVirtual } from '#api/vite/vi'
|
6
4
|
import type { Vite } from '#dep/vite/index'
|
7
5
|
import { reportDiagnostics } from '#lib/file-router/diagnostic-reporter'
|
8
6
|
import { FileRouter } from '#lib/file-router/index'
|
9
|
-
import {
|
7
|
+
import { Tree } from '#lib/tree/index'
|
8
|
+
import { debug } from '#singletons/debug'
|
10
9
|
import { superjson } from '#singletons/superjson'
|
11
10
|
import mdx from '@mdx-js/rollup'
|
12
11
|
import rehypeShiki from '@shikijs/rehype'
|
13
|
-
import {
|
14
|
-
import remarkFrontmatter from 'remark-frontmatter'
|
12
|
+
import { Path, Str } from '@wollybeard/kit'
|
15
13
|
import remarkGfm from 'remark-gfm'
|
16
14
|
|
17
|
-
const
|
15
|
+
const _debug = debug.sub(`vite-plugin-pages`)
|
18
16
|
|
19
|
-
export const
|
20
|
-
export const
|
21
|
-
allowPluginProcessing: true,
|
22
|
-
})
|
17
|
+
export const viProjectPages = polenVirtual([`project`, `pages.jsx`], { allowPluginProcessing: true })
|
18
|
+
export const viProjectPagesData = polenVirtual([`project`, `data`, 'pages.jsonsuper'], { allowPluginProcessing: true })
|
23
19
|
|
24
|
-
export interface
|
20
|
+
export interface PagesTreePluginOptions {
|
25
21
|
config: Config.Config
|
26
22
|
navbarData?: NavbarDataRegistry
|
23
|
+
onPagesChange?: (pages: FileRouter.ScanResult) => void
|
24
|
+
onTreeChange?: (tree: FileRouter.RouteTreeNode) => void
|
27
25
|
}
|
28
26
|
|
29
|
-
export interface
|
30
|
-
sidebarIndex:
|
31
|
-
|
27
|
+
export interface ProjectDataPages {
|
28
|
+
sidebarIndex: SidebarIndex
|
29
|
+
pagesScanResult: FileRouter.ScanResult
|
30
|
+
}
|
31
|
+
|
32
|
+
export interface SidebarIndex {
|
33
|
+
[pathExpression: string]: FileRouter.Sidebar.Sidebar
|
32
34
|
}
|
33
35
|
|
34
36
|
/**
|
@@ -37,53 +39,77 @@ export interface ProjectPagesCatalog {
|
|
37
39
|
export const Pages = ({
|
38
40
|
config,
|
39
41
|
navbarData,
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
42
|
+
onPagesChange,
|
43
|
+
onTreeChange,
|
44
|
+
}: PagesTreePluginOptions): Vite.Plugin[] => {
|
45
|
+
let currentPagesData: FileRouter.ScanResult | null = null
|
46
|
+
let currentTreeData: FileRouter.RouteTreeNode | null = null
|
47
|
+
|
48
|
+
// State management
|
49
|
+
let pagesCache: FileRouter.ScanResult | null = null
|
50
|
+
let treeCache: FileRouter.RouteTreeNode | null = null
|
51
|
+
|
52
|
+
// Helper functions
|
53
|
+
const scanPages = async () => {
|
54
|
+
if (!pagesCache) {
|
55
|
+
_debug(`Scanning pages - cache is null, loading fresh data`)
|
56
|
+
pagesCache = await FileRouter.scan({
|
57
|
+
dir: config.paths.project.absolute.pages,
|
58
|
+
glob: `**/*.{md,mdx}`,
|
59
|
+
})
|
60
|
+
_debug(`Found ${String(pagesCache.routes.length)} pages`)
|
61
|
+
} else {
|
62
|
+
_debug(`Using cached pages`)
|
54
63
|
}
|
64
|
+
return pagesCache
|
65
|
+
}
|
55
66
|
|
56
|
-
|
57
|
-
if (
|
58
|
-
|
59
|
-
|
67
|
+
const scanTree = async () => {
|
68
|
+
if (!treeCache) {
|
69
|
+
_debug(`Scanning tree - cache is null, loading fresh data`)
|
70
|
+
const result = await FileRouter.scanTree({
|
71
|
+
dir: config.paths.project.absolute.pages,
|
72
|
+
glob: `**/*.{md,mdx}`,
|
73
|
+
})
|
74
|
+
treeCache = result.routeTree
|
75
|
+
_debug(`Built route tree`)
|
76
|
+
} else {
|
77
|
+
_debug(`Using cached tree`)
|
60
78
|
}
|
79
|
+
return treeCache
|
80
|
+
}
|
81
|
+
|
82
|
+
const clearCache = () => {
|
83
|
+
_debug(`Clearing pages and tree cache`)
|
84
|
+
pagesCache = null
|
85
|
+
treeCache = null
|
61
86
|
}
|
62
87
|
|
63
|
-
const
|
88
|
+
const isPageFile = (file: string) => {
|
89
|
+
return (file.endsWith(`.md`) || file.endsWith(`.mdx`))
|
90
|
+
&& file.includes(config.paths.project.absolute.pages)
|
91
|
+
}
|
92
|
+
|
93
|
+
const generatePagesModule = (pagesScanResult: FileRouter.ScanResult): string => {
|
64
94
|
const $ = {
|
65
|
-
|
95
|
+
pages: `pages`,
|
66
96
|
}
|
67
97
|
|
68
98
|
const s = Str.Builder()
|
69
|
-
s`export const ${$.
|
99
|
+
s`export const ${$.pages} = []`
|
70
100
|
|
71
101
|
// Generate imports and route objects
|
72
|
-
for (const
|
102
|
+
for (const route of pagesScanResult.routes) {
|
73
103
|
const filePathExp = Path.format(route.file.path.absolute)
|
74
104
|
const pathExp = FileRouter.routeToPathExpression(route)
|
75
|
-
const
|
76
|
-
...$,
|
77
|
-
Component: Str.Case.camel(`page ` + Str.titlizeSlug(pathExp)),
|
78
|
-
}
|
105
|
+
const ident = Str.Case.camel(`page ` + Str.titlizeSlug(pathExp))
|
79
106
|
|
80
107
|
s`
|
81
|
-
import ${
|
108
|
+
import ${ident} from '${filePathExp}'
|
82
109
|
|
83
|
-
${
|
110
|
+
${$.pages}.push({
|
84
111
|
path: '${pathExp}',
|
85
|
-
Component: ${
|
86
|
-
metadata: ${JSON.stringify(metadata)}
|
112
|
+
Component: ${ident}
|
87
113
|
})
|
88
114
|
`
|
89
115
|
}
|
@@ -97,11 +123,7 @@ export const Pages = ({
|
|
97
123
|
enforce: `pre` as const,
|
98
124
|
...mdx({
|
99
125
|
jsxImportSource: `polen/react`,
|
100
|
-
remarkPlugins: [
|
101
|
-
// Parse frontmatter blocks so they're removed from content
|
102
|
-
remarkFrontmatter,
|
103
|
-
remarkGfm,
|
104
|
-
],
|
126
|
+
remarkPlugins: [remarkGfm],
|
105
127
|
rehypePlugins: [
|
106
128
|
[
|
107
129
|
rehypeShiki,
|
@@ -110,7 +132,7 @@ export const Pages = ({
|
|
110
132
|
light: `github-light`,
|
111
133
|
dark: `tokyo-night`,
|
112
134
|
},
|
113
|
-
defaultColor:
|
135
|
+
defaultColor: false,
|
114
136
|
cssVariablePrefix: `--shiki-`,
|
115
137
|
transformers: [
|
116
138
|
// Line numbers will be handled via CSS
|
@@ -128,77 +150,66 @@ export const Pages = ({
|
|
128
150
|
// Dev server configuration
|
129
151
|
configureServer(server) {
|
130
152
|
// Add pages directory to watcher
|
131
|
-
|
153
|
+
_debug(`configureServer: watch pages directory`, config.paths.project.absolute.pages)
|
132
154
|
server.watcher.add(config.paths.project.absolute.pages)
|
133
|
-
|
134
|
-
// Handle file additions and deletions
|
135
|
-
const handleFileStructureChange = async (file: string, event: 'add' | 'unlink') => {
|
136
|
-
if (!Content.isPageFile(file, config.paths.project.absolute.pages)) return
|
137
|
-
|
138
|
-
debug(`Page file ${event === 'add' ? 'added' : 'deleted'}:`, file)
|
139
|
-
|
140
|
-
// Clear cache and rescan
|
141
|
-
scanPages.clear()
|
142
|
-
const newScanResult = await scanPages()
|
143
|
-
|
144
|
-
// Invalidate virtual modules
|
145
|
-
invalidateVirtualModules(server)
|
146
|
-
|
147
|
-
// Report any diagnostics
|
148
|
-
reportDiagnostics(newScanResult.diagnostics)
|
149
|
-
|
150
|
-
// Trigger full reload to ensure routes are updated
|
151
|
-
server.ws.send({ type: 'full-reload' })
|
152
|
-
}
|
153
|
-
|
154
|
-
server.watcher.on('add', (file) => handleFileStructureChange(file, 'add'))
|
155
|
-
server.watcher.on('unlink', (file) => handleFileStructureChange(file, 'unlink'))
|
156
155
|
},
|
157
156
|
|
158
|
-
// Hot update handling
|
157
|
+
// Hot update handling
|
159
158
|
async handleHotUpdate({ file, server, modules }) {
|
160
|
-
|
161
|
-
if (!
|
159
|
+
_debug(`handleHotUpdate`, file)
|
160
|
+
if (!isPageFile(file)) return
|
162
161
|
|
163
|
-
|
162
|
+
_debug(`Page file changed:`, file)
|
164
163
|
|
165
|
-
//
|
166
|
-
const oldPages =
|
164
|
+
// Check if this is a content-only change to an existing page
|
165
|
+
const oldPages = pagesCache
|
167
166
|
|
168
167
|
// Clear cache and rescan
|
169
|
-
|
170
|
-
const
|
171
|
-
|
172
|
-
|
173
|
-
//
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
//
|
184
|
-
|
185
|
-
|
168
|
+
clearCache()
|
169
|
+
const newPages = await scanPages()
|
170
|
+
currentPagesData = newPages
|
171
|
+
|
172
|
+
// Check if page structure changed (added/removed pages)
|
173
|
+
const structureChanged = !oldPages
|
174
|
+
|| oldPages.routes.length !== newPages.routes.length
|
175
|
+
|| !oldPages.routes.every((oldRoute, i) =>
|
176
|
+
oldRoute.file.path.absolute === newPages.routes[i]?.file.path.absolute
|
177
|
+
)
|
178
|
+
|
179
|
+
if (structureChanged) {
|
180
|
+
_debug(`Page structure changed, triggering full reload`)
|
181
|
+
|
182
|
+
// Invalidate virtual module
|
183
|
+
const mod = server.moduleGraph.getModuleById(viProjectPages.id)
|
184
|
+
if (mod) {
|
185
|
+
server.moduleGraph.invalidateModule(mod)
|
186
|
+
_debug(`Invalidated pages virtual module`)
|
187
|
+
}
|
186
188
|
|
187
|
-
|
188
|
-
|
189
|
-
|
189
|
+
// Notify about changes
|
190
|
+
if (onPagesChange) {
|
191
|
+
reportDiagnostics(newPages.diagnostics)
|
192
|
+
onPagesChange(newPages)
|
193
|
+
}
|
190
194
|
|
191
|
-
|
195
|
+
if (onTreeChange) {
|
196
|
+
const tree = await scanTree()
|
197
|
+
onTreeChange(tree)
|
198
|
+
currentTreeData = tree
|
199
|
+
}
|
192
200
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
201
|
+
// Trigger full reload for structure changes
|
202
|
+
server.ws.send({ type: `full-reload` })
|
203
|
+
return []
|
204
|
+
} else {
|
205
|
+
_debug(`Page content changed, allowing HMR`)
|
206
|
+
// Let default HMR handle the MDX file change
|
207
|
+
return modules
|
208
|
+
}
|
198
209
|
},
|
199
210
|
resolveId(id) {
|
200
|
-
if (id ===
|
201
|
-
return
|
211
|
+
if (id === viProjectPagesData.id) {
|
212
|
+
return viProjectPagesData.resolved
|
202
213
|
}
|
203
214
|
},
|
204
215
|
load: {
|
@@ -206,56 +217,108 @@ export const Pages = ({
|
|
206
217
|
// id: viProjectPagesData.resolved,
|
207
218
|
// },
|
208
219
|
async handler(id) {
|
209
|
-
if (id !==
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
220
|
+
if (id !== viProjectPagesData.resolved) return
|
221
|
+
_debug(`viProjectDataPages`)
|
222
|
+
|
223
|
+
// Get pages data from the pages plugin or load initially
|
224
|
+
if (!currentPagesData) {
|
225
|
+
_debug(`loadingPagesDataInitially`)
|
226
|
+
currentPagesData = await FileRouter.scan({
|
227
|
+
dir: config.paths.project.absolute.pages,
|
228
|
+
glob: `**/*.{md,mdx}`,
|
229
|
+
})
|
230
|
+
// Report any diagnostics from initial scan
|
231
|
+
reportDiagnostics(currentPagesData.diagnostics)
|
232
|
+
}
|
233
|
+
if (!currentTreeData) {
|
234
|
+
_debug(`loadingTreeDataInitially`)
|
235
|
+
currentTreeData = await getRouteTree(config)
|
236
|
+
}
|
237
|
+
const pagesScanResult = currentPagesData
|
238
|
+
const routeTree = currentTreeData
|
239
|
+
_debug(`usingPageRoutesFromPagesPlugin`, pagesScanResult.routes.length)
|
216
240
|
|
217
241
|
//
|
218
242
|
// ━━ Build Navbar
|
219
243
|
//
|
220
244
|
|
245
|
+
// Update navbar if provided
|
221
246
|
if (navbarData) {
|
222
247
|
const navbarPages = navbarData.get('pages')
|
223
|
-
|
224
248
|
navbarPages.length = 0 // Clear existing
|
225
249
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
250
|
+
// Process first-level children as navigation items
|
251
|
+
for (const child of routeTree.children) {
|
252
|
+
if (child.value.type === 'directory') {
|
253
|
+
// Check if this directory has an index file
|
254
|
+
const hasIndex = child.children.some(c => c.value.type === 'file' && c.value.name === 'index')
|
255
|
+
|
256
|
+
if (hasIndex) {
|
257
|
+
const pathExp = FileRouter.pathToExpression([child.value.name])
|
258
|
+
const title = Str.titlizeSlug(child.value.name)
|
259
|
+
navbarPages.push({
|
260
|
+
// IMPORTANT: Always ensure paths start with '/' for React Router compatibility.
|
261
|
+
// Without the leading slash, React Router treats paths as relative, which causes
|
262
|
+
// hydration mismatches between SSR (where base path is prepended) and client
|
263
|
+
// (where basename is configured). This ensures consistent behavior.
|
264
|
+
pathExp: pathExp.startsWith('/') ? pathExp : '/' + pathExp,
|
265
|
+
title,
|
266
|
+
})
|
267
|
+
}
|
268
|
+
} else if (child.value.type === 'file' && child.value.name !== 'index') {
|
269
|
+
const pathExp = FileRouter.pathToExpression([child.value.name])
|
270
|
+
const title = Str.titlizeSlug(child.value.name)
|
271
|
+
navbarPages.push({
|
272
|
+
// IMPORTANT: Always ensure paths start with '/' for React Router compatibility.
|
273
|
+
// Without the leading slash, React Router treats paths as relative, which causes
|
274
|
+
// hydration mismatches between SSR (where base path is prepended) and client
|
275
|
+
// (where basename is configured). This ensures consistent behavior.
|
276
|
+
pathExp: pathExp.startsWith('/') ? pathExp : '/' + pathExp,
|
277
|
+
title,
|
278
|
+
})
|
279
|
+
}
|
280
|
+
}
|
231
281
|
}
|
232
282
|
|
233
283
|
//
|
234
284
|
// ━━ Build Sidebar
|
235
285
|
//
|
236
286
|
|
237
|
-
const sidebarIndex =
|
287
|
+
const sidebarIndex: SidebarIndex = {}
|
288
|
+
|
289
|
+
// Build sidebar for each top-level directory
|
290
|
+
for (const child of routeTree.children) {
|
291
|
+
if (child.value.type === 'directory') {
|
292
|
+
const pathExp = `/${child.value.name}`
|
293
|
+
// Create a subtree starting from this directory
|
294
|
+
const subtree = Tree.node(child.value, child.children)
|
295
|
+
// Pass the directory name as base path so paths are built correctly
|
296
|
+
const sidebar = FileRouter.Sidebar.buildFromTree(subtree, [child.value.name])
|
297
|
+
_debug(`Built sidebar for ${pathExp}:`, sidebar)
|
298
|
+
sidebarIndex[pathExp] = sidebar
|
299
|
+
}
|
300
|
+
}
|
238
301
|
|
239
302
|
//
|
240
303
|
// ━━ Put It All together
|
241
304
|
//
|
242
305
|
|
243
|
-
const
|
306
|
+
const projectDataPages: ProjectDataPages = {
|
244
307
|
sidebarIndex,
|
245
|
-
|
308
|
+
pagesScanResult: pagesScanResult,
|
246
309
|
}
|
247
310
|
|
248
311
|
// Return just the JSON string - let the JSON plugin handle the transformation
|
249
|
-
return superjson.stringify(
|
312
|
+
return superjson.stringify(projectDataPages)
|
250
313
|
},
|
251
314
|
},
|
252
315
|
},
|
253
|
-
// Plugin
|
316
|
+
// Plugin 4: Virtual Module for Pages Routes
|
254
317
|
{
|
255
|
-
name: 'polen:routes',
|
318
|
+
name: 'polen:pages:routes',
|
256
319
|
resolveId(id) {
|
257
|
-
if (id ===
|
258
|
-
return
|
320
|
+
if (id === viProjectPages.id) {
|
321
|
+
return viProjectPages.resolved
|
259
322
|
}
|
260
323
|
},
|
261
324
|
load: {
|
@@ -263,17 +326,19 @@ export const Pages = ({
|
|
263
326
|
// id: viProjectPages.resolved,
|
264
327
|
// },
|
265
328
|
handler: async (id) => {
|
266
|
-
if (id !==
|
329
|
+
if (id !== viProjectPages.resolved) return
|
267
330
|
|
268
|
-
|
331
|
+
_debug(`Loading viProjectPages virtual module`)
|
269
332
|
|
270
|
-
|
271
|
-
|
272
|
-
|
333
|
+
// Ensure we have pages data
|
334
|
+
if (!currentPagesData) {
|
335
|
+
currentPagesData = await scanPages()
|
336
|
+
reportDiagnostics(currentPagesData.diagnostics)
|
337
|
+
}
|
273
338
|
|
274
339
|
// Generate the module code
|
275
340
|
return {
|
276
|
-
code,
|
341
|
+
code: generatePagesModule(currentPagesData),
|
277
342
|
moduleType: 'js',
|
278
343
|
}
|
279
344
|
},
|
@@ -281,3 +346,12 @@ export const Pages = ({
|
|
281
346
|
},
|
282
347
|
]
|
283
348
|
}
|
349
|
+
|
350
|
+
// Helper to get tree
|
351
|
+
export const getRouteTree = async (config: Config.Config): Promise<FileRouter.RouteTreeNode> => {
|
352
|
+
const result = await FileRouter.scanTree({
|
353
|
+
dir: config.paths.project.absolute.pages,
|
354
|
+
glob: `**/*.{md,mdx}`,
|
355
|
+
})
|
356
|
+
return result.routeTree
|
357
|
+
}
|
@@ -1,80 +1,29 @@
|
|
1
1
|
import type { Config } from '#api/config/index'
|
2
2
|
import { reportError } from '#api/server/report-error'
|
3
|
-
import { Hono } from '#dep/hono/index'
|
3
|
+
import type { Hono } from '#dep/hono/index'
|
4
4
|
import type { Vite } from '#dep/vite/index'
|
5
5
|
import { ResponseInternalServerError } from '#lib/kit-temp'
|
6
|
-
import {
|
6
|
+
import { debug } from '#singletons/debug'
|
7
7
|
import * as HonoNodeServer from '@hono/node-server'
|
8
|
-
import { Err
|
8
|
+
import { Err } from '@wollybeard/kit'
|
9
9
|
|
10
10
|
type App = Hono.Hono
|
11
11
|
|
12
|
-
interface AppOptions {
|
13
|
-
hooks?: {
|
14
|
-
transformHtml?: Array<(html: string, ctx: Hono.Context) => Promise<string> | string>
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
12
|
interface AppServerModule {
|
19
|
-
|
13
|
+
app: App
|
20
14
|
}
|
21
15
|
|
22
16
|
export const Serve = (
|
23
17
|
config: Config.Config,
|
24
18
|
): Vite.PluginOption => {
|
25
|
-
const
|
26
|
-
debug('construct')
|
27
|
-
const appModulePath = config.paths.framework.template.server.app
|
28
|
-
|
19
|
+
const _debug = debug.sub(`serve`)
|
29
20
|
let appPromise: Promise<App | Error>
|
30
21
|
|
31
|
-
const
|
32
|
-
|
33
|
-
if (!appModule) return true // Not loaded yet
|
34
|
-
|
35
|
-
// Check if the module or any of its dependencies are invalidated
|
36
|
-
const checkInvalidated = (mod: Vite.ModuleNode, visited = new Set<string>()): boolean => {
|
37
|
-
console.log(Obj.pick(mod, ['ssrInvalidationState', 'invalidationState', 'lastInvalidationTimestamp']))
|
38
|
-
// if (!mod.id || visited.has(mod.id)) return false
|
39
|
-
// visited.add(mod.id)
|
40
|
-
|
41
|
-
// // Check if this module is invalidated
|
42
|
-
// if (mod.transformResult === null) return true
|
43
|
-
|
44
|
-
// // Check all imported modules recursively
|
45
|
-
// for (const imported of mod.importedModules) {
|
46
|
-
// if (checkInvalidated(imported, visited)) return true
|
47
|
-
// }
|
48
|
-
|
49
|
-
return false
|
50
|
-
}
|
51
|
-
|
52
|
-
return checkInvalidated(appModule)
|
53
|
-
}
|
54
|
-
|
55
|
-
const reloadApp = async (server: Vite.ViteDevServer): Promise<App | Error> => {
|
56
|
-
debug('reloadApp')
|
57
|
-
|
22
|
+
const reloadApp = async ({ server }: { server: Vite.ViteDevServer }): Promise<App | Error> => {
|
23
|
+
_debug('reloadApp')
|
58
24
|
return server.ssrLoadModule(config.paths.framework.template.server.app)
|
59
25
|
.then(module => module as AppServerModule)
|
60
|
-
.then(module =>
|
61
|
-
return module.createApp({
|
62
|
-
hooks: {
|
63
|
-
transformHtml: [
|
64
|
-
// Inject entry client script for development
|
65
|
-
(html: string, _ctx) => {
|
66
|
-
const entryClientPath = config.paths.framework.template.client.entrypoint
|
67
|
-
const entryClientScript = `<script type="module" src="${entryClientPath}"></script>`
|
68
|
-
return html.replace('</body>', `${entryClientScript}</body>`)
|
69
|
-
},
|
70
|
-
// Apply Vite's transformations
|
71
|
-
async (html: string, ctx) => {
|
72
|
-
return await server.transformIndexHtml(ctx.req.url, html)
|
73
|
-
},
|
74
|
-
],
|
75
|
-
},
|
76
|
-
})
|
77
|
-
})
|
26
|
+
.then(module => module.app)
|
78
27
|
.catch(async (error) => {
|
79
28
|
if (Err.is(error)) {
|
80
29
|
// ━ Clean Stack Trace
|
@@ -106,14 +55,14 @@ export const Serve = (
|
|
106
55
|
}
|
107
56
|
},
|
108
57
|
handleHotUpdate({ server }) {
|
109
|
-
|
58
|
+
_debug('handleHotUpdate')
|
110
59
|
// Reload app server immediately in the background
|
111
|
-
appPromise = reloadApp(server)
|
60
|
+
appPromise = reloadApp({ server })
|
112
61
|
},
|
113
62
|
async configureServer(server) {
|
114
|
-
|
63
|
+
_debug('configureServer')
|
115
64
|
// Initial load
|
116
|
-
appPromise = reloadApp(server)
|
65
|
+
appPromise = reloadApp({ server })
|
117
66
|
|
118
67
|
return () => {
|
119
68
|
// Remove index.html serving middleware.
|
@@ -125,8 +74,6 @@ export const Serve = (
|
|
125
74
|
|
126
75
|
// Add middleware that runs our entry server
|
127
76
|
server.middlewares.use((req, res, ___next) => {
|
128
|
-
debug('request')
|
129
|
-
// isNeedAppLoadOrReload(server)
|
130
77
|
void HonoNodeServer.getRequestListener(async request => {
|
131
78
|
// Always await the current app promise
|
132
79
|
const app = await appPromise
|
@@ -134,8 +81,8 @@ export const Serve = (
|
|
134
81
|
// Err.log(app)
|
135
82
|
return ResponseInternalServerError()
|
136
83
|
}
|
137
|
-
|
138
|
-
return
|
84
|
+
const response = await app.fetch(request, { viteDevServer: server })
|
85
|
+
return response
|
139
86
|
})(req, res)
|
140
87
|
})
|
141
88
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { Vite } from '#dep/vite/index'
|
2
2
|
import { type ImportEvent, isSpecifierFromPackage } from '#lib/kit-temp'
|
3
3
|
import { packagePaths } from '#package-paths'
|
4
|
-
import {
|
4
|
+
import { debug } from '#singletons/debug'
|
5
5
|
import type * as Module from 'node:module'
|
6
6
|
import { fileURLToPath } from 'node:url'
|
7
7
|
|
@@ -18,7 +18,7 @@ export function initialize(data: SelfContainedModeHooksData) {
|
|
18
18
|
export const resolve: Module.ResolveHook = async (specifier, context, nextResolve) => {
|
19
19
|
if (!data_) throw new Error(`Self-contained mode not initialized`)
|
20
20
|
|
21
|
-
const
|
21
|
+
const _debug = debug.sub(`node-module-hooks`)
|
22
22
|
|
23
23
|
const from: ImportEvent = {
|
24
24
|
specifier,
|
@@ -32,7 +32,7 @@ export const resolve: Module.ResolveHook = async (specifier, context, nextResolv
|
|
32
32
|
importerPathExpOrFileUrlExp: from.context.parentURL,
|
33
33
|
})
|
34
34
|
) {
|
35
|
-
|
35
|
+
_debug(`resolve check`, { specifier, context })
|
36
36
|
|
37
37
|
const to: ImportEvent = {
|
38
38
|
specifier: from.specifier,
|
@@ -43,7 +43,7 @@ export const resolve: Module.ResolveHook = async (specifier, context, nextResolv
|
|
43
43
|
},
|
44
44
|
}
|
45
45
|
|
46
|
-
|
46
|
+
_debug(`resolve`, { from, to })
|
47
47
|
|
48
48
|
await nextResolve(to.specifier, to.context)
|
49
49
|
}
|
@@ -66,7 +66,7 @@ export const checkIsSelfImportFromProject = (input: {
|
|
66
66
|
}
|
67
67
|
|
68
68
|
export const VitePluginSelfContainedMode = ({ projectDirPathExp }: { projectDirPathExp: string }): Vite.Plugin => {
|
69
|
-
const d =
|
69
|
+
const d = debug.sub(`vite-plugin:self-contained-import`)
|
70
70
|
|
71
71
|
return {
|
72
72
|
name: `polen:self-contained-import`,
|
package/src/lib/deployment/$$.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
export * from './metadata.ts'
|
2
|
-
export * from './path-manager.ts'
|
2
|
+
export * from './path-manager.ts'
|
@@ -26,7 +26,7 @@ describe('metadata', () => {
|
|
26
26
|
}
|
27
27
|
|
28
28
|
await Deployment.metadata.write(metadata, testDir)
|
29
|
-
|
29
|
+
|
30
30
|
const result = await Deployment.metadata.read(testDir)
|
31
31
|
expect(result).toEqual(metadata)
|
32
32
|
})
|
@@ -46,8 +46,8 @@ describe('metadata', () => {
|
|
46
46
|
}
|
47
47
|
|
48
48
|
await Deployment.metadata.write(metadata, testDir)
|
49
|
-
|
49
|
+
|
50
50
|
const fileExists = await Fs.exists(`${testDir}/.deployment.json`)
|
51
51
|
expect(fileExists).toBe(true)
|
52
52
|
})
|
53
|
-
})
|
53
|
+
})
|
package/src/lib/deployment/$.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * as Deployment from './$$.ts'
|
1
|
+
export * as Deployment from './$$.ts'
|