@rangojs/router 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/bin/rango.js +343 -125
- package/dist/types/browser/event-controller.d.ts +6 -0
- package/dist/types/browser/react/use-router.d.ts +10 -3
- package/dist/types/browser/react/use-search-params.d.ts +57 -10
- package/dist/types/browser/types.d.ts +22 -0
- package/dist/types/build/merge-full-manifests.d.ts +3 -0
- package/dist/types/build/route-trie.d.ts +4 -73
- package/dist/types/build/route-types/per-module-writer.d.ts +6 -4
- package/dist/types/build/route-types/router-processing.d.ts +2 -3
- package/dist/types/cache/cache-exec-scope.d.ts +31 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +8 -1
- package/dist/types/cache/cf/cf-cache-store.d.ts +15 -1
- package/dist/types/cache/cf/cf-cache-types.d.ts +1 -1
- package/dist/types/cache/cf/cf-kv-utils.d.ts +21 -0
- package/dist/types/cache/taint.d.ts +12 -6
- package/dist/types/client-urls/client-root.d.ts +38 -0
- package/dist/types/client-urls/client-urls.d.ts +5 -0
- package/dist/types/client-urls/navigation.d.ts +38 -0
- package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
- package/dist/types/client-urls/server-projection.d.ts +62 -0
- package/dist/types/client-urls/types.d.ts +144 -0
- package/dist/types/client.d.ts +12 -4
- package/dist/types/client.rsc.d.ts +4 -1
- package/dist/types/decode-loader-results.d.ts +37 -0
- package/dist/types/errors.d.ts +1 -0
- package/dist/types/handles/is-thenable.d.ts +2 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/loader-redirect.d.ts +27 -0
- package/dist/types/outlet-context.d.ts +12 -0
- package/dist/types/outlet-provider.d.ts +3 -1
- package/dist/types/redirect-origin.d.ts +4 -0
- package/dist/types/route-content-wrapper.d.ts +42 -1
- package/dist/types/route-definition/helpers-types.d.ts +13 -2
- package/dist/types/router/error-handling.d.ts +35 -1
- package/dist/types/router/intercept-resolution.d.ts +12 -0
- package/dist/types/router/loader-resolution.d.ts +24 -2
- package/dist/types/router/revalidation.d.ts +7 -0
- package/dist/{types.backup/build/route-trie.d.ts → types/router/route-trie-builder.d.ts} +4 -16
- package/dist/types/router/router-interfaces.d.ts +20 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +1 -1
- package/dist/types/router/trie-matching.d.ts +1 -1
- package/dist/types/rsc/helpers.d.ts +3 -0
- package/dist/types/rsc/manifest-init.d.ts +5 -5
- package/dist/types/rsc/render-pipeline.d.ts +9 -0
- package/dist/types/rsc/routine-plan.d.ts +124 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +17 -0
- package/dist/types/rsc/shell-capture.d.ts +9 -0
- package/dist/types/rsc/shell-serve.d.ts +11 -0
- package/dist/types/rsc/types.d.ts +30 -0
- package/dist/types/segment-system.d.ts +2 -0
- package/dist/types/server/context.d.ts +10 -0
- package/dist/types/server/handle-store.d.ts +34 -3
- package/dist/types/server/request-context.d.ts +14 -1
- package/dist/types/server.d.ts +1 -0
- package/dist/types/ssr/index.d.ts +22 -0
- package/dist/types/ssr/ssr-root.d.ts +10 -0
- package/dist/types/testing/dom.entry.d.ts +1 -1
- package/dist/types/testing/render-route.d.ts +16 -6
- package/dist/types/testing/run-loader.d.ts +9 -0
- package/dist/types/types/boundaries.d.ts +22 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/loader-types.d.ts +57 -5
- package/dist/types/types/segments.d.ts +7 -0
- package/dist/types/urls/path-helper-types.d.ts +10 -4
- package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +1 -1
- package/dist/types/vite/discovery/state.d.ts +8 -1
- package/dist/types/vite/encryption-key.d.ts +2 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +10 -0
- package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
- package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
- package/dist/types/vite/utils/shared-utils.d.ts +12 -0
- package/dist/vite/index.js +5101 -2056
- package/package.json +3 -3
- package/skills/breadcrumbs/SKILL.md +39 -9
- package/skills/caching/SKILL.md +1 -1
- package/skills/catalog.json +7 -1
- package/skills/client-urls/SKILL.md +338 -0
- package/skills/comparison/references/framework-comparison.md +23 -9
- package/skills/hooks/SKILL.md +2 -2
- package/skills/hooks/data.md +11 -2
- package/skills/hooks/handle-and-actions.md +7 -0
- package/skills/hooks/outlets.md +26 -5
- package/skills/hooks/urls.md +40 -3
- package/skills/loader/SKILL.md +132 -20
- package/skills/migrate-nextjs/SKILL.md +70 -10
- package/skills/migrate-react-router/SKILL.md +49 -13
- package/skills/migrate-react-router/component-migration.md +18 -13
- package/skills/migrate-react-router/data-and-actions.md +14 -3
- package/skills/migrate-react-router/route-mapping.md +15 -2
- package/skills/mime-routes/SKILL.md +3 -1
- package/skills/parallel/SKILL.md +32 -1
- package/skills/ppr/SKILL.md +16 -6
- package/skills/prerender/SKILL.md +8 -4
- package/skills/rango/SKILL.md +21 -17
- package/skills/react-compiler/SKILL.md +3 -3
- package/skills/response-routes/SKILL.md +4 -2
- package/skills/route/SKILL.md +5 -2
- package/skills/router-setup/SKILL.md +16 -2
- package/skills/scripts/SKILL.md +16 -6
- package/skills/shell-manifest/SKILL.md +16 -7
- package/skills/testing/SKILL.md +2 -2
- package/skills/testing/client-components.md +6 -0
- package/skills/testing/handles.md +30 -8
- package/skills/testing/loader.md +51 -49
- package/skills/testing/middleware.md +1 -1
- package/skills/theme/SKILL.md +8 -5
- package/skills/typesafety/generated-files-and-cli.md +16 -9
- package/skills/typesafety/route-types.md +5 -1
- package/skills/use-cache/SKILL.md +47 -0
- package/src/bin/rango.ts +7 -3
- package/src/browser/event-controller.ts +40 -15
- package/src/browser/navigation-bridge.ts +6 -0
- package/src/browser/navigation-client.ts +5 -0
- package/src/browser/partial-update.ts +77 -10
- package/src/browser/react/NavigationProvider.tsx +7 -0
- package/src/browser/react/use-router.ts +40 -11
- package/src/browser/react/use-search-params.ts +140 -17
- package/src/browser/rsc-router.tsx +59 -0
- package/src/browser/server-action-bridge.ts +26 -0
- package/src/browser/types.ts +22 -0
- package/src/build/merge-full-manifests.ts +161 -0
- package/src/build/route-trie.ts +9 -332
- package/src/build/route-types/include-resolution.ts +66 -11
- package/src/build/route-types/per-module-writer.ts +11 -6
- package/src/build/route-types/router-processing.ts +184 -153
- package/src/build/runtime-discovery.ts +23 -12
- package/src/cache/cache-exec-scope.ts +47 -0
- package/src/cache/cache-runtime.ts +113 -40
- package/src/cache/cf/cf-cache-constants.ts +8 -1
- package/src/cache/cf/cf-cache-store.ts +41 -64
- package/src/cache/cf/cf-cache-types.ts +1 -1
- package/src/cache/cf/cf-kv-utils.ts +38 -0
- package/src/cache/segment-codec.ts +21 -5
- package/src/cache/taint.ts +28 -9
- package/src/client-urls/client-root.tsx +168 -0
- package/src/client-urls/client-urls.ts +698 -0
- package/src/client-urls/navigation.ts +237 -0
- package/src/client-urls/revalidation-protocol.ts +56 -0
- package/src/client-urls/server-projection.ts +579 -0
- package/src/client-urls/types.ts +195 -0
- package/src/client.rsc.tsx +12 -0
- package/src/client.tsx +49 -6
- package/src/decode-loader-results.ts +113 -0
- package/src/errors.ts +14 -0
- package/src/handles/deferred-resolution.ts +14 -7
- package/src/handles/is-thenable.ts +2 -4
- package/src/index.ts +1 -0
- package/src/loader-redirect.tsx +64 -0
- package/src/outlet-context.ts +12 -0
- package/src/outlet-provider.tsx +15 -1
- package/src/redirect-origin.ts +29 -0
- package/src/route-content-wrapper.tsx +96 -3
- package/src/route-definition/dsl-helpers.ts +28 -3
- package/src/route-definition/helpers-types.ts +13 -0
- package/src/route-definition/redirect.ts +17 -18
- package/src/router/error-handling.ts +65 -11
- package/src/router/intercept-resolution.ts +29 -0
- package/src/router/loader-resolution.ts +261 -28
- package/src/router/match-middleware/cache-lookup.ts +24 -15
- package/src/router/match-result.ts +7 -0
- package/src/router/revalidation.ts +24 -11
- package/src/router/route-trie-builder.ts +334 -0
- package/src/router/router-interfaces.ts +38 -0
- package/src/router/segment-resolution/fresh.ts +47 -0
- package/src/router/segment-resolution/helpers.ts +9 -11
- package/src/router/segment-resolution/loader-cache.ts +14 -24
- package/src/router/segment-resolution/revalidation.ts +20 -1
- package/src/router/trie-matching.ts +3 -3
- package/src/router.ts +46 -1
- package/src/rsc/full-payload.ts +6 -0
- package/src/rsc/handler.ts +36 -12
- package/src/rsc/helpers.ts +13 -0
- package/src/rsc/loader-fetch.ts +2 -2
- package/src/rsc/manifest-init.ts +28 -9
- package/src/rsc/progressive-enhancement.ts +247 -70
- package/src/rsc/render-pipeline.ts +68 -24
- package/src/rsc/routine-plan.ts +359 -0
- package/src/rsc/rsc-rendering.ts +569 -302
- package/src/rsc/server-action.ts +180 -71
- package/src/rsc/shell-capture-constants.ts +18 -0
- package/src/rsc/shell-capture.ts +104 -21
- package/src/rsc/shell-serve.ts +15 -2
- package/src/rsc/ssr-setup.ts +10 -1
- package/src/rsc/types.ts +31 -2
- package/src/segment-system.tsx +83 -26
- package/src/server/context.ts +10 -0
- package/src/server/cookie-store.ts +19 -19
- package/src/server/handle-store.ts +185 -48
- package/src/server/request-context.ts +36 -6
- package/src/server.ts +7 -0
- package/src/ssr/index.tsx +37 -2
- package/src/ssr/ssr-root.tsx +30 -2
- package/src/testing/dom.entry.ts +1 -1
- package/src/testing/render-route.tsx +22 -8
- package/src/testing/run-loader.ts +51 -13
- package/src/types/boundaries.ts +19 -0
- package/src/types/index.ts +1 -0
- package/src/types/loader-types.ts +60 -5
- package/src/types/segments.ts +7 -0
- package/src/urls/include-helper.ts +22 -4
- package/src/urls/path-helper-types.ts +14 -1
- package/src/use-loader.tsx +67 -6
- package/src/vite/discovery/client-urls-projection.ts +322 -0
- package/src/vite/discovery/discover-routers.ts +43 -17
- package/src/vite/discovery/state.ts +11 -1
- package/src/vite/discovery/virtual-module-codegen.ts +20 -0
- package/src/vite/encryption-key.ts +29 -0
- package/src/vite/plugins/expose-action-id.ts +2 -2
- package/src/vite/plugins/expose-internal-ids.ts +46 -0
- package/src/vite/plugins/server-ref-hashing.ts +74 -0
- package/src/vite/plugins/server-reference-pattern.ts +10 -0
- package/src/vite/plugins/virtual-entries.ts +12 -3
- package/src/vite/rango.ts +9 -0
- package/src/vite/router-discovery.ts +184 -14
- package/src/vite/utils/shared-utils.ts +12 -7
- package/dist/types.backup/__internal.d.ts +0 -127
- package/dist/types.backup/bin/rango.d.ts +0 -1
- package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
- package/dist/types.backup/browser/action-fence.d.ts +0 -33
- package/dist/types.backup/browser/app-shell.d.ts +0 -34
- package/dist/types.backup/browser/app-version.d.ts +0 -6
- package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
- package/dist/types.backup/browser/cookie-name.d.ts +0 -66
- package/dist/types.backup/browser/event-controller.d.ts +0 -221
- package/dist/types.backup/browser/history-state.d.ts +0 -26
- package/dist/types.backup/browser/index.d.ts +0 -1
- package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
- package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
- package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
- package/dist/types.backup/browser/logging.d.ts +0 -33
- package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
- package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
- package/dist/types.backup/browser/navigation-client.d.ts +0 -17
- package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
- package/dist/types.backup/browser/navigation-store.d.ts +0 -95
- package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
- package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
- package/dist/types.backup/browser/partial-update.d.ts +0 -61
- package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
- package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
- package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
- package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
- package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
- package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
- package/dist/types.backup/browser/rango-state.d.ts +0 -52
- package/dist/types.backup/browser/react/Link.d.ts +0 -140
- package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
- package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
- package/dist/types.backup/browser/react/context.d.ts +0 -54
- package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
- package/dist/types.backup/browser/react/index.d.ts +0 -1
- package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
- package/dist/types.backup/browser/react/location-state.d.ts +0 -29
- package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
- package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
- package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
- package/dist/types.backup/browser/react/use-action.d.ts +0 -61
- package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
- package/dist/types.backup/browser/react/use-href.d.ts +0 -32
- package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
- package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
- package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
- package/dist/types.backup/browser/react/use-params.d.ts +0 -21
- package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
- package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
- package/dist/types.backup/browser/react/use-router.d.ts +0 -23
- package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
- package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
- package/dist/types.backup/browser/response-adapter.d.ts +0 -58
- package/dist/types.backup/browser/rsc-router.d.ts +0 -141
- package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
- package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
- package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
- package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
- package/dist/types.backup/browser/types.d.ts +0 -530
- package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
- package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
- package/dist/types.backup/build/generate-manifest.d.ts +0 -100
- package/dist/types.backup/build/generate-route-types.d.ts +0 -8
- package/dist/types.backup/build/index.d.ts +0 -21
- package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
- package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
- package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
- package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
- package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
- package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
- package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
- package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
- package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
- package/dist/types.backup/cache/background-task.d.ts +0 -21
- package/dist/types.backup/cache/cache-error.d.ts +0 -71
- package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
- package/dist/types.backup/cache/cache-policy.d.ts +0 -59
- package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
- package/dist/types.backup/cache/cache-scope.d.ts +0 -134
- package/dist/types.backup/cache/cache-tag.d.ts +0 -79
- package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
- package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
- package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
- package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
- package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
- package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
- package/dist/types.backup/cache/cf/index.d.ts +0 -3
- package/dist/types.backup/cache/document-cache.d.ts +0 -69
- package/dist/types.backup/cache/handle-capture.d.ts +0 -23
- package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
- package/dist/types.backup/cache/index.d.ts +0 -7
- package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
- package/dist/types.backup/cache/profile-registry.d.ts +0 -40
- package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
- package/dist/types.backup/cache/segment-codec.d.ts +0 -78
- package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
- package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
- package/dist/types.backup/cache/taint.d.ts +0 -71
- package/dist/types.backup/cache/types.d.ts +0 -407
- package/dist/types.backup/cache/vercel/index.d.ts +0 -1
- package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
- package/dist/types.backup/client.d.ts +0 -184
- package/dist/types.backup/client.rsc.d.ts +0 -39
- package/dist/types.backup/cloudflare/index.d.ts +0 -7
- package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
- package/dist/types.backup/component-utils.d.ts +0 -46
- package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
- package/dist/types.backup/context-var.d.ts +0 -84
- package/dist/types.backup/debug.d.ts +0 -57
- package/dist/types.backup/decode-loader-results.d.ts +0 -5
- package/dist/types.backup/default-error-boundary.d.ts +0 -10
- package/dist/types.backup/defer.d.ts +0 -89
- package/dist/types.backup/deps/browser.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
- package/dist/types.backup/deps/rsc.d.ts +0 -1
- package/dist/types.backup/deps/ssr.d.ts +0 -1
- package/dist/types.backup/encode-kv.d.ts +0 -35
- package/dist/types.backup/errors.d.ts +0 -226
- package/dist/types.backup/escape-script.d.ts +0 -44
- package/dist/types.backup/handle.d.ts +0 -93
- package/dist/types.backup/handles/MetaTags.d.ts +0 -17
- package/dist/types.backup/handles/Scripts.d.ts +0 -38
- package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
- package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
- package/dist/types.backup/handles/is-thenable.d.ts +0 -12
- package/dist/types.backup/handles/meta.d.ts +0 -43
- package/dist/types.backup/handles/script.d.ts +0 -139
- package/dist/types.backup/host/cookie-handler.d.ts +0 -8
- package/dist/types.backup/host/errors.d.ts +0 -40
- package/dist/types.backup/host/index.d.ts +0 -33
- package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
- package/dist/types.backup/host/router.d.ts +0 -12
- package/dist/types.backup/host/testing.d.ts +0 -41
- package/dist/types.backup/host/types.d.ts +0 -148
- package/dist/types.backup/host/utils.d.ts +0 -20
- package/dist/types.backup/href-client.d.ts +0 -214
- package/dist/types.backup/index.d.ts +0 -112
- package/dist/types.backup/index.rsc.d.ts +0 -51
- package/dist/types.backup/internal-debug.d.ts +0 -1
- package/dist/types.backup/loader-store.d.ts +0 -193
- package/dist/types.backup/loader.d.ts +0 -18
- package/dist/types.backup/loader.rsc.d.ts +0 -18
- package/dist/types.backup/missing-id-error.d.ts +0 -1
- package/dist/types.backup/outlet-context.d.ts +0 -12
- package/dist/types.backup/outlet-provider.d.ts +0 -12
- package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
- package/dist/types.backup/prerender/param-hash.d.ts +0 -6
- package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
- package/dist/types.backup/prerender/store.d.ts +0 -62
- package/dist/types.backup/prerender.d.ts +0 -292
- package/dist/types.backup/redirect-origin.d.ts +0 -55
- package/dist/types.backup/regex-escape.d.ts +0 -6
- package/dist/types.backup/render-error-thrower.d.ts +0 -13
- package/dist/types.backup/response-utils.d.ts +0 -35
- package/dist/types.backup/reverse.d.ts +0 -206
- package/dist/types.backup/root-error-boundary.d.ts +0 -32
- package/dist/types.backup/route-content-wrapper.d.ts +0 -40
- package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
- package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
- package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
- package/dist/types.backup/route-definition/index.d.ts +0 -7
- package/dist/types.backup/route-definition/redirect.d.ts +0 -48
- package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
- package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
- package/dist/types.backup/route-definition.d.ts +0 -1
- package/dist/types.backup/route-map-builder.d.ts +0 -127
- package/dist/types.backup/route-name.d.ts +0 -27
- package/dist/types.backup/route-types.d.ts +0 -172
- package/dist/types.backup/router/basename.d.ts +0 -10
- package/dist/types.backup/router/content-negotiation.d.ts +0 -91
- package/dist/types.backup/router/debug-manifest.d.ts +0 -7
- package/dist/types.backup/router/error-handling.d.ts +0 -76
- package/dist/types.backup/router/find-match.d.ts +0 -19
- package/dist/types.backup/router/handler-context.d.ts +0 -41
- package/dist/types.backup/router/instrument.d.ts +0 -161
- package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
- package/dist/types.backup/router/lazy-includes.d.ts +0 -26
- package/dist/types.backup/router/loader-resolution.d.ts +0 -63
- package/dist/types.backup/router/logging.d.ts +0 -41
- package/dist/types.backup/router/manifest.d.ts +0 -8
- package/dist/types.backup/router/match-api.d.ts +0 -19
- package/dist/types.backup/router/match-context.d.ts +0 -184
- package/dist/types.backup/router/match-handlers.d.ts +0 -49
- package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
- package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
- package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
- package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
- package/dist/types.backup/router/match-pipelines.d.ts +0 -103
- package/dist/types.backup/router/match-result.d.ts +0 -114
- package/dist/types.backup/router/metrics.d.ts +0 -6
- package/dist/types.backup/router/middleware-types.d.ts +0 -74
- package/dist/types.backup/router/middleware.d.ts +0 -116
- package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
- package/dist/types.backup/router/params-util.d.ts +0 -8
- package/dist/types.backup/router/parse-pattern.d.ts +0 -38
- package/dist/types.backup/router/pattern-matching.d.ts +0 -169
- package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
- package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
- package/dist/types.backup/router/prerender-match.d.ts +0 -50
- package/dist/types.backup/router/preview-match.d.ts +0 -22
- package/dist/types.backup/router/request-classification.d.ts +0 -104
- package/dist/types.backup/router/revalidation.d.ts +0 -57
- package/dist/types.backup/router/route-snapshot.d.ts +0 -112
- package/dist/types.backup/router/router-context.d.ts +0 -137
- package/dist/types.backup/router/router-interfaces.d.ts +0 -432
- package/dist/types.backup/router/router-options.d.ts +0 -738
- package/dist/types.backup/router/router-registry.d.ts +0 -15
- package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
- package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
- package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
- package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
- package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
- package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
- package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
- package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
- package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
- package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
- package/dist/types.backup/router/segment-resolution.d.ts +0 -3
- package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
- package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
- package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
- package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
- package/dist/types.backup/router/telemetry.d.ts +0 -215
- package/dist/types.backup/router/timeout.d.ts +0 -68
- package/dist/types.backup/router/tracing.d.ts +0 -125
- package/dist/types.backup/router/trie-matching.d.ts +0 -32
- package/dist/types.backup/router/types.d.ts +0 -98
- package/dist/types.backup/router/url-params.d.ts +0 -26
- package/dist/types.backup/router.d.ts +0 -7
- package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
- package/dist/types.backup/rsc/full-payload.d.ts +0 -22
- package/dist/types.backup/rsc/handler-context.d.ts +0 -31
- package/dist/types.backup/rsc/handler.d.ts +0 -9
- package/dist/types.backup/rsc/helpers.d.ts +0 -213
- package/dist/types.backup/rsc/index.d.ts +0 -17
- package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
- package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
- package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
- package/dist/types.backup/rsc/nonce.d.ts +0 -28
- package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
- package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
- package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
- package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
- package/dist/types.backup/rsc/response-error.d.ts +0 -19
- package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
- package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
- package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
- package/dist/types.backup/rsc/server-action.d.ts +0 -68
- package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
- package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
- package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
- package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
- package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
- package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
- package/dist/types.backup/rsc/types.d.ts +0 -290
- package/dist/types.backup/runtime-env.d.ts +0 -1
- package/dist/types.backup/search-params.d.ts +0 -125
- package/dist/types.backup/segment-content-promise.d.ts +0 -13
- package/dist/types.backup/segment-fragments.d.ts +0 -56
- package/dist/types.backup/segment-loader-promise.d.ts +0 -22
- package/dist/types.backup/segment-system.d.ts +0 -84
- package/dist/types.backup/serialize.d.ts +0 -164
- package/dist/types.backup/server/context.d.ts +0 -494
- package/dist/types.backup/server/cookie-parse.d.ts +0 -10
- package/dist/types.backup/server/cookie-store.d.ts +0 -107
- package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
- package/dist/types.backup/server/handle-store.d.ts +0 -100
- package/dist/types.backup/server/loader-registry.d.ts +0 -32
- package/dist/types.backup/server/request-context.d.ts +0 -596
- package/dist/types.backup/server/root-layout.d.ts +0 -3
- package/dist/types.backup/server.d.ts +0 -15
- package/dist/types.backup/ssr/index.d.ts +0 -233
- package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
- package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
- package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
- package/dist/types.backup/static-handler.d.ts +0 -57
- package/dist/types.backup/testing/cache-status.d.ts +0 -63
- package/dist/types.backup/testing/collect-handle.d.ts +0 -20
- package/dist/types.backup/testing/dispatch.d.ts +0 -123
- package/dist/types.backup/testing/dom.entry.d.ts +0 -15
- package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
- package/dist/types.backup/testing/e2e/index.d.ts +0 -30
- package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
- package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
- package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
- package/dist/types.backup/testing/e2e/server.d.ts +0 -35
- package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
- package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
- package/dist/types.backup/testing/flight-tree.d.ts +0 -192
- package/dist/types.backup/testing/flight.d.ts +0 -115
- package/dist/types.backup/testing/flight.entry.d.ts +0 -27
- package/dist/types.backup/testing/generated-routes.d.ts +0 -66
- package/dist/types.backup/testing/index.d.ts +0 -52
- package/dist/types.backup/testing/internal/context.d.ts +0 -225
- package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
- package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
- package/dist/types.backup/testing/render-handler.d.ts +0 -160
- package/dist/types.backup/testing/render-route.d.ts +0 -246
- package/dist/types.backup/testing/run-loader.d.ts +0 -186
- package/dist/types.backup/testing/run-middleware.d.ts +0 -132
- package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
- package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
- package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
- package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
- package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
- package/dist/types.backup/testing/vitest.d.ts +0 -205
- package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
- package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
- package/dist/types.backup/theme/constants.d.ts +0 -39
- package/dist/types.backup/theme/index.d.ts +0 -29
- package/dist/types.backup/theme/theme-context.d.ts +0 -21
- package/dist/types.backup/theme/theme-script.d.ts +0 -26
- package/dist/types.backup/theme/types.d.ts +0 -162
- package/dist/types.backup/theme/use-theme.d.ts +0 -8
- package/dist/types.backup/types/boundaries.d.ts +0 -93
- package/dist/types.backup/types/cache-types.d.ts +0 -191
- package/dist/types.backup/types/error-types.d.ts +0 -114
- package/dist/types.backup/types/global-namespace.d.ts +0 -90
- package/dist/types.backup/types/handler-context.d.ts +0 -658
- package/dist/types.backup/types/index.d.ts +0 -11
- package/dist/types.backup/types/loader-types.d.ts +0 -182
- package/dist/types.backup/types/request-scope.d.ts +0 -93
- package/dist/types.backup/types/route-config.d.ts +0 -105
- package/dist/types.backup/types/route-entry.d.ts +0 -95
- package/dist/types.backup/types/segments.d.ts +0 -234
- package/dist/types.backup/types.d.ts +0 -1
- package/dist/types.backup/urls/include-helper.d.ts +0 -17
- package/dist/types.backup/urls/include-provider.d.ts +0 -27
- package/dist/types.backup/urls/index.d.ts +0 -6
- package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
- package/dist/types.backup/urls/path-helper.d.ts +0 -12
- package/dist/types.backup/urls/pattern-types.d.ts +0 -166
- package/dist/types.backup/urls/response-types.d.ts +0 -67
- package/dist/types.backup/urls/type-extraction.d.ts +0 -157
- package/dist/types.backup/urls/urls-function.d.ts +0 -24
- package/dist/types.backup/urls.d.ts +0 -1
- package/dist/types.backup/use-loader.d.ts +0 -150
- package/dist/types.backup/vercel/index.d.ts +0 -10
- package/dist/types.backup/vercel/tracing.d.ts +0 -70
- package/dist/types.backup/vite/debug.d.ts +0 -80
- package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
- package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
- package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
- package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
- package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
- package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
- package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
- package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
- package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
- package/dist/types.backup/vite/discovery/state.d.ts +0 -162
- package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
- package/dist/types.backup/vite/index.d.ts +0 -11
- package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
- package/dist/types.backup/vite/plugin-types.d.ts +0 -298
- package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
- package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
- package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
- package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
- package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
- package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
- package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
- package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
- package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
- package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
- package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
- package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
- package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
- package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
- package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
- package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
- package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
- package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
- package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
- package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
- package/dist/types.backup/vite/rango.d.ts +0 -29
- package/dist/types.backup/vite/router-discovery.d.ts +0 -23
- package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
- package/dist/types.backup/vite/utils/banner.d.ts +0 -2
- package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
- package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
- package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
- package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
- package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
- package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
- package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
- package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in Script handle for injecting <script> tags into the document from
|
|
3
|
-
* route/layout handlers.
|
|
4
|
-
*
|
|
5
|
-
* Push from a SERVER handler with `ctx.use(Script)(config)`; render with the
|
|
6
|
-
* `<Scripts />` component (from `@rangojs/router/client`) placed in the Document
|
|
7
|
-
* `<head>` (and optionally a second `<Scripts position="body" />` at the top of
|
|
8
|
-
* `<body>`). This mirrors the Meta / <MetaTags> pair.
|
|
9
|
-
*
|
|
10
|
-
* The request CSP nonce is applied AUTOMATICALLY by <Scripts> to document-rendered
|
|
11
|
-
* scripts; consumers never pass a nonce. (An async script first loaded on a soft
|
|
12
|
-
* navigation is injected client-side without a nonce — it relies on
|
|
13
|
-
* 'strict-dynamic' or a host allowance; see the EXECUTION CONTRACT below and the
|
|
14
|
-
* /scripts skill.) A ScriptConfig is fully serializable (it crosses the
|
|
15
|
-
* server -> client handle-collection boundary), so callbacks like onLoad are NOT
|
|
16
|
-
* supported — a consumer needing them renders their own "use client" script.
|
|
17
|
-
*
|
|
18
|
-
* EXECUTION CONTRACT (see the /scripts skill for the full story):
|
|
19
|
-
* - Inline (`children`) and ordered external (`src`, optional `defer`) scripts
|
|
20
|
-
* are DOCUMENT-LOAD scripts: they execute only when present in the initial HTML
|
|
21
|
-
* response. <Scripts> freezes them after hydration, so a later client (soft)
|
|
22
|
-
* navigation never inserts an inert copy — React creates client-mounted
|
|
23
|
-
* <script> elements via innerHTML, which the HTML spec makes non-executing.
|
|
24
|
-
* - Async external scripts (`src` + `async: true`) are React RESOURCES: they load
|
|
25
|
-
* once when first encountered, including after a soft navigation, deduped by
|
|
26
|
-
* `src`. Use this for a vendor that should load on first visit to a route.
|
|
27
|
-
* - Reusing an `id` shapes the INITIAL document output (last-push-wins); it does
|
|
28
|
-
* not re-run a script during navigation. Per-navigation behavior belongs in a
|
|
29
|
-
* "use client" component or hook (see the GtmPageViews pattern in the demo).
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```ts
|
|
33
|
-
* // External async loader (React resource — loads on first visit, even soft nav):
|
|
34
|
-
* ctx.use(Script)({ id: "stripe", src: "https://js.stripe.com/v3", async: true });
|
|
35
|
-
*
|
|
36
|
-
* // Inline bootstrap that self-injects its loader (GTM/GA4) — keep it inline so
|
|
37
|
-
* // React cannot hoist a declarative loader above the bootstrap:
|
|
38
|
-
* ctx.use(Script)({ id: "gtm", children: gtmBootstrap(containerId) });
|
|
39
|
-
*
|
|
40
|
-
* // External ordered (defer) with vendor attributes (document-load):
|
|
41
|
-
* ctx.use(Script)({
|
|
42
|
-
* id: "plausible",
|
|
43
|
-
* src: "https://plausible.io/js/script.js",
|
|
44
|
-
* defer: true,
|
|
45
|
-
* attributes: { "data-domain": "example.com" },
|
|
46
|
-
* });
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
import type { ScriptHTMLAttributes } from "react";
|
|
50
|
-
import { type Handle } from "../handle.js";
|
|
51
|
-
/**
|
|
52
|
-
* Extra attributes forwarded onto the emitted <script>. Typed by React, so the
|
|
53
|
-
* casing is React's (`crossOrigin`, not `crossorigin`) and value shapes are
|
|
54
|
-
* checked at compile time. `data-*` attributes are allowed. Two groups are
|
|
55
|
-
* excluded: the fields the Script handle manages itself (`id`, `src`, `async`,
|
|
56
|
-
* `defer`, `type`, `children`, `nonce`, `dangerouslySetInnerHTML` — set those via
|
|
57
|
-
* the ScriptConfig fields), and ALL `on*` event handlers (`onLoad`, `onError`,
|
|
58
|
-
* …): a ScriptConfig is serialized across the server -> client handle boundary, so
|
|
59
|
-
* a function cannot survive it — render your own "use client" script for callbacks.
|
|
60
|
-
*/
|
|
61
|
-
export type ScriptAttributes = Omit<ScriptHTMLAttributes<HTMLScriptElement>, "id" | "src" | "async" | "defer" | "type" | "children" | "nonce" | "dangerouslySetInnerHTML" | `on${string}`> & {
|
|
62
|
-
[dataAttr: `data-${string}`]: string | number | boolean | undefined;
|
|
63
|
-
};
|
|
64
|
-
/** Fields shared by every script shape. */
|
|
65
|
-
interface ScriptConfigBase {
|
|
66
|
-
/**
|
|
67
|
-
* Where <Scripts> renders this script.
|
|
68
|
-
* - "head" (default): the `<head>` <Scripts> site.
|
|
69
|
-
* - "body": the `<Scripts position="body" />` site at the top of <body>.
|
|
70
|
-
* Note: an external `async` script is hoisted into <head> by React regardless.
|
|
71
|
-
*/
|
|
72
|
-
position?: "head" | "body";
|
|
73
|
-
/**
|
|
74
|
-
* The `type` attribute, as a free string: "module", "application/ld+json",
|
|
75
|
-
* "text/partytown", etc. Omitted means a classic script.
|
|
76
|
-
*/
|
|
77
|
-
type?: string;
|
|
78
|
-
/** Extra React-cased attributes (`data-*`, `crossOrigin`, `integrity`, ...). */
|
|
79
|
-
attributes?: ScriptAttributes;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Inline script: a raw JS body rendered in place, escaped against `</script>`
|
|
83
|
-
* breakout. DOCUMENT-LOAD only (executes when present in the initial HTML;
|
|
84
|
-
* <Scripts> freezes it after hydration so navigation never inserts an inert
|
|
85
|
-
* copy). `id` is REQUIRED — inline scripts are never deduped by React, so a
|
|
86
|
-
* layout and a child pushing the same bootstrap would inject it twice. It is also
|
|
87
|
-
* rendered as the script's DOM `id`. Forbids `src`/`async`/`defer`. For analytics
|
|
88
|
-
* vendors (GTM/GA4/Segment) the body should
|
|
89
|
-
* create+append its own loader, so the loader is never a separate declarative tag
|
|
90
|
-
* React could hoist out of order.
|
|
91
|
-
*/
|
|
92
|
-
export interface InlineScriptConfig extends ScriptConfigBase {
|
|
93
|
-
id: string;
|
|
94
|
-
children: string;
|
|
95
|
-
src?: never;
|
|
96
|
-
async?: never;
|
|
97
|
-
defer?: never;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* External async script: a React-hoisted, `src`-deduped RESOURCE (the
|
|
101
|
-
* fire-and-forget loader case). Loads once when first encountered, including
|
|
102
|
-
* after a soft navigation. Deduped by `src` (matching React); `id` is optional
|
|
103
|
-
* and, when set, is rendered as the DOM `id` (not used as the dedup key here).
|
|
104
|
-
* Forbids `children`/`defer`.
|
|
105
|
-
*/
|
|
106
|
-
export interface AsyncScriptConfig extends ScriptConfigBase {
|
|
107
|
-
src: string;
|
|
108
|
-
async: true;
|
|
109
|
-
id?: string;
|
|
110
|
-
children?: never;
|
|
111
|
-
defer?: never;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* External ordered script: in-place, optionally `defer`. DOCUMENT-LOAD only
|
|
115
|
-
* (executes when present in the initial HTML; not re-run on navigation). `id` is
|
|
116
|
-
* optional (the dedup key falls back to `src`) and, when set, is rendered as the
|
|
117
|
-
* DOM `id`. Forbids `children`/`async`.
|
|
118
|
-
*/
|
|
119
|
-
export interface OrderedScriptConfig extends ScriptConfigBase {
|
|
120
|
-
src: string;
|
|
121
|
-
defer?: boolean;
|
|
122
|
-
id?: string;
|
|
123
|
-
children?: never;
|
|
124
|
-
async?: never;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* A single script to inject, as a discriminated union — exactly one of:
|
|
128
|
-
* inline (`id` + `children`), external async (`src` + `async: true`), or external
|
|
129
|
-
* ordered (`src`, optional `defer`). Invalid combinations (both `src`+`children`,
|
|
130
|
-
* `async`+`defer`, inline without `id`) are compile errors. The CSP nonce is
|
|
131
|
-
* applied by <Scripts>, never here.
|
|
132
|
-
*/
|
|
133
|
-
export type ScriptConfig = InlineScriptConfig | AsyncScriptConfig | OrderedScriptConfig;
|
|
134
|
-
/**
|
|
135
|
-
* Built-in handle for injecting scripts. Uses an explicit stable id (built-ins
|
|
136
|
-
* do not rely on the Vite id-injection plugin, which only covers consumer code).
|
|
137
|
-
*/
|
|
138
|
-
export declare const Script: Handle<ScriptConfig, ScriptConfig[]>;
|
|
139
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { HostOverrideConfig } from "./types.js";
|
|
2
|
-
import type { RouterRequestInput } from "../router/router-interfaces.js";
|
|
3
|
-
export declare function parseCookies(request: Request): Record<string, string>;
|
|
4
|
-
export declare function getCookie(request: Request, name: string): string | undefined;
|
|
5
|
-
export declare function createDeleteCookieHeader(name: string): string;
|
|
6
|
-
export declare function createCookieErrorResponse(cookieName: string, message: string): Response;
|
|
7
|
-
export declare function isHostAllowed(request: Request, allowedHosts: string[]): boolean;
|
|
8
|
-
export declare function handleCookieOverride(request: Request, config: HostOverrideConfig | undefined, input: RouterRequestInput<any>): string;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Error Classes for Host Router
|
|
3
|
-
*
|
|
4
|
-
* All host router errors extend HostRouterError for easy instance checking.
|
|
5
|
-
*/
|
|
6
|
-
interface ErrorOptions {
|
|
7
|
-
cause?: unknown;
|
|
8
|
-
}
|
|
9
|
-
export declare class HostRouterError extends Error {
|
|
10
|
-
cause?: unknown;
|
|
11
|
-
constructor(message: string, options?: ErrorOptions);
|
|
12
|
-
}
|
|
13
|
-
export declare class InvalidPatternError extends HostRouterError {
|
|
14
|
-
constructor(pattern: string, reason: string, options?: ErrorOptions);
|
|
15
|
-
}
|
|
16
|
-
export declare class HostOverrideNotAllowedError extends HostRouterError {
|
|
17
|
-
constructor(currentHost: string, cookieName: string, options?: ErrorOptions);
|
|
18
|
-
}
|
|
19
|
-
export declare class InvalidHostnameError extends HostRouterError {
|
|
20
|
-
constructor(hostname: string, options?: ErrorOptions);
|
|
21
|
-
}
|
|
22
|
-
export declare class HostValidationError extends HostRouterError {
|
|
23
|
-
constructor(message: string, cause?: unknown);
|
|
24
|
-
}
|
|
25
|
-
export declare class NoRouteMatchError extends HostRouterError {
|
|
26
|
-
constructor(hostname: string, pathname: string, options?: ErrorOptions);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* True when `err` is a NoRouteMatchError — including one thrown by a
|
|
30
|
-
* DUPLICATED @rangojs/router copy in the module graph (a workspace pinning a
|
|
31
|
-
* second version), whose class identity differs so a bare `instanceof` misses
|
|
32
|
-
* it and an unmatched-host 404 becomes an opaque 500. Use this in worker
|
|
33
|
-
* catch blocks instead of `instanceof`; it also matches by the stable `name`
|
|
34
|
-
* the constructor stamps.
|
|
35
|
-
*/
|
|
36
|
-
export declare function isNoRouteMatchError(err: unknown): err is NoRouteMatchError;
|
|
37
|
-
export declare class InvalidHandlerError extends HostRouterError {
|
|
38
|
-
constructor(handler: unknown, options?: ErrorOptions);
|
|
39
|
-
}
|
|
40
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host Router
|
|
3
|
-
*
|
|
4
|
-
* A routing system for managing multi-application hosting based on
|
|
5
|
-
* domain/subdomain patterns with support for cookie-based host override
|
|
6
|
-
* for development environments.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { createHostRouter } from '@rangojs/router/host';
|
|
11
|
-
*
|
|
12
|
-
* const router = createHostRouter();
|
|
13
|
-
*
|
|
14
|
-
* router.host(['.']).lazy(() => import('./apps/main'));
|
|
15
|
-
* router.host(['admin.*']).lazy(() => import('./apps/admin'));
|
|
16
|
-
*
|
|
17
|
-
* export default {
|
|
18
|
-
* fetch(request) {
|
|
19
|
-
* return router.match(request);
|
|
20
|
-
* }
|
|
21
|
-
* };
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* The host surface (`Handler`, `Middleware`, `match`, `HostOverrideConfig.validate`)
|
|
25
|
-
* types `input` as `RouterRequestInput<any>` by design: a host router fans out to
|
|
26
|
-
* heterogeneous sub-apps with differing env/vars shapes, so there is no single
|
|
27
|
-
* `TEnv`/`TVars` to thread through. `input.env`/`input.vars` are therefore `any`
|
|
28
|
-
* here; the typed env shape lives on each sub-app's `createRouter<TEnv>()`.
|
|
29
|
-
*/
|
|
30
|
-
export { createHostRouter } from "./router.js";
|
|
31
|
-
export { defineHosts } from "./utils.js";
|
|
32
|
-
export { HostRouterError, InvalidPatternError, HostOverrideNotAllowedError, InvalidHostnameError, HostValidationError, NoRouteMatchError, isNoRouteMatchError, InvalidHandlerError, } from "./errors.js";
|
|
33
|
-
export type { HostRouter, HostRouteBuilder, HostRouterOptions, Handler, LazyHandler, Middleware, HostPattern, HostMatchResult, HostOverrideConfig, } from "./types.js";
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pattern Matching Engine
|
|
3
|
-
*
|
|
4
|
-
* Handles matching of hostnames and paths against various patterns:
|
|
5
|
-
* - `.` or `*` - any apex domain
|
|
6
|
-
* - `**` - any domain (apex + subdomains)
|
|
7
|
-
* - `*.` - any single-level subdomain
|
|
8
|
-
* - `**.` - any multi-level subdomain
|
|
9
|
-
* - `example.com` - exact domain
|
|
10
|
-
* - `*.com` - any apex .com domain
|
|
11
|
-
* - `*.example.com` - subdomain of example.com
|
|
12
|
-
* - `**.example.com` - any depth subdomain
|
|
13
|
-
* - `admin.*` - admin subdomain of any apex
|
|
14
|
-
* - `example.com/admin` - specific domain with path prefix
|
|
15
|
-
*
|
|
16
|
-
* Apex vs subdomain is classified purely by dot-part COUNT (apex == exactly 2
|
|
17
|
-
* parts) — there is no Public Suffix List. A registrable domain under a
|
|
18
|
-
* multi-label public suffix (example.co.uk, shop.com.au) has 3+ parts and is
|
|
19
|
-
* therefore treated as a SUBDOMAIN, not an apex: `.`/`*` will NOT match it and
|
|
20
|
-
* `*.` WILL. If registrable-domain accuracy matters for a host-router consumer,
|
|
21
|
-
* supply an explicit apex/host hint rather than relying on the part count.
|
|
22
|
-
*/
|
|
23
|
-
export declare function normalizePattern(pattern: string): string;
|
|
24
|
-
export declare function parseRequest(request: Request): {
|
|
25
|
-
hostname: string;
|
|
26
|
-
pathname: string;
|
|
27
|
-
parts: string[];
|
|
28
|
-
};
|
|
29
|
-
export declare function matchPattern(pattern: string, hostname: string, pathname: string, parts: string[]): boolean;
|
|
30
|
-
export declare function validatePattern(pattern: string): void;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host Router Implementation
|
|
3
|
-
*
|
|
4
|
-
* Main router that handles host-based routing with middleware and cookie override.
|
|
5
|
-
*/
|
|
6
|
-
import type { HostRouter, HostRouterOptions, RouteEntry } from "./types.js";
|
|
7
|
-
export interface HostRouterRegistryEntry {
|
|
8
|
-
routes: RouteEntry[];
|
|
9
|
-
fallback: RouteEntry | null;
|
|
10
|
-
}
|
|
11
|
-
export declare const HostRouterRegistry: Map<string, HostRouterRegistryEntry>;
|
|
12
|
-
export declare function createHostRouter(options?: HostRouterOptions): HostRouter;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Testing Utilities for Host Router
|
|
3
|
-
*
|
|
4
|
-
* Helper functions for testing host routing.
|
|
5
|
-
*/
|
|
6
|
-
export interface CreateTestRequestOptions {
|
|
7
|
-
host: string;
|
|
8
|
-
path?: string;
|
|
9
|
-
method?: string;
|
|
10
|
-
cookies?: Record<string, string>;
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
}
|
|
13
|
-
export declare function createTestRequest(options: CreateTestRequestOptions): Request;
|
|
14
|
-
/**
|
|
15
|
-
* Test if a pattern matches a hostname (and, for path-based patterns, a pathname).
|
|
16
|
-
*
|
|
17
|
-
* `pathname` defaults to `"/"`, so a host-only pattern works with two args. Pass
|
|
18
|
-
* the third arg to test a path-based pattern (`**.workers.dev/admin`,
|
|
19
|
-
* `localhost/shop`) — without it those patterns can never match.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```ts
|
|
23
|
-
* expect(testPattern("admin.*", "admin.example.com")).toBe(true);
|
|
24
|
-
* expect(testPattern(["*", "www.*"], "example.com")).toBe(true);
|
|
25
|
-
* expect(testPattern("**.workers.dev/admin", "foo.workers.dev", "/admin")).toBe(true);
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function testPattern(pattern: string | string[], hostname: string, pathname?: string): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Test if a pattern matches a `Request` — the hostname AND pathname are taken
|
|
31
|
-
* from the request URL (via the same `parseRequest` the host router uses), so a
|
|
32
|
-
* path-based pattern is tested against a real request without splitting the URL
|
|
33
|
-
* by hand.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```ts
|
|
37
|
-
* const req = new Request("https://foo.workers.dev/admin");
|
|
38
|
-
* expect(matchesHost("**.workers.dev/admin", req)).toBe(true);
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare function matchesHost(pattern: string | string[], request: Request): boolean;
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host Router Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the host-based routing system.
|
|
5
|
-
*/
|
|
6
|
-
import type { RouterRequestInput } from "../router/router-interfaces.js";
|
|
7
|
-
/**
|
|
8
|
-
* Handler function that processes a request and returns a response.
|
|
9
|
-
* The input parameter receives the same RouterRequestInput passed to match().
|
|
10
|
-
*/
|
|
11
|
-
export type Handler = (request: Request, input: RouterRequestInput<any>) => Response | Promise<Response>;
|
|
12
|
-
/**
|
|
13
|
-
* Lazy handler that dynamically imports a module with a default handler or router
|
|
14
|
-
*/
|
|
15
|
-
export type LazyHandler = () => Promise<{
|
|
16
|
-
default: Handler | HostRouter;
|
|
17
|
-
}>;
|
|
18
|
-
/**
|
|
19
|
-
* Middleware function that can intercept and modify requests/responses.
|
|
20
|
-
* The input parameter receives the same RouterRequestInput passed to match().
|
|
21
|
-
*/
|
|
22
|
-
export type Middleware = (request: Request, input: RouterRequestInput<any>, next: () => Promise<Response>) => Promise<Response>;
|
|
23
|
-
/**
|
|
24
|
-
* Host pattern - can be a string or array of strings
|
|
25
|
-
*/
|
|
26
|
-
export type HostPattern = string | string[];
|
|
27
|
-
/**
|
|
28
|
-
* Whether a route entry is an inline request handler or a lazy module mount.
|
|
29
|
-
*
|
|
30
|
-
* Stored on the entry so discovery and runtime act on the consumer's declared
|
|
31
|
-
* intent instead of inferring it from the function's shape (arity/return value),
|
|
32
|
-
* which is ambiguous: a lazy loader may declare an ignored param, and an inline
|
|
33
|
-
* handler may be async. `.map()` registers `"handler"`, `.lazy()` registers
|
|
34
|
-
* `"lazy"`.
|
|
35
|
-
*/
|
|
36
|
-
export type RouteEntryKind = "handler" | "lazy";
|
|
37
|
-
/**
|
|
38
|
-
* Result from testing a hostname against patterns
|
|
39
|
-
*/
|
|
40
|
-
export interface HostMatchResult {
|
|
41
|
-
pattern: string;
|
|
42
|
-
handler: Handler | LazyHandler;
|
|
43
|
-
kind: RouteEntryKind;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Host route builder for chaining middleware and handler
|
|
47
|
-
*/
|
|
48
|
-
export interface HostRouteBuilder {
|
|
49
|
-
/**
|
|
50
|
-
* Add middleware to this host pattern
|
|
51
|
-
*/
|
|
52
|
-
use(...middleware: Middleware[]): HostRouteBuilder;
|
|
53
|
-
/**
|
|
54
|
-
* Map to an inline request handler `(request, input) => Response`.
|
|
55
|
-
*
|
|
56
|
-
* For a lazily-imported sub-app or handler module, use {@link lazy} instead -
|
|
57
|
-
* `.map(() => import(...))` is rejected (the return type is not a `Response`)
|
|
58
|
-
* and would not be discovered at build time.
|
|
59
|
-
*/
|
|
60
|
-
map(handler: Handler): HostRouter;
|
|
61
|
-
/**
|
|
62
|
-
* Mount a lazily-imported handler or host router:
|
|
63
|
-
* `.lazy(() => import("./sub-app"))`.
|
|
64
|
-
*
|
|
65
|
-
* The loader takes no arguments and resolves to a module whose `default`
|
|
66
|
-
* export is a request `Handler` or a nested `HostRouter`. Only `.lazy()`
|
|
67
|
-
* entries are invoked during build-time discovery to trigger the sub-app's
|
|
68
|
-
* `createRouter()` registration.
|
|
69
|
-
*/
|
|
70
|
-
lazy(handler: LazyHandler): HostRouter;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Main host router interface
|
|
74
|
-
*/
|
|
75
|
-
export interface HostRouter {
|
|
76
|
-
/**
|
|
77
|
-
* Register a host pattern
|
|
78
|
-
*/
|
|
79
|
-
host(patterns: HostPattern): HostRouteBuilder;
|
|
80
|
-
/**
|
|
81
|
-
* Register global middleware
|
|
82
|
-
*/
|
|
83
|
-
use(...middleware: Middleware[]): HostRouter;
|
|
84
|
-
/**
|
|
85
|
-
* Match an incoming request
|
|
86
|
-
*/
|
|
87
|
-
match(request: Request, input?: RouterRequestInput<any>): Promise<Response>;
|
|
88
|
-
/**
|
|
89
|
-
* Register fallback handler for allowed hosts without valid cookie
|
|
90
|
-
*/
|
|
91
|
-
fallback(): HostRouteBuilder;
|
|
92
|
-
/**
|
|
93
|
-
* Test which handler would match a hostname (and optional pathname).
|
|
94
|
-
*
|
|
95
|
-
* `pathname` defaults to `"/"`. Pass it to probe path-prefixed patterns
|
|
96
|
-
* such as `host(["example.com/admin"])`, which only match when the request
|
|
97
|
-
* path is under the prefix.
|
|
98
|
-
*/
|
|
99
|
-
test(hostname: string, pathname?: string): HostMatchResult | null;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Host override configuration
|
|
103
|
-
*/
|
|
104
|
-
export interface HostOverrideConfig {
|
|
105
|
-
/**
|
|
106
|
-
* Cookie name to read for host override
|
|
107
|
-
*/
|
|
108
|
-
cookieName: string;
|
|
109
|
-
/**
|
|
110
|
-
* Hosts that are allowed to use override
|
|
111
|
-
*/
|
|
112
|
-
allowedHosts: string[];
|
|
113
|
-
/**
|
|
114
|
-
* Optional validation function
|
|
115
|
-
*/
|
|
116
|
-
validate?: (request: Request, cookieValue: string, input: RouterRequestInput<any>) => string;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Host router options
|
|
120
|
-
*/
|
|
121
|
-
export interface HostRouterOptions {
|
|
122
|
-
/**
|
|
123
|
-
* Enable debug logging
|
|
124
|
-
*/
|
|
125
|
-
debug?: boolean;
|
|
126
|
-
/**
|
|
127
|
-
* Cookie-based host override configuration
|
|
128
|
-
*/
|
|
129
|
-
hostOverride?: HostOverrideConfig;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Internal route entry
|
|
133
|
-
*/
|
|
134
|
-
export interface RouteEntry {
|
|
135
|
-
patterns: string[];
|
|
136
|
-
middleware: Middleware[];
|
|
137
|
-
handler: Handler | LazyHandler;
|
|
138
|
-
/** Whether `handler` is an inline request handler or a lazy module mount. */
|
|
139
|
-
kind: RouteEntryKind;
|
|
140
|
-
isFallback?: boolean;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Pattern match result (internal)
|
|
144
|
-
*/
|
|
145
|
-
export interface PatternMatchResult {
|
|
146
|
-
matched: boolean;
|
|
147
|
-
routeEntry?: RouteEntry;
|
|
148
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host Router Utilities
|
|
3
|
-
*
|
|
4
|
-
* Helper functions for type-safe pattern definitions.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Define hosts with type safety
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const hosts = defineHosts({
|
|
12
|
-
* admin: 'admin.*',
|
|
13
|
-
* api: 'api.*',
|
|
14
|
-
* app: ['*', 'www.*']
|
|
15
|
-
* });
|
|
16
|
-
*
|
|
17
|
-
* router.host(hosts.admin).lazy(() => import("./apps/admin")); // Type-safe!
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare function defineHosts<T extends Record<string, string | string[]>>(hosts: T): Readonly<T>;
|