@rangojs/router 0.0.0-experimental.11 → 0.0.0-experimental.111
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 +9 -0
- package/README.md +1037 -4
- 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 +1635 -158
- 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/dist/browser/react/use-client-cache.js +39 -0
- 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/dist/handles/index.d.ts +6 -0
- 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/{src/href-context.ts → dist/href-context.d.ts} +7 -11
- 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/dist/network-error-thrower.d.ts +17 -0
- 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/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.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 +6148 -2425
- 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/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
- 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/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
- package/dist/vite/virtual-entries.js.map +1 -0
- package/package.json +62 -54
- package/skills/breadcrumbs/SKILL.md +252 -0
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +473 -0
- package/skills/caching/SKILL.md +94 -24
- package/skills/composability/SKILL.md +197 -0
- package/skills/debug-manifest/SKILL.md +12 -8
- package/skills/document-cache/SKILL.md +18 -16
- package/skills/fonts/SKILL.md +6 -4
- package/skills/handler-use/SKILL.md +364 -0
- package/skills/hooks/SKILL.md +524 -71
- package/skills/host-router/SKILL.md +243 -0
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +173 -8
- package/skills/layout/SKILL.md +123 -5
- package/skills/links/SKILL.md +316 -25
- package/skills/loader/SKILL.md +620 -50
- package/skills/middleware/SKILL.md +211 -37
- package/skills/migrate-nextjs/SKILL.md +562 -0
- package/skills/migrate-react-router/SKILL.md +769 -0
- package/skills/mime-routes/SKILL.md +42 -11
- package/skills/observability/SKILL.md +137 -0
- package/skills/parallel/SKILL.md +271 -3
- package/skills/prerender/SKILL.md +448 -63
- package/skills/rango/SKILL.md +293 -21
- package/skills/response-routes/SKILL.md +210 -100
- package/skills/route/SKILL.md +310 -14
- package/skills/router-setup/SKILL.md +211 -33
- package/skills/server-actions/SKILL.md +751 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/theme/SKILL.md +9 -8
- package/skills/typesafety/SKILL.md +622 -91
- package/skills/use-cache/SKILL.md +324 -0
- package/skills/view-transitions/SKILL.md +212 -0
- package/src/__augment-tests__/augment.ts +81 -0
- package/src/__augment-tests__/augmented.check.ts +117 -0
- package/src/__internal.ts +102 -4
- package/src/bin/rango.ts +312 -15
- package/src/browser/action-coordinator.ts +97 -0
- package/src/browser/action-response-classifier.ts +99 -0
- package/src/browser/app-shell.ts +52 -0
- package/src/browser/app-version.ts +14 -0
- package/src/browser/event-controller.ts +136 -68
- package/src/browser/history-state.ts +101 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/intercept-utils.ts +52 -0
- package/src/browser/link-interceptor.ts +24 -4
- package/src/browser/logging.ts +55 -0
- package/src/browser/merge-segment-loaders.ts +20 -12
- package/src/browser/navigation-bridge.ts +370 -561
- package/src/browser/navigation-client.ts +228 -70
- package/src/browser/navigation-store.ts +97 -55
- package/src/browser/navigation-transaction.ts +293 -0
- package/src/browser/network-error-handler.ts +61 -0
- package/src/browser/partial-update.ts +376 -315
- package/src/browser/prefetch/cache.ts +314 -0
- package/src/browser/prefetch/fetch.ts +282 -0
- package/src/browser/prefetch/observer.ts +65 -0
- package/src/browser/prefetch/policy.ts +48 -0
- package/src/browser/prefetch/queue.ts +191 -0
- package/src/browser/prefetch/resource-ready.ts +77 -0
- package/src/browser/rango-state.ts +152 -0
- package/src/browser/react/Link.tsx +255 -71
- package/src/browser/react/NavigationProvider.tsx +152 -24
- package/src/browser/react/context.ts +11 -0
- package/src/browser/react/filter-segment-order.ts +55 -0
- package/src/browser/react/index.ts +15 -12
- package/src/browser/react/location-state-shared.ts +176 -53
- package/src/browser/react/location-state.ts +90 -19
- package/src/browser/react/mount-context.ts +6 -1
- package/src/browser/react/nonce-context.ts +23 -0
- package/src/browser/react/shallow-equal.ts +27 -0
- package/src/browser/react/use-action.ts +29 -51
- package/src/browser/react/use-client-cache.ts +5 -3
- package/src/browser/react/use-handle.ts +41 -123
- package/src/browser/react/use-link-status.ts +6 -5
- package/src/browser/react/use-navigation.ts +44 -65
- package/src/browser/react/use-params.ts +78 -0
- package/src/browser/react/use-pathname.ts +47 -0
- package/src/browser/react/use-reverse.ts +99 -0
- package/src/browser/react/use-router.ts +96 -0
- package/src/browser/react/use-search-params.ts +56 -0
- package/src/browser/react/use-segments.ts +85 -99
- package/src/browser/response-adapter.ts +73 -0
- package/src/browser/rsc-router.tsx +254 -72
- package/src/browser/scroll-restoration.ts +132 -49
- package/src/browser/segment-reconciler.ts +243 -0
- package/src/browser/segment-structure-assert.ts +17 -1
- package/src/browser/server-action-bridge.ts +510 -603
- package/src/browser/shallow.ts +6 -1
- package/src/browser/types.ts +158 -48
- package/src/browser/validate-redirect-origin.ts +29 -0
- package/src/build/generate-manifest.ts +87 -26
- package/src/build/generate-route-types.ts +39 -828
- package/src/build/index.ts +2 -5
- package/src/build/route-trie.ts +84 -31
- package/src/build/route-types/ast-helpers.ts +25 -0
- package/src/build/route-types/ast-route-extraction.ts +98 -0
- package/src/build/route-types/codegen.ts +102 -0
- package/src/build/route-types/include-resolution.ts +418 -0
- package/src/build/route-types/param-extraction.ts +48 -0
- package/src/build/route-types/per-module-writer.ts +128 -0
- package/src/build/route-types/router-processing.ts +618 -0
- package/src/build/route-types/scan-filter.ts +85 -0
- package/src/build/runtime-discovery.ts +231 -0
- package/src/cache/background-task.ts +34 -0
- package/src/cache/cache-key-utils.ts +44 -0
- package/src/cache/cache-policy.ts +125 -0
- package/src/cache/cache-runtime.ts +342 -0
- package/src/cache/cache-scope.ts +167 -307
- package/src/cache/cf/cf-cache-store.ts +573 -21
- package/src/cache/cf/index.ts +13 -3
- package/src/cache/document-cache.ts +116 -77
- package/src/cache/handle-capture.ts +81 -0
- package/src/cache/handle-snapshot.ts +41 -0
- package/src/cache/index.ts +1 -15
- package/src/cache/memory-segment-store.ts +191 -13
- package/src/cache/profile-registry.ts +73 -0
- package/src/cache/read-through-swr.ts +134 -0
- package/src/cache/segment-codec.ts +256 -0
- package/src/cache/taint.ts +153 -0
- package/src/cache/types.ts +72 -122
- package/src/client.rsc.tsx +6 -1
- package/src/client.tsx +117 -303
- package/src/component-utils.ts +4 -4
- package/src/components/DefaultDocument.tsx +5 -1
- package/src/context-var.ts +156 -0
- package/src/debug.ts +19 -9
- package/src/errors.ts +96 -8
- package/src/handle.ts +56 -11
- package/src/handles/MetaTags.tsx +73 -20
- package/src/handles/breadcrumbs.ts +66 -0
- package/src/handles/index.ts +1 -0
- package/src/handles/meta.ts +30 -13
- package/src/host/cookie-handler.ts +21 -15
- package/src/host/errors.ts +8 -8
- package/src/host/index.ts +6 -9
- package/src/host/pattern-matcher.ts +27 -27
- package/src/host/router.ts +176 -82
- package/src/host/testing.ts +8 -8
- package/src/host/types.ts +46 -9
- package/src/host/utils.ts +2 -2
- package/src/href-client.ts +196 -56
- package/src/index.rsc.ts +141 -22
- package/src/index.ts +215 -53
- package/src/internal-debug.ts +11 -0
- package/src/loader-store.ts +463 -0
- package/src/loader.rsc.ts +25 -143
- package/src/loader.ts +27 -10
- package/src/network-error-thrower.tsx +3 -1
- package/src/outlet-context.ts +1 -1
- package/src/outlet-provider.tsx +45 -0
- package/src/prerender/param-hash.ts +4 -2
- package/src/prerender/store.ts +122 -17
- package/src/prerender.ts +397 -29
- package/src/response-utils.ts +28 -0
- package/src/reverse.ts +231 -121
- package/src/root-error-boundary.tsx +41 -29
- package/src/route-content-wrapper.tsx +7 -4
- package/src/route-definition/dsl-helpers.ts +1106 -0
- package/src/route-definition/helper-factories.ts +90 -0
- package/src/route-definition/helpers-types.ts +485 -0
- package/src/route-definition/index.ts +55 -0
- package/src/route-definition/redirect.ts +101 -0
- package/src/route-definition/resolve-handler-use.ts +155 -0
- package/src/route-definition/use-item-types.ts +32 -0
- package/src/route-definition.ts +1 -1431
- package/src/route-map-builder.ts +162 -123
- package/src/route-name.ts +53 -0
- package/src/route-types.ts +77 -44
- package/src/router/content-negotiation.ts +215 -0
- package/src/router/debug-manifest.ts +72 -0
- package/src/router/error-handling.ts +10 -10
- package/src/router/find-match.ts +160 -0
- package/src/router/handler-context.ts +376 -109
- package/src/router/intercept-resolution.ts +35 -20
- package/src/router/lazy-includes.ts +237 -0
- package/src/router/loader-resolution.ts +330 -145
- package/src/router/logging.ts +251 -0
- package/src/router/manifest.ts +70 -22
- package/src/router/match-api.ts +196 -261
- package/src/router/match-context.ts +4 -2
- package/src/router/match-handlers.ts +441 -0
- package/src/router/match-middleware/background-revalidation.ts +108 -93
- package/src/router/match-middleware/cache-lookup.ts +414 -91
- package/src/router/match-middleware/cache-store.ts +91 -29
- package/src/router/match-middleware/intercept-resolution.ts +48 -21
- package/src/router/match-middleware/segment-resolution.ts +73 -9
- package/src/router/match-pipelines.ts +10 -45
- package/src/router/match-result.ts +154 -35
- package/src/router/metrics.ts +241 -16
- package/src/router/middleware-cookies.ts +55 -0
- package/src/router/middleware-types.ts +209 -0
- package/src/router/middleware.ts +373 -371
- package/src/router/navigation-snapshot.ts +182 -0
- package/src/router/pattern-matching.ts +291 -54
- package/src/router/prerender-match.ts +502 -0
- package/src/router/preview-match.ts +98 -0
- package/src/router/request-classification.ts +310 -0
- package/src/router/revalidation.ts +195 -40
- package/src/router/route-snapshot.ts +245 -0
- package/src/router/router-context.ts +41 -21
- package/src/router/router-interfaces.ts +490 -0
- package/src/router/router-options.ts +618 -0
- package/src/router/router-registry.ts +21 -0
- package/src/router/segment-resolution/fresh.ts +756 -0
- package/src/router/segment-resolution/helpers.ts +268 -0
- package/src/router/segment-resolution/loader-cache.ts +199 -0
- package/src/router/segment-resolution/revalidation.ts +1407 -0
- package/src/router/segment-resolution/static-store.ts +67 -0
- package/src/router/segment-resolution.ts +21 -1336
- package/src/router/segment-wrappers.ts +291 -0
- package/src/router/substitute-pattern-params.ts +56 -0
- package/src/router/telemetry-otel.ts +299 -0
- package/src/router/telemetry.ts +300 -0
- package/src/router/timeout.ts +148 -0
- package/src/router/trie-matching.ts +111 -39
- package/src/router/types.ts +17 -9
- package/src/router/url-params.ts +49 -0
- package/src/router.ts +707 -2291
- package/src/rsc/handler-context.ts +45 -0
- package/src/rsc/handler.ts +864 -1117
- package/src/rsc/helpers.ts +181 -19
- package/src/rsc/index.ts +1 -21
- package/src/rsc/loader-fetch.ts +229 -0
- package/src/rsc/manifest-init.ts +90 -0
- package/src/rsc/nonce.ts +14 -0
- package/src/rsc/origin-guard.ts +141 -0
- package/src/rsc/progressive-enhancement.ts +395 -0
- package/src/rsc/response-error.ts +37 -0
- package/src/rsc/response-route-handler.ts +360 -0
- package/src/rsc/rsc-rendering.ts +256 -0
- package/src/rsc/runtime-warnings.ts +42 -0
- package/src/rsc/server-action.ts +360 -0
- package/src/rsc/ssr-setup.ts +128 -0
- package/src/rsc/types.ts +52 -11
- package/src/search-params.ts +230 -0
- package/src/segment-content-promise.ts +67 -0
- package/src/segment-loader-promise.ts +122 -0
- package/src/segment-system.tsx +187 -38
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +403 -88
- package/src/server/cookie-store.ts +190 -0
- package/src/server/fetchable-loader-store.ts +37 -0
- package/src/server/handle-store.ts +113 -15
- package/src/server/loader-registry.ts +24 -64
- package/src/server/request-context.ts +603 -109
- package/src/server.ts +35 -155
- package/src/ssr/index.tsx +107 -30
- package/src/static-handler.ts +126 -0
- package/src/theme/ThemeProvider.tsx +21 -15
- package/src/theme/ThemeScript.tsx +5 -5
- package/src/theme/constants.ts +5 -2
- package/src/theme/index.ts +4 -14
- package/src/theme/theme-context.ts +4 -30
- package/src/theme/theme-script.ts +21 -18
- package/src/types/boundaries.ts +158 -0
- package/src/types/cache-types.ts +198 -0
- package/src/types/error-types.ts +192 -0
- package/src/types/global-namespace.ts +113 -0
- package/src/types/handler-context.ts +806 -0
- package/src/types/index.ts +89 -0
- package/src/types/loader-types.ts +209 -0
- package/src/types/request-scope.ts +126 -0
- package/src/types/route-config.ts +170 -0
- package/src/types/route-entry.ts +120 -0
- package/src/types/segments.ts +167 -0
- package/src/types.ts +1 -1763
- package/src/urls/include-helper.ts +164 -0
- package/src/urls/index.ts +50 -0
- package/src/urls/path-helper-types.ts +372 -0
- package/src/urls/path-helper.ts +329 -0
- package/src/urls/pattern-types.ts +124 -0
- package/src/urls/response-types.ts +109 -0
- package/src/urls/type-extraction.ts +282 -0
- package/src/urls/urls-function.ts +94 -0
- package/src/urls.ts +1 -1288
- package/src/use-loader.tsx +511 -107
- package/src/vite/debug.ts +184 -0
- package/src/vite/discovery/bundle-postprocess.ts +181 -0
- package/src/vite/discovery/discover-routers.ts +374 -0
- package/src/vite/discovery/discovery-errors.ts +194 -0
- package/src/vite/discovery/gate-state.ts +171 -0
- package/src/vite/discovery/prerender-collection.ts +480 -0
- package/src/vite/discovery/route-types-writer.ts +258 -0
- package/src/vite/discovery/self-gen-tracking.ts +73 -0
- package/src/vite/discovery/state.ts +143 -0
- package/src/vite/discovery/virtual-module-codegen.ts +193 -0
- package/src/vite/index.ts +15 -2012
- package/src/vite/plugin-types.ts +103 -0
- package/src/vite/plugins/cjs-to-esm.ts +98 -0
- package/src/vite/plugins/client-ref-dedup.ts +131 -0
- package/src/vite/plugins/client-ref-hashing.ts +117 -0
- 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 +214 -0
- package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +109 -66
- package/src/vite/plugins/expose-id-utils.ts +303 -0
- package/src/vite/plugins/expose-ids/export-analysis.ts +320 -0
- package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
- package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
- package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
- package/src/vite/plugins/expose-ids/types.ts +45 -0
- package/src/vite/plugins/expose-internal-ids.ts +816 -0
- package/src/vite/plugins/performance-tracks.ts +92 -0
- package/src/vite/plugins/refresh-cmd.ts +127 -0
- package/src/vite/plugins/use-cache-transform.ts +336 -0
- package/src/vite/plugins/version-injector.ts +109 -0
- package/src/vite/plugins/version-plugin.ts +323 -0
- package/src/vite/plugins/virtual-entries.ts +123 -0
- package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
- package/src/vite/rango.ts +509 -0
- package/src/vite/router-discovery.ts +1511 -0
- package/src/vite/utils/ast-handler-extract.ts +517 -0
- package/src/vite/utils/banner.ts +36 -0
- package/src/vite/utils/bundle-analysis.ts +139 -0
- package/src/vite/utils/forward-user-plugins.ts +193 -0
- package/src/vite/utils/manifest-utils.ts +86 -0
- package/src/vite/utils/package-resolution.ts +161 -0
- package/src/vite/utils/prerender-utils.ts +222 -0
- package/src/vite/utils/shared-utils.ts +174 -0
- package/CLAUDE.md +0 -43
- package/src/browser/lru-cache.ts +0 -69
- package/src/browser/request-controller.ts +0 -164
- package/src/cache/memory-store.ts +0 -253
- package/src/router.gen.ts +0 -6
- package/src/urls.gen.ts +0 -8
- package/src/vite/expose-handle-id.ts +0 -209
- package/src/vite/expose-loader-id.ts +0 -426
- package/src/vite/expose-location-state-id.ts +0 -177
- package/src/vite/expose-prerender-handler-id.ts +0 -429
- /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
package/src/route-map-builder.ts
CHANGED
|
@@ -1,115 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Route manifest storage and retrieval.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The route manifest maps route names to URL patterns. It is populated
|
|
5
|
+
* by the virtual module (which imports from .named-routes.gen.ts files)
|
|
6
|
+
* and consumed by reverse() and href() at runtime.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { createRouteMap, registerRouteMap } from "rsc-router/browser";
|
|
10
|
-
*
|
|
11
|
-
* const routeMap = createRouteMap()
|
|
12
|
-
* .add(homeRoutes)
|
|
13
|
-
* .add(blogRoutes, "blog")
|
|
14
|
-
* .add(shopRoutes, "shop");
|
|
15
|
-
*
|
|
16
|
-
* registerRouteMap(routeMap.routes);
|
|
17
|
-
*
|
|
18
|
-
* declare global {
|
|
19
|
-
* namespace RSCRouter {
|
|
20
|
-
* interface RegisteredRoutes extends typeof routeMap.routes {}
|
|
21
|
-
* }
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import type { PrefixRoutePatterns } from "./reverse.js";
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Route map builder interface
|
|
30
|
-
*
|
|
31
|
-
* Accumulates route types through the builder chain for type-safe reverse.
|
|
32
|
-
*/
|
|
33
|
-
export interface RouteMapBuilder<TRoutes extends Record<string, string> = {}> {
|
|
34
|
-
/**
|
|
35
|
-
* Add routes without prefix
|
|
36
|
-
*/
|
|
37
|
-
add<T extends Record<string, string>>(routes: T): RouteMapBuilder<TRoutes & T>;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Add routes with prefix (only URL patterns are prefixed, keys stay unchanged)
|
|
41
|
-
* @param routes - Route definitions to add
|
|
42
|
-
* @param prefix - URL prefix WITHOUT leading slash (e.g., "blog" not "/blog")
|
|
43
|
-
*/
|
|
44
|
-
add<T extends Record<string, string>, P extends string>(
|
|
45
|
-
routes: T,
|
|
46
|
-
prefix: P
|
|
47
|
-
): RouteMapBuilder<TRoutes & PrefixRoutePatterns<T, `/${P}`>>;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* The accumulated route map (for typeof extraction in module augmentation)
|
|
51
|
-
*/
|
|
52
|
-
readonly routes: TRoutes;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Add routes to a map with optional prefix
|
|
57
|
-
* Keys stay unchanged for composability - only URL patterns get prefixed.
|
|
58
|
-
*
|
|
59
|
-
* @param routeMap - The map to add routes to
|
|
60
|
-
* @param routes - Routes to add
|
|
61
|
-
* @param prefix - Optional prefix for URL paths WITHOUT leading slash (keys stay unchanged)
|
|
8
|
+
* See docs/manifests.md for the full data flow.
|
|
62
9
|
*/
|
|
63
|
-
function addRoutes(
|
|
64
|
-
routeMap: Record<string, string>,
|
|
65
|
-
routes: Record<string, string>,
|
|
66
|
-
prefix: string = ""
|
|
67
|
-
): void {
|
|
68
|
-
// Normalize prefix: remove leading slash if accidentally provided
|
|
69
|
-
const normalizedPrefix = prefix.startsWith("/") ? prefix.slice(1) : prefix;
|
|
70
|
-
|
|
71
|
-
for (const [key, pattern] of Object.entries(routes)) {
|
|
72
|
-
const prefixedPattern =
|
|
73
|
-
normalizedPrefix && pattern !== "/"
|
|
74
|
-
? `/${normalizedPrefix}${pattern}`
|
|
75
|
-
: normalizedPrefix && pattern === "/"
|
|
76
|
-
? `/${normalizedPrefix}`
|
|
77
|
-
: pattern;
|
|
78
|
-
// Use original key - enables reusable route modules
|
|
79
|
-
routeMap[key] = prefixedPattern;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Create a new route map builder
|
|
85
|
-
*
|
|
86
|
-
* @returns A builder for accumulating routes with type-safe prefixes
|
|
87
|
-
*
|
|
88
|
-
* @example
|
|
89
|
-
* ```typescript
|
|
90
|
-
* const routeMap = createRouteMap()
|
|
91
|
-
* .add(homeRoutes)
|
|
92
|
-
* .add(blogRoutes, "blog");
|
|
93
|
-
*
|
|
94
|
-
* // Types are accumulated through the chain
|
|
95
|
-
* type AppRoutes = typeof routeMap.routes;
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
export function createRouteMap(): RouteMapBuilder<{}> {
|
|
99
|
-
const routeMap: Record<string, string> = {};
|
|
100
|
-
|
|
101
|
-
const builder: RouteMapBuilder<any> = {
|
|
102
|
-
add(routes: Record<string, string>, prefix?: string) {
|
|
103
|
-
addRoutes(routeMap, routes, prefix);
|
|
104
|
-
return builder;
|
|
105
|
-
},
|
|
106
|
-
get routes() {
|
|
107
|
-
return routeMap;
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
return builder;
|
|
112
|
-
}
|
|
113
10
|
|
|
114
11
|
// Singleton route map instance - populated incrementally as routes are encountered
|
|
115
12
|
let globalRouteMap: Record<string, string> = {};
|
|
@@ -126,21 +23,9 @@ let cachedPrecomputedEntries: Array<{
|
|
|
126
23
|
}> | null = null;
|
|
127
24
|
|
|
128
25
|
/**
|
|
129
|
-
* Register the route map
|
|
130
|
-
*
|
|
131
|
-
* Call this after building your route map to make it available to reverse.
|
|
26
|
+
* Register routes into the global route map.
|
|
132
27
|
* Routes are merged with any existing registered routes.
|
|
133
|
-
*
|
|
134
|
-
* @param map - The route map to register
|
|
135
|
-
*
|
|
136
|
-
* @example
|
|
137
|
-
* ```typescript
|
|
138
|
-
* const routeMap = createRouteMap()
|
|
139
|
-
* .add(homeRoutes)
|
|
140
|
-
* .add(blogRoutes, "blog");
|
|
141
|
-
*
|
|
142
|
-
* registerRouteMap(routeMap.routes);
|
|
143
|
-
* ```
|
|
28
|
+
* Called by createRouter() during module evaluation.
|
|
144
29
|
*/
|
|
145
30
|
export function registerRouteMap(map: Record<string, string>): void {
|
|
146
31
|
// Always merge with existing map (don't replace)
|
|
@@ -155,6 +40,7 @@ export function registerRouteMap(map: Record<string, string>): void {
|
|
|
155
40
|
* otherwise returns the runtime-accumulated route map.
|
|
156
41
|
*
|
|
157
42
|
* @returns The registered route map
|
|
43
|
+
* @internal
|
|
158
44
|
*/
|
|
159
45
|
export function getGlobalRouteMap(): Record<string, string> {
|
|
160
46
|
// Cached manifest is complete (includes lazy routes), so prefer it
|
|
@@ -203,7 +89,10 @@ export function clearCachedManifest(): void {
|
|
|
203
89
|
* @param entries - Array of { staticPrefix, routes } from build-time prefix tree leaves
|
|
204
90
|
*/
|
|
205
91
|
export function setPrecomputedEntries(
|
|
206
|
-
entries: Array<{
|
|
92
|
+
entries: Array<{
|
|
93
|
+
staticPrefix: string;
|
|
94
|
+
routes: Record<string, string>;
|
|
95
|
+
}> | null,
|
|
207
96
|
): void {
|
|
208
97
|
cachedPrecomputedEntries = entries;
|
|
209
98
|
}
|
|
@@ -227,6 +116,107 @@ export function getRouteTrie(): typeof cachedRouteTrie {
|
|
|
227
116
|
return cachedRouteTrie;
|
|
228
117
|
}
|
|
229
118
|
|
|
119
|
+
// Per-router isolated data: each router gets its own manifest, trie, and
|
|
120
|
+
// precomputed entries so multi-router setups (e.g. site + admin via
|
|
121
|
+
// createHostRouter()) don't see each other's routes.
|
|
122
|
+
const perRouterManifestMap: Map<string, Record<string, string>> = new Map();
|
|
123
|
+
const perRouterTrieMap: Map<string, import("./build/route-trie.js").TrieNode> =
|
|
124
|
+
new Map();
|
|
125
|
+
const perRouterPrecomputedEntriesMap: Map<
|
|
126
|
+
string,
|
|
127
|
+
Array<{ staticPrefix: string; routes: Record<string, string> }>
|
|
128
|
+
> = new Map();
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Clear all cached route data (global and per-router).
|
|
132
|
+
* Called during HMR when route definitions change so the handler rebuilds
|
|
133
|
+
* the trie from the updated router.urlpatterns on the next request.
|
|
134
|
+
*
|
|
135
|
+
* The virtual module calls this before repopulating with fresh data,
|
|
136
|
+
* preventing stale entries from removed routes from accumulating.
|
|
137
|
+
*/
|
|
138
|
+
export function clearAllRouterData(): void {
|
|
139
|
+
globalRouteMap = {};
|
|
140
|
+
cachedManifest = null;
|
|
141
|
+
cachedPrecomputedEntries = null;
|
|
142
|
+
cachedRouteTrie = null;
|
|
143
|
+
rootScopeRoutes.clear();
|
|
144
|
+
globalSearchSchemas.clear();
|
|
145
|
+
perRouterManifestMap.clear();
|
|
146
|
+
perRouterTrieMap.clear();
|
|
147
|
+
perRouterPrecomputedEntriesMap.clear();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function setRouterManifest(
|
|
151
|
+
routerId: string,
|
|
152
|
+
manifest: Record<string, string>,
|
|
153
|
+
): void {
|
|
154
|
+
perRouterManifestMap.set(routerId, manifest);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** @internal */
|
|
158
|
+
export function getRouterManifest(
|
|
159
|
+
routerId: string,
|
|
160
|
+
): Record<string, string> | undefined {
|
|
161
|
+
return perRouterManifestMap.get(routerId);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export function setRouterTrie(
|
|
165
|
+
routerId: string,
|
|
166
|
+
trie: import("./build/route-trie.js").TrieNode,
|
|
167
|
+
): void {
|
|
168
|
+
perRouterTrieMap.set(routerId, trie);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export function getRouterTrie(
|
|
172
|
+
routerId: string,
|
|
173
|
+
): import("./build/route-trie.js").TrieNode | undefined {
|
|
174
|
+
return perRouterTrieMap.get(routerId);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export function setRouterPrecomputedEntries(
|
|
178
|
+
routerId: string,
|
|
179
|
+
entries: Array<{ staticPrefix: string; routes: Record<string, string> }>,
|
|
180
|
+
): void {
|
|
181
|
+
perRouterPrecomputedEntriesMap.set(routerId, entries);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export function getRouterPrecomputedEntries(
|
|
185
|
+
routerId: string,
|
|
186
|
+
): Array<{ staticPrefix: string; routes: Record<string, string> }> | undefined {
|
|
187
|
+
return perRouterPrecomputedEntriesMap.get(routerId);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Lazy loader registry: per-router manifest modules are loaded on first request
|
|
191
|
+
// via import() to keep startup fast and allow Rollup to code-split per router.
|
|
192
|
+
const routerManifestLoaders: Map<string, () => Promise<any>> = new Map();
|
|
193
|
+
|
|
194
|
+
export function registerRouterManifestLoader(
|
|
195
|
+
routerId: string,
|
|
196
|
+
loader: () => Promise<any>,
|
|
197
|
+
): void {
|
|
198
|
+
routerManifestLoaders.set(routerId, loader);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export async function ensureRouterManifest(routerId: string): Promise<void> {
|
|
202
|
+
// Check both manifest AND trie. The virtual module's setRouterManifest()
|
|
203
|
+
// pre-sets the manifest at startup, but the per-router trie is only
|
|
204
|
+
// available from the lazy loader. Without this, the lazy loader never
|
|
205
|
+
// runs and findMatch falls back to the global merged trie — which
|
|
206
|
+
// contains routes from ALL routers and breaks multi-router setups.
|
|
207
|
+
if (perRouterManifestMap.has(routerId) && perRouterTrieMap.has(routerId))
|
|
208
|
+
return;
|
|
209
|
+
const loader = routerManifestLoaders.get(routerId);
|
|
210
|
+
if (loader) {
|
|
211
|
+
const mod = await loader();
|
|
212
|
+
if (mod.manifest) perRouterManifestMap.set(routerId, mod.manifest);
|
|
213
|
+
if (mod.trie) perRouterTrieMap.set(routerId, mod.trie);
|
|
214
|
+
if (mod.precomputedEntries)
|
|
215
|
+
perRouterPrecomputedEntriesMap.set(routerId, mod.precomputedEntries);
|
|
216
|
+
routerManifestLoaders.delete(routerId);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
230
220
|
// Dev-mode manifest readiness gate.
|
|
231
221
|
// The Vite discovery plugin calls setManifestReadyPromise() before starting
|
|
232
222
|
// discovery, and resolves it when discovery completes. The handler awaits
|
|
@@ -240,3 +230,52 @@ export function setManifestReadyPromise(promise: Promise<void>): void {
|
|
|
240
230
|
export function waitForManifestReady(): Promise<void> | null {
|
|
241
231
|
return manifestReadyPromise;
|
|
242
232
|
}
|
|
233
|
+
|
|
234
|
+
// ============================================================================
|
|
235
|
+
// Route Scope Registry
|
|
236
|
+
// ============================================================================
|
|
237
|
+
|
|
238
|
+
// Tracks whether each route is at root scope (no named include boundary above).
|
|
239
|
+
// Used by dot-local reverse resolution to decide whether bare-name fallback
|
|
240
|
+
// is allowed after scoped lookups are exhausted.
|
|
241
|
+
const rootScopeRoutes: Map<string, boolean> = new Map();
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Register whether a route is at root scope.
|
|
245
|
+
* Called by path() during route evaluation.
|
|
246
|
+
*/
|
|
247
|
+
export function registerRouteRootScope(
|
|
248
|
+
routeName: string,
|
|
249
|
+
rootScoped: boolean,
|
|
250
|
+
): void {
|
|
251
|
+
rootScopeRoutes.set(routeName, rootScoped);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Check if a route is at root scope.
|
|
256
|
+
* Returns undefined if the route has not been registered (e.g. in unit tests).
|
|
257
|
+
*/
|
|
258
|
+
export function isRouteRootScoped(routeName: string): boolean | undefined {
|
|
259
|
+
return rootScopeRoutes.get(routeName);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// ============================================================================
|
|
263
|
+
// Search Schema Registry
|
|
264
|
+
// ============================================================================
|
|
265
|
+
|
|
266
|
+
import type { SearchSchema } from "./search-params.js";
|
|
267
|
+
|
|
268
|
+
// Global search schema map: route name -> search schema descriptor.
|
|
269
|
+
// Populated by path() when a search option is provided.
|
|
270
|
+
const globalSearchSchemas: Map<string, SearchSchema> = new Map();
|
|
271
|
+
|
|
272
|
+
export function registerSearchSchema(
|
|
273
|
+
routeName: string,
|
|
274
|
+
schema: SearchSchema,
|
|
275
|
+
): void {
|
|
276
|
+
globalSearchSchemas.set(routeName, schema);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export function getSearchSchema(routeName: string): SearchSchema | undefined {
|
|
280
|
+
return globalSearchSchemas.get(routeName);
|
|
281
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route name utilities for filtering internal route names.
|
|
3
|
+
*
|
|
4
|
+
* Internal names stay active in the runtime manifest for matching and local
|
|
5
|
+
* reverse() resolution, but they must not leak into public APIs or generated
|
|
6
|
+
* route maps.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const AUTO_GENERATED_ROUTE_PREFIX = "$path_";
|
|
10
|
+
export const INTERNAL_INCLUDE_SCOPE_PREFIX = "$prefix_";
|
|
11
|
+
|
|
12
|
+
const RESERVED_PREFIXES = [
|
|
13
|
+
AUTO_GENERATED_ROUTE_PREFIX,
|
|
14
|
+
INTERNAL_INCLUDE_SCOPE_PREFIX,
|
|
15
|
+
] as const;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Check if a route name is internal.
|
|
19
|
+
* Internal names include:
|
|
20
|
+
* - unnamed path() routes like "$path__health" or "docs.$path__health"
|
|
21
|
+
* - hidden include scopes like "$prefix_0.index" or "blog.$prefix_1.post"
|
|
22
|
+
*
|
|
23
|
+
* User-defined names containing "$" (e.g. "docs.$admin") are valid and must
|
|
24
|
+
* be preserved.
|
|
25
|
+
*/
|
|
26
|
+
export function isAutoGeneratedRouteName(name: string): boolean {
|
|
27
|
+
return name.split(".").some((segment) => {
|
|
28
|
+
return (
|
|
29
|
+
segment.startsWith(AUTO_GENERATED_ROUTE_PREFIX) ||
|
|
30
|
+
segment.startsWith(INTERNAL_INCLUDE_SCOPE_PREFIX)
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Validate that a user-provided route name does not collide with
|
|
37
|
+
* reserved internal prefixes. Checks every dot-separated segment,
|
|
38
|
+
* mirroring the same rule used by isAutoGeneratedRouteName().
|
|
39
|
+
*
|
|
40
|
+
* Throws with a clear message when a reserved prefix is detected.
|
|
41
|
+
*/
|
|
42
|
+
export function validateUserRouteName(name: string): void {
|
|
43
|
+
for (const segment of name.split(".")) {
|
|
44
|
+
for (const prefix of RESERVED_PREFIXES) {
|
|
45
|
+
if (segment.startsWith(prefix)) {
|
|
46
|
+
throw new Error(
|
|
47
|
+
`Route name "${name}" contains segment "${segment}" which uses reserved internal prefix "${prefix}". ` +
|
|
48
|
+
`Choose a different name to avoid collision with auto-generated route names.`,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
package/src/route-types.ts
CHANGED
|
@@ -5,46 +5,43 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Brand for UrlPatterns nominal typing (see pattern-types.ts). The route-item
|
|
9
|
+
* types below are discriminated by their `type` literal, so they carry no brand.
|
|
9
10
|
*/
|
|
10
|
-
export declare const LayoutBrand: unique symbol;
|
|
11
|
-
export declare const RouteBrand: unique symbol;
|
|
12
|
-
export declare const ParallelBrand: unique symbol;
|
|
13
|
-
export declare const InterceptBrand: unique symbol;
|
|
14
|
-
export declare const MiddlewareBrand: unique symbol;
|
|
15
|
-
export declare const RevalidateBrand: unique symbol;
|
|
16
|
-
export declare const LoaderBrand: unique symbol;
|
|
17
|
-
export declare const LoadingBrand: unique symbol;
|
|
18
|
-
export declare const ErrorBoundaryBrand: unique symbol;
|
|
19
|
-
export declare const NotFoundBoundaryBrand: unique symbol;
|
|
20
|
-
export declare const WhenBrand: unique symbol;
|
|
21
|
-
export declare const CacheBrand: unique symbol;
|
|
22
|
-
export declare const IncludeBrand: unique symbol;
|
|
23
11
|
export declare const UrlPatternsBrand: unique symbol;
|
|
24
12
|
|
|
25
13
|
export type LayoutItem = {
|
|
26
14
|
name: string;
|
|
27
15
|
type: "layout";
|
|
28
16
|
uses?: AllUseItems[];
|
|
29
|
-
[LayoutBrand]: void;
|
|
30
17
|
};
|
|
31
18
|
|
|
32
19
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
20
|
+
* Phantom inference fields attached to wrapper items (layout/cache/transition)
|
|
21
|
+
* so the urls() type extractor can read their child routes/responses. The fields
|
|
22
|
+
* never exist at runtime.
|
|
35
23
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
type WithChildren<
|
|
25
|
+
TBase,
|
|
26
|
+
TChildRoutes extends Record<string, any> = Record<string, string>,
|
|
38
27
|
TChildResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
39
|
-
> =
|
|
28
|
+
> = TBase & {
|
|
40
29
|
readonly __childRoutes?: TChildRoutes;
|
|
41
30
|
readonly __childResponses?: TChildResponses;
|
|
42
31
|
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Typed layout item that carries child routes as phantom type
|
|
35
|
+
* Used for type inference in urls() API
|
|
36
|
+
*/
|
|
37
|
+
export type TypedLayoutItem<
|
|
38
|
+
TChildRoutes extends Record<string, any> = Record<string, string>,
|
|
39
|
+
TChildResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
40
|
+
> = WithChildren<LayoutItem, TChildRoutes, TChildResponses>;
|
|
43
41
|
export type RouteItem = {
|
|
44
42
|
name: string;
|
|
45
43
|
type: "route";
|
|
46
44
|
uses?: AllUseItems[];
|
|
47
|
-
[RouteBrand]: void;
|
|
48
45
|
};
|
|
49
46
|
|
|
50
47
|
/**
|
|
@@ -55,81 +52,83 @@ export type TypedRouteItem<
|
|
|
55
52
|
TName extends string = string,
|
|
56
53
|
TPattern extends string = string,
|
|
57
54
|
TData = unknown,
|
|
55
|
+
TSearch = {},
|
|
58
56
|
> = RouteItem & {
|
|
59
57
|
readonly __name?: TName;
|
|
60
58
|
readonly __pattern?: TPattern;
|
|
61
59
|
readonly __data?: TData;
|
|
60
|
+
readonly __search?: TSearch;
|
|
62
61
|
};
|
|
63
62
|
export type ParallelItem = {
|
|
64
63
|
name: string;
|
|
65
64
|
type: "parallel";
|
|
66
65
|
uses?: ParallelUseItem[];
|
|
67
|
-
[ParallelBrand]: void;
|
|
68
66
|
};
|
|
69
67
|
export type InterceptItem = {
|
|
70
68
|
name: string;
|
|
71
69
|
type: "intercept";
|
|
72
70
|
uses?: InterceptUseItem[];
|
|
73
|
-
[InterceptBrand]: void;
|
|
74
71
|
};
|
|
75
72
|
export type LoaderItem = {
|
|
76
73
|
name: string;
|
|
77
74
|
type: "loader";
|
|
78
75
|
uses?: LoaderUseItem[];
|
|
79
|
-
[LoaderBrand]: void;
|
|
80
76
|
};
|
|
81
77
|
export type MiddlewareItem = {
|
|
82
78
|
name: string;
|
|
83
79
|
type: "middleware";
|
|
84
80
|
uses?: AllUseItems[];
|
|
85
|
-
[MiddlewareBrand]: void;
|
|
86
81
|
};
|
|
87
82
|
export type RevalidateItem = {
|
|
88
83
|
name: string;
|
|
89
84
|
type: "revalidate";
|
|
90
85
|
uses?: AllUseItems[];
|
|
91
|
-
[RevalidateBrand]: void;
|
|
92
86
|
};
|
|
93
87
|
export type LoadingItem = {
|
|
94
88
|
name: string;
|
|
95
89
|
type: "loading";
|
|
96
|
-
[LoadingBrand]: void;
|
|
97
90
|
};
|
|
98
91
|
export type ErrorBoundaryItem = {
|
|
99
92
|
name: string;
|
|
100
93
|
type: "errorBoundary";
|
|
101
94
|
uses?: AllUseItems[];
|
|
102
|
-
[ErrorBoundaryBrand]: void;
|
|
103
95
|
};
|
|
104
96
|
export type NotFoundBoundaryItem = {
|
|
105
97
|
name: string;
|
|
106
98
|
type: "notFoundBoundary";
|
|
107
99
|
uses?: AllUseItems[];
|
|
108
|
-
[NotFoundBoundaryBrand]: void;
|
|
109
100
|
};
|
|
110
101
|
export type WhenItem = {
|
|
111
102
|
name: string;
|
|
112
103
|
type: "when";
|
|
113
|
-
[WhenBrand]: void;
|
|
114
104
|
};
|
|
115
105
|
export type CacheItem = {
|
|
116
106
|
name: string;
|
|
117
107
|
type: "cache";
|
|
118
108
|
uses?: AllUseItems[];
|
|
119
|
-
[CacheBrand]: void;
|
|
120
109
|
};
|
|
110
|
+
export type TransitionItem = {
|
|
111
|
+
name: string;
|
|
112
|
+
type: "transition";
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Typed transition item that carries child routes as phantom type
|
|
117
|
+
* Used for type inference when transition() wraps child routes
|
|
118
|
+
*/
|
|
119
|
+
export type TypedTransitionItem<
|
|
120
|
+
TChildRoutes extends Record<string, any> = Record<string, string>,
|
|
121
|
+
TChildResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
122
|
+
> = WithChildren<TransitionItem, TChildRoutes, TChildResponses>;
|
|
121
123
|
|
|
122
124
|
/**
|
|
123
125
|
* Typed cache item that carries child routes as phantom type
|
|
124
126
|
* Used for type inference in urls() API
|
|
125
127
|
*/
|
|
126
128
|
export type TypedCacheItem<
|
|
127
|
-
TChildRoutes extends Record<string,
|
|
129
|
+
TChildRoutes extends Record<string, any> = Record<string, string>,
|
|
128
130
|
TChildResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
129
|
-
> = CacheItem
|
|
130
|
-
readonly __childRoutes?: TChildRoutes;
|
|
131
|
-
readonly __childResponses?: TChildResponses;
|
|
132
|
-
};
|
|
131
|
+
> = WithChildren<CacheItem, TChildRoutes, TChildResponses>;
|
|
133
132
|
|
|
134
133
|
/**
|
|
135
134
|
* Include item for URL pattern composition (used by urls() API)
|
|
@@ -149,8 +148,21 @@ export type IncludeItem = {
|
|
|
149
148
|
parent: unknown; // EntryData - avoid circular import
|
|
150
149
|
/** Counter snapshot from pattern extraction for consistent shortCode indices */
|
|
151
150
|
counters?: Record<string, number>;
|
|
151
|
+
/** Cache profiles for DSL-time cache("profileName") resolution */
|
|
152
|
+
cacheProfiles?: Record<
|
|
153
|
+
string,
|
|
154
|
+
import("./cache/profile-registry.js").CacheProfile
|
|
155
|
+
>;
|
|
156
|
+
/** Root scope flag for dot-local reverse resolution */
|
|
157
|
+
rootScoped?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Positional include scope token composed from the parent scope plus this
|
|
160
|
+
* include's sibling index (`${parentScope}I${idx}`). Applied to direct-
|
|
161
|
+
* descendant shortCodes during lazy evaluation so routes inside the
|
|
162
|
+
* include cannot collide with siblings declared outside it.
|
|
163
|
+
*/
|
|
164
|
+
includeScope?: string;
|
|
152
165
|
};
|
|
153
|
-
[IncludeBrand]: void;
|
|
154
166
|
};
|
|
155
167
|
|
|
156
168
|
/**
|
|
@@ -158,7 +170,7 @@ export type IncludeItem = {
|
|
|
158
170
|
* Used for type inference in urls() API
|
|
159
171
|
*/
|
|
160
172
|
export type TypedIncludeItem<
|
|
161
|
-
TRoutes extends Record<string,
|
|
173
|
+
TRoutes extends Record<string, any> = Record<string, string>,
|
|
162
174
|
TNamePrefix extends string = string,
|
|
163
175
|
TUrlPrefix extends string = string,
|
|
164
176
|
TResponses extends Record<string, unknown> = Record<string, unknown>,
|
|
@@ -184,6 +196,7 @@ export type AllUseItems =
|
|
|
184
196
|
| ErrorBoundaryItem
|
|
185
197
|
| NotFoundBoundaryItem
|
|
186
198
|
| CacheItem
|
|
199
|
+
| TransitionItem
|
|
187
200
|
| IncludeItem;
|
|
188
201
|
|
|
189
202
|
/** Items that can be used inside a layout callback */
|
|
@@ -198,17 +211,17 @@ export type RouteUseItem =
|
|
|
198
211
|
| LoadingItem
|
|
199
212
|
| ErrorBoundaryItem
|
|
200
213
|
| NotFoundBoundaryItem
|
|
201
|
-
| CacheItem
|
|
214
|
+
| CacheItem
|
|
215
|
+
| TransitionItem;
|
|
202
216
|
/** Items that can be used inside a response route (path.json(), etc.) */
|
|
203
|
-
export type ResponseRouteUseItem =
|
|
204
|
-
| MiddlewareItem
|
|
205
|
-
| CacheItem;
|
|
217
|
+
export type ResponseRouteUseItem = MiddlewareItem | CacheItem;
|
|
206
218
|
export type ParallelUseItem =
|
|
207
219
|
| RevalidateItem
|
|
208
220
|
| LoaderItem
|
|
209
221
|
| LoadingItem
|
|
210
222
|
| ErrorBoundaryItem
|
|
211
|
-
| NotFoundBoundaryItem
|
|
223
|
+
| NotFoundBoundaryItem
|
|
224
|
+
| TransitionItem;
|
|
212
225
|
export type InterceptUseItem =
|
|
213
226
|
| MiddlewareItem
|
|
214
227
|
| RevalidateItem
|
|
@@ -218,5 +231,25 @@ export type InterceptUseItem =
|
|
|
218
231
|
| NotFoundBoundaryItem
|
|
219
232
|
| LayoutItem
|
|
220
233
|
| RouteItem
|
|
221
|
-
| WhenItem
|
|
234
|
+
| WhenItem
|
|
235
|
+
| TransitionItem;
|
|
222
236
|
export type LoaderUseItem = RevalidateItem | CacheItem;
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Allow composition factories in use() callbacks.
|
|
240
|
+
* Factories return T[], which placed inside a use() callback array
|
|
241
|
+
* creates nested arrays like (T | T[])[]. These are flattened at
|
|
242
|
+
* runtime via .flat(3).
|
|
243
|
+
*/
|
|
244
|
+
export type UseItems<T> = (T | readonly T[])[];
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Union of all items that handler.use() may return.
|
|
248
|
+
* A handler doesn't know its mount site at definition time, so the type
|
|
249
|
+
* is intentionally broad — validation happens per-mount-site at runtime.
|
|
250
|
+
*/
|
|
251
|
+
export type HandlerUseItem =
|
|
252
|
+
| RouteUseItem
|
|
253
|
+
| LayoutUseItem
|
|
254
|
+
| ParallelUseItem
|
|
255
|
+
| InterceptUseItem;
|