@rangojs/router 0.0.0-experimental.0b82333f
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 +899 -0
- 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 +1601 -0
- 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/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/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 +5214 -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/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 +177 -0
- package/skills/breadcrumbs/SKILL.md +250 -0
- package/skills/cache-guide/SKILL.md +262 -0
- package/skills/caching/SKILL.md +220 -0
- package/skills/composability/SKILL.md +172 -0
- package/skills/debug-manifest/SKILL.md +112 -0
- package/skills/document-cache/SKILL.md +182 -0
- package/skills/fonts/SKILL.md +167 -0
- package/skills/hooks/SKILL.md +704 -0
- package/skills/host-router/SKILL.md +218 -0
- package/skills/intercept/SKILL.md +313 -0
- package/skills/layout/SKILL.md +310 -0
- package/skills/links/SKILL.md +239 -0
- package/skills/loader/SKILL.md +596 -0
- package/skills/middleware/SKILL.md +339 -0
- package/skills/mime-routes/SKILL.md +128 -0
- package/skills/parallel/SKILL.md +305 -0
- package/skills/prerender/SKILL.md +643 -0
- package/skills/rango/SKILL.md +118 -0
- package/skills/response-routes/SKILL.md +411 -0
- package/skills/route/SKILL.md +385 -0
- package/skills/router-setup/SKILL.md +439 -0
- package/skills/tailwind/SKILL.md +129 -0
- package/skills/theme/SKILL.md +79 -0
- package/skills/typesafety/SKILL.md +623 -0
- package/skills/use-cache/SKILL.md +324 -0
- package/src/__internal.ts +273 -0
- package/src/bin/rango.ts +321 -0
- package/src/browser/action-coordinator.ts +97 -0
- package/src/browser/action-response-classifier.ts +99 -0
- package/src/browser/event-controller.ts +899 -0
- package/src/browser/history-state.ts +80 -0
- package/src/browser/index.ts +18 -0
- package/src/browser/intercept-utils.ts +52 -0
- package/src/browser/link-interceptor.ts +141 -0
- package/src/browser/logging.ts +55 -0
- package/src/browser/merge-segment-loaders.ts +134 -0
- package/src/browser/navigation-bridge.ts +640 -0
- package/src/browser/navigation-client.ts +215 -0
- package/src/browser/navigation-store.ts +806 -0
- package/src/browser/navigation-transaction.ts +295 -0
- package/src/browser/network-error-handler.ts +61 -0
- package/src/browser/partial-update.ts +552 -0
- package/src/browser/prefetch/cache.ts +154 -0
- package/src/browser/prefetch/fetch.ts +135 -0
- package/src/browser/prefetch/observer.ts +65 -0
- package/src/browser/prefetch/policy.ts +48 -0
- package/src/browser/prefetch/queue.ts +88 -0
- package/src/browser/rango-state.ts +112 -0
- package/src/browser/react/Link.tsx +360 -0
- package/src/browser/react/NavigationProvider.tsx +386 -0
- package/src/browser/react/ScrollRestoration.tsx +94 -0
- package/src/browser/react/context.ts +59 -0
- package/src/browser/react/filter-segment-order.ts +11 -0
- package/src/browser/react/index.ts +52 -0
- package/src/browser/react/location-state-shared.ts +162 -0
- package/src/browser/react/location-state.ts +107 -0
- package/src/browser/react/mount-context.ts +37 -0
- 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 +218 -0
- package/src/browser/react/use-client-cache.ts +58 -0
- package/src/browser/react/use-handle.ts +162 -0
- package/src/browser/react/use-href.tsx +40 -0
- package/src/browser/react/use-link-status.ts +135 -0
- package/src/browser/react/use-mount.ts +31 -0
- package/src/browser/react/use-navigation.ts +99 -0
- package/src/browser/react/use-params.ts +65 -0
- package/src/browser/react/use-pathname.ts +47 -0
- package/src/browser/react/use-router.ts +63 -0
- package/src/browser/react/use-search-params.ts +56 -0
- package/src/browser/react/use-segments.ts +171 -0
- package/src/browser/response-adapter.ts +73 -0
- package/src/browser/rsc-router.tsx +431 -0
- package/src/browser/scroll-restoration.ts +384 -0
- package/src/browser/segment-reconciler.ts +216 -0
- package/src/browser/segment-structure-assert.ts +83 -0
- package/src/browser/server-action-bridge.ts +667 -0
- package/src/browser/shallow.ts +40 -0
- package/src/browser/types.ts +538 -0
- package/src/browser/validate-redirect-origin.ts +29 -0
- package/src/build/generate-manifest.ts +438 -0
- package/src/build/generate-route-types.ts +36 -0
- package/src/build/index.ts +35 -0
- package/src/build/route-trie.ts +265 -0
- 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 +411 -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 +469 -0
- package/src/build/route-types/scan-filter.ts +78 -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 +338 -0
- package/src/cache/cache-scope.ts +382 -0
- package/src/cache/cf/cf-cache-store.ts +540 -0
- package/src/cache/cf/index.ts +25 -0
- package/src/cache/document-cache.ts +369 -0
- package/src/cache/handle-capture.ts +81 -0
- package/src/cache/handle-snapshot.ts +41 -0
- package/src/cache/index.ts +43 -0
- package/src/cache/memory-segment-store.ts +328 -0
- 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 +98 -0
- package/src/cache/types.ts +342 -0
- package/src/client.rsc.tsx +85 -0
- package/src/client.tsx +601 -0
- package/src/component-utils.ts +76 -0
- package/src/components/DefaultDocument.tsx +27 -0
- package/src/context-var.ts +86 -0
- package/src/debug.ts +243 -0
- package/src/default-error-boundary.tsx +88 -0
- package/src/deps/browser.ts +8 -0
- package/src/deps/html-stream-client.ts +2 -0
- package/src/deps/html-stream-server.ts +2 -0
- package/src/deps/rsc.ts +10 -0
- package/src/deps/ssr.ts +2 -0
- package/src/errors.ts +365 -0
- package/src/handle.ts +135 -0
- package/src/handles/MetaTags.tsx +246 -0
- package/src/handles/breadcrumbs.ts +66 -0
- package/src/handles/index.ts +7 -0
- package/src/handles/meta.ts +264 -0
- package/src/host/cookie-handler.ts +165 -0
- package/src/host/errors.ts +97 -0
- package/src/host/index.ts +53 -0
- package/src/host/pattern-matcher.ts +214 -0
- package/src/host/router.ts +352 -0
- package/src/host/testing.ts +79 -0
- package/src/host/types.ts +146 -0
- package/src/host/utils.ts +25 -0
- package/src/href-client.ts +222 -0
- package/src/index.rsc.ts +233 -0
- package/src/index.ts +277 -0
- package/src/internal-debug.ts +11 -0
- package/src/loader.rsc.ts +89 -0
- package/src/loader.ts +64 -0
- package/src/network-error-thrower.tsx +23 -0
- package/src/outlet-context.ts +15 -0
- package/src/outlet-provider.tsx +45 -0
- package/src/prerender/param-hash.ts +37 -0
- package/src/prerender/store.ts +185 -0
- package/src/prerender.ts +463 -0
- package/src/reverse.ts +330 -0
- package/src/root-error-boundary.tsx +289 -0
- package/src/route-content-wrapper.tsx +196 -0
- package/src/route-definition/dsl-helpers.ts +934 -0
- package/src/route-definition/helper-factories.ts +200 -0
- package/src/route-definition/helpers-types.ts +430 -0
- package/src/route-definition/index.ts +52 -0
- package/src/route-definition/redirect.ts +93 -0
- package/src/route-definition.ts +1 -0
- package/src/route-map-builder.ts +275 -0
- package/src/route-name.ts +53 -0
- package/src/route-types.ts +259 -0
- package/src/router/content-negotiation.ts +116 -0
- package/src/router/debug-manifest.ts +72 -0
- package/src/router/error-handling.ts +287 -0
- package/src/router/find-match.ts +158 -0
- package/src/router/handler-context.ts +451 -0
- package/src/router/intercept-resolution.ts +395 -0
- package/src/router/lazy-includes.ts +234 -0
- package/src/router/loader-resolution.ts +420 -0
- package/src/router/logging.ts +248 -0
- package/src/router/manifest.ts +267 -0
- package/src/router/match-api.ts +620 -0
- package/src/router/match-context.ts +266 -0
- package/src/router/match-handlers.ts +440 -0
- package/src/router/match-middleware/background-revalidation.ts +223 -0
- package/src/router/match-middleware/cache-lookup.ts +634 -0
- package/src/router/match-middleware/cache-store.ts +295 -0
- package/src/router/match-middleware/index.ts +81 -0
- package/src/router/match-middleware/intercept-resolution.ts +306 -0
- package/src/router/match-middleware/segment-resolution.ts +192 -0
- package/src/router/match-pipelines.ts +179 -0
- package/src/router/match-result.ts +219 -0
- package/src/router/metrics.ts +282 -0
- package/src/router/middleware-cookies.ts +55 -0
- package/src/router/middleware-types.ts +222 -0
- package/src/router/middleware.ts +748 -0
- package/src/router/pattern-matching.ts +563 -0
- package/src/router/prerender-match.ts +402 -0
- package/src/router/preview-match.ts +170 -0
- package/src/router/revalidation.ts +289 -0
- package/src/router/router-context.ts +316 -0
- package/src/router/router-interfaces.ts +452 -0
- package/src/router/router-options.ts +592 -0
- package/src/router/router-registry.ts +24 -0
- package/src/router/segment-resolution/fresh.ts +570 -0
- package/src/router/segment-resolution/helpers.ts +263 -0
- package/src/router/segment-resolution/loader-cache.ts +198 -0
- package/src/router/segment-resolution/revalidation.ts +1239 -0
- package/src/router/segment-resolution/static-store.ts +67 -0
- package/src/router/segment-resolution.ts +21 -0
- package/src/router/segment-wrappers.ts +289 -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 +239 -0
- package/src/router/types.ts +170 -0
- package/src/router.ts +1002 -0
- package/src/rsc/handler-context.ts +45 -0
- package/src/rsc/handler.ts +1089 -0
- package/src/rsc/helpers.ts +198 -0
- package/src/rsc/index.ts +36 -0
- package/src/rsc/loader-fetch.ts +209 -0
- package/src/rsc/manifest-init.ts +86 -0
- package/src/rsc/nonce.ts +32 -0
- package/src/rsc/origin-guard.ts +141 -0
- package/src/rsc/progressive-enhancement.ts +379 -0
- package/src/rsc/response-error.ts +37 -0
- package/src/rsc/response-route-handler.ts +347 -0
- package/src/rsc/rsc-rendering.ts +237 -0
- package/src/rsc/runtime-warnings.ts +42 -0
- package/src/rsc/server-action.ts +348 -0
- package/src/rsc/ssr-setup.ts +128 -0
- package/src/rsc/types.ts +263 -0
- package/src/search-params.ts +230 -0
- package/src/segment-system.tsx +454 -0
- package/src/server/context.ts +591 -0
- package/src/server/cookie-store.ts +190 -0
- package/src/server/fetchable-loader-store.ts +37 -0
- package/src/server/handle-store.ts +308 -0
- package/src/server/loader-registry.ts +133 -0
- package/src/server/request-context.ts +914 -0
- package/src/server/root-layout.tsx +10 -0
- package/src/server/tsconfig.json +14 -0
- package/src/server.ts +51 -0
- package/src/ssr/index.tsx +365 -0
- package/src/static-handler.ts +114 -0
- package/src/theme/ThemeProvider.tsx +297 -0
- package/src/theme/ThemeScript.tsx +61 -0
- package/src/theme/constants.ts +62 -0
- package/src/theme/index.ts +48 -0
- package/src/theme/theme-context.ts +44 -0
- package/src/theme/theme-script.ts +155 -0
- package/src/theme/types.ts +182 -0
- package/src/theme/use-theme.ts +44 -0
- 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 +100 -0
- package/src/types/handler-context.ts +687 -0
- package/src/types/index.ts +88 -0
- package/src/types/loader-types.ts +183 -0
- package/src/types/route-config.ts +170 -0
- package/src/types/route-entry.ts +102 -0
- package/src/types/segments.ts +148 -0
- package/src/types.ts +1 -0
- package/src/urls/include-helper.ts +197 -0
- package/src/urls/index.ts +53 -0
- package/src/urls/path-helper-types.ts +339 -0
- package/src/urls/path-helper.ts +329 -0
- package/src/urls/pattern-types.ts +95 -0
- package/src/urls/response-types.ts +106 -0
- package/src/urls/type-extraction.ts +372 -0
- package/src/urls/urls-function.ts +98 -0
- package/src/urls.ts +1 -0
- package/src/use-loader.tsx +354 -0
- package/src/vite/discovery/bundle-postprocess.ts +184 -0
- package/src/vite/discovery/discover-routers.ts +344 -0
- package/src/vite/discovery/prerender-collection.ts +385 -0
- package/src/vite/discovery/route-types-writer.ts +258 -0
- package/src/vite/discovery/self-gen-tracking.ts +47 -0
- package/src/vite/discovery/state.ts +110 -0
- package/src/vite/discovery/virtual-module-codegen.ts +203 -0
- package/src/vite/index.ts +16 -0
- package/src/vite/plugin-types.ts +131 -0
- package/src/vite/plugins/cjs-to-esm.ts +93 -0
- package/src/vite/plugins/client-ref-dedup.ts +115 -0
- package/src/vite/plugins/client-ref-hashing.ts +105 -0
- package/src/vite/plugins/expose-action-id.ts +365 -0
- package/src/vite/plugins/expose-id-utils.ts +287 -0
- package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
- package/src/vite/plugins/expose-ids/handler-transform.ts +179 -0
- package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
- package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
- package/src/vite/plugins/expose-ids/types.ts +45 -0
- package/src/vite/plugins/expose-internal-ids.ts +569 -0
- package/src/vite/plugins/refresh-cmd.ts +65 -0
- package/src/vite/plugins/use-cache-transform.ts +323 -0
- package/src/vite/plugins/version-injector.ts +83 -0
- package/src/vite/plugins/version-plugin.ts +254 -0
- package/src/vite/plugins/version.d.ts +12 -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 +510 -0
- package/src/vite/router-discovery.ts +785 -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 +137 -0
- package/src/vite/utils/manifest-utils.ts +70 -0
- package/src/vite/utils/package-resolution.ts +121 -0
- package/src/vite/utils/prerender-utils.ts +189 -0
- package/src/vite/utils/shared-utils.ts +169 -0
|
@@ -0,0 +1,656 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-level tests for reverse type system
|
|
3
|
+
*
|
|
4
|
+
* These tests verify that the type system works correctly at compile time.
|
|
5
|
+
* They use expectTypeOf() from vitest which performs compile-time type checking.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expectTypeOf } from "vitest";
|
|
8
|
+
describe("ExtractParams", () => {
|
|
9
|
+
it("should extract simple params", () => {
|
|
10
|
+
expectTypeOf().toEqualTypeOf();
|
|
11
|
+
});
|
|
12
|
+
it("should extract multiple params", () => {
|
|
13
|
+
expectTypeOf().toEqualTypeOf();
|
|
14
|
+
});
|
|
15
|
+
it("should handle optional params", () => {
|
|
16
|
+
expectTypeOf().toEqualTypeOf();
|
|
17
|
+
});
|
|
18
|
+
it("should handle constrained params", () => {
|
|
19
|
+
expectTypeOf().toEqualTypeOf();
|
|
20
|
+
});
|
|
21
|
+
it("should return empty object for no params", () => {
|
|
22
|
+
expectTypeOf().toEqualTypeOf();
|
|
23
|
+
});
|
|
24
|
+
it("should handle mixed params", () => {
|
|
25
|
+
expectTypeOf().toEqualTypeOf();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("ParamsFor", () => {
|
|
29
|
+
it("should extract params for route with params", () => {
|
|
30
|
+
expectTypeOf().toEqualTypeOf();
|
|
31
|
+
});
|
|
32
|
+
it("should return empty object for route without params", () => {
|
|
33
|
+
expectTypeOf().toEqualTypeOf();
|
|
34
|
+
});
|
|
35
|
+
it("should handle optional params", () => {
|
|
36
|
+
expectTypeOf().toEqualTypeOf();
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe("PrefixRoutePatterns", () => {
|
|
40
|
+
it("should prefix patterns", () => {
|
|
41
|
+
expectTypeOf().toEqualTypeOf();
|
|
42
|
+
});
|
|
43
|
+
it("should handle empty prefix", () => {
|
|
44
|
+
expectTypeOf().toEqualTypeOf();
|
|
45
|
+
});
|
|
46
|
+
it("should handle root pattern", () => {
|
|
47
|
+
expectTypeOf().toEqualTypeOf();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("PrefixRouteKeys", () => {
|
|
51
|
+
it("should prefix keys", () => {
|
|
52
|
+
expectTypeOf().toEqualTypeOf();
|
|
53
|
+
});
|
|
54
|
+
it("should handle empty prefix", () => {
|
|
55
|
+
expectTypeOf().toEqualTypeOf();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe("PrefixedRoutes", () => {
|
|
59
|
+
it("should prefix both keys and patterns", () => {
|
|
60
|
+
expectTypeOf().toEqualTypeOf();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe("ReverseFunction type structure", () => {
|
|
64
|
+
it("should be a callable function type", () => {
|
|
65
|
+
expectTypeOf().toBeCallableWith("about");
|
|
66
|
+
expectTypeOf().toBeCallableWith("blog.post", { slug: "hello" });
|
|
67
|
+
});
|
|
68
|
+
it("should return string", () => {
|
|
69
|
+
expectTypeOf().returns.toBeString();
|
|
70
|
+
});
|
|
71
|
+
it("should accept valid route names", () => {
|
|
72
|
+
// These are valid route keys in TestRoutes
|
|
73
|
+
expectTypeOf().toMatchTypeOf();
|
|
74
|
+
expectTypeOf().toMatchTypeOf();
|
|
75
|
+
expectTypeOf().toMatchTypeOf();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe("ScopedReverseFunction type structure", () => {
|
|
79
|
+
it("should be a callable function type", () => {
|
|
80
|
+
expectTypeOf().toBeCallableWith("index");
|
|
81
|
+
expectTypeOf().toBeCallableWith("post", { slug: "hello" });
|
|
82
|
+
});
|
|
83
|
+
it("should return string", () => {
|
|
84
|
+
expectTypeOf().returns.toBeString();
|
|
85
|
+
});
|
|
86
|
+
it("should reject unknown names", () => {
|
|
87
|
+
// No escape hatches: dotted names and paths must be in the route map
|
|
88
|
+
// @ts-expect-error - unknown dotted name
|
|
89
|
+
expectTypeOf().toBeCallableWith("shop.cart");
|
|
90
|
+
// @ts-expect-error - unknown path
|
|
91
|
+
expectTypeOf().toBeCallableWith("/about");
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe("HandlerContext.reverse", () => {
|
|
95
|
+
it("should have reverse property that is a function", () => {
|
|
96
|
+
expectTypeOf().toBeFunction();
|
|
97
|
+
});
|
|
98
|
+
it("should return string", () => {
|
|
99
|
+
expectTypeOf().returns.toBeString();
|
|
100
|
+
});
|
|
101
|
+
it("should accept string as first argument", () => {
|
|
102
|
+
expectTypeOf().toBeString();
|
|
103
|
+
});
|
|
104
|
+
it("should accept params as second argument", () => {
|
|
105
|
+
expectTypeOf().toBeObject();
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
import { urls } from "../urls.js";
|
|
109
|
+
import { isResponseError } from "../client.js";
|
|
110
|
+
// Actual urls definitions using the real urls() / path.json() API.
|
|
111
|
+
// This tests that response types propagate through the phantom type chain.
|
|
112
|
+
const rscPatterns = urls(({ path }) => [
|
|
113
|
+
path("/", () => null, { name: "home" }),
|
|
114
|
+
path("/about", () => null, { name: "about" }),
|
|
115
|
+
path("/blog/:slug", () => null, { name: "blog.post" }),
|
|
116
|
+
]);
|
|
117
|
+
const apiPatterns = urls(({ path }) => [
|
|
118
|
+
path.json("/health", () => ({ status: "ok", timestamp: Date.now() }), { name: "health" }),
|
|
119
|
+
path.json("/items", () => [{ id: "1", name: "Widget" }], { name: "items" }),
|
|
120
|
+
path.json("/items/:id", (ctx) => ({ id: ctx.params.id, name: "Widget", price: 9.99 }), { name: "item" }),
|
|
121
|
+
]);
|
|
122
|
+
// --- Scoped RouteResponse (from UrlPatterns._responses phantom) ---
|
|
123
|
+
describe("RouteResponse (scoped, from UrlPatterns)", () => {
|
|
124
|
+
it("should resolve typed response envelope from path.json() patterns", () => {
|
|
125
|
+
expectTypeOf().toEqualTypeOf();
|
|
126
|
+
});
|
|
127
|
+
it("should resolve array response envelope type", () => {
|
|
128
|
+
expectTypeOf().toEqualTypeOf();
|
|
129
|
+
});
|
|
130
|
+
it("should resolve dynamic route response envelope type", () => {
|
|
131
|
+
expectTypeOf().toEqualTypeOf();
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe("PathResponse (full chain through routeMap)", () => {
|
|
135
|
+
it("should resolve response envelope for static response route", () => {
|
|
136
|
+
expectTypeOf().toEqualTypeOf();
|
|
137
|
+
});
|
|
138
|
+
it("should resolve response envelope for array response", () => {
|
|
139
|
+
expectTypeOf().toEqualTypeOf();
|
|
140
|
+
});
|
|
141
|
+
it("should resolve response envelope for dynamic response route", () => {
|
|
142
|
+
expectTypeOf().toEqualTypeOf();
|
|
143
|
+
});
|
|
144
|
+
it("should return ResponseEnvelope<never> for RSC routes (no response type)", () => {
|
|
145
|
+
expectTypeOf().toEqualTypeOf();
|
|
146
|
+
expectTypeOf().toEqualTypeOf();
|
|
147
|
+
});
|
|
148
|
+
it("should return ResponseEnvelope<never> for non-existent pattern", () => {
|
|
149
|
+
expectTypeOf().toEqualTypeOf();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe("ParamsFor with response routes in routeMap", () => {
|
|
153
|
+
it("should extract params from RSC route (string value)", () => {
|
|
154
|
+
expectTypeOf().toEqualTypeOf();
|
|
155
|
+
});
|
|
156
|
+
it("should extract params from response route ({ path, response } value)", () => {
|
|
157
|
+
expectTypeOf().toEqualTypeOf();
|
|
158
|
+
});
|
|
159
|
+
it("should return empty params for static response route", () => {
|
|
160
|
+
expectTypeOf().toEqualTypeOf();
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
describe("ValidPaths with mixed routeMap", () => {
|
|
164
|
+
it("should include paths from both RSC and response routes", () => {
|
|
165
|
+
expectTypeOf().toMatchTypeOf();
|
|
166
|
+
expectTypeOf().toMatchTypeOf();
|
|
167
|
+
expectTypeOf().toMatchTypeOf();
|
|
168
|
+
expectTypeOf().toMatchTypeOf();
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe("ReverseFunction with mixed routeMap", () => {
|
|
172
|
+
it("should accept RSC route names", () => {
|
|
173
|
+
expectTypeOf().toBeCallableWith("about");
|
|
174
|
+
expectTypeOf().toBeCallableWith("home");
|
|
175
|
+
});
|
|
176
|
+
it("should accept response route names with params", () => {
|
|
177
|
+
expectTypeOf().toBeCallableWith("health");
|
|
178
|
+
expectTypeOf().toBeCallableWith("item", { id: "123" });
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe("ResponseHandlerContext", () => {
|
|
182
|
+
it("should extract bindings from RouterEnv", () => {
|
|
183
|
+
expectTypeOf().toEqualTypeOf();
|
|
184
|
+
});
|
|
185
|
+
it("should fallback to empty object for non-RouterEnv", () => {
|
|
186
|
+
expectTypeOf().toEqualTypeOf();
|
|
187
|
+
});
|
|
188
|
+
it("should have searchParams", () => {
|
|
189
|
+
expectTypeOf().toEqualTypeOf();
|
|
190
|
+
});
|
|
191
|
+
it("should have url", () => {
|
|
192
|
+
expectTypeOf().toEqualTypeOf();
|
|
193
|
+
});
|
|
194
|
+
it("should have pathname", () => {
|
|
195
|
+
expectTypeOf().toEqualTypeOf();
|
|
196
|
+
});
|
|
197
|
+
it("should have typed params", () => {
|
|
198
|
+
expectTypeOf().toEqualTypeOf();
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// ResponseEnvelope — discriminated union shape
|
|
203
|
+
// ============================================================================
|
|
204
|
+
describe("ResponseEnvelope", () => {
|
|
205
|
+
it("should have data branch with T and no error", () => {
|
|
206
|
+
expectTypeOf().toEqualTypeOf();
|
|
207
|
+
expectTypeOf().toHaveProperty("error");
|
|
208
|
+
});
|
|
209
|
+
it("should have error branch with ResponseError and no data", () => {
|
|
210
|
+
expectTypeOf().toEqualTypeOf();
|
|
211
|
+
});
|
|
212
|
+
it("should have message on ResponseError", () => {
|
|
213
|
+
expectTypeOf().toHaveProperty("message");
|
|
214
|
+
expectTypeOf().toBeString();
|
|
215
|
+
});
|
|
216
|
+
it("should have optional code and type on ResponseError", () => {
|
|
217
|
+
expectTypeOf().toHaveProperty("code");
|
|
218
|
+
expectTypeOf().toHaveProperty("type");
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
// ============================================================================
|
|
222
|
+
// isResponseError — type narrowing
|
|
223
|
+
// ============================================================================
|
|
224
|
+
describe("isResponseError", () => {
|
|
225
|
+
it("should narrow to error branch", () => {
|
|
226
|
+
const result = {};
|
|
227
|
+
if (isResponseError(result)) {
|
|
228
|
+
expectTypeOf(result.error).toEqualTypeOf();
|
|
229
|
+
// data should be undefined in the error branch
|
|
230
|
+
expectTypeOf(result.data).toEqualTypeOf();
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
expectTypeOf(result.data).toEqualTypeOf();
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
it("should accept ResponseEnvelope input", () => {
|
|
237
|
+
expectTypeOf((isResponseError)).toBeCallableWith({});
|
|
238
|
+
});
|
|
239
|
+
it("should return boolean", () => {
|
|
240
|
+
expectTypeOf((isResponseError)).returns.toBeBoolean();
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
// ============================================================================
|
|
244
|
+
// User-land API: urls() with include(), mixed MIME types, scoped RouteResponse
|
|
245
|
+
// ============================================================================
|
|
246
|
+
// --- Sub-module patterns (each declared independently, like separate files) ---
|
|
247
|
+
// JSON API module (e.g. api/urls.tsx)
|
|
248
|
+
const userApiPatterns = urls(({ path }) => [
|
|
249
|
+
path.json("/health", () => ({ status: "ok", uptime: 123 }), { name: "health" }),
|
|
250
|
+
path.json("/users", () => [{ id: "1", email: "a@b.com" }], { name: "users" }),
|
|
251
|
+
path.json("/users/:userId", (ctx) => ({ id: ctx.params.userId, email: "a@b.com" }), { name: "user" }),
|
|
252
|
+
path.json("/users/:userId/posts/:postId", (ctx) => ({
|
|
253
|
+
id: ctx.params.postId,
|
|
254
|
+
author: ctx.params.userId,
|
|
255
|
+
title: "Hello",
|
|
256
|
+
}), { name: "user.post" }),
|
|
257
|
+
]);
|
|
258
|
+
// Text module (e.g. seo/urls.tsx)
|
|
259
|
+
const seoPatterns = urls(({ path }) => [
|
|
260
|
+
path.text("/robots.txt", () => "User-agent: *\nDisallow: /api/", { name: "robots" }),
|
|
261
|
+
path.text("/sitemap.txt", () => "https://example.com/\nhttps://example.com/about", { name: "sitemap" }),
|
|
262
|
+
]);
|
|
263
|
+
// Main urlpatterns — mixes RSC pages, inline response routes, and includes
|
|
264
|
+
// This mirrors what a real app's urls.tsx looks like
|
|
265
|
+
const mainPatterns = urls(({ path, include }) => [
|
|
266
|
+
// RSC pages
|
|
267
|
+
path("/", () => null, { name: "home" }),
|
|
268
|
+
path("/about", () => null, { name: "about" }),
|
|
269
|
+
path("/blog/:slug", () => null, { name: "blog.post" }),
|
|
270
|
+
// Inline JSON route alongside RSC
|
|
271
|
+
path.json("/api/inline", () => ({ inline: true, count: 42 }), { name: "inlineApi" }),
|
|
272
|
+
// Inline text route
|
|
273
|
+
path.text("/version.txt", () => "1.0.0", { name: "version" }),
|
|
274
|
+
// Include JSON API module
|
|
275
|
+
include("/api/v1", userApiPatterns, { name: "api" }),
|
|
276
|
+
// Include text module
|
|
277
|
+
include("/seo", seoPatterns, { name: "seo" }),
|
|
278
|
+
]);
|
|
279
|
+
// --- Scoped RouteResponse (local typing before include) ---
|
|
280
|
+
describe("RouteResponse (scoped, local typing)", () => {
|
|
281
|
+
it("should resolve typed response from local JSON patterns", () => {
|
|
282
|
+
expectTypeOf().toEqualTypeOf();
|
|
283
|
+
});
|
|
284
|
+
it("should resolve array response from local JSON patterns", () => {
|
|
285
|
+
expectTypeOf().toEqualTypeOf();
|
|
286
|
+
});
|
|
287
|
+
it("should resolve parameterized response from local JSON patterns", () => {
|
|
288
|
+
expectTypeOf().toEqualTypeOf();
|
|
289
|
+
});
|
|
290
|
+
it("should resolve deeply nested response from local JSON patterns", () => {
|
|
291
|
+
expectTypeOf().toEqualTypeOf();
|
|
292
|
+
});
|
|
293
|
+
it("should resolve text patterns locally (text routes have string data)", () => {
|
|
294
|
+
expectTypeOf().toEqualTypeOf();
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
describe("urls() with include() — full type chain", () => {
|
|
298
|
+
// RSC routes remain plain strings
|
|
299
|
+
it("should have RSC routes as string values", () => {
|
|
300
|
+
expectTypeOf().toBeString();
|
|
301
|
+
});
|
|
302
|
+
// Inline response routes become { path, response } objects
|
|
303
|
+
it("should have inline JSON route as { path, response } object", () => {
|
|
304
|
+
expectTypeOf().toMatchTypeOf();
|
|
305
|
+
});
|
|
306
|
+
// Route names: RSC
|
|
307
|
+
it("should resolve RSC route names in ReverseFunction", () => {
|
|
308
|
+
expectTypeOf().toBeCallableWith("home");
|
|
309
|
+
expectTypeOf().toBeCallableWith("about");
|
|
310
|
+
expectTypeOf().toBeCallableWith("blog.post", { slug: "hello" });
|
|
311
|
+
});
|
|
312
|
+
// Route names: inline response routes
|
|
313
|
+
it("should resolve inline response route names", () => {
|
|
314
|
+
expectTypeOf().toBeCallableWith("inlineApi");
|
|
315
|
+
expectTypeOf().toBeCallableWith("version");
|
|
316
|
+
});
|
|
317
|
+
// Route names: included JSON API (prefixed with "api.")
|
|
318
|
+
it("should resolve included JSON API route names with prefix", () => {
|
|
319
|
+
expectTypeOf().toBeCallableWith("api.health");
|
|
320
|
+
expectTypeOf().toBeCallableWith("api.users");
|
|
321
|
+
expectTypeOf().toBeCallableWith("api.user", { userId: "123" });
|
|
322
|
+
expectTypeOf().toBeCallableWith("api.user.post", { userId: "1", postId: "42" });
|
|
323
|
+
});
|
|
324
|
+
// Route names: included text routes (prefixed with "seo.")
|
|
325
|
+
it("should resolve included text route names with prefix", () => {
|
|
326
|
+
expectTypeOf().toBeCallableWith("seo.robots");
|
|
327
|
+
expectTypeOf().toBeCallableWith("seo.sitemap");
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
describe("PathResponse through urls() with include()", () => {
|
|
331
|
+
// RSC routes
|
|
332
|
+
it("should return ResponseEnvelope<never> for RSC routes", () => {
|
|
333
|
+
expectTypeOf().toEqualTypeOf();
|
|
334
|
+
expectTypeOf().toEqualTypeOf();
|
|
335
|
+
});
|
|
336
|
+
// Inline JSON route
|
|
337
|
+
it("should resolve inline JSON route response", () => {
|
|
338
|
+
expectTypeOf().toEqualTypeOf();
|
|
339
|
+
});
|
|
340
|
+
// Inline text route
|
|
341
|
+
it("should resolve inline text route response as string", () => {
|
|
342
|
+
expectTypeOf().toEqualTypeOf();
|
|
343
|
+
});
|
|
344
|
+
// Included JSON API routes (URL-prefixed with /api/v1)
|
|
345
|
+
it("should resolve included JSON API route response", () => {
|
|
346
|
+
expectTypeOf().toEqualTypeOf();
|
|
347
|
+
});
|
|
348
|
+
it("should resolve included JSON API array response", () => {
|
|
349
|
+
expectTypeOf().toEqualTypeOf();
|
|
350
|
+
});
|
|
351
|
+
it("should resolve included JSON API parameterized response", () => {
|
|
352
|
+
expectTypeOf().toEqualTypeOf();
|
|
353
|
+
});
|
|
354
|
+
it("should resolve included deeply nested route response", () => {
|
|
355
|
+
expectTypeOf().toEqualTypeOf();
|
|
356
|
+
});
|
|
357
|
+
// Included text routes (URL-prefixed with /seo)
|
|
358
|
+
it("should resolve included text route response", () => {
|
|
359
|
+
expectTypeOf().toEqualTypeOf();
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
describe("ParamsFor through urls() with include()", () => {
|
|
363
|
+
it("should extract params from RSC route", () => {
|
|
364
|
+
expectTypeOf().toEqualTypeOf();
|
|
365
|
+
});
|
|
366
|
+
it("should extract params from included API route", () => {
|
|
367
|
+
expectTypeOf().toEqualTypeOf();
|
|
368
|
+
});
|
|
369
|
+
it("should extract multiple params from included nested route", () => {
|
|
370
|
+
expectTypeOf().toEqualTypeOf();
|
|
371
|
+
});
|
|
372
|
+
it("should return empty params for static included routes", () => {
|
|
373
|
+
expectTypeOf().toEqualTypeOf();
|
|
374
|
+
expectTypeOf().toEqualTypeOf();
|
|
375
|
+
});
|
|
376
|
+
it("should return empty params for inline response routes", () => {
|
|
377
|
+
expectTypeOf().toEqualTypeOf();
|
|
378
|
+
});
|
|
379
|
+
});
|
|
380
|
+
describe("ValidPaths through urls() with include()", () => {
|
|
381
|
+
it("should include all route paths from mixed sources", () => {
|
|
382
|
+
// RSC
|
|
383
|
+
expectTypeOf().toMatchTypeOf();
|
|
384
|
+
expectTypeOf().toMatchTypeOf();
|
|
385
|
+
// Inline response
|
|
386
|
+
expectTypeOf().toMatchTypeOf();
|
|
387
|
+
expectTypeOf().toMatchTypeOf();
|
|
388
|
+
// Included JSON API
|
|
389
|
+
expectTypeOf().toMatchTypeOf();
|
|
390
|
+
expectTypeOf().toMatchTypeOf();
|
|
391
|
+
// Included text
|
|
392
|
+
expectTypeOf().toMatchTypeOf();
|
|
393
|
+
expectTypeOf().toMatchTypeOf();
|
|
394
|
+
});
|
|
395
|
+
});
|
|
396
|
+
// ============================================================================
|
|
397
|
+
// Mountable module: blog with RSC pages + JSON APIs, nested include, scoped href
|
|
398
|
+
// ============================================================================
|
|
399
|
+
// blog/api/urls.tsx — Blog's own JSON API routes
|
|
400
|
+
const blogApiPatterns = urls(({ path }) => [
|
|
401
|
+
path.json("/stats", () => ({ views: 1000, visitors: 500 }), { name: "stats" }),
|
|
402
|
+
path.json("/:slug/likes", (ctx) => ({ slug: ctx.params.slug, count: 42 }), { name: "likes" }),
|
|
403
|
+
path.json("/:slug/comments", (ctx) => ([
|
|
404
|
+
{ id: "c1", slug: ctx.params.slug, body: "Great post" },
|
|
405
|
+
]), { name: "comments" }),
|
|
406
|
+
]);
|
|
407
|
+
// blog/urls.tsx — Self-contained blog module (RSC pages + JSON APIs)
|
|
408
|
+
const blogModulePatterns = urls(({ path, include }) => [
|
|
409
|
+
path("/", () => null, { name: "index" }),
|
|
410
|
+
path("/:slug", () => null, { name: "post" }),
|
|
411
|
+
path("/category/:catId", () => null, { name: "category" }),
|
|
412
|
+
// Blog's own API — nested include inside the module
|
|
413
|
+
include("/api", blogApiPatterns, { name: "api" }),
|
|
414
|
+
]);
|
|
415
|
+
// app/urls.tsx — Main app mounts the blog module
|
|
416
|
+
const appPatterns = urls(({ path, include }) => [
|
|
417
|
+
path("/", () => null, { name: "home" }),
|
|
418
|
+
path("/about", () => null, { name: "about" }),
|
|
419
|
+
include("/blog", blogModulePatterns, { name: "blog" }),
|
|
420
|
+
]);
|
|
421
|
+
// --- Scoped RouteResponse on the blog API (local typing, before mount) ---
|
|
422
|
+
describe("Mountable module — scoped RouteResponse on blog API", () => {
|
|
423
|
+
it("should resolve stats response locally", () => {
|
|
424
|
+
expectTypeOf().toEqualTypeOf();
|
|
425
|
+
});
|
|
426
|
+
it("should resolve parameterized likes response locally", () => {
|
|
427
|
+
expectTypeOf().toEqualTypeOf();
|
|
428
|
+
});
|
|
429
|
+
it("should resolve array comments response locally", () => {
|
|
430
|
+
expectTypeOf().toEqualTypeOf();
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
describe("Mountable module — ScopedReverseFunction inside blog module", () => {
|
|
434
|
+
it("should accept local RSC route names", () => {
|
|
435
|
+
expectTypeOf().toBeCallableWith("index");
|
|
436
|
+
expectTypeOf().toBeCallableWith("post", { slug: "hello" });
|
|
437
|
+
expectTypeOf().toBeCallableWith("category", { catId: "tech" });
|
|
438
|
+
});
|
|
439
|
+
it("should accept nested API route names (after internal include)", () => {
|
|
440
|
+
expectTypeOf().toBeCallableWith("api.stats");
|
|
441
|
+
expectTypeOf().toBeCallableWith("api.likes", { slug: "hello" });
|
|
442
|
+
expectTypeOf().toBeCallableWith("api.comments", { slug: "hello" });
|
|
443
|
+
});
|
|
444
|
+
it("should reject unknown names without escape hatches", () => {
|
|
445
|
+
// No escape hatches: unknown dotted names are rejected
|
|
446
|
+
// @ts-expect-error - "home.something" is not in BlogModuleMerged
|
|
447
|
+
expectTypeOf().toBeCallableWith("home.something");
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
// --- Blog module's own RouteResponse (before mounting) ---
|
|
451
|
+
describe("Mountable module — RouteResponse on blog module (pre-mount)", () => {
|
|
452
|
+
it("should resolve API response through nested include", () => {
|
|
453
|
+
expectTypeOf().toEqualTypeOf();
|
|
454
|
+
});
|
|
455
|
+
it("should resolve parameterized API response through nested include", () => {
|
|
456
|
+
expectTypeOf().toEqualTypeOf();
|
|
457
|
+
});
|
|
458
|
+
it("should resolve array API response through nested include", () => {
|
|
459
|
+
expectTypeOf().toEqualTypeOf();
|
|
460
|
+
});
|
|
461
|
+
});
|
|
462
|
+
describe("Mountable module — ReverseFunction after mounting blog", () => {
|
|
463
|
+
it("should accept top-level app routes", () => {
|
|
464
|
+
expectTypeOf().toBeCallableWith("home");
|
|
465
|
+
expectTypeOf().toBeCallableWith("about");
|
|
466
|
+
});
|
|
467
|
+
it("should accept blog RSC routes with blog. prefix", () => {
|
|
468
|
+
expectTypeOf().toBeCallableWith("blog.index");
|
|
469
|
+
expectTypeOf().toBeCallableWith("blog.post", { slug: "hello" });
|
|
470
|
+
expectTypeOf().toBeCallableWith("blog.category", { catId: "tech" });
|
|
471
|
+
});
|
|
472
|
+
it("should accept blog API routes with blog.api. prefix (nested include)", () => {
|
|
473
|
+
expectTypeOf().toBeCallableWith("blog.api.stats");
|
|
474
|
+
expectTypeOf().toBeCallableWith("blog.api.likes", { slug: "hello" });
|
|
475
|
+
expectTypeOf().toBeCallableWith("blog.api.comments", { slug: "hello" });
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
describe("Mountable module — PathResponse after mounting blog", () => {
|
|
479
|
+
// RSC routes — no response type
|
|
480
|
+
it("should return ResponseEnvelope<never> for blog RSC routes", () => {
|
|
481
|
+
expectTypeOf().toEqualTypeOf();
|
|
482
|
+
expectTypeOf().toEqualTypeOf();
|
|
483
|
+
});
|
|
484
|
+
// Blog API routes — response types propagate through nested include
|
|
485
|
+
it("should resolve blog API stats response", () => {
|
|
486
|
+
expectTypeOf().toEqualTypeOf();
|
|
487
|
+
});
|
|
488
|
+
it("should resolve blog API likes response with params", () => {
|
|
489
|
+
expectTypeOf().toEqualTypeOf();
|
|
490
|
+
});
|
|
491
|
+
it("should resolve blog API comments array response", () => {
|
|
492
|
+
expectTypeOf().toEqualTypeOf();
|
|
493
|
+
});
|
|
494
|
+
});
|
|
495
|
+
describe("Mountable module — ParamsFor after mounting blog", () => {
|
|
496
|
+
it("should extract params from mounted blog post route", () => {
|
|
497
|
+
expectTypeOf().toEqualTypeOf();
|
|
498
|
+
});
|
|
499
|
+
it("should extract params from mounted blog category route", () => {
|
|
500
|
+
expectTypeOf().toEqualTypeOf();
|
|
501
|
+
});
|
|
502
|
+
it("should extract params from nested blog API likes route", () => {
|
|
503
|
+
expectTypeOf().toEqualTypeOf();
|
|
504
|
+
});
|
|
505
|
+
it("should extract params from nested blog API comments route", () => {
|
|
506
|
+
expectTypeOf().toEqualTypeOf();
|
|
507
|
+
});
|
|
508
|
+
it("should return empty params for static blog API stats route", () => {
|
|
509
|
+
expectTypeOf().toEqualTypeOf();
|
|
510
|
+
});
|
|
511
|
+
});
|
|
512
|
+
describe("Mountable module — ValidPaths after mounting blog", () => {
|
|
513
|
+
it("should include all paths: app + blog RSC + blog API", () => {
|
|
514
|
+
// App routes
|
|
515
|
+
expectTypeOf().toMatchTypeOf();
|
|
516
|
+
expectTypeOf().toMatchTypeOf();
|
|
517
|
+
// Blog RSC routes (prefixed /blog)
|
|
518
|
+
expectTypeOf().toMatchTypeOf();
|
|
519
|
+
expectTypeOf().toMatchTypeOf();
|
|
520
|
+
// Blog API routes (double-prefixed /blog/api)
|
|
521
|
+
expectTypeOf().toMatchTypeOf();
|
|
522
|
+
expectTypeOf().toMatchTypeOf();
|
|
523
|
+
expectTypeOf().toMatchTypeOf();
|
|
524
|
+
});
|
|
525
|
+
});
|
|
526
|
+
// ============================================================================
|
|
527
|
+
// Mixed routes: RSC with search + JSON response routes
|
|
528
|
+
// Tests that response types and search params coexist correctly
|
|
529
|
+
// ============================================================================
|
|
530
|
+
const mixedPatterns = urls(({ path }) => [
|
|
531
|
+
// RSC route with search schema
|
|
532
|
+
path("/search", () => null, { name: "search", search: { q: "string", page: "number?", sort: "string?" } }),
|
|
533
|
+
// RSC route with params + search schema
|
|
534
|
+
path("/category/:catId", () => null, { name: "category", search: { page: "number?", filter: "string?" } }),
|
|
535
|
+
// JSON response route (no search schema)
|
|
536
|
+
path.json("/api/health", () => ({ status: "ok", uptime: 123 }), { name: "api.health" }),
|
|
537
|
+
// JSON response route with params
|
|
538
|
+
path.json("/api/products/:id", (ctx) => ({ id: ctx.params.id, name: "Widget", price: 9.99 }), { name: "api.product" }),
|
|
539
|
+
// JSON response route with search schema
|
|
540
|
+
path.json("/api/items", () => [{ id: "1", name: "Thing" }], { name: "api.items", search: { q: "string?", limit: "number?", offset: "number?" } }),
|
|
541
|
+
// JSON response route with params + search schema
|
|
542
|
+
path.json("/api/users/:userId/posts", (ctx) => [{ id: "p1", author: ctx.params.userId }], { name: "api.userPosts", search: { page: "number?", tag: "string?" } }),
|
|
543
|
+
// Plain RSC route
|
|
544
|
+
path("/", () => null, { name: "home" }),
|
|
545
|
+
path("/about", () => null, { name: "about" }),
|
|
546
|
+
]);
|
|
547
|
+
describe("RouteParams with mixed RSC + response routes", () => {
|
|
548
|
+
it("should extract empty params for static RSC route", () => {
|
|
549
|
+
expectTypeOf().toEqualTypeOf();
|
|
550
|
+
});
|
|
551
|
+
it("should extract empty params for RSC route with search (no path params)", () => {
|
|
552
|
+
expectTypeOf().toEqualTypeOf();
|
|
553
|
+
});
|
|
554
|
+
it("should extract path params for RSC route with search + params", () => {
|
|
555
|
+
expectTypeOf().toEqualTypeOf();
|
|
556
|
+
});
|
|
557
|
+
it("should extract empty params for JSON response route (no path params)", () => {
|
|
558
|
+
expectTypeOf().toEqualTypeOf();
|
|
559
|
+
});
|
|
560
|
+
it("should extract params for JSON response route with path params", () => {
|
|
561
|
+
expectTypeOf().toEqualTypeOf();
|
|
562
|
+
});
|
|
563
|
+
it("should extract empty params for path.json() route with search but no path params", () => {
|
|
564
|
+
expectTypeOf().toEqualTypeOf();
|
|
565
|
+
});
|
|
566
|
+
it("should extract params for path.json() route with params + search", () => {
|
|
567
|
+
expectTypeOf().toEqualTypeOf();
|
|
568
|
+
});
|
|
569
|
+
});
|
|
570
|
+
describe("RouteSearchParams with mixed RSC + response routes", () => {
|
|
571
|
+
it("should resolve search schema for RSC route with search", () => {
|
|
572
|
+
expectTypeOf().toEqualTypeOf();
|
|
573
|
+
});
|
|
574
|
+
it("should resolve search schema for RSC route with params + search", () => {
|
|
575
|
+
expectTypeOf().toEqualTypeOf();
|
|
576
|
+
});
|
|
577
|
+
it("should return empty object for plain RSC route without search", () => {
|
|
578
|
+
expectTypeOf().toEqualTypeOf();
|
|
579
|
+
});
|
|
580
|
+
it("should return empty object for JSON response route without search", () => {
|
|
581
|
+
expectTypeOf().toEqualTypeOf();
|
|
582
|
+
});
|
|
583
|
+
it("should return empty object for JSON response route with params but no search", () => {
|
|
584
|
+
expectTypeOf().toEqualTypeOf();
|
|
585
|
+
});
|
|
586
|
+
it("should resolve search schema for path.json() route with search", () => {
|
|
587
|
+
expectTypeOf().toEqualTypeOf();
|
|
588
|
+
});
|
|
589
|
+
it("should resolve search schema for path.json() route with params + search", () => {
|
|
590
|
+
expectTypeOf().toEqualTypeOf();
|
|
591
|
+
});
|
|
592
|
+
});
|
|
593
|
+
describe("PathResponse with mixed RSC + response routes", () => {
|
|
594
|
+
it("should resolve response envelope for JSON health route", () => {
|
|
595
|
+
expectTypeOf().toEqualTypeOf();
|
|
596
|
+
});
|
|
597
|
+
it("should resolve response envelope for JSON product route", () => {
|
|
598
|
+
expectTypeOf().toEqualTypeOf();
|
|
599
|
+
});
|
|
600
|
+
it("should resolve response envelope for path.json() route with search", () => {
|
|
601
|
+
expectTypeOf().toEqualTypeOf();
|
|
602
|
+
});
|
|
603
|
+
it("should resolve response envelope for path.json() route with params + search", () => {
|
|
604
|
+
expectTypeOf().toEqualTypeOf();
|
|
605
|
+
});
|
|
606
|
+
it("should return ResponseEnvelope<never> for RSC route with search", () => {
|
|
607
|
+
expectTypeOf().toEqualTypeOf();
|
|
608
|
+
});
|
|
609
|
+
it("should return ResponseEnvelope<never> for RSC route with params + search", () => {
|
|
610
|
+
expectTypeOf().toEqualTypeOf();
|
|
611
|
+
});
|
|
612
|
+
it("should return ResponseEnvelope<never> for plain RSC route", () => {
|
|
613
|
+
expectTypeOf().toEqualTypeOf();
|
|
614
|
+
});
|
|
615
|
+
});
|
|
616
|
+
describe("RouteResponse with mixed RSC + response routes", () => {
|
|
617
|
+
it("should resolve response for JSON route by name", () => {
|
|
618
|
+
expectTypeOf().toEqualTypeOf();
|
|
619
|
+
});
|
|
620
|
+
it("should resolve response for JSON route with params by name", () => {
|
|
621
|
+
expectTypeOf().toEqualTypeOf();
|
|
622
|
+
});
|
|
623
|
+
it("should resolve response for path.json() route with search by name", () => {
|
|
624
|
+
expectTypeOf().toEqualTypeOf();
|
|
625
|
+
});
|
|
626
|
+
it("should resolve response for path.json() route with params + search by name", () => {
|
|
627
|
+
expectTypeOf().toEqualTypeOf();
|
|
628
|
+
});
|
|
629
|
+
});
|
|
630
|
+
describe("ReverseFunction with mixed RSC + response routes", () => {
|
|
631
|
+
it("should accept all route names", () => {
|
|
632
|
+
expectTypeOf().toBeCallableWith("home");
|
|
633
|
+
expectTypeOf().toBeCallableWith("about");
|
|
634
|
+
expectTypeOf().toBeCallableWith("search");
|
|
635
|
+
expectTypeOf().toBeCallableWith("api.health");
|
|
636
|
+
expectTypeOf().toBeCallableWith("api.items");
|
|
637
|
+
});
|
|
638
|
+
it("should require params for routes with path params", () => {
|
|
639
|
+
expectTypeOf().toBeCallableWith("category", { catId: "electronics" });
|
|
640
|
+
expectTypeOf().toBeCallableWith("api.product", { id: "123" });
|
|
641
|
+
expectTypeOf().toBeCallableWith("api.userPosts", { userId: "42" });
|
|
642
|
+
});
|
|
643
|
+
});
|
|
644
|
+
describe("ValidPaths with mixed RSC + response routes", () => {
|
|
645
|
+
it("should include all paths from mixed sources", () => {
|
|
646
|
+
expectTypeOf().toMatchTypeOf();
|
|
647
|
+
expectTypeOf().toMatchTypeOf();
|
|
648
|
+
expectTypeOf().toMatchTypeOf();
|
|
649
|
+
expectTypeOf().toMatchTypeOf();
|
|
650
|
+
expectTypeOf().toMatchTypeOf();
|
|
651
|
+
expectTypeOf().toMatchTypeOf();
|
|
652
|
+
expectTypeOf().toMatchTypeOf();
|
|
653
|
+
expectTypeOf().toMatchTypeOf();
|
|
654
|
+
});
|
|
655
|
+
});
|
|
656
|
+
//# sourceMappingURL=reverse-types.test.js.map
|