@rangojs/router 0.0.0-experimental.79 → 0.0.0-experimental.7cf4e116
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/AGENTS.md +8 -0
- package/README.md +169 -31
- package/dist/bin/rango.js +312 -93
- package/dist/testing/vitest.js +82 -0
- package/dist/vite/index.js +2827 -1032
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/package.json +76 -21
- package/skills/api-client/SKILL.md +211 -0
- package/skills/breadcrumbs/SKILL.md +64 -2
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +224 -32
- package/skills/caching/SKILL.md +279 -17
- package/skills/composability/SKILL.md +27 -2
- package/skills/css/SKILL.md +76 -0
- package/skills/debug-manifest/SKILL.md +4 -2
- package/skills/document-cache/SKILL.md +78 -55
- package/skills/handler-use/SKILL.md +4 -2
- package/skills/hooks/SKILL.md +250 -30
- package/skills/host-router/SKILL.md +83 -23
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +30 -6
- package/skills/layout/SKILL.md +13 -9
- package/skills/links/SKILL.md +247 -17
- package/skills/loader/SKILL.md +225 -9
- package/skills/middleware/SKILL.md +18 -10
- package/skills/migrate-nextjs/SKILL.md +40 -16
- package/skills/migrate-react-router/SKILL.md +9 -2
- package/skills/mime-routes/SKILL.md +28 -1
- package/skills/observability/SKILL.md +172 -0
- package/skills/parallel/SKILL.md +18 -7
- package/skills/prerender/SKILL.md +45 -43
- package/skills/rango/SKILL.md +251 -24
- package/skills/react-compiler/SKILL.md +168 -0
- package/skills/response-routes/SKILL.md +123 -48
- package/skills/route/SKILL.md +46 -5
- package/skills/router-setup/SKILL.md +29 -6
- package/skills/scripts/SKILL.md +179 -0
- package/skills/server-actions/SKILL.md +775 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/tailwind/SKILL.md +27 -3
- package/skills/testing/SKILL.md +129 -0
- package/skills/testing/bindings.md +103 -0
- package/skills/testing/cache-prerender.md +127 -0
- package/skills/testing/client-components.md +124 -0
- package/skills/testing/e2e-parity.md +125 -0
- package/skills/testing/flight.md +91 -0
- package/skills/testing/handles.md +129 -0
- package/skills/testing/loader.md +128 -0
- package/skills/testing/middleware.md +99 -0
- package/skills/testing/render-handler.md +121 -0
- package/skills/testing/response-routes.md +95 -0
- package/skills/testing/reverse-and-types.md +84 -0
- package/skills/testing/server-actions.md +107 -0
- package/skills/testing/server-tree.md +128 -0
- package/skills/testing/setup.md +123 -0
- package/skills/typesafety/SKILL.md +322 -29
- package/skills/use-cache/SKILL.md +46 -14
- package/skills/view-transitions/SKILL.md +294 -0
- package/src/__augment-tests__/augment.ts +81 -0
- package/src/__augment-tests__/augmented.check.ts +116 -0
- package/src/__internal.ts +0 -65
- package/src/browser/action-coordinator.ts +53 -36
- package/src/browser/action-fence.ts +47 -0
- package/src/browser/app-shell.ts +39 -0
- package/src/browser/connection-warmup.ts +134 -0
- package/src/browser/cookie-name.ts +140 -0
- package/src/browser/event-controller.ts +192 -150
- package/src/browser/history-state.ts +21 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/invalidate-client-cache.ts +52 -0
- package/src/browser/navigation-bridge.ts +71 -16
- package/src/browser/navigation-client.ts +127 -78
- package/src/browser/navigation-store-handle.ts +38 -0
- package/src/browser/navigation-store.ts +33 -59
- package/src/browser/navigation-transaction.ts +9 -59
- package/src/browser/network-error-handler.ts +34 -7
- package/src/browser/partial-update.ts +125 -127
- package/src/browser/prefetch/cache.ts +201 -68
- package/src/browser/prefetch/fetch.ts +287 -59
- package/src/browser/prefetch/queue.ts +42 -8
- package/src/browser/rango-state.ts +158 -76
- package/src/browser/react/Link.tsx +48 -20
- package/src/browser/react/NavigationProvider.tsx +162 -118
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/filter-segment-order.ts +66 -7
- package/src/browser/react/index.ts +0 -48
- package/src/browser/react/location-state-shared.ts +178 -8
- package/src/browser/react/location-state.ts +39 -14
- package/src/browser/react/use-action.ts +6 -15
- package/src/browser/react/use-handle.ts +17 -14
- package/src/browser/react/use-href.tsx +8 -1
- package/src/browser/react/use-link-status.ts +33 -8
- package/src/browser/react/use-navigation.ts +32 -7
- package/src/browser/react/use-params.ts +20 -10
- package/src/browser/react/use-reverse.ts +106 -0
- package/src/browser/react/use-router.ts +25 -3
- package/src/browser/react/use-search-params.ts +0 -5
- package/src/browser/react/use-segments.ts +11 -21
- package/src/browser/response-adapter.ts +80 -5
- package/src/browser/rsc-router.tsx +91 -24
- package/src/browser/scroll-restoration.ts +30 -17
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/browser/server-action-bridge.ts +214 -55
- package/src/browser/types.ts +57 -8
- package/src/browser/validate-redirect-origin.ts +43 -16
- package/src/build/collect-fallback-refs.ts +107 -0
- package/src/build/generate-manifest.ts +60 -35
- package/src/build/generate-route-types.ts +2 -1
- package/src/build/index.ts +8 -2
- package/src/build/prefix-tree-utils.ts +123 -0
- package/src/build/route-trie.ts +117 -14
- package/src/build/route-types/ast-route-extraction.ts +15 -8
- package/src/build/route-types/codegen.ts +16 -5
- package/src/build/route-types/include-resolution.ts +117 -23
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/per-module-writer.ts +22 -6
- package/src/build/route-types/router-processing.ts +55 -28
- package/src/build/route-types/scan-filter.ts +1 -1
- package/src/build/route-types/source-scan.ts +216 -0
- package/src/build/runtime-discovery.ts +9 -20
- package/src/cache/cache-error.ts +104 -0
- package/src/cache/cache-key-utils.ts +29 -13
- package/src/cache/cache-policy.ts +108 -34
- package/src/cache/cache-runtime.ts +199 -37
- package/src/cache/cache-scope.ts +188 -82
- package/src/cache/cache-tag.ts +103 -0
- package/src/cache/cf/cf-base64.ts +33 -0
- package/src/cache/cf/cf-cache-constants.ts +127 -0
- package/src/cache/cf/cf-cache-store.ts +1989 -378
- package/src/cache/cf/cf-cache-types.ts +349 -0
- package/src/cache/cf/cf-kv-utils.ts +46 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
- package/src/cache/cf/index.ts +6 -16
- package/src/cache/document-cache.ts +72 -20
- package/src/cache/handle-snapshot.ts +70 -0
- package/src/cache/index.ts +10 -20
- package/src/cache/memory-segment-store.ts +136 -37
- package/src/cache/profile-registry.ts +31 -31
- package/src/cache/read-through-swr.ts +41 -11
- package/src/cache/segment-codec.ts +9 -17
- package/src/cache/tag-invalidation.ts +230 -0
- package/src/cache/types.ts +37 -100
- package/src/client.rsc.tsx +44 -21
- package/src/client.tsx +36 -61
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +109 -0
- package/src/component-utils.ts +19 -0
- package/src/components/DefaultDocument.tsx +8 -2
- package/src/context-var.ts +18 -6
- package/src/decode-loader-results.ts +52 -0
- package/src/defer.ts +196 -0
- package/src/deps/ssr.ts +0 -1
- package/src/encode-kv.ts +49 -0
- package/src/errors.ts +30 -4
- package/src/escape-script.ts +52 -0
- package/src/handle.ts +31 -23
- package/src/handles/MetaTags.tsx +62 -19
- package/src/handles/Scripts.tsx +183 -0
- package/src/handles/breadcrumbs.ts +37 -8
- package/src/handles/is-thenable.ts +19 -0
- package/src/handles/meta.ts +51 -40
- package/src/handles/script.ts +244 -0
- package/src/host/cookie-handler.ts +9 -60
- package/src/host/errors.ts +0 -24
- package/src/host/index.ts +8 -2
- package/src/host/pattern-matcher.ts +23 -52
- package/src/host/router.ts +107 -99
- package/src/host/testing.ts +40 -27
- package/src/host/types.ts +37 -4
- package/src/host/utils.ts +1 -1
- package/src/href-client.ts +137 -22
- package/src/index.rsc.ts +90 -11
- package/src/index.ts +88 -10
- package/src/internal-debug.ts +11 -10
- package/src/loader-store.ts +500 -0
- package/src/loader.rsc.ts +20 -13
- package/src/loader.ts +12 -11
- package/src/missing-id-error.ts +68 -0
- package/src/outlet-context.ts +1 -1
- package/src/outlet-provider.tsx +1 -5
- package/src/prerender/param-hash.ts +16 -16
- package/src/prerender/store.ts +32 -37
- package/src/prerender.ts +61 -6
- package/src/redirect-origin.ts +100 -0
- package/src/regex-escape.ts +8 -0
- package/src/render-error-thrower.tsx +20 -0
- package/src/response-utils.ts +62 -0
- package/src/reverse.ts +65 -39
- package/src/root-error-boundary.tsx +1 -19
- package/src/route-content-wrapper.tsx +7 -72
- package/src/route-definition/dsl-helpers.ts +287 -281
- package/src/route-definition/helper-factories.ts +29 -139
- package/src/route-definition/helpers-types.ts +46 -18
- package/src/route-definition/redirect.ts +44 -11
- package/src/route-definition/resolve-handler-use.ts +12 -0
- package/src/route-definition/use-item-types.ts +32 -0
- package/src/route-map-builder.ts +0 -16
- package/src/route-types.ts +19 -41
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +73 -25
- package/src/router/error-handling.ts +45 -18
- package/src/router/find-match.ts +44 -23
- package/src/router/handler-context.ts +27 -42
- package/src/router/instrument.ts +350 -0
- package/src/router/intercept-resolution.ts +39 -20
- package/src/router/lazy-includes.ts +10 -47
- package/src/router/loader-resolution.ts +155 -72
- package/src/router/logging.ts +0 -6
- package/src/router/manifest.ts +18 -29
- package/src/router/match-api.ts +4 -23
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +58 -58
- package/src/router/match-middleware/background-revalidation.ts +6 -7
- package/src/router/match-middleware/cache-lookup.ts +159 -285
- package/src/router/match-middleware/cache-store.ts +31 -34
- package/src/router/match-middleware/intercept-resolution.ts +0 -22
- package/src/router/match-middleware/segment-resolution.ts +0 -22
- package/src/router/match-pipelines.ts +1 -42
- package/src/router/match-result.ts +44 -74
- package/src/router/metrics.ts +0 -34
- package/src/router/middleware-types.ts +7 -134
- package/src/router/middleware.ts +266 -166
- package/src/router/navigation-snapshot.ts +0 -51
- package/src/router/params-util.ts +23 -0
- package/src/router/pattern-matching.ts +132 -90
- package/src/router/prefetch-cache-ttl.ts +51 -0
- package/src/router/prerender-match.ts +104 -65
- package/src/router/preview-match.ts +3 -1
- package/src/router/request-classification.ts +28 -62
- package/src/router/revalidation.ts +123 -73
- package/src/router/route-snapshot.ts +0 -1
- package/src/router/router-context.ts +3 -28
- package/src/router/router-interfaces.ts +83 -35
- package/src/router/router-options.ts +136 -5
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +93 -84
- package/src/router/segment-resolution/helpers.ts +86 -6
- package/src/router/segment-resolution/loader-cache.ts +62 -37
- package/src/router/segment-resolution/revalidation.ts +269 -320
- package/src/router/segment-resolution/static-store.ts +19 -5
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution/view-transition-default.ts +36 -0
- package/src/router/segment-resolution.ts +5 -1
- package/src/router/segment-wrappers.ts +6 -5
- package/src/router/state-cookie-name.ts +33 -0
- package/src/router/substitute-pattern-params.ts +56 -0
- package/src/router/telemetry-otel.ts +161 -199
- package/src/router/telemetry.ts +96 -19
- package/src/router/timeout.ts +0 -20
- package/src/router/tracing.ts +206 -0
- package/src/router/trie-matching.ts +163 -59
- package/src/router/types.ts +9 -63
- package/src/router/url-params.ts +44 -0
- package/src/router.ts +110 -55
- package/src/rsc/handler-context.ts +3 -2
- package/src/rsc/handler.ts +266 -219
- package/src/rsc/helpers.ts +168 -46
- package/src/rsc/index.ts +2 -5
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +114 -38
- package/src/rsc/manifest-init.ts +28 -41
- package/src/rsc/origin-guard.ts +39 -25
- package/src/rsc/progressive-enhancement.ts +63 -9
- package/src/rsc/redirect-guard.ts +99 -0
- package/src/rsc/response-cache-serve.ts +238 -0
- package/src/rsc/response-error.ts +79 -12
- package/src/rsc/response-route-handler.ts +99 -189
- package/src/rsc/rsc-rendering.ts +99 -75
- package/src/rsc/runtime-warnings.ts +23 -10
- package/src/rsc/server-action.ts +258 -115
- package/src/rsc/ssr-setup.ts +16 -0
- package/src/rsc/types.ts +23 -5
- package/src/runtime-env.ts +18 -0
- package/src/search-params.ts +35 -30
- package/src/segment-loader-promise.ts +31 -4
- package/src/segment-system.tsx +209 -143
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +150 -51
- package/src/server/cookie-parse.ts +32 -0
- package/src/server/cookie-store.ts +80 -5
- package/src/server/handle-store.ts +21 -38
- package/src/server/loader-registry.ts +21 -42
- package/src/server/request-context.ts +235 -175
- package/src/ssr/index.tsx +21 -16
- package/src/static-handler.ts +10 -13
- package/src/testing/cache-status.ts +162 -0
- package/src/testing/collect-handle.ts +40 -0
- package/src/testing/dispatch.ts +701 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +188 -0
- package/src/testing/e2e/index.ts +128 -0
- package/src/testing/e2e/matchers.ts +35 -0
- package/src/testing/e2e/page-helpers.ts +272 -0
- package/src/testing/e2e/parity.ts +387 -0
- package/src/testing/e2e/server.ts +195 -0
- package/src/testing/flight-matchers.ts +97 -0
- package/src/testing/flight-normalize.ts +11 -0
- package/src/testing/flight-runtime.d.ts +57 -0
- package/src/testing/flight-tree.ts +682 -0
- package/src/testing/flight.entry.ts +52 -0
- package/src/testing/flight.ts +257 -0
- package/src/testing/generated-routes.ts +183 -0
- package/src/testing/index.ts +99 -0
- package/src/testing/internal/context.ts +371 -0
- package/src/testing/internal/flight-client-globals.ts +30 -0
- package/src/testing/internal/seed-vars.ts +54 -0
- package/src/testing/render-handler.ts +343 -0
- package/src/testing/render-route.tsx +581 -0
- package/src/testing/run-loader.ts +385 -0
- package/src/testing/run-middleware.ts +205 -0
- package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
- package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
- package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
- package/src/testing/vitest-stubs/version.ts +5 -0
- package/src/testing/vitest.ts +305 -0
- package/src/theme/ThemeProvider.tsx +20 -58
- package/src/theme/ThemeScript.tsx +7 -9
- package/src/theme/constants.ts +52 -13
- package/src/theme/index.ts +0 -7
- package/src/theme/theme-context.ts +1 -5
- package/src/theme/theme-script.ts +22 -21
- package/src/theme/use-theme.ts +0 -3
- package/src/types/boundaries.ts +0 -35
- package/src/types/cache-types.ts +13 -4
- package/src/types/error-types.ts +30 -90
- package/src/types/global-namespace.ts +54 -41
- package/src/types/handler-context.ts +109 -61
- package/src/types/index.ts +1 -10
- package/src/types/loader-types.ts +11 -9
- package/src/types/request-scope.ts +112 -0
- package/src/types/route-config.ts +6 -50
- package/src/types/route-entry.ts +0 -6
- package/src/types/segments.ts +35 -14
- package/src/urls/include-helper.ts +9 -56
- package/src/urls/index.ts +1 -11
- package/src/urls/path-helper-types.ts +19 -5
- package/src/urls/path-helper.ts +17 -106
- package/src/urls/pattern-types.ts +36 -19
- package/src/urls/response-types.ts +22 -29
- package/src/urls/type-extraction.ts +58 -139
- package/src/urls/urls-function.ts +1 -18
- package/src/use-loader.tsx +292 -107
- package/src/vite/debug.ts +185 -0
- package/src/vite/discovery/bundle-postprocess.ts +8 -7
- package/src/vite/discovery/discover-routers.ts +126 -85
- package/src/vite/discovery/discovery-errors.ts +194 -0
- package/src/vite/discovery/gate-state.ts +171 -0
- package/src/vite/discovery/prerender-collection.ts +96 -68
- package/src/vite/discovery/route-types-writer.ts +40 -84
- package/src/vite/discovery/self-gen-tracking.ts +27 -1
- package/src/vite/discovery/state.ts +44 -0
- package/src/vite/discovery/virtual-module-codegen.ts +14 -34
- package/src/vite/index.ts +2 -0
- package/src/vite/inject-client-debug.ts +36 -0
- package/src/vite/plugin-types.ts +126 -8
- package/src/vite/plugins/cjs-to-esm.ts +16 -19
- package/src/vite/plugins/client-ref-dedup.ts +16 -11
- package/src/vite/plugins/client-ref-hashing.ts +28 -15
- package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
- package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
- package/src/vite/plugins/expose-action-id.ts +48 -95
- package/src/vite/plugins/expose-id-utils.ts +88 -55
- package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
- package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
- package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
- package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
- package/src/vite/plugins/expose-internal-ids.ts +505 -486
- package/src/vite/plugins/performance-tracks.ts +26 -25
- package/src/vite/plugins/refresh-cmd.ts +1 -1
- package/src/vite/plugins/use-cache-transform.ts +73 -83
- package/src/vite/plugins/version-injector.ts +21 -25
- package/src/vite/plugins/version-plugin.ts +37 -40
- package/src/vite/plugins/virtual-entries.ts +13 -18
- package/src/vite/rango.ts +109 -118
- package/src/vite/router-discovery.ts +777 -119
- package/src/vite/utils/ast-handler-extract.ts +26 -35
- package/src/vite/utils/banner.ts +1 -1
- package/src/vite/utils/bundle-analysis.ts +10 -15
- package/src/vite/utils/client-chunks.ts +184 -0
- package/src/vite/utils/directive-prologue.ts +40 -0
- package/src/vite/utils/forward-user-plugins.ts +171 -0
- package/src/vite/utils/manifest-utils.ts +4 -59
- package/src/vite/utils/package-resolution.ts +20 -52
- package/src/vite/utils/prerender-utils.ts +54 -39
- package/src/vite/utils/shared-utils.ts +90 -41
- package/dist/__internal.d.ts +0 -83
- package/dist/__internal.d.ts.map +0 -1
- package/dist/__internal.js +0 -19
- package/dist/__internal.js.map +0 -1
- package/dist/__mocks__/version.d.ts +0 -7
- package/dist/__mocks__/version.d.ts.map +0 -1
- package/dist/__mocks__/version.js +0 -7
- package/dist/__mocks__/version.js.map +0 -1
- package/dist/__tests__/client-href.test.d.ts +0 -2
- package/dist/__tests__/client-href.test.d.ts.map +0 -1
- package/dist/__tests__/client-href.test.js +0 -74
- package/dist/__tests__/client-href.test.js.map +0 -1
- package/dist/__tests__/component-utils.test.d.ts +0 -2
- package/dist/__tests__/component-utils.test.d.ts.map +0 -1
- package/dist/__tests__/component-utils.test.js +0 -51
- package/dist/__tests__/component-utils.test.js.map +0 -1
- package/dist/__tests__/event-controller.test.d.ts +0 -2
- package/dist/__tests__/event-controller.test.d.ts.map +0 -1
- package/dist/__tests__/event-controller.test.js +0 -538
- package/dist/__tests__/event-controller.test.js.map +0 -1
- package/dist/__tests__/helpers/route-tree.d.ts +0 -118
- package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
- package/dist/__tests__/helpers/route-tree.js +0 -374
- package/dist/__tests__/helpers/route-tree.js.map +0 -1
- package/dist/__tests__/match-result.test.d.ts +0 -2
- package/dist/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/__tests__/match-result.test.js +0 -154
- package/dist/__tests__/match-result.test.js.map +0 -1
- package/dist/__tests__/navigation-store.test.d.ts +0 -2
- package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
- package/dist/__tests__/navigation-store.test.js +0 -440
- package/dist/__tests__/navigation-store.test.js.map +0 -1
- package/dist/__tests__/partial-update.test.d.ts +0 -2
- package/dist/__tests__/partial-update.test.d.ts.map +0 -1
- package/dist/__tests__/partial-update.test.js +0 -1009
- package/dist/__tests__/partial-update.test.js.map +0 -1
- package/dist/__tests__/reverse-types.test.d.ts +0 -8
- package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
- package/dist/__tests__/reverse-types.test.js +0 -656
- package/dist/__tests__/reverse-types.test.js.map +0 -1
- package/dist/__tests__/route-definition.test.d.ts +0 -2
- package/dist/__tests__/route-definition.test.d.ts.map +0 -1
- package/dist/__tests__/route-definition.test.js +0 -55
- package/dist/__tests__/route-definition.test.js.map +0 -1
- package/dist/__tests__/router-helpers.test.d.ts +0 -2
- package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/router-helpers.test.js +0 -377
- package/dist/__tests__/router-helpers.test.js.map +0 -1
- package/dist/__tests__/router-integration-2.test.d.ts +0 -2
- package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration-2.test.js +0 -426
- package/dist/__tests__/router-integration-2.test.js.map +0 -1
- package/dist/__tests__/router-integration.test.d.ts +0 -2
- package/dist/__tests__/router-integration.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration.test.js +0 -1051
- package/dist/__tests__/router-integration.test.js.map +0 -1
- package/dist/__tests__/search-params.test.d.ts +0 -5
- package/dist/__tests__/search-params.test.d.ts.map +0 -1
- package/dist/__tests__/search-params.test.js +0 -306
- package/dist/__tests__/search-params.test.js.map +0 -1
- package/dist/__tests__/segment-system.test.d.ts +0 -2
- package/dist/__tests__/segment-system.test.d.ts.map +0 -1
- package/dist/__tests__/segment-system.test.js +0 -627
- package/dist/__tests__/segment-system.test.js.map +0 -1
- package/dist/__tests__/static-handler-types.test.d.ts +0 -8
- package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
- package/dist/__tests__/static-handler-types.test.js +0 -63
- package/dist/__tests__/static-handler-types.test.js.map +0 -1
- package/dist/__tests__/urls.test.d.ts +0 -2
- package/dist/__tests__/urls.test.d.ts.map +0 -1
- package/dist/__tests__/urls.test.js +0 -421
- package/dist/__tests__/urls.test.js.map +0 -1
- package/dist/__tests__/use-mount.test.d.ts +0 -2
- package/dist/__tests__/use-mount.test.d.ts.map +0 -1
- package/dist/__tests__/use-mount.test.js +0 -35
- package/dist/__tests__/use-mount.test.js.map +0 -1
- package/dist/bin/rango.d.ts +0 -2
- package/dist/bin/rango.d.ts.map +0 -1
- package/dist/bin/rango.js.map +0 -1
- package/dist/browser/event-controller.d.ts +0 -191
- package/dist/browser/event-controller.d.ts.map +0 -1
- package/dist/browser/event-controller.js +0 -559
- package/dist/browser/event-controller.js.map +0 -1
- package/dist/browser/index.d.ts +0 -2
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -14
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/link-interceptor.d.ts +0 -38
- package/dist/browser/link-interceptor.d.ts.map +0 -1
- package/dist/browser/link-interceptor.js +0 -99
- package/dist/browser/link-interceptor.js.map +0 -1
- package/dist/browser/logging.d.ts +0 -10
- package/dist/browser/logging.d.ts.map +0 -1
- package/dist/browser/logging.js +0 -29
- package/dist/browser/logging.js.map +0 -1
- package/dist/browser/lru-cache.d.ts +0 -17
- package/dist/browser/lru-cache.d.ts.map +0 -1
- package/dist/browser/lru-cache.js +0 -50
- package/dist/browser/lru-cache.js.map +0 -1
- package/dist/browser/merge-segment-loaders.d.ts +0 -39
- package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
- package/dist/browser/merge-segment-loaders.js +0 -102
- package/dist/browser/merge-segment-loaders.js.map +0 -1
- package/dist/browser/navigation-bridge.d.ts +0 -102
- package/dist/browser/navigation-bridge.d.ts.map +0 -1
- package/dist/browser/navigation-bridge.js +0 -708
- package/dist/browser/navigation-bridge.js.map +0 -1
- package/dist/browser/navigation-client.d.ts +0 -25
- package/dist/browser/navigation-client.d.ts.map +0 -1
- package/dist/browser/navigation-client.js +0 -157
- package/dist/browser/navigation-client.js.map +0 -1
- package/dist/browser/navigation-store.d.ts +0 -101
- package/dist/browser/navigation-store.d.ts.map +0 -1
- package/dist/browser/navigation-store.js +0 -625
- package/dist/browser/navigation-store.js.map +0 -1
- package/dist/browser/partial-update.d.ts +0 -75
- package/dist/browser/partial-update.d.ts.map +0 -1
- package/dist/browser/partial-update.js +0 -426
- package/dist/browser/partial-update.js.map +0 -1
- package/dist/browser/react/Link.d.ts +0 -86
- package/dist/browser/react/Link.d.ts.map +0 -1
- package/dist/browser/react/Link.js +0 -128
- package/dist/browser/react/Link.js.map +0 -1
- package/dist/browser/react/NavigationProvider.d.ts +0 -63
- package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
- package/dist/browser/react/NavigationProvider.js +0 -216
- package/dist/browser/react/NavigationProvider.js.map +0 -1
- package/dist/browser/react/ScrollRestoration.d.ts +0 -75
- package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
- package/dist/browser/react/ScrollRestoration.js +0 -57
- package/dist/browser/react/ScrollRestoration.js.map +0 -1
- package/dist/browser/react/context.d.ts +0 -46
- package/dist/browser/react/context.d.ts.map +0 -1
- package/dist/browser/react/context.js +0 -10
- package/dist/browser/react/context.js.map +0 -1
- package/dist/browser/react/index.d.ts +0 -11
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/index.js +0 -22
- package/dist/browser/react/index.js.map +0 -1
- package/dist/browser/react/location-state-shared.d.ts +0 -63
- package/dist/browser/react/location-state-shared.d.ts.map +0 -1
- package/dist/browser/react/location-state-shared.js +0 -81
- package/dist/browser/react/location-state-shared.js.map +0 -1
- package/dist/browser/react/location-state.d.ts +0 -23
- package/dist/browser/react/location-state.d.ts.map +0 -1
- package/dist/browser/react/location-state.js +0 -29
- package/dist/browser/react/location-state.js.map +0 -1
- package/dist/browser/react/mount-context.d.ts +0 -24
- package/dist/browser/react/mount-context.d.ts.map +0 -1
- package/dist/browser/react/mount-context.js +0 -24
- package/dist/browser/react/mount-context.js.map +0 -1
- package/dist/browser/react/use-action.d.ts +0 -64
- package/dist/browser/react/use-action.d.ts.map +0 -1
- package/dist/browser/react/use-action.js +0 -134
- package/dist/browser/react/use-action.js.map +0 -1
- package/dist/browser/react/use-client-cache.d.ts +0 -41
- package/dist/browser/react/use-client-cache.d.ts.map +0 -1
- package/dist/browser/react/use-client-cache.js +0 -39
- package/dist/browser/react/use-client-cache.js.map +0 -1
- package/dist/browser/react/use-handle.d.ts +0 -31
- package/dist/browser/react/use-handle.d.ts.map +0 -1
- package/dist/browser/react/use-handle.js +0 -144
- package/dist/browser/react/use-handle.js.map +0 -1
- package/dist/browser/react/use-href.d.ts +0 -33
- package/dist/browser/react/use-href.d.ts.map +0 -1
- package/dist/browser/react/use-href.js +0 -39
- package/dist/browser/react/use-href.js.map +0 -1
- package/dist/browser/react/use-link-status.d.ts +0 -37
- package/dist/browser/react/use-link-status.d.ts.map +0 -1
- package/dist/browser/react/use-link-status.js +0 -99
- package/dist/browser/react/use-link-status.js.map +0 -1
- package/dist/browser/react/use-mount.d.ts +0 -25
- package/dist/browser/react/use-mount.d.ts.map +0 -1
- package/dist/browser/react/use-mount.js +0 -30
- package/dist/browser/react/use-mount.js.map +0 -1
- package/dist/browser/react/use-navigation.d.ts +0 -27
- package/dist/browser/react/use-navigation.d.ts.map +0 -1
- package/dist/browser/react/use-navigation.js +0 -87
- package/dist/browser/react/use-navigation.js.map +0 -1
- package/dist/browser/react/use-segments.d.ts +0 -38
- package/dist/browser/react/use-segments.d.ts.map +0 -1
- package/dist/browser/react/use-segments.js +0 -130
- package/dist/browser/react/use-segments.js.map +0 -1
- package/dist/browser/request-controller.d.ts +0 -26
- package/dist/browser/request-controller.d.ts.map +0 -1
- package/dist/browser/request-controller.js +0 -147
- package/dist/browser/request-controller.js.map +0 -1
- package/dist/browser/rsc-router.d.ts +0 -129
- package/dist/browser/rsc-router.d.ts.map +0 -1
- package/dist/browser/rsc-router.js +0 -195
- package/dist/browser/rsc-router.js.map +0 -1
- package/dist/browser/scroll-restoration.d.ts +0 -93
- package/dist/browser/scroll-restoration.d.ts.map +0 -1
- package/dist/browser/scroll-restoration.js +0 -321
- package/dist/browser/scroll-restoration.js.map +0 -1
- package/dist/browser/segment-structure-assert.d.ts +0 -17
- package/dist/browser/segment-structure-assert.d.ts.map +0 -1
- package/dist/browser/segment-structure-assert.js +0 -59
- package/dist/browser/segment-structure-assert.js.map +0 -1
- package/dist/browser/server-action-bridge.d.ts +0 -26
- package/dist/browser/server-action-bridge.d.ts.map +0 -1
- package/dist/browser/server-action-bridge.js +0 -668
- package/dist/browser/server-action-bridge.js.map +0 -1
- package/dist/browser/shallow.d.ts +0 -12
- package/dist/browser/shallow.d.ts.map +0 -1
- package/dist/browser/shallow.js +0 -34
- package/dist/browser/shallow.js.map +0 -1
- package/dist/browser/types.d.ts +0 -369
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -2
- package/dist/browser/types.js.map +0 -1
- package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
- package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-cli.test.js +0 -237
- package/dist/build/__tests__/generate-cli.test.js.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.js +0 -119
- package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.js +0 -620
- package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.js +0 -308
- package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
- package/dist/build/generate-manifest.d.ts +0 -81
- package/dist/build/generate-manifest.d.ts.map +0 -1
- package/dist/build/generate-manifest.js +0 -276
- package/dist/build/generate-manifest.js.map +0 -1
- package/dist/build/generate-route-types.d.ts +0 -115
- package/dist/build/generate-route-types.d.ts.map +0 -1
- package/dist/build/generate-route-types.js +0 -740
- package/dist/build/generate-route-types.js.map +0 -1
- package/dist/build/index.d.ts +0 -21
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js +0 -21
- package/dist/build/index.js.map +0 -1
- package/dist/build/route-trie.d.ts +0 -71
- package/dist/build/route-trie.d.ts.map +0 -1
- package/dist/build/route-trie.js +0 -175
- package/dist/build/route-trie.js.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.js +0 -208
- package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
- package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
- package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
- package/dist/cache/__tests__/document-cache.test.js +0 -345
- package/dist/cache/__tests__/document-cache.test.js.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
- package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
- package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-store.test.js +0 -367
- package/dist/cache/__tests__/memory-store.test.js.map +0 -1
- package/dist/cache/cache-scope.d.ts +0 -102
- package/dist/cache/cache-scope.d.ts.map +0 -1
- package/dist/cache/cache-scope.js +0 -440
- package/dist/cache/cache-scope.js.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
- package/dist/cache/cf/cf-cache-store.d.ts +0 -165
- package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
- package/dist/cache/cf/cf-cache-store.js +0 -242
- package/dist/cache/cf/cf-cache-store.js.map +0 -1
- package/dist/cache/cf/index.d.ts +0 -14
- package/dist/cache/cf/index.d.ts.map +0 -1
- package/dist/cache/cf/index.js +0 -17
- package/dist/cache/cf/index.js.map +0 -1
- package/dist/cache/document-cache.d.ts +0 -64
- package/dist/cache/document-cache.d.ts.map +0 -1
- package/dist/cache/document-cache.js +0 -228
- package/dist/cache/document-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -19
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -21
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/memory-segment-store.d.ts +0 -110
- package/dist/cache/memory-segment-store.d.ts.map +0 -1
- package/dist/cache/memory-segment-store.js +0 -117
- package/dist/cache/memory-segment-store.js.map +0 -1
- package/dist/cache/memory-store.d.ts +0 -41
- package/dist/cache/memory-store.d.ts.map +0 -1
- package/dist/cache/memory-store.js +0 -191
- package/dist/cache/memory-store.js.map +0 -1
- package/dist/cache/types.d.ts +0 -317
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -12
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -248
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -367
- package/dist/client.js.map +0 -1
- package/dist/client.rsc.d.ts +0 -26
- package/dist/client.rsc.d.ts.map +0 -1
- package/dist/client.rsc.js +0 -46
- package/dist/client.rsc.js.map +0 -1
- package/dist/component-utils.d.ts +0 -36
- package/dist/component-utils.d.ts.map +0 -1
- package/dist/component-utils.js +0 -61
- package/dist/component-utils.js.map +0 -1
- package/dist/components/DefaultDocument.d.ts +0 -13
- package/dist/components/DefaultDocument.d.ts.map +0 -1
- package/dist/components/DefaultDocument.js +0 -15
- package/dist/components/DefaultDocument.js.map +0 -1
- package/dist/debug.d.ts +0 -58
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -157
- package/dist/debug.js.map +0 -1
- package/dist/default-error-boundary.d.ts +0 -11
- package/dist/default-error-boundary.d.ts.map +0 -1
- package/dist/default-error-boundary.js +0 -45
- package/dist/default-error-boundary.js.map +0 -1
- package/dist/deps/browser.d.ts +0 -2
- package/dist/deps/browser.d.ts.map +0 -1
- package/dist/deps/browser.js +0 -3
- package/dist/deps/browser.js.map +0 -1
- package/dist/deps/html-stream-client.d.ts +0 -2
- package/dist/deps/html-stream-client.d.ts.map +0 -1
- package/dist/deps/html-stream-client.js +0 -3
- package/dist/deps/html-stream-client.js.map +0 -1
- package/dist/deps/html-stream-server.d.ts +0 -2
- package/dist/deps/html-stream-server.d.ts.map +0 -1
- package/dist/deps/html-stream-server.js +0 -3
- package/dist/deps/html-stream-server.js.map +0 -1
- package/dist/deps/rsc.d.ts +0 -2
- package/dist/deps/rsc.d.ts.map +0 -1
- package/dist/deps/rsc.js +0 -4
- package/dist/deps/rsc.js.map +0 -1
- package/dist/deps/ssr.d.ts +0 -2
- package/dist/deps/ssr.d.ts.map +0 -1
- package/dist/deps/ssr.js +0 -3
- package/dist/deps/ssr.js.map +0 -1
- package/dist/errors.d.ts +0 -174
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -241
- package/dist/errors.js.map +0 -1
- package/dist/handle.d.ts +0 -78
- package/dist/handle.d.ts.map +0 -1
- package/dist/handle.js +0 -82
- package/dist/handle.js.map +0 -1
- package/dist/handles/MetaTags.d.ts +0 -14
- package/dist/handles/MetaTags.d.ts.map +0 -1
- package/dist/handles/MetaTags.js +0 -136
- package/dist/handles/MetaTags.js.map +0 -1
- package/dist/handles/index.d.ts +0 -6
- package/dist/handles/index.d.ts.map +0 -1
- package/dist/handles/index.js +0 -6
- package/dist/handles/index.js.map +0 -1
- package/dist/handles/meta.d.ts +0 -39
- package/dist/handles/meta.d.ts.map +0 -1
- package/dist/handles/meta.js +0 -202
- package/dist/handles/meta.js.map +0 -1
- package/dist/host/__tests__/errors.test.d.ts +0 -2
- package/dist/host/__tests__/errors.test.d.ts.map +0 -1
- package/dist/host/__tests__/errors.test.js +0 -76
- package/dist/host/__tests__/errors.test.js.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.js +0 -251
- package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/host/__tests__/router.test.d.ts +0 -2
- package/dist/host/__tests__/router.test.d.ts.map +0 -1
- package/dist/host/__tests__/router.test.js +0 -241
- package/dist/host/__tests__/router.test.js.map +0 -1
- package/dist/host/__tests__/testing.test.d.ts +0 -2
- package/dist/host/__tests__/testing.test.d.ts.map +0 -1
- package/dist/host/__tests__/testing.test.js +0 -64
- package/dist/host/__tests__/testing.test.js.map +0 -1
- package/dist/host/__tests__/utils.test.d.ts +0 -2
- package/dist/host/__tests__/utils.test.d.ts.map +0 -1
- package/dist/host/__tests__/utils.test.js +0 -29
- package/dist/host/__tests__/utils.test.js.map +0 -1
- package/dist/host/cookie-handler.d.ts +0 -34
- package/dist/host/cookie-handler.d.ts.map +0 -1
- package/dist/host/cookie-handler.js +0 -124
- package/dist/host/cookie-handler.js.map +0 -1
- package/dist/host/errors.d.ts +0 -56
- package/dist/host/errors.d.ts.map +0 -1
- package/dist/host/errors.js +0 -79
- package/dist/host/errors.js.map +0 -1
- package/dist/host/index.d.ts +0 -29
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/index.js +0 -32
- package/dist/host/index.js.map +0 -1
- package/dist/host/pattern-matcher.d.ts +0 -36
- package/dist/host/pattern-matcher.d.ts.map +0 -1
- package/dist/host/pattern-matcher.js +0 -172
- package/dist/host/pattern-matcher.js.map +0 -1
- package/dist/host/router.d.ts +0 -26
- package/dist/host/router.d.ts.map +0 -1
- package/dist/host/router.js +0 -218
- package/dist/host/router.js.map +0 -1
- package/dist/host/testing.d.ts +0 -36
- package/dist/host/testing.d.ts.map +0 -1
- package/dist/host/testing.js +0 -55
- package/dist/host/testing.js.map +0 -1
- package/dist/host/types.d.ts +0 -115
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -7
- package/dist/host/types.js.map +0 -1
- package/dist/host/utils.d.ts +0 -21
- package/dist/host/utils.d.ts.map +0 -1
- package/dist/host/utils.js +0 -23
- package/dist/host/utils.js.map +0 -1
- package/dist/href-client.d.ts +0 -131
- package/dist/href-client.d.ts.map +0 -1
- package/dist/href-client.js +0 -64
- package/dist/href-client.js.map +0 -1
- package/dist/href-context.d.ts +0 -29
- package/dist/href-context.d.ts.map +0 -1
- package/dist/href-context.js +0 -21
- package/dist/href-context.js.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -91
- package/dist/index.js.map +0 -1
- package/dist/index.rsc.d.ts +0 -32
- package/dist/index.rsc.d.ts.map +0 -1
- package/dist/index.rsc.js +0 -40
- package/dist/index.rsc.js.map +0 -1
- package/dist/internal-debug.d.ts +0 -2
- package/dist/internal-debug.d.ts.map +0 -1
- package/dist/internal-debug.js +0 -5
- package/dist/internal-debug.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -20
- package/dist/loader.js.map +0 -1
- package/dist/loader.rsc.d.ts +0 -19
- package/dist/loader.rsc.d.ts.map +0 -1
- package/dist/loader.rsc.js +0 -99
- package/dist/loader.rsc.js.map +0 -1
- package/dist/network-error-thrower.d.ts +0 -17
- package/dist/network-error-thrower.d.ts.map +0 -1
- package/dist/network-error-thrower.js +0 -14
- package/dist/network-error-thrower.js.map +0 -1
- package/dist/outlet-context.d.ts +0 -13
- package/dist/outlet-context.d.ts.map +0 -1
- package/dist/outlet-context.js +0 -3
- package/dist/outlet-context.js.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.js +0 -148
- package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
- package/dist/prerender/param-hash.d.ts +0 -16
- package/dist/prerender/param-hash.d.ts.map +0 -1
- package/dist/prerender/param-hash.js +0 -36
- package/dist/prerender/param-hash.js.map +0 -1
- package/dist/prerender/store.d.ts +0 -38
- package/dist/prerender/store.d.ts.map +0 -1
- package/dist/prerender/store.js +0 -61
- package/dist/prerender/store.js.map +0 -1
- package/dist/prerender.d.ts +0 -66
- package/dist/prerender.d.ts.map +0 -1
- package/dist/prerender.js +0 -57
- package/dist/prerender.js.map +0 -1
- package/dist/reverse.d.ts +0 -196
- package/dist/reverse.d.ts.map +0 -1
- package/dist/reverse.js +0 -78
- package/dist/reverse.js.map +0 -1
- package/dist/root-error-boundary.d.ts +0 -33
- package/dist/root-error-boundary.d.ts.map +0 -1
- package/dist/root-error-boundary.js +0 -165
- package/dist/root-error-boundary.js.map +0 -1
- package/dist/route-content-wrapper.d.ts +0 -46
- package/dist/route-content-wrapper.d.ts.map +0 -1
- package/dist/route-content-wrapper.js +0 -77
- package/dist/route-content-wrapper.js.map +0 -1
- package/dist/route-definition.d.ts +0 -421
- package/dist/route-definition.d.ts.map +0 -1
- package/dist/route-definition.js +0 -868
- package/dist/route-definition.js.map +0 -1
- package/dist/route-map-builder.d.ts +0 -155
- package/dist/route-map-builder.d.ts.map +0 -1
- package/dist/route-map-builder.js +0 -237
- package/dist/route-map-builder.js.map +0 -1
- package/dist/route-types.d.ts +0 -165
- package/dist/route-types.d.ts.map +0 -1
- package/dist/route-types.js +0 -7
- package/dist/route-types.js.map +0 -1
- package/dist/router/__tests__/handler-context.test.d.ts +0 -2
- package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/handler-context.test.js +0 -65
- package/dist/router/__tests__/handler-context.test.js.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
- package/dist/router/__tests__/match-context.test.d.ts +0 -2
- package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-context.test.js +0 -92
- package/dist/router/__tests__/match-context.test.js.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.js +0 -417
- package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
- package/dist/router/__tests__/match-result.test.d.ts +0 -2
- package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-result.test.js +0 -457
- package/dist/router/__tests__/match-result.test.js.map +0 -1
- package/dist/router/__tests__/on-error.test.d.ts +0 -2
- package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
- package/dist/router/__tests__/on-error.test.js +0 -678
- package/dist/router/__tests__/on-error.test.js.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.js +0 -629
- package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
- package/dist/router/error-handling.d.ts +0 -77
- package/dist/router/error-handling.d.ts.map +0 -1
- package/dist/router/error-handling.js +0 -202
- package/dist/router/error-handling.js.map +0 -1
- package/dist/router/handler-context.d.ts +0 -20
- package/dist/router/handler-context.d.ts.map +0 -1
- package/dist/router/handler-context.js +0 -198
- package/dist/router/handler-context.js.map +0 -1
- package/dist/router/intercept-resolution.d.ts +0 -66
- package/dist/router/intercept-resolution.d.ts.map +0 -1
- package/dist/router/intercept-resolution.js +0 -246
- package/dist/router/intercept-resolution.js.map +0 -1
- package/dist/router/loader-resolution.d.ts +0 -64
- package/dist/router/loader-resolution.d.ts.map +0 -1
- package/dist/router/loader-resolution.js +0 -284
- package/dist/router/loader-resolution.js.map +0 -1
- package/dist/router/logging.d.ts +0 -15
- package/dist/router/logging.d.ts.map +0 -1
- package/dist/router/logging.js +0 -99
- package/dist/router/logging.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -22
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -181
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match-api.d.ts +0 -35
- package/dist/router/match-api.d.ts.map +0 -1
- package/dist/router/match-api.js +0 -406
- package/dist/router/match-api.js.map +0 -1
- package/dist/router/match-context.d.ts +0 -206
- package/dist/router/match-context.d.ts.map +0 -1
- package/dist/router/match-context.js +0 -17
- package/dist/router/match-context.js.map +0 -1
- package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
- package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
- package/dist/router/match-middleware/background-revalidation.js +0 -75
- package/dist/router/match-middleware/background-revalidation.js.map +0 -1
- package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
- package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-lookup.js +0 -257
- package/dist/router/match-middleware/cache-lookup.js.map +0 -1
- package/dist/router/match-middleware/cache-store.d.ts +0 -113
- package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-store.js +0 -108
- package/dist/router/match-middleware/cache-store.js.map +0 -1
- package/dist/router/match-middleware/index.d.ts +0 -81
- package/dist/router/match-middleware/index.d.ts.map +0 -1
- package/dist/router/match-middleware/index.js +0 -80
- package/dist/router/match-middleware/index.js.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.js +0 -134
- package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
- package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
- package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/segment-resolution.js +0 -53
- package/dist/router/match-middleware/segment-resolution.js.map +0 -1
- package/dist/router/match-pipelines.d.ts +0 -147
- package/dist/router/match-pipelines.d.ts.map +0 -1
- package/dist/router/match-pipelines.js +0 -82
- package/dist/router/match-pipelines.js.map +0 -1
- package/dist/router/match-result.d.ts +0 -126
- package/dist/router/match-result.d.ts.map +0 -1
- package/dist/router/match-result.js +0 -93
- package/dist/router/match-result.js.map +0 -1
- package/dist/router/metrics.d.ts +0 -20
- package/dist/router/metrics.d.ts.map +0 -1
- package/dist/router/metrics.js +0 -47
- package/dist/router/metrics.js.map +0 -1
- package/dist/router/middleware.d.ts +0 -249
- package/dist/router/middleware.d.ts.map +0 -1
- package/dist/router/middleware.js +0 -434
- package/dist/router/middleware.js.map +0 -1
- package/dist/router/middleware.test.d.ts +0 -2
- package/dist/router/middleware.test.d.ts.map +0 -1
- package/dist/router/middleware.test.js +0 -816
- package/dist/router/middleware.test.js.map +0 -1
- package/dist/router/pattern-matching.d.ts +0 -149
- package/dist/router/pattern-matching.d.ts.map +0 -1
- package/dist/router/pattern-matching.js +0 -349
- package/dist/router/pattern-matching.js.map +0 -1
- package/dist/router/revalidation.d.ts +0 -44
- package/dist/router/revalidation.d.ts.map +0 -1
- package/dist/router/revalidation.js +0 -147
- package/dist/router/revalidation.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -135
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -36
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/segment-resolution.d.ts +0 -127
- package/dist/router/segment-resolution.d.ts.map +0 -1
- package/dist/router/segment-resolution.js +0 -919
- package/dist/router/segment-resolution.js.map +0 -1
- package/dist/router/trie-matching.d.ts +0 -40
- package/dist/router/trie-matching.d.ts.map +0 -1
- package/dist/router/trie-matching.js +0 -127
- package/dist/router/trie-matching.js.map +0 -1
- package/dist/router/types.d.ts +0 -136
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -7
- package/dist/router/types.js.map +0 -1
- package/dist/router.d.ts +0 -753
- package/dist/router.d.ts.map +0 -1
- package/dist/router.gen.d.ts +0 -6
- package/dist/router.gen.d.ts.map +0 -1
- package/dist/router.gen.js +0 -6
- package/dist/router.gen.js.map +0 -1
- package/dist/router.js +0 -1304
- package/dist/router.js.map +0 -1
- package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
- package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
- package/dist/rsc/__tests__/helpers.test.js +0 -140
- package/dist/rsc/__tests__/helpers.test.js.map +0 -1
- package/dist/rsc/handler.d.ts +0 -45
- package/dist/rsc/handler.d.ts.map +0 -1
- package/dist/rsc/handler.js +0 -1172
- package/dist/rsc/handler.js.map +0 -1
- package/dist/rsc/helpers.d.ts +0 -16
- package/dist/rsc/helpers.d.ts.map +0 -1
- package/dist/rsc/helpers.js +0 -55
- package/dist/rsc/helpers.js.map +0 -1
- package/dist/rsc/index.d.ts +0 -22
- package/dist/rsc/index.d.ts.map +0 -1
- package/dist/rsc/index.js +0 -23
- package/dist/rsc/index.js.map +0 -1
- package/dist/rsc/nonce.d.ts +0 -9
- package/dist/rsc/nonce.d.ts.map +0 -1
- package/dist/rsc/nonce.js +0 -18
- package/dist/rsc/nonce.js.map +0 -1
- package/dist/rsc/types.d.ts +0 -206
- package/dist/rsc/types.d.ts.map +0 -1
- package/dist/rsc/types.js +0 -8
- package/dist/rsc/types.js.map +0 -1
- package/dist/search-params.d.ts +0 -103
- package/dist/search-params.d.ts.map +0 -1
- package/dist/search-params.js +0 -74
- package/dist/search-params.js.map +0 -1
- package/dist/segment-system.d.ts +0 -75
- package/dist/segment-system.d.ts.map +0 -1
- package/dist/segment-system.js +0 -336
- package/dist/segment-system.js.map +0 -1
- package/dist/server/context.d.ts +0 -245
- package/dist/server/context.d.ts.map +0 -1
- package/dist/server/context.js +0 -197
- package/dist/server/context.js.map +0 -1
- package/dist/server/fetchable-loader-store.d.ts +0 -18
- package/dist/server/fetchable-loader-store.d.ts.map +0 -1
- package/dist/server/fetchable-loader-store.js +0 -18
- package/dist/server/fetchable-loader-store.js.map +0 -1
- package/dist/server/handle-store.d.ts +0 -85
- package/dist/server/handle-store.d.ts.map +0 -1
- package/dist/server/handle-store.js +0 -142
- package/dist/server/handle-store.js.map +0 -1
- package/dist/server/loader-registry.d.ts +0 -55
- package/dist/server/loader-registry.d.ts.map +0 -1
- package/dist/server/loader-registry.js +0 -132
- package/dist/server/loader-registry.js.map +0 -1
- package/dist/server/request-context.d.ts +0 -226
- package/dist/server/request-context.d.ts.map +0 -1
- package/dist/server/request-context.js +0 -290
- package/dist/server/request-context.js.map +0 -1
- package/dist/server/root-layout.d.ts +0 -4
- package/dist/server/root-layout.d.ts.map +0 -1
- package/dist/server/root-layout.js +0 -5
- package/dist/server/root-layout.js.map +0 -1
- package/dist/server.d.ts +0 -15
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -20
- package/dist/server.js.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
- package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
- package/dist/ssr/index.d.ts +0 -98
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/ssr/index.js +0 -158
- package/dist/ssr/index.js.map +0 -1
- package/dist/static-handler.d.ts +0 -50
- package/dist/static-handler.d.ts.map +0 -1
- package/dist/static-handler.gen.d.ts +0 -5
- package/dist/static-handler.gen.d.ts.map +0 -1
- package/dist/static-handler.gen.js +0 -5
- package/dist/static-handler.gen.js.map +0 -1
- package/dist/static-handler.js +0 -29
- package/dist/static-handler.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -20
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -240
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -48
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/ThemeScript.js +0 -13
- package/dist/theme/ThemeScript.js.map +0 -1
- package/dist/theme/__tests__/theme.test.d.ts +0 -2
- package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
- package/dist/theme/__tests__/theme.test.js +0 -103
- package/dist/theme/__tests__/theme.test.js.map +0 -1
- package/dist/theme/constants.d.ts +0 -29
- package/dist/theme/constants.d.ts.map +0 -1
- package/dist/theme/constants.js +0 -48
- package/dist/theme/constants.js.map +0 -1
- package/dist/theme/index.d.ts +0 -31
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -36
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/theme-context.d.ts +0 -40
- package/dist/theme/theme-context.d.ts.map +0 -1
- package/dist/theme/theme-context.js +0 -60
- package/dist/theme/theme-context.js.map +0 -1
- package/dist/theme/theme-script.d.ts +0 -27
- package/dist/theme/theme-script.d.ts.map +0 -1
- package/dist/theme/theme-script.js +0 -147
- package/dist/theme/theme-script.js.map +0 -1
- package/dist/theme/types.d.ts +0 -163
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -11
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/use-theme.d.ts +0 -12
- package/dist/theme/use-theme.d.ts.map +0 -1
- package/dist/theme/use-theme.js +0 -40
- package/dist/theme/use-theme.js.map +0 -1
- package/dist/types.d.ts +0 -1479
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +0 -1
- package/dist/urls.d.ts +0 -441
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.gen.d.ts +0 -8
- package/dist/urls.gen.d.ts.map +0 -1
- package/dist/urls.gen.js +0 -8
- package/dist/urls.gen.js.map +0 -1
- package/dist/urls.js +0 -443
- package/dist/urls.js.map +0 -1
- package/dist/use-loader.d.ts +0 -127
- package/dist/use-loader.d.ts.map +0 -1
- package/dist/use-loader.js +0 -237
- package/dist/use-loader.js.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
- package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.js +0 -39
- package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
- package/dist/vite/ast-handler-extract.d.ts +0 -49
- package/dist/vite/ast-handler-extract.d.ts.map +0 -1
- package/dist/vite/ast-handler-extract.js +0 -249
- package/dist/vite/ast-handler-extract.js.map +0 -1
- package/dist/vite/expose-action-id.d.ts +0 -19
- package/dist/vite/expose-action-id.d.ts.map +0 -1
- package/dist/vite/expose-action-id.js +0 -250
- package/dist/vite/expose-action-id.js.map +0 -1
- package/dist/vite/expose-id-utils.d.ts +0 -69
- package/dist/vite/expose-id-utils.d.ts.map +0 -1
- package/dist/vite/expose-id-utils.js +0 -289
- package/dist/vite/expose-id-utils.js.map +0 -1
- package/dist/vite/expose-internal-ids.d.ts +0 -22
- package/dist/vite/expose-internal-ids.d.ts.map +0 -1
- package/dist/vite/expose-internal-ids.js +0 -886
- package/dist/vite/expose-internal-ids.js.map +0 -1
- package/dist/vite/index.d.ts +0 -149
- package/dist/vite/index.d.ts.map +0 -1
- package/dist/vite/index.js.bak +0 -5448
- package/dist/vite/index.js.map +0 -1
- package/dist/vite/index.named-routes.gen.ts +0 -103
- package/dist/vite/package-resolution.d.ts +0 -43
- package/dist/vite/package-resolution.d.ts.map +0 -1
- package/dist/vite/package-resolution.js +0 -112
- package/dist/vite/package-resolution.js.map +0 -1
- package/dist/vite/virtual-entries.d.ts +0 -25
- package/dist/vite/virtual-entries.d.ts.map +0 -1
- package/dist/vite/virtual-entries.js +0 -110
- package/dist/vite/virtual-entries.js.map +0 -1
- package/src/browser/action-response-classifier.ts +0 -99
- package/src/browser/react/use-client-cache.ts +0 -58
- package/src/browser/shallow.ts +0 -40
- package/src/handles/index.ts +0 -7
- package/src/network-error-thrower.tsx +0 -23
- package/src/router/middleware-cookies.ts +0 -55
package/src/types/route-entry.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { AllUseItems } from "../route-types.js";
|
|
2
2
|
import type { TrailingSlashMode, ResolvedRouteMap } from "./route-config.js";
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Context captured for lazy include evaluation
|
|
6
|
-
*/
|
|
7
4
|
export interface LazyIncludeContext {
|
|
8
5
|
urlPrefix: string;
|
|
9
6
|
namePrefix: string | undefined;
|
|
@@ -25,9 +22,6 @@ export interface LazyIncludeContext {
|
|
|
25
22
|
includeScope?: string;
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
/**
|
|
29
|
-
* Internal route entry stored in router
|
|
30
|
-
*/
|
|
31
25
|
export interface RouteEntry<TEnv = any> {
|
|
32
26
|
prefix: string;
|
|
33
27
|
/**
|
package/src/types/segments.ts
CHANGED
|
@@ -10,7 +10,10 @@ export type ViewTransitionClass = Record<string, string> | string;
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Configuration for React's <ViewTransition> component.
|
|
13
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* The phase fields (enter/exit/update/share/default/name) map directly to
|
|
15
|
+
* ViewTransitionProps (minus children/ref/callbacks). The `viewTransition`
|
|
16
|
+
* field is router-specific and is stripped before the config reaches React.
|
|
14
17
|
*/
|
|
15
18
|
export interface TransitionConfig {
|
|
16
19
|
enter?: ViewTransitionClass;
|
|
@@ -19,19 +22,25 @@ export interface TransitionConfig {
|
|
|
19
22
|
share?: ViewTransitionClass;
|
|
20
23
|
default?: ViewTransitionClass;
|
|
21
24
|
name?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the router wraps this segment's content in its own
|
|
27
|
+
* <ViewTransition> boundary.
|
|
28
|
+
*
|
|
29
|
+
* - "auto" (default): the router places the boundary, producing the
|
|
30
|
+
* router-owned cross-fade described by the phase fields above.
|
|
31
|
+
* - false: the router places no boundary. The navigation commit is still
|
|
32
|
+
* driven through startTransition (so loaders hold instead of flashing a
|
|
33
|
+
* skeleton, and consumer-placed <ViewTransition> elements still animate),
|
|
34
|
+
* but the router contributes no cross-fade of its own.
|
|
35
|
+
*
|
|
36
|
+
* When unset, inherits the createRouter({ viewTransition }) default.
|
|
37
|
+
*/
|
|
38
|
+
viewTransition?: "auto" | false;
|
|
22
39
|
}
|
|
23
40
|
|
|
24
41
|
/**
|
|
25
42
|
* Resolved segment with component
|
|
26
43
|
*
|
|
27
|
-
* Segment types:
|
|
28
|
-
* - layout: Wraps child content via <Outlet />
|
|
29
|
-
* - route: The leaf content for a URL
|
|
30
|
-
* - parallel: Named slots rendered via <ParallelOutlet name="@slot" />
|
|
31
|
-
* - loader: Data segment (no visual rendering, carries loaderData)
|
|
32
|
-
* - error: Error fallback segment (replaces failed segment with error UI)
|
|
33
|
-
* - notFound: Not found fallback segment (replaces segment when data not found)
|
|
34
|
-
*
|
|
35
44
|
* @internal This type is an implementation detail and may change without notice.
|
|
36
45
|
*/
|
|
37
46
|
export interface ResolvedSegment {
|
|
@@ -62,13 +71,16 @@ export interface ResolvedSegment {
|
|
|
62
71
|
notFoundInfo?: NotFoundInfo; // For notFound segments: the not found information
|
|
63
72
|
// Mount path from include() scope, used for MountContext.Provider wrapping
|
|
64
73
|
mountPath?: string;
|
|
74
|
+
/**
|
|
75
|
+
* @internal Server-side marker: true when the segment's handler actually ran
|
|
76
|
+
* this request (not skipped via the revalidate cache path). Used by
|
|
77
|
+
* match-result.ts to populate `MatchResult.resolvedIds` for client-side
|
|
78
|
+
* handle-bucket cleanup. Stripped from the wire payload before serialization
|
|
79
|
+
* — never reaches the client.
|
|
80
|
+
*/
|
|
81
|
+
_handlerRan?: boolean;
|
|
65
82
|
}
|
|
66
83
|
|
|
67
|
-
/**
|
|
68
|
-
* Segment metadata (without component)
|
|
69
|
-
*
|
|
70
|
-
* @internal This type is an implementation detail and may change without notice.
|
|
71
|
-
*/
|
|
72
84
|
export interface SegmentMetadata {
|
|
73
85
|
id: string;
|
|
74
86
|
type: "layout" | "route" | "parallel" | "loader" | "error" | "notFound";
|
|
@@ -116,6 +128,15 @@ export interface MatchResult {
|
|
|
116
128
|
segments: ResolvedSegment[];
|
|
117
129
|
matched: string[];
|
|
118
130
|
diff: string[];
|
|
131
|
+
/**
|
|
132
|
+
* Every segment id whose handler actually ran on the server this request,
|
|
133
|
+
* including ones with `component === null` that get filtered out of
|
|
134
|
+
* `segments`/`diff` to avoid wasted bytes. Drives the client's handle-
|
|
135
|
+
* cleanup pass — a slot that re-resolves and pushes nothing must clear
|
|
136
|
+
* its previous handle bucket, but `diff` doesn't carry it because the
|
|
137
|
+
* segment payload doesn't either. A superset of `diff`.
|
|
138
|
+
*/
|
|
139
|
+
resolvedIds: string[];
|
|
119
140
|
/**
|
|
120
141
|
* Merged route params from all matched segments
|
|
121
142
|
* Available for use by the handler after route matching
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { AllUseItems, IncludeItem } from "../route-types.js";
|
|
2
2
|
import {
|
|
3
|
-
getContext,
|
|
4
|
-
runWithPrefixes,
|
|
5
3
|
getUrlPrefix,
|
|
6
4
|
getNamePrefix,
|
|
5
|
+
requireDslContext,
|
|
7
6
|
} from "../server/context";
|
|
8
7
|
import {
|
|
9
8
|
INTERNAL_INCLUDE_SCOPE_PREFIX,
|
|
@@ -26,28 +25,10 @@ function allocateInternalIncludeScopeId(
|
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
/**
|
|
29
|
-
*
|
|
30
|
-
* This expands the include into actual route registrations
|
|
31
|
-
*/
|
|
32
|
-
function processIncludeItem(item: IncludeItem): AllUseItems[] {
|
|
33
|
-
const { prefix, patterns } = item;
|
|
34
|
-
const namePrefix =
|
|
35
|
-
(item as IncludeItem & { _lazyContext?: { namePrefix?: string } })
|
|
36
|
-
._lazyContext?.namePrefix ?? item.options?.name;
|
|
37
|
-
|
|
38
|
-
// Execute the nested patterns' handler with URL and name prefixes
|
|
39
|
-
// The urlPrefix being set tells nested urls() to skip RootLayout wrapping
|
|
40
|
-
return runWithPrefixes(prefix, namePrefix, () => {
|
|
41
|
-
// Call the nested patterns' handler - this registers routes with prefixed patterns/names
|
|
42
|
-
return (patterns as UrlPatterns).handler();
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Recursively process items, expanding any IncludeItems
|
|
48
|
-
* Returns items with IncludeItems expanded into actual route items
|
|
28
|
+
* Recursively walk items, recursing into layout children.
|
|
49
29
|
*
|
|
50
|
-
*
|
|
30
|
+
* All includes are lazy and kept as-is; the router expands them on the first
|
|
31
|
+
* matching request.
|
|
51
32
|
*/
|
|
52
33
|
export function processItems(items: readonly AllUseItems[]): AllUseItems[] {
|
|
53
34
|
const result: AllUseItems[] = [];
|
|
@@ -56,28 +37,8 @@ export function processItems(items: readonly AllUseItems[]): AllUseItems[] {
|
|
|
56
37
|
if (!item) continue;
|
|
57
38
|
|
|
58
39
|
if (item.type === "include") {
|
|
59
|
-
|
|
60
|
-
_expanded?: AllUseItems[];
|
|
61
|
-
lazy?: boolean;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// Lazy includes are NOT expanded here - kept for router to handle
|
|
65
|
-
if (includeItem.lazy) {
|
|
66
|
-
result.push(item);
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Eager includes are already expanded during include() call
|
|
71
|
-
if (includeItem._expanded) {
|
|
72
|
-
// Items were expanded immediately - just process them recursively
|
|
73
|
-
result.push(...processItems(includeItem._expanded));
|
|
74
|
-
} else {
|
|
75
|
-
// Fallback for legacy include items without _expanded
|
|
76
|
-
const expanded = processIncludeItem(item as IncludeItem);
|
|
77
|
-
result.push(...processItems(expanded));
|
|
78
|
-
}
|
|
40
|
+
result.push(item);
|
|
79
41
|
} else if (item.type === "layout" && (item as any).uses) {
|
|
80
|
-
// Process nested items in layout
|
|
81
42
|
const layoutItem = item as any;
|
|
82
43
|
layoutItem.uses = processItems(layoutItem.uses);
|
|
83
44
|
result.push(layoutItem);
|
|
@@ -92,13 +53,9 @@ export function processItems(items: readonly AllUseItems[]): AllUseItems[] {
|
|
|
92
53
|
/**
|
|
93
54
|
* Create include() helper for composing URL patterns
|
|
94
55
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* With `lazy: true`, patterns are NOT expanded at definition time. Instead,
|
|
100
|
-
* they're evaluated on first request that matches the prefix. This improves
|
|
101
|
-
* cold start time for apps with many routes.
|
|
56
|
+
* All includes are lazy: the nested patterns are NOT expanded at definition
|
|
57
|
+
* time. Instead they are evaluated on the first request that matches the
|
|
58
|
+
* prefix, which improves cold start time for apps with many routes.
|
|
102
59
|
*/
|
|
103
60
|
export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
|
|
104
61
|
return (
|
|
@@ -106,9 +63,7 @@ export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
|
|
|
106
63
|
patterns: UrlPatterns<TEnv>,
|
|
107
64
|
options?: IncludeOptions,
|
|
108
65
|
): IncludeItem => {
|
|
109
|
-
const
|
|
110
|
-
const ctx = store.getStore();
|
|
111
|
-
if (!ctx) throw new Error("include() must be called inside urls()");
|
|
66
|
+
const { ctx } = requireDslContext("include() must be called inside urls()");
|
|
112
67
|
|
|
113
68
|
const explicitName = options?.name;
|
|
114
69
|
const hasExplicitName = hasExplicitNameOption(options);
|
|
@@ -184,8 +139,6 @@ export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
|
|
|
184
139
|
? (parentRootScoped ?? false)
|
|
185
140
|
: parentRootScoped;
|
|
186
141
|
|
|
187
|
-
// All includes are lazy - patterns are evaluated on first matching request
|
|
188
|
-
// This improves cold start time significantly for large route sets
|
|
189
142
|
return {
|
|
190
143
|
type: "include",
|
|
191
144
|
name,
|
package/src/urls/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// Response types and symbols
|
|
2
1
|
export {
|
|
3
2
|
RESPONSE_TYPE,
|
|
4
3
|
type ResponseHandler,
|
|
@@ -8,28 +7,21 @@ export {
|
|
|
8
7
|
type ResponseHandlerContext,
|
|
9
8
|
} from "./response-types.js";
|
|
10
9
|
|
|
11
|
-
// Pattern types
|
|
12
10
|
export type {
|
|
13
11
|
UnnamedRoute,
|
|
14
12
|
LocalOnlyInclude,
|
|
15
13
|
PathOptions,
|
|
16
|
-
PathDefinition,
|
|
17
14
|
UrlPatterns,
|
|
18
15
|
IncludeOptions,
|
|
19
16
|
} from "./pattern-types.js";
|
|
20
17
|
|
|
21
|
-
// Type extraction utilities
|
|
22
18
|
export type {
|
|
23
19
|
ExtractRoutes,
|
|
24
20
|
ExtractResponses,
|
|
25
|
-
|
|
26
|
-
ExtractPathParams,
|
|
27
|
-
ResponseError,
|
|
28
|
-
ResponseEnvelope,
|
|
21
|
+
ProblemDetails,
|
|
29
22
|
RouteResponse,
|
|
30
23
|
} from "./type-extraction.js";
|
|
31
24
|
|
|
32
|
-
// Path helper types
|
|
33
25
|
export type {
|
|
34
26
|
PathFn,
|
|
35
27
|
ResponsePathFn,
|
|
@@ -39,10 +31,8 @@ export type {
|
|
|
39
31
|
PathHelpers,
|
|
40
32
|
} from "./path-helper-types.js";
|
|
41
33
|
|
|
42
|
-
// Main entry point
|
|
43
34
|
export { urls } from "./urls-function.js";
|
|
44
35
|
|
|
45
|
-
// Re-exports from route-types
|
|
46
36
|
export type {
|
|
47
37
|
AllUseItems,
|
|
48
38
|
IncludeItem,
|
|
@@ -114,6 +114,12 @@ export type ResponsePathFn<TEnv> = <
|
|
|
114
114
|
* Path function for JSON response routes (path.json()).
|
|
115
115
|
* Handler can return plain JSON-serializable values or Response.
|
|
116
116
|
* TData is inferred from the handler's return type (excluding Response/Promise wrappers).
|
|
117
|
+
*
|
|
118
|
+
* Note: a nested Promise in the return (a forgotten await) is caught at runtime
|
|
119
|
+
* by response-route-handler.ts (it throws instead of silently emitting `{}`). A
|
|
120
|
+
* compile-time JsonValue constraint was evaluated and rejected — it breaks
|
|
121
|
+
* interface-typed returns (interfaces lack the index signature JsonValue
|
|
122
|
+
* requires) and preserves literal types in the inferred response shape.
|
|
117
123
|
*/
|
|
118
124
|
export type JsonResponsePathFn<TEnv> = <
|
|
119
125
|
const TPattern extends string,
|
|
@@ -264,7 +270,7 @@ export type PathHelpers<TEnv> = {
|
|
|
264
270
|
* Define an intercepting route for soft navigation
|
|
265
271
|
* Note: routeName must match a named path() in this urlpatterns
|
|
266
272
|
*/
|
|
267
|
-
intercept: keyof
|
|
273
|
+
intercept: keyof Rango.GeneratedRouteMap extends never
|
|
268
274
|
? (
|
|
269
275
|
slotName: `@${string}`,
|
|
270
276
|
routeName: string,
|
|
@@ -273,7 +279,7 @@ export type PathHelpers<TEnv> = {
|
|
|
273
279
|
) => InterceptItem
|
|
274
280
|
: (
|
|
275
281
|
slotName: `@${string}`,
|
|
276
|
-
routeName: (keyof
|
|
282
|
+
routeName: (keyof Rango.GeneratedRouteMap & string) | `.${string}`,
|
|
277
283
|
handler: ReactNode | Handler<any, any, TEnv>,
|
|
278
284
|
use?: () => InterceptUseItem[],
|
|
279
285
|
) => InterceptItem;
|
|
@@ -342,15 +348,23 @@ export type PathHelpers<TEnv> = {
|
|
|
342
348
|
<const TChildren extends readonly (AllUseItems | readonly AllUseItems[])[]>(
|
|
343
349
|
children: () => TChildren,
|
|
344
350
|
): TypedCacheItem<ExtractRoutes<TChildren>, ExtractResponses<TChildren>>;
|
|
345
|
-
(options: PartialCacheOptions | false): TypedCacheItem<{}, {}>;
|
|
351
|
+
(options: PartialCacheOptions<TEnv> | false): TypedCacheItem<{}, {}>;
|
|
346
352
|
<const TChildren extends readonly (AllUseItems | readonly AllUseItems[])[]>(
|
|
347
|
-
options: PartialCacheOptions | false,
|
|
353
|
+
options: PartialCacheOptions<TEnv> | false,
|
|
348
354
|
use: () => TChildren,
|
|
349
355
|
): TypedCacheItem<ExtractRoutes<TChildren>, ExtractResponses<TChildren>>;
|
|
350
356
|
};
|
|
351
357
|
|
|
352
358
|
/**
|
|
353
|
-
*
|
|
359
|
+
* Opt a route (or group of routes) into transition-driven navigation.
|
|
360
|
+
*
|
|
361
|
+
* Two independent layers: (1) startTransition, on all React versions, holds
|
|
362
|
+
* the previous content across a same-route nav (no skeleton flash) and is the
|
|
363
|
+
* precondition for any view transition; (2) on experimental React, an
|
|
364
|
+
* additional `<ViewTransition>` boundary cross-fades/morphs the swap. Pass
|
|
365
|
+
* `{ viewTransition: false }` to keep #1 without the router boundary. A view
|
|
366
|
+
* transition cannot fire without a startTransition. See
|
|
367
|
+
* skills/view-transitions for the startTransition x ViewTransition matrix.
|
|
354
368
|
*/
|
|
355
369
|
transition: {
|
|
356
370
|
(): TransitionItem;
|
package/src/urls/path-helper.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { Handler } from "../types.js";
|
|
3
|
-
import type {
|
|
4
|
-
AllUseItems,
|
|
5
|
-
RouteItem,
|
|
6
|
-
RouteUseItem,
|
|
7
|
-
UseItems,
|
|
8
|
-
} from "../route-types.js";
|
|
3
|
+
import type { RouteItem, RouteUseItem, UseItems } from "../route-types.js";
|
|
9
4
|
import {
|
|
10
|
-
getContext,
|
|
11
5
|
getUrlPrefix,
|
|
12
6
|
getNamePrefix,
|
|
13
7
|
getRootScoped,
|
|
8
|
+
requireDslContext,
|
|
14
9
|
} from "../server/context";
|
|
15
10
|
import { invariant, DataNotFoundError } from "../errors";
|
|
16
11
|
import { validateUserRouteName } from "../route-name.js";
|
|
@@ -39,40 +34,11 @@ import {
|
|
|
39
34
|
resolveHandlerUse,
|
|
40
35
|
mergeHandlerUse,
|
|
41
36
|
} from "../route-definition/resolve-handler-use.js";
|
|
37
|
+
import {
|
|
38
|
+
emptySegmentBase,
|
|
39
|
+
runAndValidateUseItems,
|
|
40
|
+
} from "../route-definition/dsl-helpers.js";
|
|
42
41
|
|
|
43
|
-
/**
|
|
44
|
-
* Check if a value is a valid use item
|
|
45
|
-
*/
|
|
46
|
-
const isValidUseItem = (item: any): item is AllUseItems | undefined | null => {
|
|
47
|
-
return (
|
|
48
|
-
typeof item === "undefined" ||
|
|
49
|
-
item === null ||
|
|
50
|
-
(item &&
|
|
51
|
-
typeof item === "object" &&
|
|
52
|
-
"type" in item &&
|
|
53
|
-
[
|
|
54
|
-
"layout",
|
|
55
|
-
"route",
|
|
56
|
-
"middleware",
|
|
57
|
-
"revalidate",
|
|
58
|
-
"parallel",
|
|
59
|
-
"intercept",
|
|
60
|
-
"loader",
|
|
61
|
-
"loading",
|
|
62
|
-
"errorBoundary",
|
|
63
|
-
"notFoundBoundary",
|
|
64
|
-
"when",
|
|
65
|
-
"cache",
|
|
66
|
-
"transition",
|
|
67
|
-
"include",
|
|
68
|
-
].includes(item.type))
|
|
69
|
-
);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Apply URL prefix to a pattern
|
|
74
|
-
* Handles edge cases like "/" patterns and double slashes
|
|
75
|
-
*/
|
|
76
42
|
function applyUrlPrefix(prefix: string, pattern: string): string {
|
|
77
43
|
if (!prefix) return pattern;
|
|
78
44
|
if (pattern === "/") return prefix;
|
|
@@ -82,29 +48,17 @@ function applyUrlPrefix(prefix: string, pattern: string): string {
|
|
|
82
48
|
return prefix + pattern;
|
|
83
49
|
}
|
|
84
50
|
|
|
85
|
-
/**
|
|
86
|
-
* Apply name prefix to a route name
|
|
87
|
-
*/
|
|
88
51
|
function applyNamePrefix(prefix: string | undefined, name: string): string {
|
|
89
52
|
if (!prefix) return name;
|
|
90
53
|
return `${prefix}.${name}`;
|
|
91
54
|
}
|
|
92
55
|
|
|
93
|
-
/**
|
|
94
|
-
* Resolve response type from path options (set by path.json(), path.text(), etc.)
|
|
95
|
-
*/
|
|
96
56
|
function resolveResponseType(
|
|
97
57
|
options: PathOptions | undefined,
|
|
98
58
|
): string | undefined {
|
|
99
59
|
return options?.[RESPONSE_TYPE];
|
|
100
60
|
}
|
|
101
61
|
|
|
102
|
-
/**
|
|
103
|
-
* Create path() helper
|
|
104
|
-
*
|
|
105
|
-
* The path() function is the key new feature - it combines URL pattern
|
|
106
|
-
* with handler at the definition site.
|
|
107
|
-
*/
|
|
108
62
|
export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
109
63
|
return ((
|
|
110
64
|
pattern: string,
|
|
@@ -112,17 +66,15 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
112
66
|
optionsOrUse?: PathOptions | (() => UseItems<RouteUseItem>),
|
|
113
67
|
maybeUse?: () => UseItems<RouteUseItem>,
|
|
114
68
|
): RouteItem => {
|
|
115
|
-
const store =
|
|
116
|
-
|
|
117
|
-
|
|
69
|
+
const { store, ctx } = requireDslContext(
|
|
70
|
+
"path() must be called inside urls()",
|
|
71
|
+
);
|
|
118
72
|
|
|
119
73
|
invariant(
|
|
120
74
|
!ctx.parent || ctx.parent.type !== "parallel",
|
|
121
75
|
"path() cannot be used inside parallel()",
|
|
122
76
|
);
|
|
123
77
|
|
|
124
|
-
// Walk the parent chain to prevent path() nested under another path(),
|
|
125
|
-
// even when separated by intermediate layouts (e.g. path(layout(path())))
|
|
126
78
|
{
|
|
127
79
|
let ancestor = ctx.parent;
|
|
128
80
|
while (ancestor) {
|
|
@@ -134,7 +86,6 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
134
86
|
}
|
|
135
87
|
}
|
|
136
88
|
|
|
137
|
-
// Determine options and use based on argument types
|
|
138
89
|
let options: PathOptions | undefined;
|
|
139
90
|
let use: (() => UseItems<RouteUseItem>) | undefined;
|
|
140
91
|
|
|
@@ -147,49 +98,29 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
147
98
|
use = maybeUse;
|
|
148
99
|
}
|
|
149
100
|
|
|
150
|
-
// Merge handler.use() defaults with explicit use()
|
|
151
|
-
// Response routes (path.json, path.text, etc.) only allow middleware + cache
|
|
152
101
|
const handlerUseFn = resolveHandlerUse(handler);
|
|
153
102
|
const mountSite = resolveResponseType(options) ? "response" : "path";
|
|
154
103
|
const mergedUse = mergeHandlerUse(handlerUseFn, use, mountSite);
|
|
155
104
|
|
|
156
|
-
// Get prefixes from context (set by include())
|
|
157
105
|
const urlPrefix = getUrlPrefix();
|
|
158
106
|
const namePrefix = getNamePrefix();
|
|
159
107
|
|
|
160
|
-
// Apply URL prefix to pattern
|
|
161
108
|
const prefixedPattern = applyUrlPrefix(urlPrefix, pattern);
|
|
162
109
|
|
|
163
|
-
// Generate route name - use provided name or generate from pattern
|
|
164
110
|
const localName =
|
|
165
111
|
options?.name || `$path_${pattern.replace(/[/:*?]/g, "_")}`;
|
|
166
112
|
if (options?.name) {
|
|
167
113
|
validateUserRouteName(options.name);
|
|
168
114
|
}
|
|
169
|
-
// Apply name prefix if set (from include())
|
|
170
115
|
const routeName = applyNamePrefix(namePrefix, localName);
|
|
171
116
|
|
|
172
117
|
const namespace = `${ctx.namespace}.${store.getNextIndex("route")}.${routeName}`;
|
|
173
118
|
|
|
174
|
-
// Per-request pruning: skip registration for routes that won't be rendered.
|
|
175
|
-
// forRoute is set by loadManifest() to the matched route name. During
|
|
176
|
-
// evaluateLazyEntry() (route matching), forRoute is unset so all routes
|
|
177
|
-
// register normally. We still increment counters to keep shortCodes stable
|
|
178
|
-
// across different routes (needed for segment reconciliation on navigation).
|
|
179
|
-
//
|
|
180
|
-
// include() does not need its own forRoute pruning. include() creates lazy
|
|
181
|
-
// entries that defer handler execution until route matching. When the lazy
|
|
182
|
-
// handler eventually runs inside loadManifest(), this path() check already
|
|
183
|
-
// covers all routes defined inside the include.
|
|
184
119
|
if (ctx.forRoute && routeName !== ctx.forRoute) {
|
|
185
120
|
store.getShortCode("route");
|
|
186
121
|
return { type: "route" } as RouteItem;
|
|
187
122
|
}
|
|
188
123
|
|
|
189
|
-
// Ensure handler is always a function (wrap ReactNode or extract from prerender/static def)
|
|
190
|
-
// For prerender stubs (production builds where handler code is evicted),
|
|
191
|
-
// handler.handler is undefined — provide a notFound fallback so requests
|
|
192
|
-
// for non-prerendered params get 404 instead of "handler is not a function".
|
|
193
124
|
const wrappedHandler: Handler<any, any, TEnv> =
|
|
194
125
|
typeof handler === "function"
|
|
195
126
|
? (handler as Handler<any, any, TEnv>)
|
|
@@ -214,22 +145,13 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
214
145
|
: () => handler;
|
|
215
146
|
|
|
216
147
|
const entry = {
|
|
148
|
+
...emptySegmentBase(),
|
|
217
149
|
id: namespace,
|
|
218
150
|
shortCode: store.getShortCode("route"),
|
|
219
151
|
type: "route" as const,
|
|
220
152
|
parent: ctx.parent,
|
|
221
153
|
handler: wrappedHandler,
|
|
222
|
-
// Store the PREFIXED pattern for route matching
|
|
223
154
|
pattern: prefixedPattern,
|
|
224
|
-
loading: undefined,
|
|
225
|
-
middleware: [],
|
|
226
|
-
revalidate: [],
|
|
227
|
-
errorBoundary: [],
|
|
228
|
-
notFoundBoundary: [],
|
|
229
|
-
layout: [],
|
|
230
|
-
parallel: {},
|
|
231
|
-
intercept: [],
|
|
232
|
-
loader: [],
|
|
233
155
|
...(urlPrefix ? { mountPath: urlPrefix } : {}),
|
|
234
156
|
...(isPassthroughHandler(handler)
|
|
235
157
|
? {
|
|
@@ -255,29 +177,23 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
255
177
|
: {}),
|
|
256
178
|
};
|
|
257
179
|
|
|
258
|
-
// Capture namespace prefix on static handler for build-time reverse() resolution
|
|
259
180
|
if (isStaticHandler(handler) && handler.$$id && ctx.namePrefix) {
|
|
260
181
|
(handler as any).$$routePrefix = ctx.namePrefix;
|
|
261
182
|
}
|
|
262
183
|
|
|
263
|
-
// Check for duplicate route names (TypeScript should catch this, but runtime check too)
|
|
264
184
|
invariant(
|
|
265
185
|
ctx.manifest.get(routeName) === undefined,
|
|
266
186
|
`Duplicate route name: ${routeName} at ${namespace}`,
|
|
267
187
|
);
|
|
268
188
|
|
|
269
|
-
// Register route entry with prefixed name
|
|
270
189
|
ctx.manifest.set(routeName, entry);
|
|
271
190
|
|
|
272
|
-
// Register root-scope flag for dot-local reverse resolution
|
|
273
191
|
registerRouteRootScope(routeName, getRootScoped());
|
|
274
192
|
|
|
275
|
-
// Also store pattern in a separate map for URL generation
|
|
276
193
|
if (ctx.patterns) {
|
|
277
194
|
ctx.patterns.set(routeName, prefixedPattern);
|
|
278
195
|
}
|
|
279
196
|
|
|
280
|
-
// Store pattern grouped by URL prefix for separate entry creation
|
|
281
197
|
if (ctx.patternsByPrefix) {
|
|
282
198
|
const urlPrefix = getUrlPrefix() || "";
|
|
283
199
|
if (!ctx.patternsByPrefix.has(urlPrefix)) {
|
|
@@ -286,12 +202,10 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
286
202
|
ctx.patternsByPrefix.get(urlPrefix)!.set(routeName, prefixedPattern);
|
|
287
203
|
}
|
|
288
204
|
|
|
289
|
-
// Store trailing slash config if specified
|
|
290
205
|
if (options?.trailingSlash && ctx.trailingSlash) {
|
|
291
206
|
ctx.trailingSlash.set(routeName, options.trailingSlash);
|
|
292
207
|
}
|
|
293
208
|
|
|
294
|
-
// Store search schema if specified
|
|
295
209
|
if (options?.search) {
|
|
296
210
|
if (ctx.searchSchemas) {
|
|
297
211
|
ctx.searchSchemas.set(routeName, options.search);
|
|
@@ -299,12 +213,14 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
299
213
|
registerSearchSchema(routeName, options.search);
|
|
300
214
|
}
|
|
301
215
|
|
|
302
|
-
// Run merged use callback (handler.use defaults + explicit use) if present
|
|
303
216
|
if (mergedUse) {
|
|
304
|
-
const result =
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
217
|
+
const result = runAndValidateUseItems(
|
|
218
|
+
store,
|
|
219
|
+
namespace,
|
|
220
|
+
entry,
|
|
221
|
+
mergedUse,
|
|
222
|
+
"path",
|
|
223
|
+
"use",
|
|
308
224
|
);
|
|
309
225
|
return { name: namespace, type: "route", uses: result } as RouteItem;
|
|
310
226
|
}
|
|
@@ -313,10 +229,6 @@ export function createPathHelper<TEnv>(): PathFn<TEnv> {
|
|
|
313
229
|
}) as PathFn<TEnv>;
|
|
314
230
|
}
|
|
315
231
|
|
|
316
|
-
/**
|
|
317
|
-
* Attach response type tag methods (.json, .text, .html, .xml, .md, .image, .stream, .any) to a path helper.
|
|
318
|
-
* Each tag wraps the original path() call with the RESPONSE_TYPE option set.
|
|
319
|
-
*/
|
|
320
232
|
export function attachPathResponseTags<TEnv>(
|
|
321
233
|
pathFn: PathFn<TEnv>,
|
|
322
234
|
): PathFn<TEnv> & {
|
|
@@ -338,7 +250,6 @@ export function attachPathResponseTags<TEnv>(
|
|
|
338
250
|
) => {
|
|
339
251
|
let options: PathOptions;
|
|
340
252
|
let use: (() => any[]) | undefined;
|
|
341
|
-
|
|
342
253
|
if (typeof optionsOrUse === "function") {
|
|
343
254
|
options = { [RESPONSE_TYPE]: responseType };
|
|
344
255
|
use = optionsOrUse;
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
AllUseItems,
|
|
5
|
-
RouteUseItem,
|
|
6
|
-
UrlPatternsBrand,
|
|
7
|
-
} from "../route-types.js";
|
|
1
|
+
import type { TrailingSlashMode } from "../types.js";
|
|
2
|
+
import type { AllUseItems, UrlPatternsBrand } from "../route-types.js";
|
|
8
3
|
import type { SearchSchema } from "../search-params.js";
|
|
9
4
|
import { RESPONSE_TYPE } from "./response-types.js";
|
|
10
5
|
import type { DefaultEnv } from "../types.js";
|
|
@@ -54,16 +49,6 @@ export interface PathOptions<
|
|
|
54
49
|
[RESPONSE_TYPE]?: string;
|
|
55
50
|
}
|
|
56
51
|
|
|
57
|
-
/**
|
|
58
|
-
* Internal representation of a URL pattern definition
|
|
59
|
-
*/
|
|
60
|
-
export interface PathDefinition {
|
|
61
|
-
pattern: string;
|
|
62
|
-
name?: string;
|
|
63
|
-
handler: ReactNode | Handler<any, any, any>;
|
|
64
|
-
use?: RouteUseItem[];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
52
|
/**
|
|
68
53
|
* Result of urls() - contains the route definitions
|
|
69
54
|
*/
|
|
@@ -72,8 +57,6 @@ export interface UrlPatterns<
|
|
|
72
57
|
TRoutes extends Record<string, any> = Record<string, string>,
|
|
73
58
|
TResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
74
59
|
> {
|
|
75
|
-
/** Internal: route definitions */
|
|
76
|
-
readonly definitions: PathDefinition[];
|
|
77
60
|
/** Internal: compiled handler function */
|
|
78
61
|
readonly handler: () => AllUseItems[];
|
|
79
62
|
/** Internal: trailing slash config per route name */
|
|
@@ -88,6 +71,40 @@ export interface UrlPatterns<
|
|
|
88
71
|
readonly _responses?: TResponses;
|
|
89
72
|
}
|
|
90
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Extract the phantom env type carried by a UrlPatterns value.
|
|
76
|
+
*/
|
|
77
|
+
export type UrlPatternsEnv<T> =
|
|
78
|
+
T extends UrlPatterns<infer TEnv, any, any> ? TEnv : never;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Guards `routes()` env compatibility without over-constraining.
|
|
82
|
+
*
|
|
83
|
+
* - An env-agnostic block (its env is `unknown` — e.g. a shared urls() module,
|
|
84
|
+
* or an app that does not augment `Rango.Env`) attaches to any router.
|
|
85
|
+
* - A block carrying a concrete env is accepted only when the router env
|
|
86
|
+
* (`TRouterEnv`) satisfies it; resolves to `never` otherwise, so a
|
|
87
|
+
* `urls<{ DB: D1Database }>()` cannot be mounted on a `createRouter<{}>()`.
|
|
88
|
+
*
|
|
89
|
+
* Use as `patterns: T & EnvCompatible<T, TEnv>` so `T` still infers from the
|
|
90
|
+
* argument — a bare `EnvCompatible<T, TEnv>` parameter sits in a non-inferrable
|
|
91
|
+
* conditional position and would collapse `T` to its constraint.
|
|
92
|
+
*
|
|
93
|
+
* Known limitation: `TRouterEnv extends ...` distributes over a union router env,
|
|
94
|
+
* so a `urls<A>()` block is accepted on `createRouter<A | B>()` even though the
|
|
95
|
+
* `B` arm cannot supply `A`'s env. Suppressing distribution with
|
|
96
|
+
* `[TRouterEnv] extends [...]` would close that edge but breaks the common
|
|
97
|
+
* generic-`TEnv` call sites (a deferred type parameter can't resolve the tuple
|
|
98
|
+
* conditional, so the intersection stops reducing to `T`). A router has one env,
|
|
99
|
+
* so a union env is not a supported pattern; the distributive form is kept.
|
|
100
|
+
*/
|
|
101
|
+
export type EnvCompatible<TPatterns, TRouterEnv> =
|
|
102
|
+
unknown extends UrlPatternsEnv<TPatterns>
|
|
103
|
+
? TPatterns
|
|
104
|
+
: TRouterEnv extends UrlPatternsEnv<TPatterns>
|
|
105
|
+
? TPatterns
|
|
106
|
+
: never;
|
|
107
|
+
|
|
91
108
|
/**
|
|
92
109
|
* Options for include()
|
|
93
110
|
*/
|