@rangojs/router 0.0.0-experimental.80 → 0.0.0-experimental.80daa23e
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 -4
- package/README.md +318 -791
- package/dist/__internal.d.ts +83 -0
- package/dist/__internal.d.ts.map +1 -0
- package/dist/__internal.js +19 -0
- package/dist/__internal.js.map +1 -0
- package/dist/__mocks__/version.d.ts +7 -0
- package/dist/__mocks__/version.d.ts.map +1 -0
- package/dist/__mocks__/version.js +7 -0
- package/dist/__mocks__/version.js.map +1 -0
- package/dist/__tests__/client-href.test.d.ts +2 -0
- package/dist/__tests__/client-href.test.d.ts.map +1 -0
- package/dist/__tests__/client-href.test.js +74 -0
- package/dist/__tests__/client-href.test.js.map +1 -0
- package/dist/__tests__/component-utils.test.d.ts +2 -0
- package/dist/__tests__/component-utils.test.d.ts.map +1 -0
- package/dist/__tests__/component-utils.test.js +51 -0
- package/dist/__tests__/component-utils.test.js.map +1 -0
- package/dist/__tests__/event-controller.test.d.ts +2 -0
- package/dist/__tests__/event-controller.test.d.ts.map +1 -0
- package/dist/__tests__/event-controller.test.js +538 -0
- package/dist/__tests__/event-controller.test.js.map +1 -0
- package/dist/__tests__/helpers/route-tree.d.ts +118 -0
- package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
- package/dist/__tests__/helpers/route-tree.js +374 -0
- package/dist/__tests__/helpers/route-tree.js.map +1 -0
- package/dist/__tests__/match-result.test.d.ts +2 -0
- package/dist/__tests__/match-result.test.d.ts.map +1 -0
- package/dist/__tests__/match-result.test.js +154 -0
- package/dist/__tests__/match-result.test.js.map +1 -0
- package/dist/__tests__/navigation-store.test.d.ts +2 -0
- package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
- package/dist/__tests__/navigation-store.test.js +440 -0
- package/dist/__tests__/navigation-store.test.js.map +1 -0
- package/dist/__tests__/partial-update.test.d.ts +2 -0
- package/dist/__tests__/partial-update.test.d.ts.map +1 -0
- package/dist/__tests__/partial-update.test.js +1009 -0
- package/dist/__tests__/partial-update.test.js.map +1 -0
- package/dist/__tests__/reverse-types.test.d.ts +8 -0
- package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
- package/dist/__tests__/reverse-types.test.js +656 -0
- package/dist/__tests__/reverse-types.test.js.map +1 -0
- package/dist/__tests__/route-definition.test.d.ts +2 -0
- package/dist/__tests__/route-definition.test.d.ts.map +1 -0
- package/dist/__tests__/route-definition.test.js +55 -0
- package/dist/__tests__/route-definition.test.js.map +1 -0
- package/dist/__tests__/router-helpers.test.d.ts +2 -0
- package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/router-helpers.test.js +377 -0
- package/dist/__tests__/router-helpers.test.js.map +1 -0
- package/dist/__tests__/router-integration-2.test.d.ts +2 -0
- package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
- package/dist/__tests__/router-integration-2.test.js +426 -0
- package/dist/__tests__/router-integration-2.test.js.map +1 -0
- package/dist/__tests__/router-integration.test.d.ts +2 -0
- package/dist/__tests__/router-integration.test.d.ts.map +1 -0
- package/dist/__tests__/router-integration.test.js +1051 -0
- package/dist/__tests__/router-integration.test.js.map +1 -0
- package/dist/__tests__/search-params.test.d.ts +5 -0
- package/dist/__tests__/search-params.test.d.ts.map +1 -0
- package/dist/__tests__/search-params.test.js +306 -0
- package/dist/__tests__/search-params.test.js.map +1 -0
- package/dist/__tests__/segment-system.test.d.ts +2 -0
- package/dist/__tests__/segment-system.test.d.ts.map +1 -0
- package/dist/__tests__/segment-system.test.js +627 -0
- package/dist/__tests__/segment-system.test.js.map +1 -0
- package/dist/__tests__/static-handler-types.test.d.ts +8 -0
- package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
- package/dist/__tests__/static-handler-types.test.js +63 -0
- package/dist/__tests__/static-handler-types.test.js.map +1 -0
- package/dist/__tests__/urls.test.d.ts +2 -0
- package/dist/__tests__/urls.test.d.ts.map +1 -0
- package/dist/__tests__/urls.test.js +421 -0
- package/dist/__tests__/urls.test.js.map +1 -0
- package/dist/__tests__/use-mount.test.d.ts +2 -0
- package/dist/__tests__/use-mount.test.d.ts.map +1 -0
- package/dist/__tests__/use-mount.test.js +35 -0
- package/dist/__tests__/use-mount.test.js.map +1 -0
- package/dist/bin/rango.d.ts +2 -0
- package/dist/bin/rango.d.ts.map +1 -0
- package/dist/bin/rango.js +927 -273
- package/dist/bin/rango.js.map +1 -0
- package/dist/browser/event-controller.d.ts +191 -0
- package/dist/browser/event-controller.d.ts.map +1 -0
- package/dist/browser/event-controller.js +559 -0
- package/dist/browser/event-controller.js.map +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/link-interceptor.d.ts +38 -0
- package/dist/browser/link-interceptor.d.ts.map +1 -0
- package/dist/browser/link-interceptor.js +99 -0
- package/dist/browser/link-interceptor.js.map +1 -0
- package/dist/browser/logging.d.ts +10 -0
- package/dist/browser/logging.d.ts.map +1 -0
- package/dist/browser/logging.js +29 -0
- package/dist/browser/logging.js.map +1 -0
- package/dist/browser/lru-cache.d.ts +17 -0
- package/dist/browser/lru-cache.d.ts.map +1 -0
- package/dist/browser/lru-cache.js +50 -0
- package/dist/browser/lru-cache.js.map +1 -0
- package/dist/browser/merge-segment-loaders.d.ts +39 -0
- package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
- package/dist/browser/merge-segment-loaders.js +102 -0
- package/dist/browser/merge-segment-loaders.js.map +1 -0
- package/dist/browser/navigation-bridge.d.ts +102 -0
- package/dist/browser/navigation-bridge.d.ts.map +1 -0
- package/dist/browser/navigation-bridge.js +708 -0
- package/dist/browser/navigation-bridge.js.map +1 -0
- package/dist/browser/navigation-client.d.ts +25 -0
- package/dist/browser/navigation-client.d.ts.map +1 -0
- package/dist/browser/navigation-client.js +157 -0
- package/dist/browser/navigation-client.js.map +1 -0
- package/dist/browser/navigation-store.d.ts +101 -0
- package/dist/browser/navigation-store.d.ts.map +1 -0
- package/dist/browser/navigation-store.js +625 -0
- package/dist/browser/navigation-store.js.map +1 -0
- package/dist/browser/partial-update.d.ts +75 -0
- package/dist/browser/partial-update.d.ts.map +1 -0
- package/dist/browser/partial-update.js +426 -0
- package/dist/browser/partial-update.js.map +1 -0
- package/dist/browser/react/Link.d.ts +86 -0
- package/dist/browser/react/Link.d.ts.map +1 -0
- package/dist/browser/react/Link.js +128 -0
- package/dist/browser/react/Link.js.map +1 -0
- package/dist/browser/react/NavigationProvider.d.ts +63 -0
- package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
- package/dist/browser/react/NavigationProvider.js +216 -0
- package/dist/browser/react/NavigationProvider.js.map +1 -0
- package/dist/browser/react/ScrollRestoration.d.ts +75 -0
- package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
- package/dist/browser/react/ScrollRestoration.js +57 -0
- package/dist/browser/react/ScrollRestoration.js.map +1 -0
- package/dist/browser/react/context.d.ts +46 -0
- package/dist/browser/react/context.d.ts.map +1 -0
- package/dist/browser/react/context.js +10 -0
- package/dist/browser/react/context.js.map +1 -0
- package/dist/browser/react/index.d.ts +11 -0
- package/dist/browser/react/index.d.ts.map +1 -0
- package/dist/browser/react/index.js +22 -0
- package/dist/browser/react/index.js.map +1 -0
- package/dist/browser/react/location-state-shared.d.ts +63 -0
- package/dist/browser/react/location-state-shared.d.ts.map +1 -0
- package/dist/browser/react/location-state-shared.js +81 -0
- package/dist/browser/react/location-state-shared.js.map +1 -0
- package/dist/browser/react/location-state.d.ts +23 -0
- package/dist/browser/react/location-state.d.ts.map +1 -0
- package/dist/browser/react/location-state.js +29 -0
- package/dist/browser/react/location-state.js.map +1 -0
- package/dist/browser/react/mount-context.d.ts +24 -0
- package/dist/browser/react/mount-context.d.ts.map +1 -0
- package/dist/browser/react/mount-context.js +24 -0
- package/dist/browser/react/mount-context.js.map +1 -0
- package/dist/browser/react/use-action.d.ts +64 -0
- package/dist/browser/react/use-action.d.ts.map +1 -0
- package/dist/browser/react/use-action.js +134 -0
- package/dist/browser/react/use-action.js.map +1 -0
- package/dist/browser/react/use-client-cache.d.ts +41 -0
- package/dist/browser/react/use-client-cache.d.ts.map +1 -0
- package/{src/browser/react/use-client-cache.ts → dist/browser/react/use-client-cache.js} +9 -28
- package/dist/browser/react/use-client-cache.js.map +1 -0
- package/dist/browser/react/use-handle.d.ts +31 -0
- package/dist/browser/react/use-handle.d.ts.map +1 -0
- package/dist/browser/react/use-handle.js +144 -0
- package/dist/browser/react/use-handle.js.map +1 -0
- package/dist/browser/react/use-href.d.ts +33 -0
- package/dist/browser/react/use-href.d.ts.map +1 -0
- package/dist/browser/react/use-href.js +39 -0
- package/dist/browser/react/use-href.js.map +1 -0
- package/dist/browser/react/use-link-status.d.ts +37 -0
- package/dist/browser/react/use-link-status.d.ts.map +1 -0
- package/dist/browser/react/use-link-status.js +99 -0
- package/dist/browser/react/use-link-status.js.map +1 -0
- package/dist/browser/react/use-mount.d.ts +25 -0
- package/dist/browser/react/use-mount.d.ts.map +1 -0
- package/dist/browser/react/use-mount.js +30 -0
- package/dist/browser/react/use-mount.js.map +1 -0
- package/dist/browser/react/use-navigation.d.ts +27 -0
- package/dist/browser/react/use-navigation.d.ts.map +1 -0
- package/dist/browser/react/use-navigation.js +87 -0
- package/dist/browser/react/use-navigation.js.map +1 -0
- package/dist/browser/react/use-segments.d.ts +38 -0
- package/dist/browser/react/use-segments.d.ts.map +1 -0
- package/dist/browser/react/use-segments.js +130 -0
- package/dist/browser/react/use-segments.js.map +1 -0
- package/dist/browser/request-controller.d.ts +26 -0
- package/dist/browser/request-controller.d.ts.map +1 -0
- package/dist/browser/request-controller.js +147 -0
- package/dist/browser/request-controller.js.map +1 -0
- package/dist/browser/rsc-router.d.ts +129 -0
- package/dist/browser/rsc-router.d.ts.map +1 -0
- package/dist/browser/rsc-router.js +195 -0
- package/dist/browser/rsc-router.js.map +1 -0
- package/dist/browser/scroll-restoration.d.ts +93 -0
- package/dist/browser/scroll-restoration.d.ts.map +1 -0
- package/dist/browser/scroll-restoration.js +321 -0
- package/dist/browser/scroll-restoration.js.map +1 -0
- package/dist/browser/segment-structure-assert.d.ts +17 -0
- package/dist/browser/segment-structure-assert.d.ts.map +1 -0
- package/dist/browser/segment-structure-assert.js +59 -0
- package/dist/browser/segment-structure-assert.js.map +1 -0
- package/dist/browser/server-action-bridge.d.ts +26 -0
- package/dist/browser/server-action-bridge.d.ts.map +1 -0
- package/dist/browser/server-action-bridge.js +668 -0
- package/dist/browser/server-action-bridge.js.map +1 -0
- package/dist/browser/shallow.d.ts +12 -0
- package/dist/browser/shallow.d.ts.map +1 -0
- package/dist/browser/shallow.js +34 -0
- package/dist/browser/shallow.js.map +1 -0
- package/dist/browser/types.d.ts +369 -0
- package/dist/browser/types.d.ts.map +1 -0
- package/dist/browser/types.js +2 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
- package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-cli.test.js +237 -0
- package/dist/build/__tests__/generate-cli.test.js.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.js +119 -0
- package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.js +620 -0
- package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.js +308 -0
- package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
- package/dist/build/generate-manifest.d.ts +81 -0
- package/dist/build/generate-manifest.d.ts.map +1 -0
- package/dist/build/generate-manifest.js +276 -0
- package/dist/build/generate-manifest.js.map +1 -0
- package/dist/build/generate-route-types.d.ts +115 -0
- package/dist/build/generate-route-types.d.ts.map +1 -0
- package/dist/build/generate-route-types.js +740 -0
- package/dist/build/generate-route-types.js.map +1 -0
- package/dist/build/index.d.ts +21 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +21 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/route-trie.d.ts +71 -0
- package/dist/build/route-trie.d.ts.map +1 -0
- package/dist/build/route-trie.js +175 -0
- package/dist/build/route-trie.js.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.js +208 -0
- package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
- package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
- package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
- package/dist/cache/__tests__/document-cache.test.js +345 -0
- package/dist/cache/__tests__/document-cache.test.js.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
- package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
- package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-store.test.js +367 -0
- package/dist/cache/__tests__/memory-store.test.js.map +1 -0
- package/dist/cache/cache-scope.d.ts +102 -0
- package/dist/cache/cache-scope.d.ts.map +1 -0
- package/dist/cache/cache-scope.js +440 -0
- package/dist/cache/cache-scope.js.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
- package/dist/cache/cf/cf-cache-store.d.ts +165 -0
- package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
- package/dist/cache/cf/cf-cache-store.js +242 -0
- package/dist/cache/cf/cf-cache-store.js.map +1 -0
- package/dist/cache/cf/index.d.ts +14 -0
- package/dist/cache/cf/index.d.ts.map +1 -0
- package/dist/cache/cf/index.js +17 -0
- package/dist/cache/cf/index.js.map +1 -0
- package/dist/cache/document-cache.d.ts +64 -0
- package/dist/cache/document-cache.d.ts.map +1 -0
- package/dist/cache/document-cache.js +228 -0
- package/dist/cache/document-cache.js.map +1 -0
- package/dist/cache/index.d.ts +19 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory-segment-store.d.ts +110 -0
- package/dist/cache/memory-segment-store.d.ts.map +1 -0
- package/dist/cache/memory-segment-store.js +117 -0
- package/dist/cache/memory-segment-store.js.map +1 -0
- package/dist/cache/memory-store.d.ts +41 -0
- package/dist/cache/memory-store.d.ts.map +1 -0
- package/dist/cache/memory-store.js +191 -0
- package/dist/cache/memory-store.js.map +1 -0
- package/dist/cache/types.d.ts +317 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +12 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/client.d.ts +248 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +367 -0
- package/dist/client.js.map +1 -0
- package/dist/client.rsc.d.ts +26 -0
- package/dist/client.rsc.d.ts.map +1 -0
- package/dist/client.rsc.js +46 -0
- package/dist/client.rsc.js.map +1 -0
- package/dist/component-utils.d.ts +36 -0
- package/dist/component-utils.d.ts.map +1 -0
- package/dist/component-utils.js +61 -0
- package/dist/component-utils.js.map +1 -0
- package/dist/components/DefaultDocument.d.ts +13 -0
- package/dist/components/DefaultDocument.d.ts.map +1 -0
- package/dist/components/DefaultDocument.js +15 -0
- package/dist/components/DefaultDocument.js.map +1 -0
- package/dist/debug.d.ts +58 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +157 -0
- package/dist/debug.js.map +1 -0
- package/dist/default-error-boundary.d.ts +11 -0
- package/dist/default-error-boundary.d.ts.map +1 -0
- package/dist/default-error-boundary.js +45 -0
- package/dist/default-error-boundary.js.map +1 -0
- package/dist/deps/browser.d.ts +2 -0
- package/dist/deps/browser.d.ts.map +1 -0
- package/dist/deps/browser.js +3 -0
- package/dist/deps/browser.js.map +1 -0
- package/dist/deps/html-stream-client.d.ts +2 -0
- package/dist/deps/html-stream-client.d.ts.map +1 -0
- package/dist/deps/html-stream-client.js +3 -0
- package/dist/deps/html-stream-client.js.map +1 -0
- package/dist/deps/html-stream-server.d.ts +2 -0
- package/dist/deps/html-stream-server.d.ts.map +1 -0
- package/dist/deps/html-stream-server.js +3 -0
- package/dist/deps/html-stream-server.js.map +1 -0
- package/dist/deps/rsc.d.ts +2 -0
- package/dist/deps/rsc.d.ts.map +1 -0
- package/dist/deps/rsc.js +4 -0
- package/dist/deps/rsc.js.map +1 -0
- package/dist/deps/ssr.d.ts +2 -0
- package/dist/deps/ssr.d.ts.map +1 -0
- package/dist/deps/ssr.js +3 -0
- package/dist/deps/ssr.js.map +1 -0
- package/dist/errors.d.ts +174 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +241 -0
- package/dist/errors.js.map +1 -0
- package/dist/handle.d.ts +78 -0
- package/dist/handle.d.ts.map +1 -0
- package/dist/handle.js +82 -0
- package/dist/handle.js.map +1 -0
- package/dist/handles/MetaTags.d.ts +14 -0
- package/dist/handles/MetaTags.d.ts.map +1 -0
- package/dist/handles/MetaTags.js +136 -0
- package/dist/handles/MetaTags.js.map +1 -0
- package/{src/handles/index.ts → dist/handles/index.d.ts} +1 -2
- package/dist/handles/index.d.ts.map +1 -0
- package/dist/handles/index.js +6 -0
- package/dist/handles/index.js.map +1 -0
- package/dist/handles/meta.d.ts +39 -0
- package/dist/handles/meta.d.ts.map +1 -0
- package/dist/handles/meta.js +202 -0
- package/dist/handles/meta.js.map +1 -0
- package/dist/host/__tests__/errors.test.d.ts +2 -0
- package/dist/host/__tests__/errors.test.d.ts.map +1 -0
- package/dist/host/__tests__/errors.test.js +76 -0
- package/dist/host/__tests__/errors.test.js.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.js +251 -0
- package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
- package/dist/host/__tests__/router.test.d.ts +2 -0
- package/dist/host/__tests__/router.test.d.ts.map +1 -0
- package/dist/host/__tests__/router.test.js +241 -0
- package/dist/host/__tests__/router.test.js.map +1 -0
- package/dist/host/__tests__/testing.test.d.ts +2 -0
- package/dist/host/__tests__/testing.test.d.ts.map +1 -0
- package/dist/host/__tests__/testing.test.js +64 -0
- package/dist/host/__tests__/testing.test.js.map +1 -0
- package/dist/host/__tests__/utils.test.d.ts +2 -0
- package/dist/host/__tests__/utils.test.d.ts.map +1 -0
- package/dist/host/__tests__/utils.test.js +29 -0
- package/dist/host/__tests__/utils.test.js.map +1 -0
- package/dist/host/cookie-handler.d.ts +34 -0
- package/dist/host/cookie-handler.d.ts.map +1 -0
- package/dist/host/cookie-handler.js +124 -0
- package/dist/host/cookie-handler.js.map +1 -0
- package/dist/host/errors.d.ts +56 -0
- package/dist/host/errors.d.ts.map +1 -0
- package/dist/host/errors.js +79 -0
- package/dist/host/errors.js.map +1 -0
- package/dist/host/index.d.ts +29 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +32 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/pattern-matcher.d.ts +36 -0
- package/dist/host/pattern-matcher.d.ts.map +1 -0
- package/dist/host/pattern-matcher.js +172 -0
- package/dist/host/pattern-matcher.js.map +1 -0
- package/dist/host/router.d.ts +26 -0
- package/dist/host/router.d.ts.map +1 -0
- package/dist/host/router.js +218 -0
- package/dist/host/router.js.map +1 -0
- package/dist/host/testing.d.ts +36 -0
- package/dist/host/testing.d.ts.map +1 -0
- package/dist/host/testing.js +55 -0
- package/dist/host/testing.js.map +1 -0
- package/dist/host/types.d.ts +115 -0
- package/dist/host/types.d.ts.map +1 -0
- package/dist/host/types.js +7 -0
- package/dist/host/types.js.map +1 -0
- package/dist/host/utils.d.ts +21 -0
- package/dist/host/utils.d.ts.map +1 -0
- package/dist/host/utils.js +23 -0
- package/dist/host/utils.js.map +1 -0
- package/dist/href-client.d.ts +131 -0
- package/dist/href-client.d.ts.map +1 -0
- package/dist/href-client.js +64 -0
- package/dist/href-client.js.map +1 -0
- package/dist/href-context.d.ts +29 -0
- package/dist/href-context.d.ts.map +1 -0
- package/dist/href-context.js +21 -0
- package/dist/href-context.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/index.rsc.d.ts +32 -0
- package/dist/index.rsc.d.ts.map +1 -0
- package/dist/index.rsc.js +40 -0
- package/dist/index.rsc.js.map +1 -0
- package/dist/internal-debug.d.ts +2 -0
- package/dist/internal-debug.d.ts.map +1 -0
- package/dist/internal-debug.js +5 -0
- package/dist/internal-debug.js.map +1 -0
- package/dist/loader.d.ts +14 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +20 -0
- package/dist/loader.js.map +1 -0
- package/dist/loader.rsc.d.ts +19 -0
- package/dist/loader.rsc.d.ts.map +1 -0
- package/dist/loader.rsc.js +99 -0
- package/dist/loader.rsc.js.map +1 -0
- package/{src/network-error-thrower.tsx → dist/network-error-thrower.d.ts} +4 -10
- package/dist/network-error-thrower.d.ts.map +1 -0
- package/dist/network-error-thrower.js +14 -0
- package/dist/network-error-thrower.js.map +1 -0
- package/dist/outlet-context.d.ts +13 -0
- package/dist/outlet-context.d.ts.map +1 -0
- package/dist/outlet-context.js +3 -0
- package/dist/outlet-context.js.map +1 -0
- package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
- package/dist/prerender/__tests__/param-hash.test.js +148 -0
- package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
- package/dist/prerender/param-hash.d.ts +16 -0
- package/dist/prerender/param-hash.d.ts.map +1 -0
- package/dist/prerender/param-hash.js +36 -0
- package/dist/prerender/param-hash.js.map +1 -0
- package/dist/prerender/store.d.ts +38 -0
- package/dist/prerender/store.d.ts.map +1 -0
- package/dist/prerender/store.js +61 -0
- package/dist/prerender/store.js.map +1 -0
- package/dist/prerender.d.ts +66 -0
- package/dist/prerender.d.ts.map +1 -0
- package/dist/prerender.js +57 -0
- package/dist/prerender.js.map +1 -0
- package/dist/reverse.d.ts +196 -0
- package/dist/reverse.d.ts.map +1 -0
- package/dist/reverse.js +78 -0
- package/dist/reverse.js.map +1 -0
- package/dist/root-error-boundary.d.ts +33 -0
- package/dist/root-error-boundary.d.ts.map +1 -0
- package/dist/root-error-boundary.js +165 -0
- package/dist/root-error-boundary.js.map +1 -0
- package/dist/route-content-wrapper.d.ts +46 -0
- package/dist/route-content-wrapper.d.ts.map +1 -0
- package/dist/route-content-wrapper.js +77 -0
- package/dist/route-content-wrapper.js.map +1 -0
- package/dist/route-definition.d.ts +421 -0
- package/dist/route-definition.d.ts.map +1 -0
- package/dist/route-definition.js +868 -0
- package/dist/route-definition.js.map +1 -0
- package/dist/route-map-builder.d.ts +155 -0
- package/dist/route-map-builder.d.ts.map +1 -0
- package/dist/route-map-builder.js +237 -0
- package/dist/route-map-builder.js.map +1 -0
- package/dist/route-types.d.ts +165 -0
- package/dist/route-types.d.ts.map +1 -0
- package/dist/route-types.js +7 -0
- package/dist/route-types.js.map +1 -0
- package/dist/router/__tests__/handler-context.test.d.ts +2 -0
- package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
- package/dist/router/__tests__/handler-context.test.js +65 -0
- package/dist/router/__tests__/handler-context.test.js.map +1 -0
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
- package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
- package/dist/router/__tests__/match-context.test.d.ts +2 -0
- package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-context.test.js +92 -0
- package/dist/router/__tests__/match-context.test.js.map +1 -0
- package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-pipelines.test.js +417 -0
- package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
- package/dist/router/__tests__/match-result.test.d.ts +2 -0
- package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-result.test.js +457 -0
- package/dist/router/__tests__/match-result.test.js.map +1 -0
- package/dist/router/__tests__/on-error.test.d.ts +2 -0
- package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
- package/dist/router/__tests__/on-error.test.js +678 -0
- package/dist/router/__tests__/on-error.test.js.map +1 -0
- package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
- package/dist/router/__tests__/pattern-matching.test.js +629 -0
- package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
- package/dist/router/error-handling.d.ts +77 -0
- package/dist/router/error-handling.d.ts.map +1 -0
- package/dist/router/error-handling.js +202 -0
- package/dist/router/error-handling.js.map +1 -0
- package/dist/router/handler-context.d.ts +20 -0
- package/dist/router/handler-context.d.ts.map +1 -0
- package/dist/router/handler-context.js +198 -0
- package/dist/router/handler-context.js.map +1 -0
- package/dist/router/intercept-resolution.d.ts +66 -0
- package/dist/router/intercept-resolution.d.ts.map +1 -0
- package/dist/router/intercept-resolution.js +246 -0
- package/dist/router/intercept-resolution.js.map +1 -0
- package/dist/router/loader-resolution.d.ts +64 -0
- package/dist/router/loader-resolution.d.ts.map +1 -0
- package/dist/router/loader-resolution.js +284 -0
- package/dist/router/loader-resolution.js.map +1 -0
- package/dist/router/logging.d.ts +15 -0
- package/dist/router/logging.d.ts.map +1 -0
- package/dist/router/logging.js +99 -0
- package/dist/router/logging.js.map +1 -0
- package/dist/router/manifest.d.ts +22 -0
- package/dist/router/manifest.d.ts.map +1 -0
- package/dist/router/manifest.js +181 -0
- package/dist/router/manifest.js.map +1 -0
- package/dist/router/match-api.d.ts +35 -0
- package/dist/router/match-api.d.ts.map +1 -0
- package/dist/router/match-api.js +406 -0
- package/dist/router/match-api.js.map +1 -0
- package/dist/router/match-context.d.ts +206 -0
- package/dist/router/match-context.d.ts.map +1 -0
- package/dist/router/match-context.js +17 -0
- package/dist/router/match-context.js.map +1 -0
- package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
- package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
- package/dist/router/match-middleware/background-revalidation.js +75 -0
- package/dist/router/match-middleware/background-revalidation.js.map +1 -0
- package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
- package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
- package/dist/router/match-middleware/cache-lookup.js +257 -0
- package/dist/router/match-middleware/cache-lookup.js.map +1 -0
- package/dist/router/match-middleware/cache-store.d.ts +113 -0
- package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
- package/dist/router/match-middleware/cache-store.js +108 -0
- package/dist/router/match-middleware/cache-store.js.map +1 -0
- package/dist/router/match-middleware/index.d.ts +81 -0
- package/dist/router/match-middleware/index.d.ts.map +1 -0
- package/dist/router/match-middleware/index.js +80 -0
- package/dist/router/match-middleware/index.js.map +1 -0
- package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
- package/dist/router/match-middleware/intercept-resolution.js +134 -0
- package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
- package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
- package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
- package/dist/router/match-middleware/segment-resolution.js +53 -0
- package/dist/router/match-middleware/segment-resolution.js.map +1 -0
- package/dist/router/match-pipelines.d.ts +147 -0
- package/dist/router/match-pipelines.d.ts.map +1 -0
- package/dist/router/match-pipelines.js +82 -0
- package/dist/router/match-pipelines.js.map +1 -0
- package/dist/router/match-result.d.ts +126 -0
- package/dist/router/match-result.d.ts.map +1 -0
- package/dist/router/match-result.js +93 -0
- package/dist/router/match-result.js.map +1 -0
- package/dist/router/metrics.d.ts +20 -0
- package/dist/router/metrics.d.ts.map +1 -0
- package/dist/router/metrics.js +47 -0
- package/dist/router/metrics.js.map +1 -0
- package/dist/router/middleware.d.ts +249 -0
- package/dist/router/middleware.d.ts.map +1 -0
- package/dist/router/middleware.js +434 -0
- package/dist/router/middleware.js.map +1 -0
- package/dist/router/middleware.test.d.ts +2 -0
- package/dist/router/middleware.test.d.ts.map +1 -0
- package/dist/router/middleware.test.js +816 -0
- package/dist/router/middleware.test.js.map +1 -0
- package/dist/router/pattern-matching.d.ts +149 -0
- package/dist/router/pattern-matching.d.ts.map +1 -0
- package/dist/router/pattern-matching.js +349 -0
- package/dist/router/pattern-matching.js.map +1 -0
- package/dist/router/revalidation.d.ts +44 -0
- package/dist/router/revalidation.d.ts.map +1 -0
- package/dist/router/revalidation.js +147 -0
- package/dist/router/revalidation.js.map +1 -0
- package/dist/router/router-context.d.ts +135 -0
- package/dist/router/router-context.d.ts.map +1 -0
- package/dist/router/router-context.js +36 -0
- package/dist/router/router-context.js.map +1 -0
- package/dist/router/segment-resolution.d.ts +127 -0
- package/dist/router/segment-resolution.d.ts.map +1 -0
- package/dist/router/segment-resolution.js +919 -0
- package/dist/router/segment-resolution.js.map +1 -0
- package/dist/router/trie-matching.d.ts +40 -0
- package/dist/router/trie-matching.d.ts.map +1 -0
- package/dist/router/trie-matching.js +127 -0
- package/dist/router/trie-matching.js.map +1 -0
- package/dist/router/types.d.ts +136 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +7 -0
- package/dist/router/types.js.map +1 -0
- package/dist/router.d.ts +753 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.gen.d.ts +6 -0
- package/dist/router.gen.d.ts.map +1 -0
- package/dist/router.gen.js +6 -0
- package/dist/router.gen.js.map +1 -0
- package/dist/router.js +1304 -0
- package/dist/router.js.map +1 -0
- package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
- package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/rsc/__tests__/helpers.test.js +140 -0
- package/dist/rsc/__tests__/helpers.test.js.map +1 -0
- package/dist/rsc/handler.d.ts +45 -0
- package/dist/rsc/handler.d.ts.map +1 -0
- package/dist/rsc/handler.js +1172 -0
- package/dist/rsc/handler.js.map +1 -0
- package/dist/rsc/helpers.d.ts +16 -0
- package/dist/rsc/helpers.d.ts.map +1 -0
- package/dist/rsc/helpers.js +55 -0
- package/dist/rsc/helpers.js.map +1 -0
- package/dist/rsc/index.d.ts +22 -0
- package/dist/rsc/index.d.ts.map +1 -0
- package/dist/rsc/index.js +23 -0
- package/dist/rsc/index.js.map +1 -0
- package/dist/rsc/nonce.d.ts +9 -0
- package/dist/rsc/nonce.d.ts.map +1 -0
- package/dist/rsc/nonce.js +18 -0
- package/dist/rsc/nonce.js.map +1 -0
- package/dist/rsc/types.d.ts +206 -0
- package/dist/rsc/types.d.ts.map +1 -0
- package/dist/rsc/types.js +8 -0
- package/dist/rsc/types.js.map +1 -0
- package/dist/search-params.d.ts +103 -0
- package/dist/search-params.d.ts.map +1 -0
- package/dist/search-params.js +74 -0
- package/dist/search-params.js.map +1 -0
- package/dist/segment-system.d.ts +75 -0
- package/dist/segment-system.d.ts.map +1 -0
- package/dist/segment-system.js +336 -0
- package/dist/segment-system.js.map +1 -0
- package/dist/server/context.d.ts +245 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +197 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/fetchable-loader-store.d.ts +18 -0
- package/dist/server/fetchable-loader-store.d.ts.map +1 -0
- package/dist/server/fetchable-loader-store.js +18 -0
- package/dist/server/fetchable-loader-store.js.map +1 -0
- package/dist/server/handle-store.d.ts +85 -0
- package/dist/server/handle-store.d.ts.map +1 -0
- package/dist/server/handle-store.js +142 -0
- package/dist/server/handle-store.js.map +1 -0
- package/dist/server/loader-registry.d.ts +55 -0
- package/dist/server/loader-registry.d.ts.map +1 -0
- package/dist/server/loader-registry.js +132 -0
- package/dist/server/loader-registry.js.map +1 -0
- package/dist/server/request-context.d.ts +226 -0
- package/dist/server/request-context.d.ts.map +1 -0
- package/dist/server/request-context.js +290 -0
- package/dist/server/request-context.js.map +1 -0
- package/dist/server/root-layout.d.ts +4 -0
- package/dist/server/root-layout.d.ts.map +1 -0
- package/dist/server/root-layout.js +5 -0
- package/dist/server/root-layout.js.map +1 -0
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +20 -0
- package/dist/server.js.map +1 -0
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
- package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
- package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
- package/dist/ssr/index.d.ts +98 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/index.js +158 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/static-handler.d.ts +50 -0
- package/dist/static-handler.d.ts.map +1 -0
- package/dist/static-handler.gen.d.ts +5 -0
- package/dist/static-handler.gen.d.ts.map +1 -0
- package/dist/static-handler.gen.js +5 -0
- package/dist/static-handler.gen.js.map +1 -0
- package/dist/static-handler.js +29 -0
- package/dist/static-handler.js.map +1 -0
- package/dist/testing/vitest.js +82 -0
- package/dist/theme/ThemeProvider.d.ts +20 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +240 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/ThemeScript.d.ts +48 -0
- package/dist/theme/ThemeScript.d.ts.map +1 -0
- package/dist/theme/ThemeScript.js +13 -0
- package/dist/theme/ThemeScript.js.map +1 -0
- package/dist/theme/__tests__/theme.test.d.ts +2 -0
- package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
- package/dist/theme/__tests__/theme.test.js +103 -0
- package/dist/theme/__tests__/theme.test.js.map +1 -0
- package/dist/theme/constants.d.ts +29 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/constants.js +48 -0
- package/dist/theme/constants.js.map +1 -0
- package/dist/theme/index.d.ts +31 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +36 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-context.d.ts +40 -0
- package/dist/theme/theme-context.d.ts.map +1 -0
- package/dist/theme/theme-context.js +60 -0
- package/dist/theme/theme-context.js.map +1 -0
- package/dist/theme/theme-script.d.ts +27 -0
- package/dist/theme/theme-script.d.ts.map +1 -0
- package/dist/theme/theme-script.js +147 -0
- package/dist/theme/theme-script.js.map +1 -0
- package/dist/theme/types.d.ts +163 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +11 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/use-theme.d.ts +12 -0
- package/dist/theme/use-theme.d.ts.map +1 -0
- package/dist/theme/use-theme.js +40 -0
- package/dist/theme/use-theme.js.map +1 -0
- package/dist/types/__internal.d.ts +127 -0
- package/dist/types/bin/rango.d.ts +1 -0
- package/dist/types/browser/action-coordinator.d.ts +57 -0
- package/dist/types/browser/action-fence.d.ts +33 -0
- package/dist/types/browser/app-shell.d.ts +34 -0
- package/dist/types/browser/app-version.d.ts +6 -0
- package/dist/types/browser/connection-warmup.d.ts +31 -0
- package/dist/types/browser/cookie-name.d.ts +66 -0
- package/dist/types/browser/dev-discovery.d.ts +11 -0
- package/dist/types/browser/event-controller.d.ts +231 -0
- package/dist/types/browser/history-state.d.ts +26 -0
- package/dist/types/browser/index.d.ts +1 -0
- package/dist/types/browser/intercept-utils.d.ts +30 -0
- package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
- package/dist/types/browser/link-interceptor.d.ts +53 -0
- package/dist/types/browser/logging.d.ts +33 -0
- package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
- package/dist/types/browser/navigation-bridge.d.ts +39 -0
- package/dist/types/browser/navigation-client.d.ts +17 -0
- package/dist/types/browser/navigation-store-handle.d.ts +25 -0
- package/dist/types/browser/navigation-store.d.ts +85 -0
- package/dist/types/browser/navigation-transaction.d.ts +75 -0
- package/dist/types/browser/network-error-handler.d.ts +35 -0
- package/dist/types/browser/notify-listeners.d.ts +2 -0
- package/dist/types/browser/partial-update.d.ts +61 -0
- package/dist/types/browser/prefetch/cache.d.ts +224 -0
- package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
- package/dist/types/browser/prefetch/fetch.d.ts +52 -0
- package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
- package/dist/types/browser/prefetch/loader.d.ts +12 -0
- package/dist/types/browser/prefetch/observer.d.ts +24 -0
- package/dist/types/browser/prefetch/policy.d.ts +13 -0
- package/dist/types/browser/prefetch/queue.d.ts +48 -0
- package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
- package/dist/types/browser/prefetch/runtime.d.ts +2 -0
- package/dist/types/browser/rango-state.d.ts +56 -0
- package/dist/types/browser/react/Link.d.ts +132 -0
- package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
- package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
- package/dist/types/browser/react/context.d.ts +57 -0
- package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
- package/dist/types/browser/react/index.d.ts +1 -0
- package/dist/types/browser/react/location-state-shared.d.ts +162 -0
- package/dist/types/browser/react/location-state.d.ts +29 -0
- package/dist/types/browser/react/mount-context.d.ts +23 -0
- package/dist/types/browser/react/nonce-context.d.ts +14 -0
- package/dist/types/browser/react/shallow-equal.d.ts +5 -0
- package/dist/types/browser/react/use-action.d.ts +61 -0
- package/dist/types/browser/react/use-handle.d.ts +21 -0
- package/dist/types/browser/react/use-href.d.ts +32 -0
- package/dist/types/browser/react/use-link-status.d.ts +36 -0
- package/dist/types/browser/react/use-mount.d.ts +24 -0
- package/dist/types/browser/react/use-navigation.d.ts +15 -0
- package/dist/types/browser/react/use-params.d.ts +21 -0
- package/dist/types/browser/react/use-pathname.d.ts +13 -0
- package/dist/types/browser/react/use-reverse.d.ts +40 -0
- package/dist/types/browser/react/use-router.d.ts +30 -0
- package/dist/types/browser/react/use-search-params.d.ts +66 -0
- package/dist/types/browser/react/use-segments.d.ts +29 -0
- package/dist/types/browser/response-adapter.d.ts +58 -0
- package/dist/types/browser/rsc-router.d.ts +146 -0
- package/dist/types/browser/scroll-restoration.d.ts +103 -0
- package/dist/types/browser/segment-reconciler.d.ts +74 -0
- package/dist/types/browser/segment-structure-assert.d.ts +16 -0
- package/dist/types/browser/server-action-bridge.d.ts +29 -0
- package/dist/types/browser/types.d.ts +546 -0
- package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
- package/dist/types/build/collect-fallback-refs.d.ts +5 -0
- package/dist/types/build/generate-manifest.d.ts +106 -0
- package/dist/types/build/generate-route-types.d.ts +8 -0
- package/dist/types/build/index.d.ts +21 -0
- package/dist/types/build/merge-full-manifests.d.ts +3 -0
- package/dist/types/build/prefix-tree-utils.d.ts +56 -0
- package/dist/types/build/route-trie.d.ts +20 -0
- package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
- package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
- package/dist/types/build/route-types/codegen.d.ts +16 -0
- package/dist/types/build/route-types/include-resolution.d.ts +74 -0
- package/dist/types/build/route-types/param-extraction.d.ts +13 -0
- package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
- package/dist/types/build/route-types/router-processing.d.ts +81 -0
- package/dist/types/build/route-types/scan-filter.d.ts +17 -0
- package/dist/types/build/route-types/source-scan.d.ts +13 -0
- package/dist/types/build/runtime-discovery.d.ts +24 -0
- package/dist/types/cache/background-task.d.ts +21 -0
- package/dist/types/cache/cache-error.d.ts +71 -0
- package/dist/types/cache/cache-exec-scope.d.ts +31 -0
- package/dist/types/cache/cache-key-utils.d.ts +43 -0
- package/dist/types/cache/cache-policy.d.ts +59 -0
- package/dist/types/cache/cache-runtime.d.ts +51 -0
- package/dist/types/cache/cache-scope.d.ts +215 -0
- package/dist/types/cache/cache-tag.d.ts +79 -0
- package/dist/types/cache/cf/cf-base64.d.ts +4 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
- package/dist/types/cache/cf/cf-cache-store.d.ts +630 -0
- package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
- package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
- package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
- package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
- package/dist/types/cache/cf/index.d.ts +4 -0
- package/dist/types/cache/document-cache.d.ts +71 -0
- package/dist/types/cache/handle-capture.d.ts +23 -0
- package/dist/types/cache/handle-snapshot.d.ts +39 -0
- package/dist/types/cache/index.d.ts +9 -0
- package/dist/types/cache/memory-segment-store.d.ts +163 -0
- package/dist/types/cache/profile-registry.d.ts +40 -0
- package/dist/types/cache/read-through-swr.d.ts +61 -0
- package/dist/types/cache/search-params-filter.d.ts +64 -0
- package/dist/types/cache/segment-codec.d.ts +78 -0
- package/dist/types/cache/shell-snapshot.d.ts +186 -0
- package/dist/types/cache/tag-invalidation.d.ts +74 -0
- package/dist/types/cache/taint.d.ts +77 -0
- package/dist/types/cache/types.d.ts +522 -0
- package/dist/types/cache/vercel/index.d.ts +1 -0
- package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
- 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 +71 -0
- package/dist/types/client-urls/types.d.ts +148 -0
- package/dist/types/client.d.ts +192 -0
- package/dist/types/client.rsc.d.ts +42 -0
- package/dist/types/cloudflare/index.d.ts +7 -0
- package/dist/types/cloudflare/tracing.d.ts +57 -0
- package/dist/types/component-utils.d.ts +46 -0
- package/dist/types/components/DefaultDocument.d.ts +13 -0
- package/dist/types/context-var.d.ts +84 -0
- package/dist/types/debug.d.ts +57 -0
- package/dist/types/decode-loader-results.d.ts +42 -0
- package/dist/types/default-error-boundary.d.ts +10 -0
- package/dist/types/defer.d.ts +89 -0
- package/dist/types/deps/browser.d.ts +1 -0
- package/dist/types/deps/html-stream-client.d.ts +1 -0
- package/dist/types/deps/html-stream-server.d.ts +1 -0
- package/dist/types/deps/rsc.d.ts +1 -0
- package/dist/types/deps/ssr.d.ts +1 -0
- package/dist/types/dev-discovery-protocol.d.ts +5 -0
- package/dist/types/encode-kv.d.ts +35 -0
- package/dist/types/errors.d.ts +227 -0
- package/dist/types/escape-script.d.ts +44 -0
- package/dist/types/handle.d.ts +93 -0
- package/dist/types/handles/MetaTags.d.ts +17 -0
- package/dist/types/handles/Scripts.d.ts +38 -0
- package/dist/types/handles/breadcrumbs.d.ts +43 -0
- package/dist/types/handles/deferred-resolution.d.ts +53 -0
- package/dist/types/handles/is-thenable.d.ts +10 -0
- package/dist/types/handles/meta.d.ts +43 -0
- package/dist/types/handles/script.d.ts +139 -0
- package/dist/types/host/cookie-handler.d.ts +8 -0
- package/dist/types/host/errors.d.ts +40 -0
- package/dist/types/host/index.d.ts +33 -0
- package/dist/types/host/pattern-matcher.d.ts +30 -0
- package/dist/types/host/router.d.ts +12 -0
- package/dist/types/host/testing.d.ts +41 -0
- package/dist/types/host/types.d.ts +148 -0
- package/dist/types/host/utils.d.ts +20 -0
- package/dist/types/href-client.d.ts +214 -0
- package/dist/types/index.d.ts +113 -0
- package/dist/types/index.rsc.d.ts +52 -0
- package/dist/types/internal-debug.d.ts +1 -0
- package/dist/types/loader-redirect.d.ts +27 -0
- package/dist/types/loader-store.d.ts +193 -0
- package/dist/types/loader.d.ts +18 -0
- package/dist/types/loader.rsc.d.ts +18 -0
- package/dist/types/missing-id-error.d.ts +1 -0
- package/dist/types/outlet-context.d.ts +32 -0
- package/dist/types/outlet-provider.d.ts +15 -0
- package/dist/types/prerender/build-shell-capture.d.ts +104 -0
- package/dist/types/prerender/param-hash.d.ts +6 -0
- package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
- package/dist/types/prerender/store.d.ts +63 -0
- package/dist/types/prerender.d.ts +292 -0
- package/dist/types/redirect-origin.d.ts +71 -0
- package/dist/types/regex-escape.d.ts +6 -0
- package/dist/types/render-error-thrower.d.ts +13 -0
- package/dist/types/response-utils.d.ts +35 -0
- package/dist/types/reverse.d.ts +206 -0
- package/dist/types/root-error-boundary.d.ts +32 -0
- package/dist/types/route-content-wrapper.d.ts +84 -0
- package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
- package/dist/types/route-definition/helper-factories.d.ts +22 -0
- package/dist/types/route-definition/helpers-types.d.ts +405 -0
- package/dist/types/route-definition/index.d.ts +7 -0
- package/dist/types/route-definition/redirect.d.ts +48 -0
- package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
- package/dist/types/route-definition/use-item-types.d.ts +1 -0
- package/dist/types/route-definition.d.ts +1 -0
- package/dist/types/route-map-builder.d.ts +102 -0
- package/dist/types/route-name.d.ts +27 -0
- package/dist/types/route-types.d.ts +172 -0
- package/dist/types/router/basename.d.ts +10 -0
- package/dist/types/router/content-negotiation.d.ts +91 -0
- package/dist/types/router/debug-manifest.d.ts +7 -0
- package/dist/types/router/error-handling.d.ts +110 -0
- package/dist/types/router/find-match.d.ts +19 -0
- package/dist/types/router/handler-context.d.ts +41 -0
- package/dist/types/router/instrument.d.ts +191 -0
- package/dist/types/router/intercept-resolution.d.ts +91 -0
- package/dist/types/router/lazy-includes.d.ts +26 -0
- package/dist/types/router/loader-resolution.d.ts +85 -0
- package/dist/types/router/logging.d.ts +41 -0
- package/dist/types/router/manifest.d.ts +8 -0
- package/dist/types/router/match-api.d.ts +19 -0
- package/dist/types/router/match-context.d.ts +184 -0
- package/dist/types/router/match-handlers.d.ts +48 -0
- package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
- package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
- package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
- package/dist/types/router/match-middleware/index.d.ts +80 -0
- package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
- package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
- package/dist/types/router/match-pipelines.d.ts +103 -0
- package/dist/types/router/match-result.d.ts +114 -0
- package/dist/types/router/metrics.d.ts +6 -0
- package/dist/types/router/middleware-types.d.ts +74 -0
- package/dist/types/router/middleware.d.ts +116 -0
- package/dist/types/router/navigation-snapshot.d.ts +51 -0
- package/dist/types/router/params-util.d.ts +8 -0
- package/dist/types/router/parse-pattern.d.ts +38 -0
- package/dist/types/router/pattern-matching.d.ts +169 -0
- package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
- package/dist/types/router/prefetch-default.d.ts +28 -0
- package/dist/types/router/prefetch-limits.d.ts +20 -0
- package/dist/types/router/prerender-match.d.ts +53 -0
- package/dist/types/router/preview-match.d.ts +22 -0
- package/dist/types/router/request-classification.d.ts +104 -0
- package/dist/types/router/revalidation.d.ts +64 -0
- package/dist/types/router/route-snapshot.d.ts +112 -0
- package/dist/types/router/route-trie-builder.d.ts +77 -0
- package/dist/types/router/router-context.d.ts +137 -0
- package/dist/types/router/router-interfaces.d.ts +461 -0
- package/dist/types/router/router-options.d.ts +792 -0
- package/dist/types/router/router-registry.d.ts +15 -0
- package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
- package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
- package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
- package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
- package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
- package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
- package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
- package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
- package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
- package/dist/types/router/segment-resolution.d.ts +3 -0
- package/dist/types/router/segment-wrappers.d.ts +53 -0
- package/dist/types/router/state-cookie-name.d.ts +1 -0
- package/dist/types/router/substitute-pattern-params.d.ts +23 -0
- package/dist/types/router/telemetry-otel.d.ts +113 -0
- package/dist/types/router/telemetry.d.ts +216 -0
- package/dist/types/router/timeout.d.ts +107 -0
- package/dist/types/router/tracing.d.ts +139 -0
- package/dist/types/router/transition-when.d.ts +13 -0
- package/dist/types/router/trie-matching.d.ts +32 -0
- package/dist/types/router/types.d.ts +98 -0
- package/dist/types/router/url-params.d.ts +26 -0
- package/dist/types/router.d.ts +7 -0
- package/dist/types/rsc/capture-queue.d.ts +49 -0
- package/dist/types/rsc/full-payload.d.ts +22 -0
- package/dist/types/rsc/handler-context.d.ts +32 -0
- package/dist/types/rsc/handler.d.ts +9 -0
- package/dist/types/rsc/helpers.d.ts +127 -0
- package/dist/types/rsc/index.d.ts +17 -0
- package/dist/types/rsc/json-route-result.d.ts +20 -0
- package/dist/types/rsc/loader-fetch.d.ts +14 -0
- package/dist/types/rsc/manifest-init.d.ts +18 -0
- package/dist/types/rsc/nonce.d.ts +38 -0
- package/dist/types/rsc/origin-guard.d.ts +50 -0
- package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
- package/dist/types/rsc/redirect-guard.d.ts +37 -0
- package/dist/types/rsc/render-pipeline.d.ts +148 -0
- package/dist/types/rsc/response-cache-serve.d.ts +46 -0
- package/dist/types/rsc/response-error.d.ts +19 -0
- package/dist/types/rsc/response-route-handler.d.ts +29 -0
- package/dist/types/rsc/routine-plan.d.ts +124 -0
- package/dist/types/rsc/rsc-rendering.d.ts +18 -0
- package/dist/types/rsc/runtime-warnings.d.ts +22 -0
- package/dist/types/rsc/server-action.d.ts +68 -0
- package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
- package/dist/types/rsc/shell-capture.d.ts +425 -0
- package/dist/types/rsc/shell-serve.d.ts +200 -0
- package/dist/types/rsc/ssr-setup.d.ts +73 -0
- package/dist/types/rsc/stream-idle.d.ts +60 -0
- package/dist/types/rsc/transition-gate.d.ts +23 -0
- package/dist/types/rsc/types.d.ts +353 -0
- package/dist/types/runtime-env.d.ts +1 -0
- package/dist/types/search-params.d.ts +125 -0
- package/dist/types/segment-content-promise.d.ts +13 -0
- package/dist/types/segment-fragments.d.ts +79 -0
- package/dist/types/segment-loader-promise.d.ts +22 -0
- package/dist/types/segment-system.d.ts +86 -0
- package/dist/types/serialize.d.ts +164 -0
- package/dist/types/server/context.d.ts +520 -0
- package/dist/types/server/cookie-parse.d.ts +10 -0
- package/dist/types/server/cookie-store.d.ts +107 -0
- package/dist/types/server/fetchable-loader-store.d.ts +20 -0
- package/dist/types/server/handle-store.d.ts +131 -0
- package/dist/types/server/loader-registry.d.ts +32 -0
- package/dist/types/server/request-context.d.ts +717 -0
- package/dist/types/server/root-layout.d.ts +3 -0
- package/dist/types/server.d.ts +16 -0
- package/dist/types/ssr/index.d.ts +271 -0
- package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
- package/dist/types/ssr/preinit-client-references.d.ts +71 -0
- package/dist/types/ssr/ssr-root.d.ts +84 -0
- package/dist/types/ssr-suspension-warning.d.ts +19 -0
- package/dist/types/static-handler.d.ts +71 -0
- package/dist/types/testing/cache-status.d.ts +63 -0
- package/dist/types/testing/collect-handle.d.ts +20 -0
- package/dist/types/testing/dispatch.d.ts +127 -0
- package/dist/types/testing/dom.entry.d.ts +15 -0
- package/dist/types/testing/e2e/fixture.d.ts +37 -0
- package/dist/types/testing/e2e/index.d.ts +31 -0
- package/dist/types/testing/e2e/matchers.d.ts +17 -0
- package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
- package/dist/types/testing/e2e/parity.d.ts +111 -0
- package/dist/types/testing/e2e/server.d.ts +35 -0
- package/dist/types/testing/flight-matchers.d.ts +55 -0
- package/dist/types/testing/flight-normalize.d.ts +1 -0
- package/dist/types/testing/flight-tree.d.ts +192 -0
- package/dist/types/testing/flight.d.ts +115 -0
- package/dist/types/testing/flight.entry.d.ts +27 -0
- package/dist/types/testing/generated-routes.d.ts +66 -0
- package/dist/types/testing/index.d.ts +54 -0
- package/dist/types/testing/internal/context.d.ts +225 -0
- package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
- package/dist/types/testing/internal/seed-vars.d.ts +30 -0
- package/dist/types/testing/render-handler.d.ts +160 -0
- package/dist/types/testing/render-route.d.ts +265 -0
- package/dist/types/testing/run-loader.d.ts +195 -0
- package/dist/types/testing/run-middleware.d.ts +132 -0
- package/dist/types/testing/run-transition-when.d.ts +78 -0
- package/dist/types/testing/shell-status.d.ts +81 -0
- package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
- package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
- package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
- package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
- package/dist/types/testing/vitest.d.ts +205 -0
- package/dist/types/theme/ThemeProvider.d.ts +13 -0
- package/dist/types/theme/ThemeScript.d.ts +45 -0
- package/dist/types/theme/constants.d.ts +39 -0
- package/dist/types/theme/index.d.ts +29 -0
- package/dist/types/theme/theme-context.d.ts +21 -0
- package/dist/types/theme/theme-script.d.ts +26 -0
- package/dist/types/theme/types.d.ts +162 -0
- package/dist/types/theme/use-theme.d.ts +8 -0
- package/dist/types/types/boundaries.d.ts +115 -0
- package/dist/types/types/cache-types.d.ts +191 -0
- package/dist/types/types/error-types.d.ts +114 -0
- package/dist/types/types/global-namespace.d.ts +90 -0
- package/dist/types/types/handler-context.d.ts +658 -0
- package/dist/types/types/index.d.ts +11 -0
- package/dist/types/types/loader-types.d.ts +240 -0
- package/dist/types/types/request-scope.d.ts +93 -0
- package/dist/types/types/route-config.d.ts +105 -0
- package/dist/types/types/route-entry.d.ts +98 -0
- package/dist/types/types/segments.d.ts +254 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/urls/include-helper.d.ts +17 -0
- package/dist/types/urls/include-provider.d.ts +27 -0
- package/dist/types/urls/index.d.ts +6 -0
- package/dist/types/urls/path-helper-types.d.ts +207 -0
- package/dist/types/urls/path-helper.d.ts +12 -0
- package/dist/types/urls/pattern-types.d.ts +166 -0
- package/dist/types/urls/response-types.d.ts +67 -0
- package/dist/types/urls/type-extraction.d.ts +157 -0
- package/dist/types/urls/urls-function.d.ts +24 -0
- package/dist/types/urls.d.ts +1 -0
- package/dist/types/use-loader.d.ts +150 -0
- package/dist/types/vercel/index.d.ts +10 -0
- package/dist/types/vercel/tracing.d.ts +71 -0
- package/dist/types/vite/debug.d.ts +80 -0
- package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
- package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
- package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
- package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
- package/dist/types/vite/discovery/gate-state.d.ts +79 -0
- package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
- package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
- package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
- package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
- package/dist/types/vite/discovery/state.d.ts +170 -0
- package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
- package/dist/types/vite/encryption-key.d.ts +2 -0
- package/dist/types/vite/index.d.ts +11 -0
- package/dist/types/vite/inject-client-debug.d.ts +56 -0
- package/dist/types/vite/plugin-types.d.ts +298 -0
- package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
- package/dist/types/vite/plugins/client-ref-dedup.d.ts +29 -0
- package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
- package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
- package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
- package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
- package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
- package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
- package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
- package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
- package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
- package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
- package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -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/plugins/use-cache-transform.d.ts +20 -0
- package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
- package/dist/types/vite/plugins/version-injector.d.ts +21 -0
- package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
- package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
- package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
- package/dist/types/vite/rango.d.ts +29 -0
- package/dist/types/vite/router-discovery.d.ts +23 -0
- package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
- package/dist/types/vite/utils/banner.d.ts +2 -0
- package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
- package/dist/types/vite/utils/client-chunks.d.ts +55 -0
- package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
- package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
- package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
- package/dist/types/vite/utils/package-resolution.d.ts +6 -0
- package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
- package/dist/types/vite/utils/shared-utils.d.ts +67 -0
- package/dist/types.d.ts +1479 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/urls.d.ts +441 -0
- package/dist/urls.d.ts.map +1 -0
- package/dist/urls.gen.d.ts +8 -0
- package/dist/urls.gen.d.ts.map +1 -0
- package/dist/urls.gen.js +8 -0
- package/dist/urls.gen.js.map +1 -0
- package/dist/urls.js +443 -0
- package/dist/urls.js.map +1 -0
- package/dist/use-loader.d.ts +127 -0
- package/dist/use-loader.d.ts.map +1 -0
- package/dist/use-loader.js +237 -0
- package/dist/use-loader.js.map +1 -0
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
- package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
- package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
- package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-router-id.test.js +39 -0
- package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
- package/dist/vite/ast-handler-extract.d.ts +49 -0
- package/dist/vite/ast-handler-extract.d.ts.map +1 -0
- package/dist/vite/ast-handler-extract.js +249 -0
- package/dist/vite/ast-handler-extract.js.map +1 -0
- package/dist/vite/expose-action-id.d.ts +19 -0
- package/dist/vite/expose-action-id.d.ts.map +1 -0
- package/dist/vite/expose-action-id.js +250 -0
- package/dist/vite/expose-action-id.js.map +1 -0
- package/dist/vite/expose-id-utils.d.ts +69 -0
- package/dist/vite/expose-id-utils.d.ts.map +1 -0
- package/dist/vite/expose-id-utils.js +289 -0
- package/dist/vite/expose-id-utils.js.map +1 -0
- package/dist/vite/expose-internal-ids.d.ts +22 -0
- package/dist/vite/expose-internal-ids.d.ts.map +1 -0
- package/dist/vite/expose-internal-ids.js +886 -0
- package/dist/vite/expose-internal-ids.js.map +1 -0
- package/dist/vite/index.d.ts +149 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +10793 -4122
- package/dist/vite/index.js.bak +5448 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/index.named-routes.gen.ts +103 -0
- package/dist/vite/package-resolution.d.ts +43 -0
- package/dist/vite/package-resolution.d.ts.map +1 -0
- package/dist/vite/package-resolution.js +112 -0
- package/dist/vite/package-resolution.js.map +1 -0
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/dist/vite/virtual-entries.d.ts +25 -0
- package/dist/vite/virtual-entries.d.ts.map +1 -0
- package/dist/vite/virtual-entries.js +110 -0
- package/dist/vite/virtual-entries.js.map +1 -0
- package/package.json +121 -38
- package/skills/api-client/SKILL.md +211 -0
- package/skills/breadcrumbs/SKILL.md +117 -8
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +232 -34
- package/skills/caching/SKILL.md +375 -19
- package/skills/catalog.json +289 -0
- package/skills/client-urls/SKILL.md +339 -0
- package/skills/cloudflare/SKILL.md +153 -0
- package/skills/cloudflare/agents/openai.yaml +4 -0
- package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
- package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
- package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
- package/skills/comparison/SKILL.md +50 -0
- package/skills/comparison/agents/openai.yaml +4 -0
- package/skills/comparison/references/framework-comparison.md +858 -0
- package/skills/composability/SKILL.md +124 -4
- package/skills/css/SKILL.md +76 -0
- package/skills/debug-manifest/SKILL.md +5 -11
- package/skills/defer-hydration/SKILL.md +235 -0
- package/skills/deployment-caching/SKILL.md +176 -0
- package/skills/document-cache/SKILL.md +116 -58
- package/skills/fonts/SKILL.md +1 -1
- package/skills/handler-use/SKILL.md +12 -10
- package/skills/hooks/SKILL.md +73 -691
- package/skills/hooks/data.md +282 -0
- package/skills/hooks/handle-and-actions.md +110 -0
- package/skills/hooks/navigation.md +110 -0
- package/skills/hooks/outlets.md +62 -0
- package/skills/hooks/state.md +228 -0
- package/skills/hooks/urls.md +172 -0
- package/skills/host-router/SKILL.md +129 -27
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +75 -19
- package/skills/layout/SKILL.md +40 -19
- package/skills/links/SKILL.md +283 -17
- package/skills/loader/SKILL.md +362 -11
- package/skills/middleware/SKILL.md +58 -13
- package/skills/migrate-nextjs/SKILL.md +336 -42
- package/skills/migrate-nextjs/backend-host-swap.md +120 -0
- package/skills/migrate-react-router/SKILL.md +95 -670
- package/skills/migrate-react-router/component-migration.md +201 -0
- package/skills/migrate-react-router/data-and-actions.md +236 -0
- package/skills/migrate-react-router/route-mapping.md +284 -0
- package/skills/mime-routes/SKILL.md +55 -18
- package/skills/observability/SKILL.md +231 -0
- package/skills/parallel/SKILL.md +72 -11
- package/skills/ppr/SKILL.md +918 -0
- package/skills/prerender/SKILL.md +137 -71
- package/skills/rango/SKILL.md +325 -26
- package/skills/react-compiler/SKILL.md +168 -0
- package/skills/response-routes/SKILL.md +180 -52
- package/skills/route/SKILL.md +126 -9
- package/skills/router-setup/SKILL.md +69 -11
- package/skills/scripts/SKILL.md +189 -0
- package/skills/server-actions/SKILL.md +776 -0
- package/skills/shell-manifest/SKILL.md +194 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/tailwind/SKILL.md +28 -4
- package/skills/testing/SKILL.md +131 -0
- package/skills/testing/bindings.md +103 -0
- package/skills/testing/cache-prerender.md +172 -0
- package/skills/testing/client-components.md +131 -0
- package/skills/testing/e2e-parity.md +125 -0
- package/skills/testing/flight.md +91 -0
- package/skills/testing/handles.md +153 -0
- package/skills/testing/loader.md +130 -0
- package/skills/testing/middleware.md +99 -0
- package/skills/testing/render-handler.md +122 -0
- package/skills/testing/response-routes.md +95 -0
- package/skills/testing/reverse-and-types.md +85 -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/theme/SKILL.md +9 -6
- package/skills/typesafety/SKILL.md +45 -626
- package/skills/typesafety/env-and-bindings.md +254 -0
- package/skills/typesafety/generated-files-and-cli.md +342 -0
- package/skills/typesafety/params-and-search.md +153 -0
- package/skills/typesafety/route-types.md +213 -0
- package/skills/use-cache/SKILL.md +121 -15
- package/skills/vercel/SKILL.md +149 -0
- package/skills/view-transitions/SKILL.md +341 -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/bin/rango.ts +7 -3
- 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/dev-discovery.ts +66 -0
- package/src/browser/event-controller.ts +400 -168
- 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/link-interceptor.ts +469 -20
- package/src/browser/logging.ts +28 -0
- package/src/browser/merge-segment-loaders.ts +6 -4
- package/src/browser/navigation-bridge.ts +171 -27
- package/src/browser/navigation-client.ts +216 -90
- package/src/browser/navigation-store-handle.ts +38 -0
- package/src/browser/navigation-store.ts +167 -323
- package/src/browser/navigation-transaction.ts +9 -59
- package/src/browser/network-error-handler.ts +34 -7
- package/src/browser/notify-listeners.ts +22 -0
- package/src/browser/partial-update.ts +243 -144
- package/src/browser/prefetch/cache.ts +325 -84
- package/src/browser/prefetch/default-strategy.ts +74 -0
- package/src/browser/prefetch/fetch.ts +411 -69
- package/src/browser/prefetch/invalidation.ts +30 -0
- package/src/browser/prefetch/loader.ts +111 -0
- package/src/browser/prefetch/observer.ts +50 -22
- package/src/browser/prefetch/queue.ts +61 -12
- package/src/browser/prefetch/runtime.ts +6 -0
- package/src/browser/rango-state.ts +178 -75
- package/src/browser/react/Link.tsx +160 -92
- package/src/browser/react/NavigationProvider.tsx +211 -121
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/context.ts +4 -0
- 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 +10 -5
- 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 +62 -11
- package/src/browser/react/use-search-params.ts +140 -22
- package/src/browser/react/use-segments.ts +11 -21
- package/src/browser/response-adapter.ts +99 -8
- package/src/browser/rsc-router.tsx +248 -32
- package/src/browser/scroll-restoration.ts +37 -22
- package/src/browser/segment-reconciler.ts +31 -21
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/browser/server-action-bridge.ts +262 -65
- package/src/browser/types.ts +132 -34
- package/src/browser/validate-redirect-origin.ts +43 -16
- package/src/build/collect-fallback-refs.ts +107 -0
- package/src/build/generate-manifest.ts +213 -184
- package/src/build/generate-route-types.ts +3 -1
- package/src/build/index.ts +11 -3
- package/src/build/merge-full-manifests.ts +161 -0
- package/src/build/prefix-tree-utils.ts +123 -0
- package/src/build/route-trie.ts +43 -280
- 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 +513 -64
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/per-module-writer.ts +33 -12
- package/src/build/route-types/router-processing.ts +312 -204
- 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 +32 -29
- package/src/cache/cache-error.ts +104 -0
- package/src/cache/cache-exec-scope.ts +47 -0
- package/src/cache/cache-key-utils.ts +73 -15
- package/src/cache/cache-policy.ts +108 -34
- package/src/cache/cache-runtime.ts +566 -121
- package/src/cache/cache-scope.ts +383 -105
- package/src/cache/cache-tag.ts +149 -0
- package/src/cache/cf/cf-base64.ts +33 -0
- package/src/cache/cf/cf-cache-constants.ts +134 -0
- package/src/cache/cf/cf-cache-store.ts +3083 -392
- package/src/cache/cf/cf-cache-types.ts +417 -0
- package/src/cache/cf/cf-kv-utils.ts +84 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
- package/src/cache/cf/cf-zone-purge.ts +101 -0
- package/src/cache/cf/index.ts +11 -16
- package/src/cache/document-cache.ts +184 -53
- package/src/cache/handle-snapshot.ts +92 -1
- package/src/cache/index.ts +32 -20
- package/src/cache/memory-segment-store.ts +286 -37
- package/src/cache/profile-registry.ts +46 -31
- package/src/cache/read-through-swr.ts +66 -16
- package/src/cache/search-params-filter.ts +118 -0
- package/src/cache/segment-codec.ts +80 -25
- package/src/cache/shell-snapshot.ts +516 -0
- package/src/cache/tag-invalidation.ts +230 -0
- package/src/cache/taint.ts +28 -9
- package/src/cache/types.ts +343 -100
- package/src/cache/vercel/index.ts +11 -0
- package/src/cache/vercel/vercel-cache-store.ts +1264 -0
- package/src/client-urls/client-root.tsx +168 -0
- package/src/client-urls/client-urls.ts +779 -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 +670 -0
- package/src/client-urls/types.ts +202 -0
- package/src/client.rsc.tsx +53 -21
- package/src/client.tsx +82 -67
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +112 -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 +165 -0
- package/src/defer.ts +185 -0
- package/src/deps/ssr.ts +4 -2
- package/src/dev-discovery-protocol.ts +11 -0
- package/src/encode-kv.ts +49 -0
- package/src/errors.ts +44 -4
- package/src/escape-script.ts +52 -0
- package/src/handle.ts +67 -37
- package/src/handles/MetaTags.tsx +24 -53
- package/src/handles/Scripts.tsx +183 -0
- package/src/handles/breadcrumbs.ts +35 -8
- package/src/handles/deferred-resolution.ts +134 -0
- package/src/handles/is-thenable.ts +16 -0
- package/src/handles/meta.ts +14 -40
- package/src/handles/script.ts +244 -0
- package/src/host/cookie-handler.ts +9 -60
- package/src/host/errors.ts +13 -22
- package/src/host/index.ts +9 -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 +108 -12
- package/src/index.ts +106 -14
- package/src/internal-debug.ts +11 -10
- package/src/loader-redirect.tsx +64 -0
- 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 +21 -1
- package/src/outlet-provider.tsx +20 -6
- package/src/prerender/build-shell-capture.ts +453 -0
- package/src/prerender/param-hash.ts +16 -16
- package/src/prerender/shell-manifest-key.ts +20 -0
- package/src/prerender/store.ts +47 -38
- package/src/prerender.ts +81 -13
- package/src/redirect-origin.ts +172 -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 +120 -78
- package/src/route-definition/dsl-helpers.ts +342 -313
- package/src/route-definition/helper-factories.ts +28 -140
- package/src/route-definition/helpers-types.ts +106 -62
- package/src/route-definition/index.ts +1 -2
- package/src/route-definition/redirect.ts +60 -28
- package/src/route-definition/resolve-handler-use.ts +12 -1
- package/src/route-definition/use-item-types.ts +29 -0
- package/src/route-map-builder.ts +102 -74
- package/src/route-types.ts +19 -46
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +120 -30
- package/src/router/error-handling.ts +110 -29
- package/src/router/find-match.ts +129 -30
- package/src/router/handler-context.ts +58 -57
- package/src/router/instrument.ts +401 -0
- package/src/router/intercept-resolution.ts +98 -21
- package/src/router/lazy-includes.ts +83 -59
- package/src/router/loader-resolution.ts +429 -85
- package/src/router/logging.ts +0 -6
- package/src/router/manifest.ts +74 -40
- package/src/router/match-api.ts +94 -58
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +268 -171
- package/src/router/match-middleware/background-revalidation.ts +40 -24
- package/src/router/match-middleware/cache-lookup.ts +316 -302
- package/src/router/match-middleware/cache-store.ts +134 -52
- 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 +76 -79
- package/src/router/metrics.ts +17 -36
- package/src/router/middleware-types.ts +20 -130
- package/src/router/middleware.ts +302 -172
- package/src/router/navigation-snapshot.ts +51 -60
- package/src/router/params-util.ts +23 -0
- package/src/router/parse-pattern.ts +115 -0
- package/src/router/pattern-matching.ts +181 -150
- package/src/router/prefetch-cache-ttl.ts +51 -0
- package/src/router/prefetch-default.ts +59 -0
- package/src/router/prefetch-limits.ts +37 -0
- package/src/router/prerender-match.ts +159 -69
- package/src/router/preview-match.ts +6 -2
- package/src/router/request-classification.ts +50 -69
- package/src/router/revalidation.ts +146 -83
- package/src/router/route-snapshot.ts +14 -3
- package/src/router/route-trie-builder.ts +334 -0
- package/src/router/router-context.ts +6 -29
- package/src/router/router-interfaces.ts +168 -38
- package/src/router/router-options.ts +235 -11
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +219 -88
- package/src/router/segment-resolution/helpers.ts +96 -18
- package/src/router/segment-resolution/loader-cache.ts +208 -39
- package/src/router/segment-resolution/loader-mask.ts +60 -0
- package/src/router/segment-resolution/loader-snapshot.ts +259 -0
- package/src/router/segment-resolution/mask-nested.ts +99 -0
- package/src/router/segment-resolution/revalidation.ts +318 -321
- package/src/router/segment-resolution/static-store.ts +55 -15
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution/view-transition-default.ts +60 -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 +75 -0
- package/src/router/telemetry-otel.ts +171 -200
- package/src/router/telemetry.ts +106 -20
- package/src/router/timeout.ts +53 -22
- package/src/router/tracing.ts +235 -0
- package/src/router/transition-when.ts +76 -0
- package/src/router/trie-matching.ts +171 -59
- package/src/router/types.ts +9 -63
- package/src/router/url-params.ts +57 -0
- package/src/router.ts +249 -79
- package/src/rsc/capture-queue.ts +218 -0
- package/src/rsc/full-payload.ts +77 -0
- package/src/rsc/handler-context.ts +4 -2
- package/src/rsc/handler.ts +570 -288
- package/src/rsc/helpers.ts +245 -47
- package/src/rsc/index.ts +2 -5
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +116 -40
- package/src/rsc/manifest-init.ts +55 -56
- package/src/rsc/nonce.ts +26 -1
- package/src/rsc/origin-guard.ts +39 -25
- package/src/rsc/progressive-enhancement.ts +378 -83
- package/src/rsc/redirect-guard.ts +102 -0
- package/src/rsc/render-pipeline.ts +611 -0
- package/src/rsc/response-cache-serve.ts +259 -0
- package/src/rsc/response-error.ts +79 -12
- package/src/rsc/response-route-handler.ts +80 -206
- package/src/rsc/routine-plan.ts +359 -0
- package/src/rsc/rsc-rendering.ts +1647 -164
- package/src/rsc/runtime-warnings.ts +23 -10
- package/src/rsc/server-action.ts +421 -138
- package/src/rsc/shell-build-manifest.ts +343 -0
- package/src/rsc/shell-capture-constants.ts +45 -0
- package/src/rsc/shell-capture.ts +2135 -0
- package/src/rsc/shell-serve.ts +350 -0
- package/src/rsc/ssr-setup.ts +124 -16
- package/src/rsc/stream-idle.ts +137 -0
- package/src/rsc/transition-gate.ts +86 -0
- package/src/rsc/types.ts +125 -7
- package/src/runtime-env.ts +18 -0
- package/src/search-params.ts +35 -30
- package/src/segment-fragments.ts +165 -0
- package/src/segment-loader-promise.ts +49 -4
- package/src/segment-system.tsx +463 -153
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +426 -55
- package/src/server/cookie-parse.ts +32 -0
- package/src/server/cookie-store.ts +162 -15
- package/src/server/handle-store.ts +190 -70
- package/src/server/loader-registry.ts +33 -42
- package/src/server/request-context.ts +824 -215
- package/src/server.ts +7 -2
- package/src/ssr/index.tsx +687 -184
- package/src/ssr/inject-rsc-eager.ts +167 -0
- package/src/ssr/preinit-client-references.ts +106 -0
- package/src/ssr/ssr-root.tsx +305 -0
- package/src/ssr-suspension-warning.ts +67 -0
- package/src/static-handler.ts +28 -15
- package/src/testing/cache-status.ts +162 -0
- package/src/testing/collect-handle.ts +46 -0
- package/src/testing/dispatch.ts +951 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +188 -0
- package/src/testing/e2e/index.ts +147 -0
- package/src/testing/e2e/matchers.ts +35 -0
- package/src/testing/e2e/page-helpers.ts +319 -0
- package/src/testing/e2e/parity.ts +400 -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 +199 -0
- package/src/testing/index.ts +121 -0
- package/src/testing/internal/context.ts +380 -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 +371 -0
- package/src/testing/render-route.tsx +667 -0
- package/src/testing/run-loader.ts +423 -0
- package/src/testing/run-middleware.ts +219 -0
- package/src/testing/run-transition-when.ts +197 -0
- package/src/testing/shell-status.ts +206 -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 +56 -84
- 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 +19 -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 +123 -64
- package/src/types/index.ts +4 -10
- package/src/types/loader-types.ts +76 -13
- package/src/types/request-scope.ts +112 -0
- package/src/types/route-config.ts +20 -52
- package/src/types/route-entry.ts +3 -6
- package/src/types/segments.ts +155 -14
- package/src/urls/include-helper.ts +38 -64
- package/src/urls/include-provider.ts +71 -0
- package/src/urls/index.ts +2 -11
- package/src/urls/path-helper-types.ts +88 -25
- package/src/urls/path-helper.ts +30 -110
- package/src/urls/pattern-types.ts +101 -19
- package/src/urls/response-types.ts +22 -29
- package/src/urls/type-extraction.ts +98 -154
- package/src/urls/urls-function.ts +1 -19
- package/src/use-loader.tsx +379 -110
- package/src/vercel/index.ts +11 -0
- package/src/vercel/tracing.ts +89 -0
- package/src/vite/debug.ts +185 -0
- package/src/vite/discovery/bundle-postprocess.ts +18 -14
- package/src/vite/discovery/client-urls-projection.ts +322 -0
- package/src/vite/discovery/dev-prerender-cache.ts +117 -0
- package/src/vite/discovery/discover-routers.ts +178 -151
- package/src/vite/discovery/discovery-errors.ts +255 -0
- package/src/vite/discovery/gate-state.ts +171 -0
- package/src/vite/discovery/prerender-collection.ts +125 -70
- package/src/vite/discovery/route-types-writer.ts +40 -84
- package/src/vite/discovery/self-gen-tracking.ts +27 -1
- package/src/vite/discovery/shell-prerender-phase.ts +397 -0
- package/src/vite/discovery/state.ts +104 -6
- package/src/vite/discovery/virtual-module-codegen.ts +226 -87
- package/src/vite/encryption-key.ts +29 -0
- package/src/vite/index.ts +12 -0
- package/src/vite/inject-client-debug.ts +88 -0
- package/src/vite/plugin-types.ts +243 -10
- package/src/vite/plugins/cjs-to-esm.ts +16 -19
- package/src/vite/plugins/client-ref-dedup.ts +296 -29
- 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 +95 -120
- 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 +551 -486
- package/src/vite/plugins/performance-tracks.ts +26 -25
- package/src/vite/plugins/refresh-cmd.ts +1 -1
- package/src/vite/plugins/server-ref-hashing.ts +74 -0
- package/src/vite/plugins/server-reference-pattern.ts +10 -0
- package/src/vite/plugins/use-cache-transform.ts +73 -83
- package/src/vite/plugins/vercel-output.ts +384 -0
- package/src/vite/plugins/version-injector.ts +39 -29
- package/src/vite/plugins/version-plugin.ts +45 -40
- package/src/vite/plugins/virtual-entries.ts +193 -30
- package/src/vite/rango.ts +287 -140
- package/src/vite/router-discovery.ts +1639 -157
- 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 +1 -59
- package/src/vite/utils/package-resolution.ts +21 -52
- package/src/vite/utils/prerender-utils.ts +96 -49
- package/src/vite/utils/shared-utils.ts +156 -43
- package/src/browser/action-response-classifier.ts +0 -99
- package/src/browser/shallow.ts +0 -40
- package/src/router/middleware-cookies.ts +0 -55
|
@@ -11,12 +11,20 @@ import {
|
|
|
11
11
|
getContext,
|
|
12
12
|
getNamePrefix,
|
|
13
13
|
getUrlPrefix,
|
|
14
|
+
requireDslContext,
|
|
15
|
+
stampStaticDefScope,
|
|
14
16
|
type EntryData,
|
|
17
|
+
type EntryPropDatas,
|
|
18
|
+
type EntryPropSegments,
|
|
19
|
+
type HelperContext,
|
|
15
20
|
type InterceptEntry,
|
|
21
|
+
type InterceptConfig,
|
|
22
|
+
type LoaderEntry,
|
|
16
23
|
} from "../server/context";
|
|
17
24
|
import { invariant } from "../errors";
|
|
25
|
+
import { validateUserRouteName } from "../route-name.js";
|
|
18
26
|
import { isCachedFunction } from "../cache/taint.js";
|
|
19
|
-
import {
|
|
27
|
+
import { RangoContext } from "../server/context";
|
|
20
28
|
import { isStaticHandler } from "../static-handler.js";
|
|
21
29
|
import RootLayout from "../server/root-layout";
|
|
22
30
|
import type {
|
|
@@ -31,13 +39,13 @@ import type {
|
|
|
31
39
|
ErrorBoundaryItem,
|
|
32
40
|
NotFoundBoundaryItem,
|
|
33
41
|
LayoutItem,
|
|
34
|
-
WhenItem,
|
|
35
42
|
CacheItem,
|
|
36
43
|
TransitionItem,
|
|
37
44
|
UseItems,
|
|
38
45
|
} from "../route-types.js";
|
|
39
46
|
import type { RouteHelpers } from "./helpers-types.js";
|
|
40
47
|
import { resolveHandlerUse, mergeHandlerUse } from "./resolve-handler-use.js";
|
|
48
|
+
import { ALL_USE_ITEM_TYPES } from "./use-item-types.js";
|
|
41
49
|
|
|
42
50
|
/**
|
|
43
51
|
* Check if an item contains routes (directly or inside nested structures like cache).
|
|
@@ -61,16 +69,105 @@ const hasRoutesInItem = (item: AllUseItems): boolean => {
|
|
|
61
69
|
return false;
|
|
62
70
|
};
|
|
63
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Fresh empty collections shared by every from-scratch segment entry. Returns
|
|
74
|
+
* new arrays/objects per call so no two entries share mutable references.
|
|
75
|
+
* mountPath is intentionally NOT included here — each call site adds it from
|
|
76
|
+
* getUrlPrefix() where applicable: the route() and transition() helpers add
|
|
77
|
+
* none, while path() (which also builds a `type: "route"` entry) and the
|
|
78
|
+
* structural helpers (layout/cache/middleware/parallel) do.
|
|
79
|
+
*/
|
|
80
|
+
const emptySegmentBase = (): EntryPropDatas &
|
|
81
|
+
EntryPropSegments & { loading: undefined } => ({
|
|
82
|
+
loading: undefined,
|
|
83
|
+
middleware: [],
|
|
84
|
+
revalidate: [],
|
|
85
|
+
errorBoundary: [],
|
|
86
|
+
notFoundBoundary: [],
|
|
87
|
+
layout: [],
|
|
88
|
+
parallel: {},
|
|
89
|
+
intercept: [],
|
|
90
|
+
loader: [],
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Run a children/use callback as a nested scope, flatten the result, and assert
|
|
95
|
+
* every item is a valid use item. `kind` preserves the existing error wording
|
|
96
|
+
* ("use()" vs "children" callback).
|
|
97
|
+
*/
|
|
98
|
+
function runAndValidateUseItems(
|
|
99
|
+
store: ReturnType<typeof getContext>,
|
|
100
|
+
namespace: string,
|
|
101
|
+
entry: EntryData,
|
|
102
|
+
cb: () => any,
|
|
103
|
+
label: string,
|
|
104
|
+
kind: "use" | "children",
|
|
105
|
+
): AllUseItems[] {
|
|
106
|
+
const result = store.run(namespace, entry, cb)?.flat(3);
|
|
107
|
+
return validateUseItems(result, namespace, label, kind);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** Assert an already-invoked, flattened callback result is a use-item array. */
|
|
111
|
+
function validateUseItems(
|
|
112
|
+
result: any,
|
|
113
|
+
namespace: string,
|
|
114
|
+
label: string,
|
|
115
|
+
kind: "use" | "children",
|
|
116
|
+
): AllUseItems[] {
|
|
117
|
+
invariant(
|
|
118
|
+
Array.isArray(result) && result.every((item) => isValidUseItem(item)),
|
|
119
|
+
`${label}() ${kind === "use" ? "use()" : "children"} callback must return an array of use items [${namespace}]`,
|
|
120
|
+
);
|
|
121
|
+
return result as AllUseItems[];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** True when a children/use result contains no routes (directly or nested). */
|
|
125
|
+
const isOrphan = (result: AllUseItems[]): boolean =>
|
|
126
|
+
!result.some((item) => item != null && hasRoutesInItem(item));
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Register a routeless structural entry as an orphan sibling: clear its parent
|
|
130
|
+
* pointer so it leaves the middleware/parent-pointer chain (LOAD-BEARING — see
|
|
131
|
+
* docs/tree-structure.md) and push it onto the parent's layout[] so it renders
|
|
132
|
+
* as a wrapper. Used by cache()/middleware()/transition(); layout() runs extra
|
|
133
|
+
* validation and registers inline.
|
|
134
|
+
*/
|
|
135
|
+
const attachOrphanSibling = (
|
|
136
|
+
parent: EntryData | null,
|
|
137
|
+
entry: EntryData,
|
|
138
|
+
): void => {
|
|
139
|
+
entry.parent = null;
|
|
140
|
+
if (parent && "layout" in parent) parent.layout.push(entry);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Run `fn` with `ctx.parent` temporarily redirected to `temp` — a satellite
|
|
145
|
+
* entry that captures the attachments declared by a use() callback — restoring
|
|
146
|
+
* the original parent afterward, including on throw. loader()/intercept() each
|
|
147
|
+
* build their own tempParent shape (intercept keeps a loading get/set accessor
|
|
148
|
+
* and a captured-layouts array); this only centralizes the save/restore.
|
|
149
|
+
*/
|
|
150
|
+
function withParent<T>(ctx: HelperContext, temp: EntryData, fn: () => T): T {
|
|
151
|
+
const original = ctx.parent;
|
|
152
|
+
ctx.parent = temp;
|
|
153
|
+
try {
|
|
154
|
+
return fn();
|
|
155
|
+
} finally {
|
|
156
|
+
ctx.parent = original;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
64
160
|
const revalidate: RouteHelpers<any, any>["revalidate"] = (fn) => {
|
|
65
|
-
const ctx =
|
|
66
|
-
|
|
161
|
+
const { store, ctx } = requireDslContext(
|
|
162
|
+
"revalidate() must be called inside urls()",
|
|
163
|
+
);
|
|
67
164
|
|
|
68
165
|
// Attach to last entry in stack
|
|
69
166
|
const parent = ctx.parent;
|
|
70
167
|
if (!parent || !("revalidate" in parent)) {
|
|
71
168
|
invariant(false, "No parent entry available for revalidate()");
|
|
72
169
|
}
|
|
73
|
-
const name = `$${
|
|
170
|
+
const name = `$${store.getNextIndex("revalidate")}`;
|
|
74
171
|
parent.revalidate.push(fn);
|
|
75
172
|
return { name, type: "revalidate" } as RevalidateItem;
|
|
76
173
|
};
|
|
@@ -108,15 +205,16 @@ const revalidate: RouteHelpers<any, any>["revalidate"] = (fn) => {
|
|
|
108
205
|
* ```
|
|
109
206
|
*/
|
|
110
207
|
const errorBoundary: RouteHelpers<any, any>["errorBoundary"] = (fallback) => {
|
|
111
|
-
const ctx =
|
|
112
|
-
|
|
208
|
+
const { store, ctx } = requireDslContext(
|
|
209
|
+
"errorBoundary() must be called inside urls()",
|
|
210
|
+
);
|
|
113
211
|
|
|
114
212
|
// Attach to parent entry in stack
|
|
115
213
|
const parent = ctx.parent;
|
|
116
214
|
if (!parent || !("errorBoundary" in parent)) {
|
|
117
215
|
invariant(false, "No parent entry available for errorBoundary()");
|
|
118
216
|
}
|
|
119
|
-
const name = `$${
|
|
217
|
+
const name = `$${store.getNextIndex("errorBoundary")}`;
|
|
120
218
|
parent.errorBoundary.push(fallback);
|
|
121
219
|
return { name, type: "errorBoundary" } as ErrorBoundaryItem;
|
|
122
220
|
};
|
|
@@ -155,46 +253,20 @@ const errorBoundary: RouteHelpers<any, any>["errorBoundary"] = (fallback) => {
|
|
|
155
253
|
const notFoundBoundary: RouteHelpers<any, any>["notFoundBoundary"] = (
|
|
156
254
|
fallback,
|
|
157
255
|
) => {
|
|
158
|
-
const ctx =
|
|
159
|
-
|
|
256
|
+
const { store, ctx } = requireDslContext(
|
|
257
|
+
"notFoundBoundary() must be called inside urls()",
|
|
258
|
+
);
|
|
160
259
|
|
|
161
260
|
// Attach to parent entry in stack
|
|
162
261
|
const parent = ctx.parent;
|
|
163
262
|
if (!parent || !("notFoundBoundary" in parent)) {
|
|
164
263
|
invariant(false, "No parent entry available for notFoundBoundary()");
|
|
165
264
|
}
|
|
166
|
-
const name = `$${
|
|
265
|
+
const name = `$${store.getNextIndex("notFoundBoundary")}`;
|
|
167
266
|
parent.notFoundBoundary.push(fallback);
|
|
168
267
|
return { name, type: "notFoundBoundary" } as NotFoundBoundaryItem;
|
|
169
268
|
};
|
|
170
269
|
|
|
171
|
-
/**
|
|
172
|
-
* When helper - defines a condition for intercept activation
|
|
173
|
-
*
|
|
174
|
-
* Only valid inside intercept() use() callback. The when() function
|
|
175
|
-
* is captured by the intercept and stored in its `when` array.
|
|
176
|
-
* During soft navigation, all when() conditions must return true
|
|
177
|
-
* for the intercept to activate.
|
|
178
|
-
*/
|
|
179
|
-
const when: RouteHelpers<any, any>["when"] = (fn) => {
|
|
180
|
-
const ctx = getContext().getStore();
|
|
181
|
-
if (!ctx) throw new Error("when() must be called inside intercept()");
|
|
182
|
-
|
|
183
|
-
// The when() function needs to be captured by the intercept's tempParent
|
|
184
|
-
// which should have a `when` array. If not present, we're not inside intercept()
|
|
185
|
-
const parent = ctx.parent as any;
|
|
186
|
-
if (!parent || !("when" in parent)) {
|
|
187
|
-
invariant(
|
|
188
|
-
false,
|
|
189
|
-
"when() can only be used inside intercept() use() callback",
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
const name = `$${getContext().getNextIndex("when")}`;
|
|
194
|
-
parent.when.push(fn);
|
|
195
|
-
return { name, type: "when" } as WhenItem;
|
|
196
|
-
};
|
|
197
|
-
|
|
198
270
|
/**
|
|
199
271
|
* Cache helper - defines caching configuration for segments
|
|
200
272
|
*
|
|
@@ -205,21 +277,21 @@ const when: RouteHelpers<any, any>["when"] = (fn) => {
|
|
|
205
277
|
* Supports these call signatures:
|
|
206
278
|
* - cache() - no args, uses app-level defaults (for loader caching)
|
|
207
279
|
* - cache(() => [...]) - wraps children with app-level defaults
|
|
208
|
-
* - cache('profileName') - uses a named cache profile
|
|
209
|
-
* - cache('profileName', () => [...]) - named profile with children
|
|
210
280
|
* - cache({ ttl: 60 }, () => [...]) - with explicit options
|
|
281
|
+
*
|
|
282
|
+
* Named cache profiles are applied via the `"use cache: <profile>"` directive,
|
|
283
|
+
* not a `cache("profileName")` form in the route tree.
|
|
211
284
|
*/
|
|
212
285
|
const cache: RouteHelpers<any, any>["cache"] = (
|
|
213
286
|
optionsOrChildren?:
|
|
214
287
|
| PartialCacheOptions
|
|
215
288
|
| false
|
|
216
|
-
| string
|
|
217
289
|
| (() => UseItems<AllUseItems>),
|
|
218
290
|
maybeChildren?: () => UseItems<AllUseItems>,
|
|
219
291
|
) => {
|
|
220
|
-
const store =
|
|
221
|
-
|
|
222
|
-
|
|
292
|
+
const { store, ctx } = requireDslContext(
|
|
293
|
+
"cache() must be called inside urls()",
|
|
294
|
+
);
|
|
223
295
|
|
|
224
296
|
// Handle overloaded signature
|
|
225
297
|
let options: PartialCacheOptions | false;
|
|
@@ -229,18 +301,6 @@ const cache: RouteHelpers<any, any>["cache"] = (
|
|
|
229
301
|
// cache() - no args, use defaults
|
|
230
302
|
options = {};
|
|
231
303
|
children = undefined;
|
|
232
|
-
} else if (typeof optionsOrChildren === "string") {
|
|
233
|
-
// cache('profileName') or cache('profileName', () => [...])
|
|
234
|
-
// Resolve from context-scoped profiles (set per-router via HelperContext).
|
|
235
|
-
const ctxStore = RSCRouterContext.getStore();
|
|
236
|
-
const profile = ctxStore?.cacheProfiles?.[optionsOrChildren];
|
|
237
|
-
invariant(
|
|
238
|
-
profile,
|
|
239
|
-
`cache("${optionsOrChildren}"): unknown cache profile. ` +
|
|
240
|
-
`Define it in createRouter({ cacheProfiles: { "${optionsOrChildren}": { ttl: ... } } }).`,
|
|
241
|
-
);
|
|
242
|
-
options = { ttl: profile.ttl, swr: profile.swr, tags: profile.tags };
|
|
243
|
-
children = maybeChildren;
|
|
244
304
|
} else if (typeof optionsOrChildren === "function") {
|
|
245
305
|
// cache(() => [...]) - use empty options (will use defaults)
|
|
246
306
|
options = {};
|
|
@@ -271,26 +331,18 @@ const cache: RouteHelpers<any, any>["cache"] = (
|
|
|
271
331
|
// Create orphan cache entry (like orphan layout)
|
|
272
332
|
// Subsequent siblings in the same array will attach to this entry
|
|
273
333
|
const namespace = `${ctx.namespace}.${cacheIndex}`;
|
|
274
|
-
const
|
|
334
|
+
const urlPrefix = getUrlPrefix();
|
|
275
335
|
|
|
276
336
|
const entry = {
|
|
337
|
+
...emptySegmentBase(),
|
|
277
338
|
id: namespace,
|
|
278
339
|
shortCode: store.getShortCode("cache"),
|
|
279
340
|
type: "cache",
|
|
280
341
|
parent: parent, // link to current parent for hierarchy
|
|
281
342
|
cache: cacheConfig,
|
|
282
343
|
handler: RootLayout,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
revalidate: [],
|
|
286
|
-
errorBoundary: [],
|
|
287
|
-
notFoundBoundary: [],
|
|
288
|
-
layout: [],
|
|
289
|
-
parallel: {},
|
|
290
|
-
intercept: [],
|
|
291
|
-
loader: [],
|
|
292
|
-
...(cacheUrlPrefix ? { mountPath: cacheUrlPrefix } : {}),
|
|
293
|
-
} as EntryData;
|
|
344
|
+
...(urlPrefix ? { mountPath: urlPrefix } : {}),
|
|
345
|
+
} satisfies EntryData;
|
|
294
346
|
|
|
295
347
|
// Attach to parent's layout array (cache entries are structural like layouts)
|
|
296
348
|
if (parent && "layout" in parent) {
|
|
@@ -304,13 +356,23 @@ const cache: RouteHelpers<any, any>["cache"] = (
|
|
|
304
356
|
return { name: namespace, type: "cache" } as CacheItem;
|
|
305
357
|
}
|
|
306
358
|
|
|
359
|
+
// Inside a loader() use() callback, only the direct form — cache()/cache(opts)
|
|
360
|
+
// — writes cache config to the loader entry. The wrapper form creates a
|
|
361
|
+
// structural cache boundary with its own children scope, which has no effect
|
|
362
|
+
// on the loader and would silently no-op.
|
|
363
|
+
invariant(
|
|
364
|
+
!(ctx.parent && (ctx.parent as any).type === "loader"),
|
|
365
|
+
"cache() wrapper form is not valid inside loader() use(). Use cache({...}) without children to configure the loader's cache.",
|
|
366
|
+
);
|
|
367
|
+
|
|
307
368
|
// With children: create a cache entry (like layout with caching semantics)
|
|
308
369
|
const namespace = `${ctx.namespace}.${cacheIndex}`;
|
|
309
370
|
const cacheShortCode = store.getShortCode("cache");
|
|
310
371
|
|
|
311
|
-
const
|
|
372
|
+
const urlPrefix = getUrlPrefix();
|
|
312
373
|
|
|
313
374
|
const entry = {
|
|
375
|
+
...emptySegmentBase(),
|
|
314
376
|
id: namespace,
|
|
315
377
|
shortCode: cacheShortCode,
|
|
316
378
|
type: "cache",
|
|
@@ -318,40 +380,22 @@ const cache: RouteHelpers<any, any>["cache"] = (
|
|
|
318
380
|
cache: cacheConfig,
|
|
319
381
|
// Cache entries render like layouts (with Outlet as default handler)
|
|
320
382
|
handler: RootLayout, // RootLayout just renders <Outlet />
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
revalidate: [],
|
|
324
|
-
errorBoundary: [],
|
|
325
|
-
notFoundBoundary: [],
|
|
326
|
-
layout: [],
|
|
327
|
-
parallel: {},
|
|
328
|
-
intercept: [],
|
|
329
|
-
loader: [],
|
|
330
|
-
...(cacheUrlPrefix2 ? { mountPath: cacheUrlPrefix2 } : {}),
|
|
331
|
-
} as EntryData;
|
|
383
|
+
...(urlPrefix ? { mountPath: urlPrefix } : {}),
|
|
384
|
+
} satisfies EntryData;
|
|
332
385
|
|
|
333
386
|
// Run children with cache entry as parent
|
|
334
|
-
const result =
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
387
|
+
const result = runAndValidateUseItems(
|
|
388
|
+
store,
|
|
389
|
+
namespace,
|
|
390
|
+
entry,
|
|
391
|
+
children,
|
|
392
|
+
"cache",
|
|
393
|
+
"children",
|
|
339
394
|
);
|
|
340
395
|
|
|
341
|
-
//
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
Array.isArray(result) &&
|
|
345
|
-
result.some((item) => hasRoutesInItem(item));
|
|
346
|
-
|
|
347
|
-
if (!hasRoutes) {
|
|
348
|
-
const parent = ctx.parent;
|
|
349
|
-
if (parent && "layout" in parent) {
|
|
350
|
-
// Attach to parent's layout array (cache entries are structural like layouts)
|
|
351
|
-
entry.parent = null;
|
|
352
|
-
parent.layout.push(entry);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
396
|
+
// Cache entries are structural like layouts: with no routes inside, register
|
|
397
|
+
// as an orphan sibling.
|
|
398
|
+
if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
|
|
355
399
|
|
|
356
400
|
return { name: namespace, type: "cache", uses: result } as CacheItem;
|
|
357
401
|
};
|
|
@@ -397,9 +441,9 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
|
|
|
397
441
|
}
|
|
398
442
|
}
|
|
399
443
|
|
|
400
|
-
const store =
|
|
401
|
-
|
|
402
|
-
|
|
444
|
+
const { store, ctx } = requireDslContext(
|
|
445
|
+
"middleware() must be called inside urls()",
|
|
446
|
+
);
|
|
403
447
|
|
|
404
448
|
if (!children) {
|
|
405
449
|
// Sibling mode: attach to parent entry
|
|
@@ -418,22 +462,15 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
|
|
|
418
462
|
|
|
419
463
|
const urlPrefix = getUrlPrefix();
|
|
420
464
|
const entry = {
|
|
465
|
+
...emptySegmentBase(),
|
|
421
466
|
id: namespace,
|
|
422
467
|
shortCode: store.getShortCode("layout"),
|
|
423
468
|
type: "layout",
|
|
424
469
|
parent: ctx.parent,
|
|
425
470
|
handler: RootLayout,
|
|
426
|
-
loading: undefined,
|
|
427
471
|
middleware: [...fns],
|
|
428
|
-
revalidate: [],
|
|
429
|
-
errorBoundary: [],
|
|
430
|
-
notFoundBoundary: [],
|
|
431
|
-
layout: [],
|
|
432
|
-
parallel: {},
|
|
433
|
-
intercept: [],
|
|
434
|
-
loader: [],
|
|
435
472
|
...(urlPrefix ? { mountPath: urlPrefix } : {}),
|
|
436
|
-
}
|
|
473
|
+
} satisfies EntryData;
|
|
437
474
|
|
|
438
475
|
// Run children callback. If the second arg was actually a middleware fn
|
|
439
476
|
// (old variadic form: middleware(mw1, mw2)), this will return a non-array
|
|
@@ -446,25 +483,14 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
|
|
|
446
483
|
"To pass multiple middleware, use middleware([fn1, fn2]).",
|
|
447
484
|
);
|
|
448
485
|
|
|
449
|
-
const result =
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
486
|
+
const result = validateUseItems(
|
|
487
|
+
rawResult.flat(3),
|
|
488
|
+
namespace,
|
|
489
|
+
"middleware",
|
|
490
|
+
"children",
|
|
454
491
|
);
|
|
455
492
|
|
|
456
|
-
|
|
457
|
-
result &&
|
|
458
|
-
Array.isArray(result) &&
|
|
459
|
-
result.some((item) => item != null && hasRoutesInItem(item));
|
|
460
|
-
|
|
461
|
-
if (!hasRoutes) {
|
|
462
|
-
const parent = ctx.parent;
|
|
463
|
-
if (parent && "layout" in parent) {
|
|
464
|
-
entry.parent = null;
|
|
465
|
-
parent.layout.push(entry);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
493
|
+
if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
|
|
468
494
|
|
|
469
495
|
return {
|
|
470
496
|
name: namespace,
|
|
@@ -473,10 +499,26 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
|
|
|
473
499
|
} as MiddlewareItem;
|
|
474
500
|
};
|
|
475
501
|
|
|
502
|
+
// Slot names become part of segment ids: a parallel/intercept slot is encoded
|
|
503
|
+
// as `${shortCode}.${slotName}`, and loader segments append `D${index}.${loaderId}`.
|
|
504
|
+
// A "." in the slot name collides with that separator -- loaderParentId
|
|
505
|
+
// (segment-system.tsx) strips from the FIRST `D<index>.`, so a name like
|
|
506
|
+
// "@D3.foo" is mis-cut to "@" and the loader's data is silently dropped. Reject
|
|
507
|
+
// the dot at definition time so the failure is loud, not a corrupted tree at
|
|
508
|
+
// runtime. (A bare "D" without a trailing dot -- e.g. "@Detail" -- is fine.)
|
|
509
|
+
function assertValidSlotName(slotName: string): void {
|
|
510
|
+
invariant(
|
|
511
|
+
!slotName.includes("."),
|
|
512
|
+
`Slot name "${slotName}" must not contain ".". The dot is a reserved ` +
|
|
513
|
+
`segment-id separator; a name like "@D3.foo" corrupts loader segment-id ` +
|
|
514
|
+
`parsing and silently drops the loader's data. Rename the slot.`,
|
|
515
|
+
);
|
|
516
|
+
}
|
|
517
|
+
|
|
476
518
|
const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
|
|
477
|
-
const store =
|
|
478
|
-
|
|
479
|
-
|
|
519
|
+
const { store, ctx } = requireDslContext(
|
|
520
|
+
"parallel() must be called inside urls()",
|
|
521
|
+
);
|
|
480
522
|
|
|
481
523
|
if (!ctx.parent || !ctx.parent?.parallel) {
|
|
482
524
|
invariant(false, "No parent entry available for parallel()");
|
|
@@ -488,6 +530,7 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
|
|
|
488
530
|
);
|
|
489
531
|
|
|
490
532
|
const slotNames = Object.keys(slots as Record<string, any>) as `@${string}`[];
|
|
533
|
+
for (const slotName of slotNames) assertValidSlotName(slotName);
|
|
491
534
|
|
|
492
535
|
const namespace = `${ctx.namespace}.$${store.getNextIndex("parallel")}`;
|
|
493
536
|
|
|
@@ -519,6 +562,7 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
|
|
|
519
562
|
if (ctx.namePrefix) {
|
|
520
563
|
(slotHandler as any).$$routePrefix = ctx.namePrefix;
|
|
521
564
|
}
|
|
565
|
+
stampStaticDefScope(slotHandler);
|
|
522
566
|
}
|
|
523
567
|
} else {
|
|
524
568
|
unwrappedSlots[slotName] = slotHandler;
|
|
@@ -528,20 +572,12 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
|
|
|
528
572
|
// Create full EntryData for parallel with its own loaders/revalidate/loading
|
|
529
573
|
const parallelUrlPrefix = getUrlPrefix();
|
|
530
574
|
const entry = {
|
|
575
|
+
...emptySegmentBase(),
|
|
531
576
|
id: namespace,
|
|
532
577
|
shortCode: store.getShortCode("parallel"),
|
|
533
578
|
type: "parallel",
|
|
534
579
|
parent: null, // Parallels don't participate in parent chain traversal
|
|
535
580
|
handler: unwrappedSlots,
|
|
536
|
-
loading: undefined, // Allow loading() to attach loading state
|
|
537
|
-
middleware: [],
|
|
538
|
-
revalidate: [],
|
|
539
|
-
errorBoundary: [],
|
|
540
|
-
notFoundBoundary: [],
|
|
541
|
-
layout: [],
|
|
542
|
-
parallel: {},
|
|
543
|
-
intercept: [],
|
|
544
|
-
loader: [],
|
|
545
581
|
...(parallelUrlPrefix ? { mountPath: parallelUrlPrefix } : {}),
|
|
546
582
|
...(hasStaticSlot
|
|
547
583
|
? {
|
|
@@ -596,10 +632,13 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
|
|
|
596
632
|
"parallel",
|
|
597
633
|
);
|
|
598
634
|
if (slotMergedUse) {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
635
|
+
runAndValidateUseItems(
|
|
636
|
+
store,
|
|
637
|
+
namespace,
|
|
638
|
+
slotEntry,
|
|
639
|
+
slotMergedUse,
|
|
640
|
+
"parallel",
|
|
641
|
+
"use",
|
|
603
642
|
);
|
|
604
643
|
}
|
|
605
644
|
|
|
@@ -637,11 +676,22 @@ const intercept = (
|
|
|
637
676
|
slotName: `@${string}`,
|
|
638
677
|
routeName: string,
|
|
639
678
|
handler: any,
|
|
679
|
+
configOrUse?: InterceptConfig | (() => any[]),
|
|
640
680
|
use?: () => any[],
|
|
641
681
|
) => {
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
682
|
+
// arg4 discrimination: a function is the use() callback (no config); an object
|
|
683
|
+
// is the config carrying `when`. With config given, the use() callback is
|
|
684
|
+
// arg5. Keeps the no-config form intercept(slot, route, handler, () => [...])
|
|
685
|
+
// working unchanged.
|
|
686
|
+
const config: InterceptConfig | undefined =
|
|
687
|
+
typeof configOrUse === "function" || configOrUse == null
|
|
688
|
+
? undefined
|
|
689
|
+
: configOrUse;
|
|
690
|
+
const useFn = typeof configOrUse === "function" ? configOrUse : use;
|
|
691
|
+
|
|
692
|
+
const { store, ctx } = requireDslContext(
|
|
693
|
+
"intercept() must be called inside urls()",
|
|
694
|
+
);
|
|
645
695
|
|
|
646
696
|
if (!ctx.parent || !ctx.parent?.intercept) {
|
|
647
697
|
invariant(false, "No parent entry available for intercept()");
|
|
@@ -652,6 +702,8 @@ const intercept = (
|
|
|
652
702
|
"intercept() cannot be used inside parallel()",
|
|
653
703
|
);
|
|
654
704
|
|
|
705
|
+
assertValidSlotName(slotName);
|
|
706
|
+
|
|
655
707
|
const namespace = `${ctx.namespace}.$${store.getNextIndex("intercept")}.${slotName}`;
|
|
656
708
|
|
|
657
709
|
// Dot-prefixed = local (add include prefix), unprefixed = global (use as-is)
|
|
@@ -674,29 +726,33 @@ const intercept = (
|
|
|
674
726
|
when: [], // Selector conditions for conditional interception
|
|
675
727
|
};
|
|
676
728
|
|
|
729
|
+
// Conditional interception: `when` from the config object — a single selector
|
|
730
|
+
// or an array (ALL must return true to activate). Replaces the former when()
|
|
731
|
+
// use-item captured inside the callback.
|
|
732
|
+
if (config?.when) {
|
|
733
|
+
const selectors = Array.isArray(config.when) ? config.when : [config.when];
|
|
734
|
+
entry.when.push(...selectors);
|
|
735
|
+
}
|
|
736
|
+
|
|
677
737
|
// Merge handler.use defaults with explicit use
|
|
678
738
|
const handlerUseFn = resolveHandlerUse(handler);
|
|
679
|
-
const mergedUse = mergeHandlerUse(handlerUseFn,
|
|
739
|
+
const mergedUse = mergeHandlerUse(handlerUseFn, useFn, "intercept");
|
|
680
740
|
|
|
681
741
|
// Run merged use callback to collect loaders, revalidate, middleware, etc.
|
|
682
742
|
if (mergedUse) {
|
|
683
|
-
//
|
|
684
|
-
// so that middleware, loader, revalidate attach to the intercept entry
|
|
685
|
-
const originalParent = ctx.parent;
|
|
686
|
-
|
|
687
|
-
// Capture layouts in a temporary array
|
|
743
|
+
// Capture layout() calls into a temporary array
|
|
688
744
|
const capturedLayouts: EntryData[] = [];
|
|
689
745
|
|
|
746
|
+
// Temporary parent so middleware/loader/revalidate/when attach to the
|
|
747
|
+
// intercept entry; the loading get/set accessor mirrors writes onto `entry`.
|
|
690
748
|
const tempParent = {
|
|
691
|
-
...
|
|
749
|
+
...ctx.parent,
|
|
692
750
|
middleware: entry.middleware,
|
|
693
751
|
revalidate: entry.revalidate,
|
|
694
752
|
errorBoundary: entry.errorBoundary,
|
|
695
753
|
notFoundBoundary: entry.notFoundBoundary,
|
|
696
754
|
loader: entry.loader,
|
|
697
755
|
layout: capturedLayouts, // Capture layout() calls
|
|
698
|
-
when: entry.when, // Capture when() conditions
|
|
699
|
-
// Use getter/setter to capture loading on the entry
|
|
700
756
|
get loading() {
|
|
701
757
|
return entry.loading;
|
|
702
758
|
},
|
|
@@ -704,12 +760,10 @@ const intercept = (
|
|
|
704
760
|
entry.loading = value;
|
|
705
761
|
},
|
|
706
762
|
};
|
|
707
|
-
ctx.parent = tempParent as EntryData;
|
|
708
|
-
|
|
709
|
-
const result = mergedUse()?.flat(3);
|
|
710
763
|
|
|
711
|
-
|
|
712
|
-
|
|
764
|
+
const result = withParent(ctx, tempParent as EntryData, () =>
|
|
765
|
+
mergedUse()?.flat(3),
|
|
766
|
+
);
|
|
713
767
|
|
|
714
768
|
// Extract layout from captured layouts (use first one if multiple)
|
|
715
769
|
// Layout inside intercept should always be ReactNode or Handler, not Record slots
|
|
@@ -719,10 +773,7 @@ const intercept = (
|
|
|
719
773
|
| Handler<any, any, any>;
|
|
720
774
|
}
|
|
721
775
|
|
|
722
|
-
|
|
723
|
-
Array.isArray(result) && result.every((item) => isValidUseItem(item)),
|
|
724
|
-
`intercept() use() callback must return an array of use items [${namespace}]`,
|
|
725
|
-
);
|
|
776
|
+
validateUseItems(result, namespace, "intercept", "use");
|
|
726
777
|
}
|
|
727
778
|
|
|
728
779
|
ctx.parent.intercept.push(entry);
|
|
@@ -732,43 +783,74 @@ const intercept = (
|
|
|
732
783
|
/**
|
|
733
784
|
* Loader helper - attaches a loader to the current entry
|
|
734
785
|
*/
|
|
735
|
-
const
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
786
|
+
const loader: RouteHelpers<any, any>["loader"] = (
|
|
787
|
+
loaderDef,
|
|
788
|
+
optionsOrUse,
|
|
789
|
+
maybeUse,
|
|
790
|
+
) => {
|
|
791
|
+
const { store, ctx } = requireDslContext(
|
|
792
|
+
"loader() must be called inside urls()",
|
|
793
|
+
);
|
|
739
794
|
|
|
740
795
|
// Attach to last entry in stack
|
|
741
796
|
if (!ctx.parent || !ctx.parent?.loader) {
|
|
742
797
|
invariant(false, "No parent entry available for loader()");
|
|
743
798
|
}
|
|
744
799
|
|
|
800
|
+
// loader(Def, use) and loader(Def, options, use) — same options-or-use
|
|
801
|
+
// disambiguation path() uses, so the long-standing 2-arg form is untouched.
|
|
802
|
+
const optionsGiven =
|
|
803
|
+
typeof optionsOrUse === "function" ? undefined : optionsOrUse;
|
|
804
|
+
const use = typeof optionsOrUse === "function" ? optionsOrUse : maybeUse;
|
|
805
|
+
invariant(
|
|
806
|
+
!(typeof optionsOrUse === "function" && maybeUse !== undefined),
|
|
807
|
+
"loader() received two use() callbacks. Pass loader(Def, options, use) or loader(Def, use).",
|
|
808
|
+
);
|
|
809
|
+
invariant(
|
|
810
|
+
(optionsGiven as { stream?: unknown } | undefined)?.stream === undefined,
|
|
811
|
+
"loader() stream was replaced: use loader(Def, { ssr: false }) — the same knob as loading(fallback, { ssr: false }) — to await the loader before first flush on document requests.",
|
|
812
|
+
);
|
|
813
|
+
invariant(
|
|
814
|
+
optionsGiven?.ssr === undefined || typeof optionsGiven.ssr === "boolean",
|
|
815
|
+
`loader() ssr must be a boolean (got ${JSON.stringify(optionsGiven?.ssr)}). Omit it (or pass true) to stream on every render.`,
|
|
816
|
+
);
|
|
817
|
+
|
|
745
818
|
const name = `${ctx.namespace}.$${store.getNextIndex("loader")}`;
|
|
746
819
|
|
|
747
|
-
// Create loader entry with empty revalidate array
|
|
748
|
-
|
|
820
|
+
// Create loader entry with empty revalidate array. awaitBeforeFlush is
|
|
821
|
+
// resolved here, at DSL-evaluation time, for the same reason
|
|
822
|
+
// loading({ ssr: false }) is (below) — per-isSSR entry caching makes the
|
|
823
|
+
// flag request-mode-correct with no isSSR threading; see LoaderEntry.
|
|
824
|
+
const loaderEntry: LoaderEntry = {
|
|
749
825
|
loader: loaderDef,
|
|
750
826
|
revalidate: [] as ShouldRevalidateFn<any, any>[],
|
|
827
|
+
...(optionsGiven?.ssr === false && ctx.isSSR
|
|
828
|
+
? { awaitBeforeFlush: true as const }
|
|
829
|
+
: {}),
|
|
751
830
|
};
|
|
752
831
|
|
|
753
|
-
//
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
832
|
+
// Merge handler.use defaults (attached to the loader definition) with explicit use
|
|
833
|
+
const handlerUseFn = resolveHandlerUse(loaderDef);
|
|
834
|
+
const mergedUse = mergeHandlerUse(handlerUseFn, use, "loader");
|
|
835
|
+
|
|
836
|
+
// If any use callback is in effect, run it to collect revalidation rules and cache config
|
|
837
|
+
if (mergedUse) {
|
|
757
838
|
// Create a temporary "parent" with type "loader" so cache() can detect it.
|
|
758
839
|
// Save existing .cache to distinguish inherited config from newly set config.
|
|
759
|
-
const parentCache = (
|
|
840
|
+
const parentCache = (ctx.parent as any).cache;
|
|
760
841
|
const tempParent = {
|
|
761
|
-
...
|
|
842
|
+
...ctx.parent,
|
|
762
843
|
type: "loader",
|
|
763
844
|
revalidate: loaderEntry.revalidate,
|
|
764
845
|
};
|
|
765
|
-
ctx.parent = tempParent as EntryData;
|
|
766
846
|
|
|
767
|
-
const result =
|
|
847
|
+
const result = withParent(ctx, tempParent as EntryData, () =>
|
|
848
|
+
mergedUse()?.flat(3),
|
|
849
|
+
);
|
|
768
850
|
|
|
769
851
|
// Copy cache config only if cache() was called during the use() callback.
|
|
770
|
-
// The spread
|
|
771
|
-
//
|
|
852
|
+
// The spread may carry an inherited .cache from a parent cache() boundary —
|
|
853
|
+
// only copy if it was newly set.
|
|
772
854
|
if (
|
|
773
855
|
(tempParent as any).cache &&
|
|
774
856
|
(tempParent as any).cache !== parentCache
|
|
@@ -776,13 +858,7 @@ const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
|
|
|
776
858
|
(loaderEntry as any).cache = (tempParent as any).cache;
|
|
777
859
|
}
|
|
778
860
|
|
|
779
|
-
|
|
780
|
-
ctx.parent = originalParent;
|
|
781
|
-
|
|
782
|
-
invariant(
|
|
783
|
-
Array.isArray(result) && result.every((item) => isValidUseItem(item)),
|
|
784
|
-
`loader() use() callback must return an array of use items [${name}]`,
|
|
785
|
-
);
|
|
861
|
+
validateUseItems(result, name, "loader", "use");
|
|
786
862
|
}
|
|
787
863
|
|
|
788
864
|
ctx.parent.loader.push(loaderEntry);
|
|
@@ -793,10 +869,10 @@ const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
|
|
|
793
869
|
* Loading helper - attaches a loading component to the current entry
|
|
794
870
|
* Loading components are static (no context) and shown during navigation
|
|
795
871
|
*/
|
|
796
|
-
const
|
|
797
|
-
const store =
|
|
798
|
-
|
|
799
|
-
|
|
872
|
+
const loading: RouteHelpers<any, any>["loading"] = (component, options) => {
|
|
873
|
+
const { store, ctx } = requireDslContext(
|
|
874
|
+
"loading() must be called inside urls()",
|
|
875
|
+
);
|
|
800
876
|
|
|
801
877
|
const parent = ctx.parent;
|
|
802
878
|
if (!parent || !("loading" in parent)) {
|
|
@@ -819,10 +895,13 @@ const loadingFn: RouteHelpers<any, any>["loading"] = (component, options) => {
|
|
|
819
895
|
};
|
|
820
896
|
|
|
821
897
|
/**
|
|
822
|
-
* Transition helper -
|
|
823
|
-
*
|
|
898
|
+
* Transition helper - opts the entry (or a wrapped group of routes) into
|
|
899
|
+
* transition-driven navigation by attaching a TransitionConfig. This drives the
|
|
900
|
+
* commit through startTransition (content hold on all React versions) and, on
|
|
901
|
+
* experimental React, places a `<ViewTransition>` boundary unless
|
|
902
|
+
* `viewTransition: false`. See skills/view-transitions for the matrix.
|
|
824
903
|
*/
|
|
825
|
-
const
|
|
904
|
+
const transition = (
|
|
826
905
|
configOrChildren?: TransitionConfig | (() => UseItems<AllUseItems>),
|
|
827
906
|
maybeChildren?: () => UseItems<AllUseItems>,
|
|
828
907
|
): TransitionItem => {
|
|
@@ -836,11 +915,15 @@ const transitionFn = (
|
|
|
836
915
|
const children: (() => UseItems<AllUseItems>) | undefined =
|
|
837
916
|
typeof configOrChildren === "function" ? configOrChildren : maybeChildren;
|
|
838
917
|
|
|
839
|
-
const store =
|
|
840
|
-
|
|
841
|
-
|
|
918
|
+
const { store, ctx } = requireDslContext(
|
|
919
|
+
"transition() must be called inside urls()",
|
|
920
|
+
);
|
|
842
921
|
|
|
843
|
-
|
|
922
|
+
// Allocate a single index for this transition() call (used in all paths),
|
|
923
|
+
// mirroring cache() — the child form uses it for the name, the wrapper form
|
|
924
|
+
// reuses it for the namespace, so no index is burned.
|
|
925
|
+
const transitionIndex = store.getNextIndex("transition");
|
|
926
|
+
const name = `$${transitionIndex}`;
|
|
844
927
|
|
|
845
928
|
if (!children) {
|
|
846
929
|
// Position 1: child of path() — attach to parent entry
|
|
@@ -853,70 +936,51 @@ const transitionFn = (
|
|
|
853
936
|
}
|
|
854
937
|
|
|
855
938
|
// Position 2: wrapper — create a transparent layout with transition config
|
|
856
|
-
const namespace = `${ctx.namespace}.${
|
|
939
|
+
const namespace = `${ctx.namespace}.${transitionIndex}`;
|
|
857
940
|
const entry = {
|
|
941
|
+
...emptySegmentBase(),
|
|
858
942
|
id: namespace,
|
|
859
943
|
shortCode: store.getShortCode("layout"),
|
|
860
944
|
type: "layout",
|
|
861
945
|
parent: ctx.parent,
|
|
862
946
|
handler: RootLayout,
|
|
863
|
-
loading: undefined,
|
|
864
947
|
transition: config,
|
|
865
|
-
|
|
866
|
-
revalidate: [],
|
|
867
|
-
errorBoundary: [],
|
|
868
|
-
notFoundBoundary: [],
|
|
869
|
-
layout: [],
|
|
870
|
-
parallel: {},
|
|
871
|
-
intercept: [],
|
|
872
|
-
loader: [],
|
|
873
|
-
} as EntryData;
|
|
874
|
-
|
|
875
|
-
const result = store.run(namespace, entry, children)?.flat(3);
|
|
948
|
+
} satisfies EntryData;
|
|
876
949
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
950
|
+
const result = runAndValidateUseItems(
|
|
951
|
+
store,
|
|
952
|
+
namespace,
|
|
953
|
+
entry,
|
|
954
|
+
children,
|
|
955
|
+
"transition",
|
|
956
|
+
"children",
|
|
880
957
|
);
|
|
881
958
|
|
|
882
|
-
|
|
883
|
-
result &&
|
|
884
|
-
Array.isArray(result) &&
|
|
885
|
-
result.some((item) => hasRoutesInItem(item));
|
|
886
|
-
|
|
887
|
-
if (!hasRoutes) {
|
|
888
|
-
const parent = ctx.parent;
|
|
889
|
-
if (parent && "layout" in parent) {
|
|
890
|
-
entry.parent = null;
|
|
891
|
-
parent.layout.push(entry);
|
|
892
|
-
}
|
|
893
|
-
}
|
|
959
|
+
if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
|
|
894
960
|
|
|
895
961
|
return { name: namespace, type: "transition" } as TransitionItem;
|
|
896
962
|
};
|
|
897
963
|
|
|
898
|
-
const
|
|
899
|
-
const store =
|
|
900
|
-
|
|
901
|
-
|
|
964
|
+
const route: RouteHelpers<any, any>["route"] = (name, handler, use) => {
|
|
965
|
+
const { store, ctx } = requireDslContext(
|
|
966
|
+
"route() must be called inside urls()",
|
|
967
|
+
);
|
|
968
|
+
|
|
969
|
+
// Reject names colliding with reserved internal prefixes ($path_, $prefix_),
|
|
970
|
+
// the same guard path() and include() enforce. Without it such a name
|
|
971
|
+
// type-checks on an untyped router, then silently vanishes from generated
|
|
972
|
+
// route-types and public reverse() (isAutoGeneratedRouteName filters it out).
|
|
973
|
+
validateUserRouteName(name);
|
|
902
974
|
|
|
903
975
|
const namespace = `${ctx.namespace}.${store.getNextIndex("route")}.${name}`;
|
|
904
976
|
|
|
905
977
|
const entry = {
|
|
978
|
+
...emptySegmentBase(),
|
|
906
979
|
id: namespace,
|
|
907
980
|
shortCode: store.getShortCode("route"),
|
|
908
981
|
type: "route",
|
|
909
982
|
parent: ctx.parent,
|
|
910
983
|
handler: handler as unknown as Handler<any, any, any>,
|
|
911
|
-
loading: undefined, // Allow loading() to attach loading state
|
|
912
|
-
middleware: [],
|
|
913
|
-
revalidate: [],
|
|
914
|
-
errorBoundary: [],
|
|
915
|
-
notFoundBoundary: [],
|
|
916
|
-
layout: [],
|
|
917
|
-
parallel: {},
|
|
918
|
-
intercept: [],
|
|
919
|
-
loader: [],
|
|
920
984
|
} satisfies EntryData;
|
|
921
985
|
|
|
922
986
|
/* We will throw if user is registring same route name twice */
|
|
@@ -931,10 +995,13 @@ const routeFn: RouteHelpers<any, any>["route"] = (name, handler, use) => {
|
|
|
931
995
|
const mergedUse = mergeHandlerUse(handlerUseFn, use, "route");
|
|
932
996
|
/* Run use and attach handlers */
|
|
933
997
|
if (mergedUse) {
|
|
934
|
-
const result =
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
998
|
+
const result = runAndValidateUseItems(
|
|
999
|
+
store,
|
|
1000
|
+
namespace,
|
|
1001
|
+
entry,
|
|
1002
|
+
mergedUse,
|
|
1003
|
+
"route",
|
|
1004
|
+
"use",
|
|
938
1005
|
);
|
|
939
1006
|
return { name: namespace, type: "route", uses: result } as RouteItem;
|
|
940
1007
|
}
|
|
@@ -944,9 +1011,9 @@ const routeFn: RouteHelpers<any, any>["route"] = (name, handler, use) => {
|
|
|
944
1011
|
};
|
|
945
1012
|
|
|
946
1013
|
const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
947
|
-
const store =
|
|
948
|
-
|
|
949
|
-
|
|
1014
|
+
const { store, ctx } = requireDslContext(
|
|
1015
|
+
"layout() must be called inside urls()",
|
|
1016
|
+
);
|
|
950
1017
|
|
|
951
1018
|
invariant(
|
|
952
1019
|
!ctx.parent || ctx.parent.type !== "parallel",
|
|
@@ -964,20 +1031,12 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
|
964
1031
|
|
|
965
1032
|
const urlPrefix = getUrlPrefix();
|
|
966
1033
|
const entry = {
|
|
1034
|
+
...emptySegmentBase(),
|
|
967
1035
|
id: namespace,
|
|
968
1036
|
shortCode,
|
|
969
1037
|
type: "layout",
|
|
970
1038
|
parent: ctx.parent,
|
|
971
1039
|
handler: unwrappedHandler,
|
|
972
|
-
loading: undefined, // Allow loading() to attach loading state
|
|
973
|
-
middleware: [],
|
|
974
|
-
revalidate: [],
|
|
975
|
-
errorBoundary: [],
|
|
976
|
-
notFoundBoundary: [],
|
|
977
|
-
parallel: {},
|
|
978
|
-
intercept: [],
|
|
979
|
-
layout: [],
|
|
980
|
-
loader: [],
|
|
981
1040
|
...(urlPrefix ? { mountPath: urlPrefix } : {}),
|
|
982
1041
|
...(isStatic
|
|
983
1042
|
? {
|
|
@@ -988,8 +1047,11 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
|
988
1047
|
} satisfies EntryData;
|
|
989
1048
|
|
|
990
1049
|
// Capture namespace prefix on static handler for build-time reverse() resolution
|
|
991
|
-
if (isStatic && handler.$$id
|
|
992
|
-
(
|
|
1050
|
+
if (isStatic && handler.$$id) {
|
|
1051
|
+
if (ctx.namePrefix) {
|
|
1052
|
+
(handler as any).$$routePrefix = ctx.namePrefix;
|
|
1053
|
+
}
|
|
1054
|
+
stampStaticDefScope(handler);
|
|
993
1055
|
}
|
|
994
1056
|
|
|
995
1057
|
// Merge handler.use defaults with explicit use
|
|
@@ -999,11 +1061,13 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
|
999
1061
|
// Run merged use callback if present
|
|
1000
1062
|
let result: AllUseItems[] | undefined;
|
|
1001
1063
|
if (mergedUse) {
|
|
1002
|
-
result =
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1064
|
+
result = runAndValidateUseItems(
|
|
1065
|
+
store,
|
|
1066
|
+
namespace,
|
|
1067
|
+
entry,
|
|
1068
|
+
mergedUse,
|
|
1069
|
+
"layout",
|
|
1070
|
+
"use",
|
|
1007
1071
|
);
|
|
1008
1072
|
}
|
|
1009
1073
|
|
|
@@ -1045,9 +1109,7 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
|
1045
1109
|
`Orphan layouts can only be defined inside route or layout > check [${namespace}]`,
|
|
1046
1110
|
);
|
|
1047
1111
|
|
|
1048
|
-
|
|
1049
|
-
entry.parent = null;
|
|
1050
|
-
parent.layout.push(entry);
|
|
1112
|
+
attachOrphanSibling(parent, entry);
|
|
1051
1113
|
}
|
|
1052
1114
|
}
|
|
1053
1115
|
|
|
@@ -1060,33 +1122,15 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
|
|
|
1060
1122
|
} as LayoutItem;
|
|
1061
1123
|
};
|
|
1062
1124
|
|
|
1063
|
-
const isValidUseItem = (item: any): item is AllUseItems | undefined | null =>
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
(item
|
|
1068
|
-
typeof item === "object" &&
|
|
1069
|
-
"type" in item &&
|
|
1070
|
-
[
|
|
1071
|
-
"layout",
|
|
1072
|
-
"route",
|
|
1073
|
-
"middleware",
|
|
1074
|
-
"revalidate",
|
|
1075
|
-
"parallel",
|
|
1076
|
-
"intercept",
|
|
1077
|
-
"loader",
|
|
1078
|
-
"loading",
|
|
1079
|
-
"errorBoundary",
|
|
1080
|
-
"notFoundBoundary",
|
|
1081
|
-
"when",
|
|
1082
|
-
"cache",
|
|
1083
|
-
"transition",
|
|
1084
|
-
"include", // For urls() include() helper
|
|
1085
|
-
].includes(item.type))
|
|
1086
|
-
);
|
|
1087
|
-
};
|
|
1125
|
+
const isValidUseItem = (item: any): item is AllUseItems | undefined | null =>
|
|
1126
|
+
item == null ||
|
|
1127
|
+
(typeof item === "object" &&
|
|
1128
|
+
"type" in item &&
|
|
1129
|
+
ALL_USE_ITEM_TYPES.has(item.type));
|
|
1088
1130
|
|
|
1089
|
-
//
|
|
1131
|
+
// DSL helpers exported for direct import from @rangojs/router and for
|
|
1132
|
+
// assembly into the RouteHelpers object in helper-factories.ts. The route-item
|
|
1133
|
+
// types are discriminated by their `type` literal, so the helpers carry no brand.
|
|
1090
1134
|
export {
|
|
1091
1135
|
layout,
|
|
1092
1136
|
cache,
|
|
@@ -1094,28 +1138,13 @@ export {
|
|
|
1094
1138
|
revalidate,
|
|
1095
1139
|
parallel,
|
|
1096
1140
|
intercept,
|
|
1097
|
-
when,
|
|
1098
1141
|
errorBoundary,
|
|
1099
1142
|
notFoundBoundary,
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
const isOrphanLayout = (item: AllUseItems): boolean => {
|
|
1106
|
-
return (
|
|
1107
|
-
item.type === "layout" &&
|
|
1108
|
-
!item.uses?.some((child) => hasRoutesInItem(child))
|
|
1109
|
-
);
|
|
1110
|
-
};
|
|
1111
|
-
|
|
1112
|
-
// Internal exports used by helper-factories.ts
|
|
1113
|
-
export {
|
|
1114
|
-
routeFn,
|
|
1115
|
-
loaderFn,
|
|
1116
|
-
loadingFn,
|
|
1117
|
-
transitionFn,
|
|
1118
|
-
hasRoutesInItem,
|
|
1143
|
+
route,
|
|
1144
|
+
loader,
|
|
1145
|
+
loading,
|
|
1146
|
+
transition,
|
|
1119
1147
|
isValidUseItem,
|
|
1120
|
-
|
|
1148
|
+
emptySegmentBase,
|
|
1149
|
+
runAndValidateUseItems,
|
|
1121
1150
|
};
|