polen 0.10.0-next.14 → 0.10.0-next.3
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 +375 -49
- package/build/api/api.d.ts +0 -1
- package/build/api/api.d.ts.map +1 -1
- package/build/api/api.js +0 -1
- package/build/api/api.js.map +1 -1
- 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 -33
- 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/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/helpers.d.ts.map +1 -1
- package/build/lib/helpers.js +3 -5
- package/build/lib/helpers.js.map +1 -1
- package/build/lib/kit-temp.d.ts +0 -157
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +14 -316
- 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/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} +10 -18
- 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 -73
- package/src/api/api.ts +0 -1
- 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 +2 -2
- package/src/api/utils/asset-url/asset-url.test.ts +4 -4
- package/src/api/vite/plugins/branding/index.ts +4 -4
- package/src/api/vite/plugins/build.ts +89 -121
- package/src/api/vite/plugins/core.ts +17 -19
- 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/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/helpers.ts +3 -4
- package/src/lib/kit-temp.ts +14 -428
- package/src/lib/shiki/shiki.test.ts +1 -1
- 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/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +58 -52
- package/src/package-paths.ts +3 -3
- 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 +15 -23
- 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/api/static/index.d.ts +0 -2
- package/build/api/static/index.d.ts.map +0 -1
- package/build/api/static/index.js +0 -2
- package/build/api/static/index.js.map +0 -1
- package/build/api/static/manifest.d.ts +0 -18
- package/build/api/static/manifest.d.ts.map +0 -1
- package/build/api/static/manifest.js +0 -13
- package/build/api/static/manifest.js.map +0 -1
- package/build/api/static/rebase.d.ts +0 -14
- package/build/api/static/rebase.d.ts.map +0 -1
- package/build/api/static/rebase.js +0 -110
- package/build/api/static/rebase.js.map +0 -1
- package/build/api/static/static.d.ts +0 -3
- package/build/api/static/static.d.ts.map +0 -1
- package/build/api/static/static.js +0 -3
- package/build/api/static/static.js.map +0 -1
- package/build/cli/commands/static/$default.d.ts +0 -3
- package/build/cli/commands/static/$default.d.ts.map +0 -1
- package/build/cli/commands/static/$default.js +0 -38
- package/build/cli/commands/static/$default.js.map +0 -1
- package/build/cli/commands/static/rebase.d.ts +0 -2
- package/build/cli/commands/static/rebase.d.ts.map +0 -1
- package/build/cli/commands/static/rebase.js +0 -26
- package/build/cli/commands/static/rebase.js.map +0 -1
- package/build/cli/commands/static.d.ts +0 -3
- package/build/cli/commands/static.d.ts.map +0 -1
- package/build/cli/commands/static.js +0 -5
- package/build/cli/commands/static.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/demos/builder.d.ts +0 -83
- package/build/lib/demos/builder.d.ts.map +0 -1
- package/build/lib/demos/builder.js +0 -237
- package/build/lib/demos/builder.js.map +0 -1
- package/build/lib/demos/config-schema.d.ts +0 -243
- package/build/lib/demos/config-schema.d.ts.map +0 -1
- package/build/lib/demos/config-schema.js +0 -52
- package/build/lib/demos/config-schema.js.map +0 -1
- package/build/lib/demos/config.d.ts +0 -40
- package/build/lib/demos/config.d.ts.map +0 -1
- package/build/lib/demos/config.js +0 -180
- package/build/lib/demos/config.js.map +0 -1
- package/build/lib/demos/index.d.ts +0 -9
- package/build/lib/demos/index.d.ts.map +0 -1
- package/build/lib/demos/index.js +0 -8
- package/build/lib/demos/index.js.map +0 -1
- package/build/lib/demos/ui/components.d.ts +0 -33
- package/build/lib/demos/ui/components.d.ts.map +0 -1
- package/build/lib/demos/ui/components.js +0 -699
- package/build/lib/demos/ui/components.js.map +0 -1
- package/build/lib/demos/ui/data-collector.d.ts +0 -88
- package/build/lib/demos/ui/data-collector.d.ts.map +0 -1
- package/build/lib/demos/ui/data-collector.js +0 -174
- package/build/lib/demos/ui/data-collector.js.map +0 -1
- package/build/lib/demos/ui/landing-page-cli.d.ts +0 -3
- package/build/lib/demos/ui/landing-page-cli.d.ts.map +0 -1
- package/build/lib/demos/ui/landing-page-cli.js +0 -21
- package/build/lib/demos/ui/landing-page-cli.js.map +0 -1
- package/build/lib/demos/ui/landing-page.d.ts +0 -32
- package/build/lib/demos/ui/landing-page.d.ts.map +0 -1
- package/build/lib/demos/ui/landing-page.js +0 -83
- package/build/lib/demos/ui/landing-page.js.map +0 -1
- package/build/lib/demos/ui/page-renderer.d.ts +0 -26
- package/build/lib/demos/ui/page-renderer.d.ts.map +0 -1
- package/build/lib/demos/ui/page-renderer.js +0 -104
- package/build/lib/demos/ui/page-renderer.js.map +0 -1
- package/build/lib/demos/utils.d.ts +0 -14
- package/build/lib/demos/utils.d.ts.map +0 -1
- package/build/lib/demos/utils.js +0 -37
- package/build/lib/demos/utils.js.map +0 -1
- package/build/lib/deployment/$$.d.ts +0 -3
- package/build/lib/deployment/$$.d.ts.map +0 -1
- package/build/lib/deployment/$$.js +0 -3
- package/build/lib/deployment/$$.js.map +0 -1
- package/build/lib/deployment/$.d.ts +0 -2
- package/build/lib/deployment/$.d.ts.map +0 -1
- package/build/lib/deployment/$.js +0 -2
- package/build/lib/deployment/$.js.map +0 -1
- package/build/lib/deployment/metadata.d.ts +0 -32
- package/build/lib/deployment/metadata.d.ts.map +0 -1
- package/build/lib/deployment/metadata.js +0 -37
- package/build/lib/deployment/metadata.js.map +0 -1
- package/build/lib/deployment/path-manager.d.ts +0 -41
- package/build/lib/deployment/path-manager.d.ts.map +0 -1
- package/build/lib/deployment/path-manager.js +0 -157
- package/build/lib/deployment/path-manager.js.map +0 -1
- package/build/lib/github-actions/git-controller.d.ts +0 -50
- package/build/lib/github-actions/git-controller.d.ts.map +0 -1
- package/build/lib/github-actions/git-controller.js +0 -90
- package/build/lib/github-actions/git-controller.js.map +0 -1
- package/build/lib/github-actions/github-actions.d.ts +0 -7
- package/build/lib/github-actions/github-actions.d.ts.map +0 -1
- package/build/lib/github-actions/github-actions.js +0 -7
- package/build/lib/github-actions/github-actions.js.map +0 -1
- package/build/lib/github-actions/index.d.ts +0 -2
- package/build/lib/github-actions/index.d.ts.map +0 -1
- package/build/lib/github-actions/index.js +0 -2
- package/build/lib/github-actions/index.js.map +0 -1
- package/build/lib/github-actions/lib/get-pr-deployments.d.ts +0 -12
- package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +0 -1
- package/build/lib/github-actions/lib/get-pr-deployments.js +0 -51
- package/build/lib/github-actions/lib/get-pr-deployments.js.map +0 -1
- package/build/lib/github-actions/pr-controller.d.ts +0 -39
- package/build/lib/github-actions/pr-controller.d.ts.map +0 -1
- package/build/lib/github-actions/pr-controller.js +0 -122
- package/build/lib/github-actions/pr-controller.js.map +0 -1
- package/build/lib/github-actions/run-step-cli.d.ts +0 -9
- package/build/lib/github-actions/run-step-cli.d.ts.map +0 -1
- package/build/lib/github-actions/run-step-cli.js +0 -71
- package/build/lib/github-actions/run-step-cli.js.map +0 -1
- package/build/lib/github-actions/runner.d.ts +0 -17
- package/build/lib/github-actions/runner.d.ts.map +0 -1
- package/build/lib/github-actions/runner.js +0 -195
- package/build/lib/github-actions/runner.js.map +0 -1
- package/build/lib/github-actions/schemas/context.d.ts +0 -933
- package/build/lib/github-actions/schemas/context.d.ts.map +0 -1
- package/build/lib/github-actions/schemas/context.js +0 -407
- package/build/lib/github-actions/schemas/context.js.map +0 -1
- package/build/lib/github-actions/schemas/index.d.ts +0 -5
- package/build/lib/github-actions/schemas/index.d.ts.map +0 -1
- package/build/lib/github-actions/schemas/index.js +0 -5
- package/build/lib/github-actions/schemas/index.js.map +0 -1
- package/build/lib/github-actions/search-module.d.ts +0 -38
- package/build/lib/github-actions/search-module.d.ts.map +0 -1
- package/build/lib/github-actions/search-module.js +0 -40
- package/build/lib/github-actions/search-module.js.map +0 -1
- package/build/lib/github-actions/step.d.ts +0 -163
- package/build/lib/github-actions/step.d.ts.map +0 -1
- package/build/lib/github-actions/step.js +0 -121
- package/build/lib/github-actions/step.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/lib/kit-temp.test-d.d.ts +0 -2
- package/build/lib/kit-temp.test-d.d.ts.map +0 -1
- package/build/lib/kit-temp.test-d.js +0 -75
- package/build/lib/kit-temp.test-d.js.map +0 -1
- package/build/lib/mask/$$.d.ts +0 -3
- package/build/lib/mask/$$.d.ts.map +0 -1
- package/build/lib/mask/$$.js +0 -3
- package/build/lib/mask/$$.js.map +0 -1
- package/build/lib/mask/$.d.ts +0 -2
- package/build/lib/mask/$.d.ts.map +0 -1
- package/build/lib/mask/$.js +0 -2
- package/build/lib/mask/$.js.map +0 -1
- package/build/lib/mask/apply.d.ts +0 -86
- package/build/lib/mask/apply.d.ts.map +0 -1
- package/build/lib/mask/apply.js +0 -86
- package/build/lib/mask/apply.js.map +0 -1
- package/build/lib/mask/mask.d.ts +0 -124
- package/build/lib/mask/mask.d.ts.map +0 -1
- package/build/lib/mask/mask.js +0 -137
- package/build/lib/mask/mask.js.map +0 -1
- package/build/lib/mask/mask.test-d.d.ts +0 -2
- package/build/lib/mask/mask.test-d.d.ts.map +0 -1
- package/build/lib/mask/mask.test-d.js +0 -102
- package/build/lib/mask/mask.test-d.js.map +0 -1
- package/build/lib/task/$$.d.ts +0 -3
- package/build/lib/task/$$.d.ts.map +0 -1
- package/build/lib/task/$$.js +0 -3
- package/build/lib/task/$$.js.map +0 -1
- package/build/lib/task/$.d.ts +0 -2
- package/build/lib/task/$.d.ts.map +0 -1
- package/build/lib/task/$.js +0 -2
- package/build/lib/task/$.js.map +0 -1
- package/build/lib/task/report.d.ts +0 -28
- package/build/lib/task/report.d.ts.map +0 -1
- package/build/lib/task/report.js +0 -33
- package/build/lib/task/report.js.map +0 -1
- package/build/lib/task/task.d.ts +0 -44
- package/build/lib/task/task.d.ts.map +0 -1
- package/build/lib/task/task.js +0 -63
- package/build/lib/task/task.js.map +0 -1
- package/build/lib/version-history/index.d.ts +0 -3
- package/build/lib/version-history/index.d.ts.map +0 -1
- package/build/lib/version-history/index.js +0 -2
- package/build/lib/version-history/index.js.map +0 -1
- package/build/lib/version-history/types.d.ts +0 -64
- package/build/lib/version-history/types.d.ts.map +0 -1
- package/build/lib/version-history/types.js +0 -5
- package/build/lib/version-history/types.js.map +0 -1
- package/build/lib/version-history/version-history.d.ts +0 -85
- package/build/lib/version-history/version-history.d.ts.map +0 -1
- package/build/lib/version-history/version-history.js +0 -248
- package/build/lib/version-history/version-history.js.map +0 -1
- package/build/sandbox.d.ts +0 -2
- package/build/sandbox.d.ts.map +0 -1
- package/build/sandbox.js +0 -18
- package/build/sandbox.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/api/static/index.ts +0 -1
- package/src/api/static/manifest.test.ts +0 -106
- package/src/api/static/manifest.ts +0 -16
- package/src/api/static/rebase.test.ts +0 -229
- package/src/api/static/rebase.ts +0 -140
- package/src/api/static/static.ts +0 -2
- package/src/cli/commands/static/$default.ts +0 -43
- package/src/cli/commands/static/rebase.ts +0 -37
- package/src/cli/commands/static.ts +0 -6
- package/src/exports/components.ts +0 -4
- package/src/lib/demos/builder.ts +0 -298
- package/src/lib/demos/config-schema.ts +0 -56
- package/src/lib/demos/config.test.ts +0 -193
- package/src/lib/demos/config.ts +0 -205
- package/src/lib/demos/index.ts +0 -9
- package/src/lib/demos/ui/components.ts +0 -739
- package/src/lib/demos/ui/data-collector.ts +0 -246
- package/src/lib/demos/ui/landing-page-cli.ts +0 -23
- package/src/lib/demos/ui/landing-page.ts +0 -126
- package/src/lib/demos/ui/page-renderer.ts +0 -124
- package/src/lib/demos/utils.ts +0 -43
- package/src/lib/deployment/$$.ts +0 -2
- package/src/lib/deployment/$.test.ts +0 -53
- package/src/lib/deployment/$.ts +0 -1
- package/src/lib/deployment/metadata.ts +0 -40
- package/src/lib/deployment/path-manager.ts +0 -186
- package/src/lib/github-actions/git-controller.ts +0 -151
- package/src/lib/github-actions/github-actions.ts +0 -6
- package/src/lib/github-actions/index.ts +0 -1
- package/src/lib/github-actions/lib/get-pr-deployments.ts +0 -76
- package/src/lib/github-actions/pr-controller.test.ts +0 -172
- package/src/lib/github-actions/pr-controller.ts +0 -183
- package/src/lib/github-actions/run-step-cli.ts +0 -84
- package/src/lib/github-actions/runner.test.ts +0 -192
- package/src/lib/github-actions/runner.ts +0 -226
- package/src/lib/github-actions/schemas/context.ts +0 -424
- package/src/lib/github-actions/schemas/index.ts +0 -5
- package/src/lib/github-actions/search-module.test.ts +0 -110
- package/src/lib/github-actions/search-module.ts +0 -76
- package/src/lib/github-actions/step.test.ts +0 -149
- package/src/lib/github-actions/step.ts +0 -232
- 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/lib/kit-temp.test-d.ts +0 -115
- package/src/lib/kit-temp.test.ts +0 -139
- package/src/lib/mask/$$.ts +0 -2
- package/src/lib/mask/$.test.ts +0 -248
- package/src/lib/mask/$.ts +0 -1
- package/src/lib/mask/apply.ts +0 -134
- package/src/lib/mask/mask.test-d.ts +0 -144
- package/src/lib/mask/mask.ts +0 -244
- package/src/lib/task/$$.ts +0 -2
- package/src/lib/task/$.test.ts +0 -209
- package/src/lib/task/$.ts +0 -1
- package/src/lib/task/report.ts +0 -72
- package/src/lib/task/task.ts +0 -112
- package/src/lib/version-history/index.test.ts +0 -196
- package/src/lib/version-history/index.ts +0 -4
- package/src/lib/version-history/types.ts +0 -68
- package/src/lib/version-history/version-history.ts +0 -293
- package/src/sandbox.ts +0 -20
- 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,72 +0,0 @@
|
|
1
|
-
import { Fs, Path } from '@wollybeard/kit'
|
2
|
-
import { afterEach, beforeEach, describe, expect, test } from 'vitest'
|
3
|
-
import { Content } from './$.ts'
|
4
|
-
|
5
|
-
describe('content', () => {
|
6
|
-
let testDir: string
|
7
|
-
|
8
|
-
beforeEach(async () => {
|
9
|
-
testDir = await Fs.makeTemporaryDirectory()
|
10
|
-
})
|
11
|
-
|
12
|
-
afterEach(async () => {
|
13
|
-
if (testDir && await Fs.exists(testDir)) {
|
14
|
-
await Fs.remove(testDir)
|
15
|
-
}
|
16
|
-
})
|
17
|
-
|
18
|
-
describe('MetadataSchema', () => {
|
19
|
-
test('validates metadata correctly', () => {
|
20
|
-
const valid = Content.MetadataSchema.safeParse({
|
21
|
-
description: 'Test page description',
|
22
|
-
hidden: true,
|
23
|
-
})
|
24
|
-
expect(valid.success).toBe(true)
|
25
|
-
expect(valid.data).toEqual({
|
26
|
-
description: 'Test page description',
|
27
|
-
hidden: true,
|
28
|
-
})
|
29
|
-
})
|
30
|
-
|
31
|
-
test('applies default values', () => {
|
32
|
-
const result = Content.MetadataSchema.safeParse({
|
33
|
-
description: 'Just a description',
|
34
|
-
})
|
35
|
-
expect(result.success).toBe(true)
|
36
|
-
expect(result.data?.hidden).toBe(false)
|
37
|
-
})
|
38
|
-
|
39
|
-
test('rejects invalid values', () => {
|
40
|
-
const result = Content.MetadataSchema.safeParse({
|
41
|
-
hidden: 'not a boolean',
|
42
|
-
invalid_field: 123,
|
43
|
-
})
|
44
|
-
expect(result.success).toBe(false)
|
45
|
-
})
|
46
|
-
})
|
47
|
-
|
48
|
-
describe('scan', () => {
|
49
|
-
test('scans directory and extracts metadata', async () => {
|
50
|
-
const filePath = Path.join(testDir, 'page.md')
|
51
|
-
await Fs.write({
|
52
|
-
path: filePath,
|
53
|
-
content: `---
|
54
|
-
description: Page description
|
55
|
-
---
|
56
|
-
Content`,
|
57
|
-
})
|
58
|
-
|
59
|
-
const result = await Content.scan({
|
60
|
-
dir: testDir,
|
61
|
-
glob: '**/*.md',
|
62
|
-
})
|
63
|
-
|
64
|
-
expect(result.list).toHaveLength(1)
|
65
|
-
expect(result.list[0]?.metadata).toEqual({
|
66
|
-
description: 'Page description',
|
67
|
-
hidden: false,
|
68
|
-
})
|
69
|
-
expect(result.diagnostics).toEqual([])
|
70
|
-
})
|
71
|
-
})
|
72
|
-
})
|
package/src/api/content/$.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * as Content from './$$.ts'
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { z } from 'zod/v4'
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Schema for validating front matter content
|
5
|
-
*/
|
6
|
-
export const MetadataSchema = z.object({
|
7
|
-
description: z.string().optional(),
|
8
|
-
hidden: z.boolean().default(false),
|
9
|
-
})
|
10
|
-
|
11
|
-
export type Metadata = z.infer<typeof MetadataSchema>
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
2
|
-
import { createNavbar } from './navbar.ts'
|
3
|
-
import type { Page } from './page.ts'
|
4
|
-
|
5
|
-
const createPage = (path: string[], fileName = 'index', hidden = false): Page => ({
|
6
|
-
route: {
|
7
|
-
id: path.join('/'),
|
8
|
-
parentId: path.length > 1 ? path.slice(0, -1).join('/') : null,
|
9
|
-
logical: { path },
|
10
|
-
file: {
|
11
|
-
path: {
|
12
|
-
absolute: { root: '/', dir: `/pages/${path.join('/')}`, base: `${fileName}.md`, ext: '.md', name: fileName },
|
13
|
-
relative: { root: '', dir: path.join('/'), base: `${fileName}.md`, ext: '.md', name: fileName },
|
14
|
-
},
|
15
|
-
},
|
16
|
-
},
|
17
|
-
metadata: { description: undefined, hidden },
|
18
|
-
})
|
19
|
-
|
20
|
-
describe('createNavbar', () => {
|
21
|
-
it('returns empty for empty input', () => {
|
22
|
-
expect(createNavbar([])).toEqual([])
|
23
|
-
})
|
24
|
-
|
25
|
-
it('excludes hidden pages', () => {
|
26
|
-
const pages = [createPage(['visible'], 'index', false), createPage(['hidden'], 'index', true)]
|
27
|
-
const result = createNavbar(pages)
|
28
|
-
expect(result).toEqual([{ pathExp: '/visible', title: 'Visible' }])
|
29
|
-
})
|
30
|
-
|
31
|
-
it('includes directories with index pages', () => {
|
32
|
-
const pages = [createPage(['guide'], 'index'), createPage(['guide', 'intro'], 'intro')]
|
33
|
-
const result = createNavbar(pages)
|
34
|
-
expect(result).toEqual([{ pathExp: '/guide', title: 'Guide' }])
|
35
|
-
})
|
36
|
-
|
37
|
-
it('excludes directories without index pages', () => {
|
38
|
-
const pages = [createPage(['guide', 'intro'], 'intro')]
|
39
|
-
const result = createNavbar(pages)
|
40
|
-
expect(result).toEqual([])
|
41
|
-
})
|
42
|
-
|
43
|
-
it('includes single top-level pages', () => {
|
44
|
-
const pages = [createPage(['about'], 'about')]
|
45
|
-
const result = createNavbar(pages)
|
46
|
-
expect(result).toEqual([{ pathExp: '/about', title: 'About' }])
|
47
|
-
})
|
48
|
-
|
49
|
-
it('sorts results alphabetically', () => {
|
50
|
-
const pages = [createPage(['zebra'], 'zebra'), createPage(['alpha'], 'alpha')]
|
51
|
-
const result = createNavbar(pages)
|
52
|
-
expect(result[0]!.title).toBe('Alpha')
|
53
|
-
expect(result[1]!.title).toBe('Zebra')
|
54
|
-
})
|
55
|
-
})
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { Str } from '@wollybeard/kit'
|
2
|
-
import type { Page } from './page.ts'
|
3
|
-
|
4
|
-
export interface NavbarItem {
|
5
|
-
pathExp: string
|
6
|
-
title: string
|
7
|
-
}
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Generate navbar items from a list of pages
|
11
|
-
*/
|
12
|
-
export const createNavbar = (pages: Page[]): NavbarItem[] => {
|
13
|
-
const navbarItems: NavbarItem[] = []
|
14
|
-
|
15
|
-
// Group pages by their top-level directory/segment
|
16
|
-
const topLevelGroups = new Map<string, Page[]>()
|
17
|
-
|
18
|
-
pages.forEach(page => {
|
19
|
-
// Skip hidden pages
|
20
|
-
if (page.metadata.hidden) return
|
21
|
-
|
22
|
-
const firstSegment = page.route.logical.path[0]
|
23
|
-
if (firstSegment) {
|
24
|
-
if (!topLevelGroups.has(firstSegment)) {
|
25
|
-
topLevelGroups.set(firstSegment, [])
|
26
|
-
}
|
27
|
-
topLevelGroups.get(firstSegment)!.push(page)
|
28
|
-
}
|
29
|
-
})
|
30
|
-
|
31
|
-
// Add each top-level group to navbar
|
32
|
-
topLevelGroups.forEach((pages, segment) => {
|
33
|
-
// For directories, check if there's an index page
|
34
|
-
const indexPage = pages.find(p =>
|
35
|
-
p.route.logical.path.length === 1
|
36
|
-
&& p.route.file.path.relative.name === 'index'
|
37
|
-
)
|
38
|
-
|
39
|
-
// For single non-index files at top level
|
40
|
-
const singlePage = pages.length === 1 && pages[0]!.route.logical.path.length === 1
|
41
|
-
&& pages[0]!.route.file.path.relative.name !== 'index'
|
42
|
-
|
43
|
-
// Include in navbar if:
|
44
|
-
// 1. It's a directory with an index page, OR
|
45
|
-
// 2. It's a single top-level page (not index)
|
46
|
-
if (indexPage || singlePage) {
|
47
|
-
const title = Str.titlizeSlug(segment)
|
48
|
-
const pathExp = `/${segment}`
|
49
|
-
|
50
|
-
navbarItems.push({
|
51
|
-
pathExp,
|
52
|
-
title,
|
53
|
-
})
|
54
|
-
}
|
55
|
-
})
|
56
|
-
|
57
|
-
// Sort navbar items alphabetically for consistency
|
58
|
-
navbarItems.sort((a, b) => a.title.localeCompare(b.title))
|
59
|
-
|
60
|
-
return navbarItems
|
61
|
-
}
|
package/src/api/content/page.ts
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import type { FileRouter } from '#lib/file-router/index'
|
2
|
-
import type { Metadata } from './metadata.ts'
|
3
|
-
|
4
|
-
export type { Metadata }
|
5
|
-
|
6
|
-
/**
|
7
|
-
* A route with its associated metadata
|
8
|
-
*/
|
9
|
-
export interface Page {
|
10
|
-
route: FileRouter.Route
|
11
|
-
metadata: Metadata
|
12
|
-
}
|
package/src/api/content/scan.ts
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
import { FileRouter } from '#lib/file-router/index'
|
2
|
-
import { Fs, Path, Tree } from '@wollybeard/kit'
|
3
|
-
import matter from 'gray-matter'
|
4
|
-
import { MetadataSchema } from './metadata.ts'
|
5
|
-
import type { Page } from './page.ts'
|
6
|
-
|
7
|
-
export interface ScanResult {
|
8
|
-
list: Page[]
|
9
|
-
tree: Tree.Tree<Page>
|
10
|
-
diagnostics: FileRouter.Diagnostic[]
|
11
|
-
}
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Scan a directory for pages and extract metadata from their front matter
|
15
|
-
* By default, hidden pages are filtered out from both the pages list and route tree.
|
16
|
-
*/
|
17
|
-
export const scan = async (options: {
|
18
|
-
dir: string
|
19
|
-
glob?: string
|
20
|
-
/** Include hidden pages in the result (useful for debugging or admin interfaces) */
|
21
|
-
includeHidden?: boolean
|
22
|
-
}): Promise<ScanResult> => {
|
23
|
-
// Scan for routes
|
24
|
-
const routeScanResult = await FileRouter.scan({
|
25
|
-
dir: options.dir,
|
26
|
-
glob: options.glob ?? '**/*.{md,mdx}',
|
27
|
-
})
|
28
|
-
|
29
|
-
// Create pages with metadata (id/parentId now come from route)
|
30
|
-
const allPages = await Promise.all(
|
31
|
-
routeScanResult.routes.map(route => readRoute(route)),
|
32
|
-
)
|
33
|
-
|
34
|
-
// Apply filtering if needed
|
35
|
-
const pages = options.includeHidden
|
36
|
-
? allPages
|
37
|
-
: allPages.filter(page => !page.metadata.hidden)
|
38
|
-
|
39
|
-
// Build tree from pages using Tree.fromList
|
40
|
-
// Transform pages to include id/parentId at the top level for Tree.fromList
|
41
|
-
const pagesWithIds = pages.map(page => ({
|
42
|
-
...page,
|
43
|
-
id: page.route.id,
|
44
|
-
parentId: page.route.parentId,
|
45
|
-
}))
|
46
|
-
|
47
|
-
// Handle cases where there might be multiple root nodes
|
48
|
-
// If all pages are at root level (no parentId), create a virtual root
|
49
|
-
const hasMultipleRoots = pagesWithIds.filter(p => !p.parentId).length > 1
|
50
|
-
|
51
|
-
let tree: Tree.Tree<Page>
|
52
|
-
if (hasMultipleRoots) {
|
53
|
-
// Create a virtual root node to hold all root-level pages
|
54
|
-
const virtualRoot: Page & { id: string; parentId: null } = {
|
55
|
-
route: {
|
56
|
-
id: '__virtual_root__',
|
57
|
-
parentId: null,
|
58
|
-
file: {
|
59
|
-
path: {
|
60
|
-
absolute: Path.parse(''),
|
61
|
-
relative: Path.parse(''),
|
62
|
-
},
|
63
|
-
},
|
64
|
-
logical: {
|
65
|
-
path: [],
|
66
|
-
},
|
67
|
-
},
|
68
|
-
metadata: { hidden: true },
|
69
|
-
id: '__virtual_root__',
|
70
|
-
parentId: null,
|
71
|
-
}
|
72
|
-
|
73
|
-
// Update pages to have virtual root as parent if they don't have one
|
74
|
-
const pagesWithVirtualRoot = pagesWithIds.map(page => ({
|
75
|
-
...page,
|
76
|
-
parentId: page.parentId || '__virtual_root__',
|
77
|
-
}))
|
78
|
-
|
79
|
-
tree = Tree.fromList([virtualRoot, ...pagesWithVirtualRoot])
|
80
|
-
} else {
|
81
|
-
tree = Tree.fromList(pagesWithIds)
|
82
|
-
}
|
83
|
-
|
84
|
-
return {
|
85
|
-
list: pages,
|
86
|
-
tree,
|
87
|
-
diagnostics: routeScanResult.diagnostics,
|
88
|
-
}
|
89
|
-
}
|
90
|
-
|
91
|
-
/**
|
92
|
-
* Read a single route file and extract metadata from its front matter
|
93
|
-
*/
|
94
|
-
const readRoute = async (route: FileRouter.Route): Promise<Page> => {
|
95
|
-
const filePath = Path.format(route.file.path.absolute)
|
96
|
-
const fileContent = await Fs.read(filePath)
|
97
|
-
|
98
|
-
// Empty files still get default metadata (not hidden by default)
|
99
|
-
// This allows placeholder pages to exist in the navigation
|
100
|
-
if (!fileContent) {
|
101
|
-
return { route, metadata: { hidden: false } }
|
102
|
-
}
|
103
|
-
|
104
|
-
// Parse front matter
|
105
|
-
const { data } = matter(fileContent)
|
106
|
-
|
107
|
-
// Validate and parse the data
|
108
|
-
const parsed = MetadataSchema.safeParse(data)
|
109
|
-
|
110
|
-
if (!parsed.success) {
|
111
|
-
// Log warning but continue with defaults
|
112
|
-
console.warn(`Invalid front matter in ${filePath}:`, parsed.error.issues)
|
113
|
-
}
|
114
|
-
|
115
|
-
const metadata = parsed.success ? parsed.data : { hidden: false }
|
116
|
-
return { route, metadata }
|
117
|
-
}
|
@@ -1,297 +0,0 @@
|
|
1
|
-
import * as fc from 'fast-check'
|
2
|
-
import { describe, expect, it } from 'vitest'
|
3
|
-
import type { Page } from './page.ts'
|
4
|
-
import type { ScanResult } from './scan.ts'
|
5
|
-
import { buildSidebarIndex, type Item, type SidebarIndex } from './sidebar.ts'
|
6
|
-
|
7
|
-
// Generators
|
8
|
-
const pathSegmentArb = fc.stringMatching(/^[a-z][a-z0-9-]{0,19}$/)
|
9
|
-
const fileNameArb = fc.oneof(fc.constant('index'), pathSegmentArb)
|
10
|
-
const pathArb = fc.array(pathSegmentArb, { minLength: 1, maxLength: 4 })
|
11
|
-
|
12
|
-
const pageArb: fc.Arbitrary<Page> = fc.record({
|
13
|
-
route: fc.record({
|
14
|
-
id: fc.string(),
|
15
|
-
parentId: fc.oneof(fc.constant(null), fc.string()),
|
16
|
-
logical: fc.record({
|
17
|
-
path: pathArb,
|
18
|
-
order: fc.option(fc.integer({ min: 0, max: 100 }), { nil: undefined }),
|
19
|
-
}),
|
20
|
-
file: fc.record({
|
21
|
-
path: fc.record({
|
22
|
-
absolute: fc.record({
|
23
|
-
root: fc.constant('/'),
|
24
|
-
dir: fc.string(),
|
25
|
-
base: fc.string(),
|
26
|
-
ext: fc.constant('.md'),
|
27
|
-
name: fileNameArb,
|
28
|
-
}),
|
29
|
-
relative: fc.record({
|
30
|
-
root: fc.constant(''),
|
31
|
-
dir: fc.string(),
|
32
|
-
base: fc.string(),
|
33
|
-
ext: fc.constant('.md'),
|
34
|
-
name: fileNameArb,
|
35
|
-
}),
|
36
|
-
}),
|
37
|
-
}),
|
38
|
-
}),
|
39
|
-
metadata: fc.record({
|
40
|
-
description: fc.option(fc.string(), { nil: undefined }),
|
41
|
-
hidden: fc.boolean(),
|
42
|
-
}),
|
43
|
-
})
|
44
|
-
|
45
|
-
const scanResultArb: fc.Arbitrary<ScanResult> = fc.record({
|
46
|
-
list: fc.array(pageArb, { maxLength: 50 }),
|
47
|
-
tree: fc.constant({ root: null }), // Tree isn't used in the new implementation
|
48
|
-
diagnostics: fc.constant([]),
|
49
|
-
})
|
50
|
-
|
51
|
-
describe('buildSidebarIndex properties', () => {
|
52
|
-
it('never includes hidden pages in any sidebar', () => {
|
53
|
-
fc.assert(
|
54
|
-
fc.property(scanResultArb, (scanResult) => {
|
55
|
-
const result = buildSidebarIndex(scanResult)
|
56
|
-
|
57
|
-
// Collect all page paths that appear in sidebars
|
58
|
-
const allSidebarPaths = new Set<string>()
|
59
|
-
|
60
|
-
for (const sidebar of Object.values(result)) {
|
61
|
-
for (const item of sidebar.items) {
|
62
|
-
if (item.type === 'ItemLink') {
|
63
|
-
allSidebarPaths.add(item.pathExp)
|
64
|
-
} else {
|
65
|
-
allSidebarPaths.add(item.pathExp)
|
66
|
-
for (const link of item.links) {
|
67
|
-
allSidebarPaths.add(link.pathExp)
|
68
|
-
}
|
69
|
-
}
|
70
|
-
}
|
71
|
-
}
|
72
|
-
|
73
|
-
// Check that no hidden page appears in sidebars
|
74
|
-
const hiddenPagePaths = scanResult.list
|
75
|
-
.filter(page => page.metadata.hidden)
|
76
|
-
.map(page => page.route.logical.path.join('/'))
|
77
|
-
|
78
|
-
for (const hiddenPath of hiddenPagePaths) {
|
79
|
-
expect(allSidebarPaths.has(hiddenPath)).toBe(false)
|
80
|
-
}
|
81
|
-
|
82
|
-
return true
|
83
|
-
}),
|
84
|
-
)
|
85
|
-
})
|
86
|
-
|
87
|
-
it('only creates sidebars for directories with index pages', () => {
|
88
|
-
fc.assert(
|
89
|
-
fc.property(scanResultArb, (scanResult) => {
|
90
|
-
const result = buildSidebarIndex(scanResult)
|
91
|
-
|
92
|
-
// Every sidebar key should correspond to a directory with an index page
|
93
|
-
for (const sidebarPath of Object.keys(result)) {
|
94
|
-
const topLevelDir = sidebarPath.slice(1) // Remove leading '/'
|
95
|
-
|
96
|
-
const hasIndexPage = scanResult.list.some(page =>
|
97
|
-
page.route.logical.path.length === 1
|
98
|
-
&& page.route.logical.path[0] === topLevelDir
|
99
|
-
&& page.route.file.path.relative.name === 'index'
|
100
|
-
&& !page.metadata.hidden
|
101
|
-
)
|
102
|
-
|
103
|
-
expect(hasIndexPage).toBe(true)
|
104
|
-
}
|
105
|
-
|
106
|
-
return true
|
107
|
-
}),
|
108
|
-
)
|
109
|
-
})
|
110
|
-
|
111
|
-
it('all items have valid non-empty titles and paths', () => {
|
112
|
-
fc.assert(
|
113
|
-
fc.property(scanResultArb, (scanResult) => {
|
114
|
-
const result = buildSidebarIndex(scanResult)
|
115
|
-
|
116
|
-
for (const sidebar of Object.values(result)) {
|
117
|
-
for (const item of sidebar.items) {
|
118
|
-
// Check item has required fields
|
119
|
-
expect(item.title).toBeTruthy()
|
120
|
-
expect(item.title.length).toBeGreaterThan(0)
|
121
|
-
expect(item.pathExp).toBeTruthy()
|
122
|
-
expect(item.pathExp.length).toBeGreaterThan(0)
|
123
|
-
|
124
|
-
if (item.type === 'ItemSection') {
|
125
|
-
expect(typeof item.isLinkToo).toBe('boolean')
|
126
|
-
expect(Array.isArray(item.links)).toBe(true)
|
127
|
-
|
128
|
-
// Check all links in section
|
129
|
-
for (const link of item.links) {
|
130
|
-
expect(link.type).toBe('ItemLink')
|
131
|
-
expect(link.title).toBeTruthy()
|
132
|
-
expect(link.title.length).toBeGreaterThan(0)
|
133
|
-
expect(link.pathExp).toBeTruthy()
|
134
|
-
expect(link.pathExp.length).toBeGreaterThan(0)
|
135
|
-
}
|
136
|
-
}
|
137
|
-
}
|
138
|
-
}
|
139
|
-
|
140
|
-
return true
|
141
|
-
}),
|
142
|
-
)
|
143
|
-
})
|
144
|
-
|
145
|
-
it('sections marked as linkable have corresponding index pages', () => {
|
146
|
-
fc.assert(
|
147
|
-
fc.property(scanResultArb, (scanResult) => {
|
148
|
-
const result = buildSidebarIndex(scanResult)
|
149
|
-
|
150
|
-
for (const sidebar of Object.values(result)) {
|
151
|
-
for (const item of sidebar.items) {
|
152
|
-
if (item.type === 'ItemSection' && item.isLinkToo) {
|
153
|
-
// This section should have an index page
|
154
|
-
const hasIndexPage = scanResult.list.some(page =>
|
155
|
-
page.route.logical.path.join('/') === item.pathExp
|
156
|
-
&& page.route.file.path.relative.name === 'index'
|
157
|
-
&& !page.metadata.hidden
|
158
|
-
)
|
159
|
-
|
160
|
-
expect(hasIndexPage).toBe(true)
|
161
|
-
}
|
162
|
-
}
|
163
|
-
}
|
164
|
-
|
165
|
-
return true
|
166
|
-
}),
|
167
|
-
)
|
168
|
-
})
|
169
|
-
|
170
|
-
it('no duplicate paths within a sidebar', () => {
|
171
|
-
fc.assert(
|
172
|
-
fc.property(scanResultArb, (scanResult) => {
|
173
|
-
const result = buildSidebarIndex(scanResult)
|
174
|
-
|
175
|
-
for (const sidebar of Object.values(result)) {
|
176
|
-
const paths = new Set<string>()
|
177
|
-
|
178
|
-
for (const item of sidebar.items) {
|
179
|
-
if (item.type === 'ItemLink') {
|
180
|
-
expect(paths.has(item.pathExp)).toBe(false)
|
181
|
-
paths.add(item.pathExp)
|
182
|
-
} else {
|
183
|
-
expect(paths.has(item.pathExp)).toBe(false)
|
184
|
-
paths.add(item.pathExp)
|
185
|
-
|
186
|
-
for (const link of item.links) {
|
187
|
-
expect(paths.has(link.pathExp)).toBe(false)
|
188
|
-
paths.add(link.pathExp)
|
189
|
-
}
|
190
|
-
}
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
return true
|
195
|
-
}),
|
196
|
-
)
|
197
|
-
})
|
198
|
-
|
199
|
-
it('deterministic - same input produces same output', () => {
|
200
|
-
fc.assert(
|
201
|
-
fc.property(scanResultArb, (scanResult) => {
|
202
|
-
const result1 = buildSidebarIndex(scanResult)
|
203
|
-
const result2 = buildSidebarIndex(scanResult)
|
204
|
-
|
205
|
-
expect(JSON.stringify(result1)).toBe(JSON.stringify(result2))
|
206
|
-
return true
|
207
|
-
}),
|
208
|
-
)
|
209
|
-
})
|
210
|
-
|
211
|
-
it('preserves hierarchical relationships', () => {
|
212
|
-
fc.assert(
|
213
|
-
fc.property(scanResultArb, (scanResult) => {
|
214
|
-
const result = buildSidebarIndex(scanResult)
|
215
|
-
|
216
|
-
// For each sidebar, verify that all items belong to that top-level directory
|
217
|
-
for (const [sidebarPath, sidebar] of Object.entries(result)) {
|
218
|
-
const expectedPrefix = sidebarPath.slice(1) // Remove leading '/'
|
219
|
-
|
220
|
-
const checkPath = (pathExp: string) => {
|
221
|
-
const segments = pathExp.split('/')
|
222
|
-
expect(segments[0]).toBe(expectedPrefix)
|
223
|
-
}
|
224
|
-
|
225
|
-
for (const item of sidebar.items) {
|
226
|
-
checkPath(item.pathExp)
|
227
|
-
|
228
|
-
if (item.type === 'ItemSection') {
|
229
|
-
for (const link of item.links) {
|
230
|
-
checkPath(link.pathExp)
|
231
|
-
}
|
232
|
-
}
|
233
|
-
}
|
234
|
-
}
|
235
|
-
|
236
|
-
return true
|
237
|
-
}),
|
238
|
-
)
|
239
|
-
})
|
240
|
-
})
|
241
|
-
|
242
|
-
// Keep a few specific scenario tests for regression
|
243
|
-
describe('buildSidebarIndex specific scenarios', () => {
|
244
|
-
const createPage = (path: string[], fileName = 'index', hidden = false): Page => ({
|
245
|
-
route: {
|
246
|
-
id: path.join('/'),
|
247
|
-
parentId: path.length > 1 ? path.slice(0, -1).join('/') : null,
|
248
|
-
logical: { path },
|
249
|
-
file: {
|
250
|
-
path: {
|
251
|
-
absolute: { root: '/', dir: `/pages/${path.join('/')}`, base: `${fileName}.md`, ext: '.md', name: fileName },
|
252
|
-
relative: { root: '', dir: path.join('/'), base: `${fileName}.md`, ext: '.md', name: fileName },
|
253
|
-
},
|
254
|
-
},
|
255
|
-
},
|
256
|
-
metadata: { description: undefined, hidden },
|
257
|
-
})
|
258
|
-
|
259
|
-
it('handles empty input', () => {
|
260
|
-
const scanResult: ScanResult = {
|
261
|
-
list: [],
|
262
|
-
tree: { root: null },
|
263
|
-
diagnostics: [],
|
264
|
-
}
|
265
|
-
const result = buildSidebarIndex(scanResult)
|
266
|
-
expect(result).toEqual({})
|
267
|
-
})
|
268
|
-
|
269
|
-
it('creates sections for nested directories with index pages', () => {
|
270
|
-
const pages = [
|
271
|
-
createPage(['guide'], 'index'),
|
272
|
-
createPage(['guide', 'advanced'], 'index'),
|
273
|
-
createPage(['guide', 'advanced', 'tips'], 'tips'),
|
274
|
-
createPage(['guide', 'advanced', 'patterns'], 'patterns'),
|
275
|
-
]
|
276
|
-
|
277
|
-
const scanResult: ScanResult = {
|
278
|
-
list: pages,
|
279
|
-
tree: { root: null },
|
280
|
-
diagnostics: [],
|
281
|
-
}
|
282
|
-
|
283
|
-
const result = buildSidebarIndex(scanResult)
|
284
|
-
|
285
|
-
expect(result['/guide']).toBeDefined()
|
286
|
-
expect(result['/guide']!.items).toHaveLength(1)
|
287
|
-
|
288
|
-
const section = result['/guide']!.items[0]
|
289
|
-
expect(section?.type).toBe('ItemSection')
|
290
|
-
|
291
|
-
if (section?.type === 'ItemSection') {
|
292
|
-
expect(section.title).toBe('Advanced')
|
293
|
-
expect(section.isLinkToo).toBe(true)
|
294
|
-
expect(section.links).toHaveLength(2)
|
295
|
-
}
|
296
|
-
})
|
297
|
-
})
|