@rangojs/router 0.0.0-experimental.125 → 0.0.0-experimental.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -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 +5 -1
- 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/{src/handles/index.ts → dist/handles/index.d.ts} +1 -2
- package/dist/handles/index.d.ts.map +1 -0
- package/dist/handles/index.js +6 -0
- package/dist/handles/index.js.map +1 -0
- package/dist/handles/meta.d.ts +39 -0
- package/dist/handles/meta.d.ts.map +1 -0
- package/dist/handles/meta.js +202 -0
- package/dist/handles/meta.js.map +1 -0
- package/dist/host/__tests__/errors.test.d.ts +2 -0
- package/dist/host/__tests__/errors.test.d.ts.map +1 -0
- package/dist/host/__tests__/errors.test.js +76 -0
- package/dist/host/__tests__/errors.test.js.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.js +251 -0
- package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
- package/dist/host/__tests__/router.test.d.ts +2 -0
- package/dist/host/__tests__/router.test.d.ts.map +1 -0
- package/dist/host/__tests__/router.test.js +241 -0
- package/dist/host/__tests__/router.test.js.map +1 -0
- package/dist/host/__tests__/testing.test.d.ts +2 -0
- package/dist/host/__tests__/testing.test.d.ts.map +1 -0
- package/dist/host/__tests__/testing.test.js +64 -0
- package/dist/host/__tests__/testing.test.js.map +1 -0
- package/dist/host/__tests__/utils.test.d.ts +2 -0
- package/dist/host/__tests__/utils.test.d.ts.map +1 -0
- package/dist/host/__tests__/utils.test.js +29 -0
- package/dist/host/__tests__/utils.test.js.map +1 -0
- package/dist/host/cookie-handler.d.ts +34 -0
- package/dist/host/cookie-handler.d.ts.map +1 -0
- package/dist/host/cookie-handler.js +124 -0
- package/dist/host/cookie-handler.js.map +1 -0
- package/dist/host/errors.d.ts +56 -0
- package/dist/host/errors.d.ts.map +1 -0
- package/dist/host/errors.js +79 -0
- package/dist/host/errors.js.map +1 -0
- package/dist/host/index.d.ts +29 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +32 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/pattern-matcher.d.ts +36 -0
- package/dist/host/pattern-matcher.d.ts.map +1 -0
- package/dist/host/pattern-matcher.js +172 -0
- package/dist/host/pattern-matcher.js.map +1 -0
- package/dist/host/router.d.ts +26 -0
- package/dist/host/router.d.ts.map +1 -0
- package/dist/host/router.js +218 -0
- package/dist/host/router.js.map +1 -0
- package/dist/host/testing.d.ts +36 -0
- package/dist/host/testing.d.ts.map +1 -0
- package/dist/host/testing.js +55 -0
- package/dist/host/testing.js.map +1 -0
- package/dist/host/types.d.ts +115 -0
- package/dist/host/types.d.ts.map +1 -0
- package/dist/host/types.js +7 -0
- package/dist/host/types.js.map +1 -0
- package/dist/host/utils.d.ts +21 -0
- package/dist/host/utils.d.ts.map +1 -0
- package/dist/host/utils.js +23 -0
- package/dist/host/utils.js.map +1 -0
- package/dist/href-client.d.ts +131 -0
- package/dist/href-client.d.ts.map +1 -0
- package/dist/href-client.js +64 -0
- package/dist/href-client.js.map +1 -0
- package/dist/href-context.d.ts +29 -0
- package/dist/href-context.d.ts.map +1 -0
- package/dist/href-context.js +21 -0
- package/dist/href-context.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/index.rsc.d.ts +32 -0
- package/dist/index.rsc.d.ts.map +1 -0
- package/dist/index.rsc.js +40 -0
- package/dist/index.rsc.js.map +1 -0
- package/dist/internal-debug.d.ts +2 -0
- package/dist/internal-debug.d.ts.map +1 -0
- package/dist/internal-debug.js +5 -0
- package/dist/internal-debug.js.map +1 -0
- package/dist/loader.d.ts +14 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +20 -0
- package/dist/loader.js.map +1 -0
- package/dist/loader.rsc.d.ts +19 -0
- package/dist/loader.rsc.d.ts.map +1 -0
- package/dist/loader.rsc.js +99 -0
- package/dist/loader.rsc.js.map +1 -0
- package/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 +361 -65
- package/dist/vite/index.js.bak +5448 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/index.named-routes.gen.ts +103 -0
- package/dist/vite/package-resolution.d.ts +43 -0
- package/dist/vite/package-resolution.d.ts.map +1 -0
- package/dist/vite/package-resolution.js +112 -0
- package/dist/vite/package-resolution.js.map +1 -0
- package/dist/vite/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 +6 -1
- package/skills/breadcrumbs/SKILL.md +60 -0
- package/skills/observability/SKILL.md +12 -3
- package/skills/prerender/SKILL.md +30 -11
- package/skills/router-setup/SKILL.md +11 -3
- package/skills/server-actions/SKILL.md +25 -1
- package/skills/testing/SKILL.md +17 -17
- package/skills/testing/cache-prerender.md +29 -3
- package/skills/testing/flight.md +13 -10
- package/skills/testing/render-handler.md +3 -0
- package/skills/testing/server-tree.md +1 -1
- package/skills/testing/setup.md +1 -1
- package/src/browser/partial-update.ts +22 -1
- package/src/browser/react/use-router.ts +2 -1
- package/src/browser/rsc-router.tsx +8 -1
- package/src/browser/server-action-bridge.ts +51 -3
- package/src/browser/types.ts +23 -4
- package/src/browser/validate-redirect-origin.ts +43 -15
- package/src/build/index.ts +8 -9
- package/src/build/route-trie.ts +43 -11
- package/src/build/route-types/codegen.ts +12 -1
- package/src/cache/cache-runtime.ts +21 -0
- package/src/cache/cache-scope.ts +20 -0
- package/src/cache/document-cache.ts +10 -0
- package/src/cache/profile-registry.ts +6 -34
- package/src/client.rsc.tsx +3 -0
- package/src/client.tsx +5 -0
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +109 -0
- package/src/context-var.ts +12 -0
- package/src/defer.ts +196 -0
- package/src/handles/breadcrumbs.ts +16 -5
- package/src/index.rsc.ts +26 -2
- package/src/index.ts +23 -1
- package/src/redirect-origin.ts +100 -0
- package/src/route-definition/dsl-helpers.ts +19 -0
- package/src/route-definition/redirect.ts +32 -8
- package/src/route-definition/resolve-handler-use.ts +6 -0
- package/src/router/find-match.ts +0 -1
- package/src/router/instrument.ts +230 -0
- package/src/router/loader-resolution.ts +37 -31
- package/src/router/match-middleware/cache-lookup.ts +104 -139
- package/src/router/match-middleware/cache-store.ts +12 -0
- package/src/router/match-middleware/segment-resolution.ts +0 -1
- package/src/router/middleware-types.ts +0 -1
- package/src/router/middleware.ts +94 -33
- package/src/router/pattern-matching.ts +4 -23
- package/src/router/prerender-match.ts +32 -8
- package/src/router/revalidation.ts +9 -4
- package/src/router/route-snapshot.ts +0 -1
- package/src/router/router-context.ts +2 -2
- package/src/router/router-interfaces.ts +18 -0
- package/src/router/router-options.ts +58 -4
- package/src/router/segment-resolution/fresh.ts +15 -18
- package/src/router/segment-resolution/helpers.ts +6 -0
- package/src/router/segment-resolution/loader-cache.ts +30 -10
- package/src/router/segment-resolution/revalidation.ts +194 -261
- package/src/router/segment-wrappers.ts +3 -5
- package/src/router/telemetry-otel.ts +161 -179
- package/src/router/tracing.ts +198 -0
- package/src/router/trie-matching.ts +3 -5
- package/src/router.ts +13 -9
- package/src/rsc/handler-context.ts +1 -0
- package/src/rsc/handler.ts +135 -130
- package/src/rsc/helpers.ts +56 -3
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +7 -1
- package/src/rsc/origin-guard.ts +10 -4
- package/src/rsc/progressive-enhancement.ts +17 -2
- package/src/rsc/redirect-guard.ts +99 -0
- package/src/rsc/response-route-handler.ts +23 -18
- package/src/rsc/rsc-rendering.ts +38 -14
- package/src/rsc/server-action.ts +32 -8
- package/src/rsc/types.ts +6 -2
- package/src/segment-system.tsx +4 -1
- package/src/server/request-context.ts +35 -18
- package/src/testing/cache-status.ts +44 -1
- package/src/testing/dispatch.ts +43 -6
- package/src/testing/e2e/index.ts +1 -0
- package/src/testing/flight.ts +48 -2
- package/src/testing/index.ts +1 -0
- package/src/testing/render-handler.ts +31 -12
- package/src/testing/render-route.tsx +75 -13
- package/src/types/handler-context.ts +28 -1
- package/src/vite/discovery/discover-routers.ts +22 -11
- package/src/vite/discovery/prerender-collection.ts +28 -41
- package/src/vite/discovery/state.ts +11 -0
- package/src/vite/plugin-types.ts +56 -7
- package/src/vite/plugins/expose-ids/router-transform.ts +10 -0
- package/src/vite/plugins/refresh-cmd.ts +1 -1
- package/src/vite/plugins/use-cache-transform.ts +21 -10
- package/src/vite/rango.ts +2 -0
- package/src/vite/router-discovery.ts +16 -3
- package/src/vite/utils/prerender-utils.ts +36 -0
- package/src/router/middleware-cookies.ts +0 -42
package/dist/vite/index.js
CHANGED
|
@@ -1192,7 +1192,10 @@ function transformRouter(code, filePath, routerFnNames, absolutePath) {
|
|
|
1192
1192
|
const basename2 = path3.basename(filePath).replace(/\.(tsx?|jsx?)$/, "");
|
|
1193
1193
|
const routeNamesImport = `./${basename2}.named-routes.gen.js`;
|
|
1194
1194
|
const routeNamesVar = `__rsc_rn`;
|
|
1195
|
+
const codeOffsets = new Set(codeMatchIndices(code, pat));
|
|
1196
|
+
pat.lastIndex = 0;
|
|
1195
1197
|
while ((match = pat.exec(code)) !== null) {
|
|
1198
|
+
if (!codeOffsets.has(match.index)) continue;
|
|
1196
1199
|
const callStart = match.index;
|
|
1197
1200
|
const parenPos = match.index + match[0].length - 1;
|
|
1198
1201
|
const closeParen = findMatchingParen(code, parenPos + 1);
|
|
@@ -1841,7 +1844,7 @@ function useCacheTransform() {
|
|
|
1841
1844
|
};
|
|
1842
1845
|
}
|
|
1843
1846
|
function transformFileLevelUseCache(code, ast, filePath, sourceId, isBuild, isLayoutOrTemplate, transformWrapExport) {
|
|
1844
|
-
const
|
|
1847
|
+
const unconfirmedExports = [];
|
|
1845
1848
|
const { exportNames, output } = transformWrapExport(code, ast, {
|
|
1846
1849
|
runtime: (value, name) => {
|
|
1847
1850
|
const funcId = isBuild ? hashId(filePath, name) : `${filePath}#${name}`;
|
|
@@ -1850,16 +1853,17 @@ function transformFileLevelUseCache(code, ast, filePath, sourceId, isBuild, isLa
|
|
|
1850
1853
|
rejectNonAsyncFunction: false,
|
|
1851
1854
|
filter: (name, meta) => {
|
|
1852
1855
|
if (name === "default" && isLayoutOrTemplate) return false;
|
|
1853
|
-
if (meta.isFunction
|
|
1854
|
-
|
|
1856
|
+
if (meta.isFunction !== true) {
|
|
1857
|
+
unconfirmedExports.push(name);
|
|
1855
1858
|
return false;
|
|
1856
1859
|
}
|
|
1857
1860
|
return true;
|
|
1858
1861
|
}
|
|
1859
1862
|
});
|
|
1860
|
-
if (
|
|
1863
|
+
if (unconfirmedExports.length > 0) {
|
|
1864
|
+
const plural = unconfirmedExports.length > 1;
|
|
1861
1865
|
throw new Error(
|
|
1862
|
-
`[rango:use-cache] File-level "use cache" in ${sourceId}
|
|
1866
|
+
`[rango:use-cache] File-level "use cache" in ${sourceId} only wraps exports that are statically-confirmed functions. ${plural ? "These exports are" : "This export is"} not: ${unconfirmedExports.map((n) => `"${n}"`).join(", ")}. Declare them directly (export async function foo() {} or export const foo = async () => {}). A factory or otherwise statically-indeterminate initializer (export const foo = makeCached(fn)) is rejected even if it returns a function at runtime -- rewrite it as a direct async function, or move non-function exports to a separate module.`
|
|
1863
1867
|
);
|
|
1864
1868
|
}
|
|
1865
1869
|
if (exportNames.length === 0) {
|
|
@@ -2129,7 +2133,7 @@ import { resolve } from "node:path";
|
|
|
2129
2133
|
// package.json
|
|
2130
2134
|
var package_default = {
|
|
2131
2135
|
name: "@rangojs/router",
|
|
2132
|
-
version: "0.0.0-experimental.
|
|
2136
|
+
version: "0.0.0-experimental.127",
|
|
2133
2137
|
description: "Django-inspired RSC router with composable URL patterns",
|
|
2134
2138
|
keywords: [
|
|
2135
2139
|
"react",
|
|
@@ -2239,6 +2243,11 @@ var package_default = {
|
|
|
2239
2243
|
"react-server": "./src/cache/cache-runtime.ts",
|
|
2240
2244
|
default: "./src/cache/cache-runtime.ts"
|
|
2241
2245
|
},
|
|
2246
|
+
"./cloudflare": {
|
|
2247
|
+
types: "./src/cloudflare/index.ts",
|
|
2248
|
+
"react-server": "./src/cloudflare/index.ts",
|
|
2249
|
+
default: "./src/cloudflare/index.ts"
|
|
2250
|
+
},
|
|
2242
2251
|
"./theme": {
|
|
2243
2252
|
types: "./src/theme/index.ts",
|
|
2244
2253
|
default: "./src/theme/index.ts"
|
|
@@ -2531,16 +2540,44 @@ export const NamedRoutes = {
|
|
|
2531
2540
|
${objectBody}
|
|
2532
2541
|
} as const;
|
|
2533
2542
|
|
|
2543
|
+
// Aliased so the augmentation below does not pay a homomorphic mapped-type
|
|
2544
|
+
// instantiation per route; \`as const\` already makes the members readonly.
|
|
2545
|
+
type NamedRoutesShape = typeof NamedRoutes;
|
|
2546
|
+
|
|
2534
2547
|
declare global {
|
|
2535
2548
|
namespace Rango {
|
|
2536
|
-
interface GeneratedRouteMap extends
|
|
2549
|
+
interface GeneratedRouteMap extends NamedRoutesShape {}
|
|
2537
2550
|
}
|
|
2538
2551
|
}
|
|
2539
2552
|
`;
|
|
2540
2553
|
}
|
|
2541
2554
|
|
|
2542
2555
|
// src/build/route-types/scan-filter.ts
|
|
2556
|
+
import { join, relative } from "node:path";
|
|
2543
2557
|
import picomatch from "picomatch";
|
|
2558
|
+
var DEFAULT_EXCLUDE_PATTERNS = [
|
|
2559
|
+
"**/__tests__/**",
|
|
2560
|
+
"**/__mocks__/**",
|
|
2561
|
+
"**/dist/**",
|
|
2562
|
+
"**/coverage/**",
|
|
2563
|
+
"**/*.test.{ts,tsx,js,jsx}",
|
|
2564
|
+
"**/*.spec.{ts,tsx,js,jsx}"
|
|
2565
|
+
];
|
|
2566
|
+
function createScanFilter(root, opts) {
|
|
2567
|
+
const { include, exclude } = opts;
|
|
2568
|
+
const hasInclude = include && include.length > 0;
|
|
2569
|
+
const hasCustomExclude = exclude !== void 0;
|
|
2570
|
+
if (!hasInclude && !hasCustomExclude) return void 0;
|
|
2571
|
+
const effectiveExclude = exclude ?? DEFAULT_EXCLUDE_PATTERNS;
|
|
2572
|
+
const includeMatcher = hasInclude ? picomatch(include) : null;
|
|
2573
|
+
const excludeMatcher = effectiveExclude.length > 0 ? picomatch(effectiveExclude) : null;
|
|
2574
|
+
return (absolutePath) => {
|
|
2575
|
+
const rel = relative(root, absolutePath);
|
|
2576
|
+
if (excludeMatcher && excludeMatcher(rel)) return false;
|
|
2577
|
+
if (includeMatcher) return includeMatcher(rel);
|
|
2578
|
+
return true;
|
|
2579
|
+
};
|
|
2580
|
+
}
|
|
2544
2581
|
|
|
2545
2582
|
// src/build/route-types/per-module-writer.ts
|
|
2546
2583
|
import ts4 from "typescript";
|
|
@@ -2809,7 +2846,7 @@ import {
|
|
|
2809
2846
|
readdirSync
|
|
2810
2847
|
} from "node:fs";
|
|
2811
2848
|
import {
|
|
2812
|
-
join,
|
|
2849
|
+
join as join2,
|
|
2813
2850
|
dirname as dirname2,
|
|
2814
2851
|
resolve as resolve3,
|
|
2815
2852
|
sep,
|
|
@@ -2845,7 +2882,7 @@ function findRouterFilesRecursive(dir, filter, results) {
|
|
|
2845
2882
|
const childDirs = [];
|
|
2846
2883
|
const routerFilesInDir = [];
|
|
2847
2884
|
for (const entry of entries) {
|
|
2848
|
-
const fullPath =
|
|
2885
|
+
const fullPath = join2(dir, entry.name);
|
|
2849
2886
|
if (entry.isDirectory()) {
|
|
2850
2887
|
if (entry.name === "node_modules" || entry.name === "dist" || entry.name === "coverage" || entry.name === "__tests__" || entry.name === "__mocks__" || entry.name.startsWith("."))
|
|
2851
2888
|
continue;
|
|
@@ -3005,7 +3042,7 @@ function applyBasenameToRoutes(result, basename2) {
|
|
|
3005
3042
|
}
|
|
3006
3043
|
function genFileTsPath(sourceFile) {
|
|
3007
3044
|
const base = pathBasename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
|
|
3008
|
-
return
|
|
3045
|
+
return join2(dirname2(sourceFile), `${base}.named-routes.gen.ts`);
|
|
3009
3046
|
}
|
|
3010
3047
|
function resolveSearchSchemas(publicRouteNames, runtimeSchemas, sourceFile) {
|
|
3011
3048
|
if (runtimeSchemas && Object.keys(runtimeSchemas).length > 0) {
|
|
@@ -3071,7 +3108,7 @@ function findRouterFiles(root, filter) {
|
|
|
3071
3108
|
}
|
|
3072
3109
|
function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
|
|
3073
3110
|
try {
|
|
3074
|
-
const oldCombinedPath =
|
|
3111
|
+
const oldCombinedPath = join2(root, "src", "named-routes.gen.ts");
|
|
3075
3112
|
if (existsSync3(oldCombinedPath)) {
|
|
3076
3113
|
unlinkSync(oldCombinedPath);
|
|
3077
3114
|
console.log(
|
|
@@ -3499,7 +3536,7 @@ function getManualChunks(id) {
|
|
|
3499
3536
|
}
|
|
3500
3537
|
|
|
3501
3538
|
// src/vite/plugins/client-ref-hashing.ts
|
|
3502
|
-
import { relative } from "node:path";
|
|
3539
|
+
import { relative as relative2 } from "node:path";
|
|
3503
3540
|
import { createHash as createHash2 } from "node:crypto";
|
|
3504
3541
|
var debug7 = createRangoDebugger(NS.transform);
|
|
3505
3542
|
var CLIENT_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-package-proxy/";
|
|
@@ -3516,10 +3553,10 @@ function computeProductionHash(projectRoot, refKey) {
|
|
|
3516
3553
|
const absPath = decodeURIComponent(
|
|
3517
3554
|
refKey.slice(CLIENT_IN_SERVER_PKG_PROXY_PREFIX.length)
|
|
3518
3555
|
);
|
|
3519
|
-
toHash =
|
|
3556
|
+
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
3520
3557
|
} else if (refKey.startsWith(FS_PREFIX)) {
|
|
3521
3558
|
const absPath = refKey.slice(FS_PREFIX.length - 1);
|
|
3522
|
-
toHash =
|
|
3559
|
+
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
3523
3560
|
} else if (refKey.startsWith("/")) {
|
|
3524
3561
|
toHash = refKey.slice(1);
|
|
3525
3562
|
} else {
|
|
@@ -4054,6 +4091,49 @@ function checkSelfGenWrite(state, filePath, consume) {
|
|
|
4054
4091
|
}
|
|
4055
4092
|
}
|
|
4056
4093
|
|
|
4094
|
+
// src/router/logging.ts
|
|
4095
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4096
|
+
|
|
4097
|
+
// src/internal-debug.ts
|
|
4098
|
+
var INTERNAL_RANGO_DEBUG = typeof __RANGO_DEBUG__ !== "undefined" ? __RANGO_DEBUG__ : typeof process !== "undefined" && Boolean(process.env?.INTERNAL_RANGO_DEBUG);
|
|
4099
|
+
|
|
4100
|
+
// src/router/logging.ts
|
|
4101
|
+
var routerLogContext = new AsyncLocalStorage();
|
|
4102
|
+
|
|
4103
|
+
// src/router/pattern-matching.ts
|
|
4104
|
+
function parsePattern(pattern) {
|
|
4105
|
+
const segments = [];
|
|
4106
|
+
const segmentRegex = /\/(:([a-zA-Z_][a-zA-Z0-9_]*)(\(([^)]+)\))?(\?)?([^/]*)|(\*)|([^/]+))/g;
|
|
4107
|
+
let match;
|
|
4108
|
+
while ((match = segmentRegex.exec(pattern)) !== null) {
|
|
4109
|
+
const [
|
|
4110
|
+
,
|
|
4111
|
+
,
|
|
4112
|
+
paramName,
|
|
4113
|
+
,
|
|
4114
|
+
constraint,
|
|
4115
|
+
optional,
|
|
4116
|
+
suffix,
|
|
4117
|
+
wildcard,
|
|
4118
|
+
staticText
|
|
4119
|
+
] = match;
|
|
4120
|
+
if (wildcard) {
|
|
4121
|
+
segments.push({ type: "wildcard", value: "*", optional: false });
|
|
4122
|
+
} else if (paramName) {
|
|
4123
|
+
segments.push({
|
|
4124
|
+
type: "param",
|
|
4125
|
+
value: paramName,
|
|
4126
|
+
optional: optional === "?",
|
|
4127
|
+
constraint: constraint ? constraint.split("|") : void 0,
|
|
4128
|
+
suffix: suffix || void 0
|
|
4129
|
+
});
|
|
4130
|
+
} else if (staticText) {
|
|
4131
|
+
segments.push({ type: "static", value: staticText, optional: false });
|
|
4132
|
+
}
|
|
4133
|
+
}
|
|
4134
|
+
return segments;
|
|
4135
|
+
}
|
|
4136
|
+
|
|
4057
4137
|
// src/build/prefix-tree-utils.ts
|
|
4058
4138
|
function flattenLeafEntries(prefixTree, routeManifest, result) {
|
|
4059
4139
|
function visit(node, ancestorStaticPrefixes) {
|
|
@@ -4096,6 +4176,216 @@ function buildRouteToStaticPrefix(prefixTree, result) {
|
|
|
4096
4176
|
}
|
|
4097
4177
|
}
|
|
4098
4178
|
|
|
4179
|
+
// src/build/route-trie.ts
|
|
4180
|
+
function buildRouteTrie(routeManifest, routeAncestry, routeToStaticPrefix, routeTrailingSlash, prerenderRouteNames, passthroughRouteNames, responseTypeRoutes) {
|
|
4181
|
+
const root = {};
|
|
4182
|
+
for (const [routeName, pattern] of Object.entries(routeManifest)) {
|
|
4183
|
+
const ancestry = routeAncestry[routeName] || [];
|
|
4184
|
+
const staticPrefix = routeToStaticPrefix[routeName] || "";
|
|
4185
|
+
const trailingSlash = routeTrailingSlash?.[routeName];
|
|
4186
|
+
const responseType = responseTypeRoutes?.[routeName];
|
|
4187
|
+
const hasTrailingSlash = pattern.length > 1 && pattern.endsWith("/");
|
|
4188
|
+
const normalizedPattern = hasTrailingSlash ? pattern.slice(0, -1) : pattern;
|
|
4189
|
+
const segments = parsePattern(normalizedPattern);
|
|
4190
|
+
insertRoute(root, segments, 0, {
|
|
4191
|
+
n: routeName,
|
|
4192
|
+
sp: staticPrefix,
|
|
4193
|
+
a: ancestry,
|
|
4194
|
+
...trailingSlash ? { ts: trailingSlash } : {},
|
|
4195
|
+
...prerenderRouteNames?.has(routeName) ? { pr: true } : {},
|
|
4196
|
+
...passthroughRouteNames?.has(routeName) ? { pt: true } : {},
|
|
4197
|
+
...responseType ? { rt: responseType } : {}
|
|
4198
|
+
});
|
|
4199
|
+
}
|
|
4200
|
+
sortSuffixParams(root);
|
|
4201
|
+
return root;
|
|
4202
|
+
}
|
|
4203
|
+
function sortSuffixParams(node) {
|
|
4204
|
+
if (node.xp) {
|
|
4205
|
+
const sorted = {};
|
|
4206
|
+
for (const suffix of Object.keys(node.xp).sort(
|
|
4207
|
+
(a, b) => b.length - a.length
|
|
4208
|
+
)) {
|
|
4209
|
+
sorted[suffix] = node.xp[suffix];
|
|
4210
|
+
}
|
|
4211
|
+
node.xp = sorted;
|
|
4212
|
+
}
|
|
4213
|
+
if (node.s) {
|
|
4214
|
+
for (const child of Object.values(node.s)) {
|
|
4215
|
+
sortSuffixParams(child);
|
|
4216
|
+
}
|
|
4217
|
+
}
|
|
4218
|
+
if (node.p) {
|
|
4219
|
+
sortSuffixParams(node.p.c);
|
|
4220
|
+
}
|
|
4221
|
+
if (node.xp) {
|
|
4222
|
+
for (const child of Object.values(node.xp)) {
|
|
4223
|
+
sortSuffixParams(child.c);
|
|
4224
|
+
}
|
|
4225
|
+
}
|
|
4226
|
+
}
|
|
4227
|
+
function buildPerRouterTrie(manifest) {
|
|
4228
|
+
const ancestry = manifest._routeAncestry;
|
|
4229
|
+
if (!ancestry || Object.keys(ancestry).length === 0) {
|
|
4230
|
+
return null;
|
|
4231
|
+
}
|
|
4232
|
+
const routeToStaticPrefix = {};
|
|
4233
|
+
for (const name of Object.keys(manifest.routeManifest)) {
|
|
4234
|
+
routeToStaticPrefix[name] = "";
|
|
4235
|
+
}
|
|
4236
|
+
if (manifest.prefixTree) {
|
|
4237
|
+
buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
|
|
4238
|
+
}
|
|
4239
|
+
return buildRouteTrie(
|
|
4240
|
+
manifest.routeManifest,
|
|
4241
|
+
ancestry,
|
|
4242
|
+
routeToStaticPrefix,
|
|
4243
|
+
manifest.routeTrailingSlash,
|
|
4244
|
+
manifest.prerenderRoutes ? new Set(manifest.prerenderRoutes) : void 0,
|
|
4245
|
+
manifest.passthroughRoutes ? new Set(manifest.passthroughRoutes) : void 0,
|
|
4246
|
+
manifest.responseTypeRoutes
|
|
4247
|
+
);
|
|
4248
|
+
}
|
|
4249
|
+
function insertRoute(node, segments, index, leaf) {
|
|
4250
|
+
const constraints = {};
|
|
4251
|
+
for (const seg of segments) {
|
|
4252
|
+
if (seg.type === "param") {
|
|
4253
|
+
if (seg.constraint) {
|
|
4254
|
+
constraints[seg.value] = seg.constraint;
|
|
4255
|
+
}
|
|
4256
|
+
}
|
|
4257
|
+
}
|
|
4258
|
+
const leafBase = {
|
|
4259
|
+
...leaf,
|
|
4260
|
+
...Object.keys(constraints).length > 0 ? { cv: constraints } : {}
|
|
4261
|
+
};
|
|
4262
|
+
insertSegments(node, segments, index, leafBase, []);
|
|
4263
|
+
}
|
|
4264
|
+
function mergeLeaves(existing, leaf) {
|
|
4265
|
+
if (!existing) return leaf;
|
|
4266
|
+
if (existing.rt && leaf.rt) {
|
|
4267
|
+
const merged = leaf;
|
|
4268
|
+
merged.nv = existing.nv || [];
|
|
4269
|
+
merged.nv.push({ routeKey: existing.n, responseType: existing.rt });
|
|
4270
|
+
return merged;
|
|
4271
|
+
}
|
|
4272
|
+
if (leaf.rt && !existing.rt) {
|
|
4273
|
+
if (!existing.nv) {
|
|
4274
|
+
existing.nv = [];
|
|
4275
|
+
existing.rf = true;
|
|
4276
|
+
}
|
|
4277
|
+
existing.nv.push({ routeKey: leaf.n, responseType: leaf.rt });
|
|
4278
|
+
return existing;
|
|
4279
|
+
}
|
|
4280
|
+
if (!leaf.rt && existing.rt) {
|
|
4281
|
+
if (!leaf.nv) leaf.nv = [];
|
|
4282
|
+
if (existing.nv) leaf.nv.push(...existing.nv);
|
|
4283
|
+
leaf.nv.push({ routeKey: existing.n, responseType: existing.rt });
|
|
4284
|
+
return leaf;
|
|
4285
|
+
}
|
|
4286
|
+
return leaf;
|
|
4287
|
+
}
|
|
4288
|
+
function mergeLeaf(node, leaf) {
|
|
4289
|
+
node.r = mergeLeaves(node.r, leaf);
|
|
4290
|
+
}
|
|
4291
|
+
function buildLeaf(leafBase, paramNames) {
|
|
4292
|
+
return paramNames.length > 0 ? { ...leafBase, pa: [...paramNames] } : { ...leafBase };
|
|
4293
|
+
}
|
|
4294
|
+
function insertSegments(node, segments, index, leafBase, paramNames) {
|
|
4295
|
+
if (index >= segments.length) {
|
|
4296
|
+
mergeLeaf(node, buildLeaf(leafBase, paramNames));
|
|
4297
|
+
return;
|
|
4298
|
+
}
|
|
4299
|
+
const segment = segments[index];
|
|
4300
|
+
if (segment.type === "static") {
|
|
4301
|
+
if (!node.s) node.s = {};
|
|
4302
|
+
if (!node.s[segment.value]) node.s[segment.value] = {};
|
|
4303
|
+
insertSegments(
|
|
4304
|
+
node.s[segment.value],
|
|
4305
|
+
segments,
|
|
4306
|
+
index + 1,
|
|
4307
|
+
leafBase,
|
|
4308
|
+
paramNames
|
|
4309
|
+
);
|
|
4310
|
+
} else if (segment.type === "param") {
|
|
4311
|
+
if (segment.optional) {
|
|
4312
|
+
insertSegments(node, segments, index + 1, leafBase, paramNames);
|
|
4313
|
+
}
|
|
4314
|
+
if (segment.suffix) {
|
|
4315
|
+
if (!node.xp) node.xp = {};
|
|
4316
|
+
if (!node.xp[segment.suffix]) {
|
|
4317
|
+
node.xp[segment.suffix] = { n: segment.value, c: {} };
|
|
4318
|
+
}
|
|
4319
|
+
insertSegments(node.xp[segment.suffix].c, segments, index + 1, leafBase, [
|
|
4320
|
+
...paramNames,
|
|
4321
|
+
segment.value
|
|
4322
|
+
]);
|
|
4323
|
+
} else {
|
|
4324
|
+
if (!node.p) {
|
|
4325
|
+
node.p = { n: segment.value, c: {} };
|
|
4326
|
+
}
|
|
4327
|
+
insertSegments(node.p.c, segments, index + 1, leafBase, [
|
|
4328
|
+
...paramNames,
|
|
4329
|
+
segment.value
|
|
4330
|
+
]);
|
|
4331
|
+
}
|
|
4332
|
+
} else if (segment.type === "wildcard") {
|
|
4333
|
+
const wildLeaf = {
|
|
4334
|
+
...buildLeaf(leafBase, paramNames),
|
|
4335
|
+
pn: "*"
|
|
4336
|
+
};
|
|
4337
|
+
const existing = node.w ? { ...node.w } : void 0;
|
|
4338
|
+
const merged = mergeLeaves(existing, wildLeaf);
|
|
4339
|
+
node.w = merged;
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4342
|
+
|
|
4343
|
+
// src/build/collect-fallback-refs.ts
|
|
4344
|
+
var CLIENT_REF = /* @__PURE__ */ Symbol.for("react.client.reference");
|
|
4345
|
+
var MAX_DEPTH = 40;
|
|
4346
|
+
var SYNTHETIC_PROPS = {
|
|
4347
|
+
error: new Error("rango: build-time fallback-chunk discovery"),
|
|
4348
|
+
reset: () => {
|
|
4349
|
+
},
|
|
4350
|
+
pathname: "/",
|
|
4351
|
+
info: { componentStack: "" }
|
|
4352
|
+
};
|
|
4353
|
+
function isReactNodeLike(v) {
|
|
4354
|
+
return Array.isArray(v) || typeof v === "object" && v !== null && "$$typeof" in v;
|
|
4355
|
+
}
|
|
4356
|
+
function walkElementTree(node, report, depth) {
|
|
4357
|
+
if (node == null || depth > MAX_DEPTH) return;
|
|
4358
|
+
if (Array.isArray(node)) {
|
|
4359
|
+
for (const child of node) walkElementTree(child, report, depth + 1);
|
|
4360
|
+
return;
|
|
4361
|
+
}
|
|
4362
|
+
if (typeof node !== "object") return;
|
|
4363
|
+
const el = node;
|
|
4364
|
+
const type = el.type;
|
|
4365
|
+
if (type?.$$typeof === CLIENT_REF && typeof type.$$id === "string") {
|
|
4366
|
+
report(type.$$id.split("#")[0]);
|
|
4367
|
+
}
|
|
4368
|
+
const props = el.props;
|
|
4369
|
+
if (props && typeof props === "object") {
|
|
4370
|
+
walkElementTree(props.children, report, depth + 1);
|
|
4371
|
+
for (const key in props) {
|
|
4372
|
+
if (key === "children") continue;
|
|
4373
|
+
const value = props[key];
|
|
4374
|
+
if (isReactNodeLike(value)) walkElementTree(value, report, depth + 1);
|
|
4375
|
+
}
|
|
4376
|
+
}
|
|
4377
|
+
}
|
|
4378
|
+
function collectFallbackClientRefs(boundary, report) {
|
|
4379
|
+
try {
|
|
4380
|
+
let node = boundary;
|
|
4381
|
+
if (typeof node === "function") {
|
|
4382
|
+
node = node(SYNTHETIC_PROPS);
|
|
4383
|
+
}
|
|
4384
|
+
walkElementTree(node, report, 0);
|
|
4385
|
+
} catch {
|
|
4386
|
+
}
|
|
4387
|
+
}
|
|
4388
|
+
|
|
4099
4389
|
// src/vite/utils/manifest-utils.ts
|
|
4100
4390
|
function jsonParseExpression(value) {
|
|
4101
4391
|
const json = JSON.stringify(value);
|
|
@@ -4104,6 +4394,9 @@ function jsonParseExpression(value) {
|
|
|
4104
4394
|
}
|
|
4105
4395
|
|
|
4106
4396
|
// src/context-var.ts
|
|
4397
|
+
function hasContextVars(variables) {
|
|
4398
|
+
return Object.keys(variables).length > 0 || Object.getOwnPropertySymbols(variables).length > 0;
|
|
4399
|
+
}
|
|
4107
4400
|
var NON_CACHEABLE_KEYS = /* @__PURE__ */ Symbol.for(
|
|
4108
4401
|
"rango:non-cacheable-keys"
|
|
4109
4402
|
);
|
|
@@ -4240,6 +4533,23 @@ function notifyOnError(registry, error, phase, routeKey, pathname, skipped) {
|
|
|
4240
4533
|
break;
|
|
4241
4534
|
}
|
|
4242
4535
|
}
|
|
4536
|
+
function resolvePrerenderError(registry, error, onError, label, elapsed, phase, routeKey, pathname) {
|
|
4537
|
+
const isSkip = error?.name === "Skip";
|
|
4538
|
+
if (isSkip || onError === "warn") {
|
|
4539
|
+
if (isSkip) {
|
|
4540
|
+
console.log(`[rango] SKIP ${label} (${elapsed}ms) - ${error.message}`);
|
|
4541
|
+
} else {
|
|
4542
|
+
console.warn(
|
|
4543
|
+
`[rango] WARN ${label} (${elapsed}ms) - render error, not pre-rendered (prerender.onError: "warn"): ${error.message}`
|
|
4544
|
+
);
|
|
4545
|
+
}
|
|
4546
|
+
notifyOnError(registry, error, phase, routeKey, pathname, true);
|
|
4547
|
+
return;
|
|
4548
|
+
}
|
|
4549
|
+
console.error(`[rango] FAIL ${label} (${elapsed}ms) - ${error.message}`);
|
|
4550
|
+
notifyOnError(registry, error, phase, routeKey, pathname);
|
|
4551
|
+
throw error;
|
|
4552
|
+
}
|
|
4243
4553
|
function getStagedAssetDir(projectRoot) {
|
|
4244
4554
|
return resolve5(projectRoot, "node_modules/.rangojs-router-build/rsc-assets");
|
|
4245
4555
|
}
|
|
@@ -4356,7 +4666,7 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
4356
4666
|
(performance.now() - getParamsStart).toFixed(1)
|
|
4357
4667
|
);
|
|
4358
4668
|
const concurrency = def.options?.concurrency ?? 1;
|
|
4359
|
-
const hasBuildVars =
|
|
4669
|
+
const hasBuildVars = hasContextVars(buildVars);
|
|
4360
4670
|
for (const params of paramsList) {
|
|
4361
4671
|
let url = substituteRouteParams(
|
|
4362
4672
|
pattern,
|
|
@@ -4441,6 +4751,7 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
4441
4751
|
const manifestEntries = {};
|
|
4442
4752
|
let doneCount = 0;
|
|
4443
4753
|
let skipCount = 0;
|
|
4754
|
+
const prerenderOnError = state.opts?.prerenderOnError ?? "fail";
|
|
4444
4755
|
const startTotal = performance.now();
|
|
4445
4756
|
const groups = groupByConcurrency(entries);
|
|
4446
4757
|
for (const group of groups) {
|
|
@@ -4500,34 +4811,19 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
4500
4811
|
doneCount++;
|
|
4501
4812
|
break;
|
|
4502
4813
|
} catch (err) {
|
|
4503
|
-
if (err.name === "Skip") {
|
|
4504
|
-
const elapsed2 = (performance.now() - startUrl).toFixed(0);
|
|
4505
|
-
console.log(
|
|
4506
|
-
`[rango] SKIP ${entry.urlPath.padEnd(40)} (${elapsed2}ms) - ${err.message}`
|
|
4507
|
-
);
|
|
4508
|
-
skipCount++;
|
|
4509
|
-
notifyOnError(
|
|
4510
|
-
registry,
|
|
4511
|
-
err,
|
|
4512
|
-
"prerender",
|
|
4513
|
-
entry.routeName,
|
|
4514
|
-
entry.urlPath,
|
|
4515
|
-
true
|
|
4516
|
-
);
|
|
4517
|
-
break;
|
|
4518
|
-
}
|
|
4519
4814
|
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
4520
|
-
|
|
4521
|
-
`[rango] FAIL ${entry.urlPath.padEnd(40)} (${elapsed}ms) - ${err.message}`
|
|
4522
|
-
);
|
|
4523
|
-
notifyOnError(
|
|
4815
|
+
resolvePrerenderError(
|
|
4524
4816
|
registry,
|
|
4525
4817
|
err,
|
|
4818
|
+
prerenderOnError,
|
|
4819
|
+
entry.urlPath.padEnd(40),
|
|
4820
|
+
elapsed,
|
|
4526
4821
|
"prerender",
|
|
4527
4822
|
entry.routeName,
|
|
4528
4823
|
entry.urlPath
|
|
4529
4824
|
);
|
|
4530
|
-
|
|
4825
|
+
skipCount++;
|
|
4826
|
+
break;
|
|
4531
4827
|
}
|
|
4532
4828
|
}
|
|
4533
4829
|
}
|
|
@@ -4562,6 +4858,7 @@ async function renderStaticHandlers(state, rscEnv, registry) {
|
|
|
4562
4858
|
let staticDone = 0;
|
|
4563
4859
|
let staticSkip = 0;
|
|
4564
4860
|
let totalStaticCount = 0;
|
|
4861
|
+
const prerenderOnError = state.opts?.prerenderOnError ?? "fail";
|
|
4565
4862
|
for (const [, exportNames] of state.resolvedStaticModules) {
|
|
4566
4863
|
totalStaticCount += exportNames.length;
|
|
4567
4864
|
}
|
|
@@ -4609,22 +4906,18 @@ async function renderStaticHandlers(state, rscEnv, registry) {
|
|
|
4609
4906
|
break;
|
|
4610
4907
|
}
|
|
4611
4908
|
} catch (err) {
|
|
4612
|
-
if (err.name === "Skip") {
|
|
4613
|
-
const elapsed2 = (performance.now() - startHandler).toFixed(0);
|
|
4614
|
-
console.log(
|
|
4615
|
-
`[rango] SKIP ${name.padEnd(40)} (${elapsed2}ms) - ${err.message}`
|
|
4616
|
-
);
|
|
4617
|
-
staticSkip++;
|
|
4618
|
-
notifyOnError(registry, err, "static", void 0, void 0, true);
|
|
4619
|
-
handled = true;
|
|
4620
|
-
break;
|
|
4621
|
-
}
|
|
4622
4909
|
const elapsed = (performance.now() - startHandler).toFixed(0);
|
|
4623
|
-
|
|
4624
|
-
|
|
4910
|
+
resolvePrerenderError(
|
|
4911
|
+
registry,
|
|
4912
|
+
err,
|
|
4913
|
+
prerenderOnError,
|
|
4914
|
+
name.padEnd(40),
|
|
4915
|
+
elapsed,
|
|
4916
|
+
"static"
|
|
4625
4917
|
);
|
|
4626
|
-
|
|
4627
|
-
|
|
4918
|
+
staticSkip++;
|
|
4919
|
+
handled = true;
|
|
4920
|
+
break;
|
|
4628
4921
|
}
|
|
4629
4922
|
}
|
|
4630
4923
|
if (!handled) {
|
|
@@ -4798,8 +5091,8 @@ async function discoverRouters(state, rscEnv) {
|
|
|
4798
5091
|
computeProductionHash(state.projectRoot, refKey)
|
|
4799
5092
|
) : void 0;
|
|
4800
5093
|
const collectFromBoundaryNode = (node) => {
|
|
4801
|
-
if (collectClientFallbackRef
|
|
4802
|
-
|
|
5094
|
+
if (collectClientFallbackRef) {
|
|
5095
|
+
collectFallbackClientRefs(node, collectClientFallbackRef);
|
|
4803
5096
|
}
|
|
4804
5097
|
};
|
|
4805
5098
|
const manifestGenStart = debug10 ? performance.now() : 0;
|
|
@@ -4889,8 +5182,7 @@ async function discoverRouters(state, rscEnv) {
|
|
|
4889
5182
|
let newMergedRouteTrie = null;
|
|
4890
5183
|
const trieStart = debug10 ? performance.now() : 0;
|
|
4891
5184
|
if (Object.keys(newMergedRouteManifest).length > 0) {
|
|
4892
|
-
|
|
4893
|
-
if (buildRouteTrie && mergedRouteAncestry) {
|
|
5185
|
+
if (mergedRouteAncestry) {
|
|
4894
5186
|
const routeToStaticPrefix = {};
|
|
4895
5187
|
for (const { manifest } of allManifests) {
|
|
4896
5188
|
for (const name of Object.keys(manifest.routeManifest)) {
|
|
@@ -4927,9 +5219,8 @@ async function discoverRouters(state, rscEnv) {
|
|
|
4927
5219
|
passthroughRouteNames,
|
|
4928
5220
|
mergedResponseTypeRoutes
|
|
4929
5221
|
);
|
|
4930
|
-
const buildPerRouterTrie = buildMod.buildPerRouterTrie;
|
|
4931
5222
|
for (const { id, manifest } of allManifests) {
|
|
4932
|
-
const perRouterTrie = buildPerRouterTrie
|
|
5223
|
+
const perRouterTrie = buildPerRouterTrie(manifest);
|
|
4933
5224
|
if (perRouterTrie) {
|
|
4934
5225
|
newPerRouterTrieMap.set(id, perRouterTrie);
|
|
4935
5226
|
}
|
|
@@ -4953,7 +5244,7 @@ async function discoverRouters(state, rscEnv) {
|
|
|
4953
5244
|
}
|
|
4954
5245
|
|
|
4955
5246
|
// src/vite/discovery/route-types-writer.ts
|
|
4956
|
-
import { dirname as dirname3, join as
|
|
5247
|
+
import { dirname as dirname3, join as join3, resolve as resolve6 } from "node:path";
|
|
4957
5248
|
import { readFileSync as readFileSync4, writeFileSync as writeFileSync3, existsSync as existsSync5, unlinkSync as unlinkSync2 } from "node:fs";
|
|
4958
5249
|
function filterUserNamedRoutes(manifest) {
|
|
4959
5250
|
const filtered = {};
|
|
@@ -4985,7 +5276,7 @@ function writeRouteTypesFiles(state) {
|
|
|
4985
5276
|
const entryDir = dirname3(
|
|
4986
5277
|
resolve6(state.projectRoot, state.resolvedEntryPath)
|
|
4987
5278
|
);
|
|
4988
|
-
const oldCombinedPath =
|
|
5279
|
+
const oldCombinedPath = join3(entryDir, "named-routes.gen.ts");
|
|
4989
5280
|
if (existsSync5(oldCombinedPath)) {
|
|
4990
5281
|
unlinkSync2(oldCombinedPath);
|
|
4991
5282
|
console.log(
|
|
@@ -5067,7 +5358,7 @@ function supplementGenFilesWithRuntimeRoutes(state) {
|
|
|
5067
5358
|
}
|
|
5068
5359
|
|
|
5069
5360
|
// src/vite/discovery/virtual-module-codegen.ts
|
|
5070
|
-
import { dirname as dirname4, basename, join as
|
|
5361
|
+
import { dirname as dirname4, basename, join as join4 } from "node:path";
|
|
5071
5362
|
function generateRoutesManifestModule(state) {
|
|
5072
5363
|
const hasManifest = state.mergedRouteManifest && Object.keys(state.mergedRouteManifest).length > 0;
|
|
5073
5364
|
if (hasManifest) {
|
|
@@ -5082,7 +5373,7 @@ function generateRoutesManifestModule(state) {
|
|
|
5082
5373
|
/\.(tsx?|jsx?)$/,
|
|
5083
5374
|
""
|
|
5084
5375
|
);
|
|
5085
|
-
const genPath =
|
|
5376
|
+
const genPath = join4(
|
|
5086
5377
|
routerDir,
|
|
5087
5378
|
`${routerBasename}.named-routes.gen.js`
|
|
5088
5379
|
).replaceAll("\\", "/");
|
|
@@ -5167,7 +5458,7 @@ function generatePerRouterModule(state, routerId) {
|
|
|
5167
5458
|
/\.(tsx?|jsx?)$/,
|
|
5168
5459
|
""
|
|
5169
5460
|
);
|
|
5170
|
-
const genPath =
|
|
5461
|
+
const genPath = join4(
|
|
5171
5462
|
routerDir,
|
|
5172
5463
|
`${routerBasename}.named-routes.gen.js`
|
|
5173
5464
|
).replaceAll("\\", "/");
|
|
@@ -5589,6 +5880,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
5589
5880
|
},
|
|
5590
5881
|
configResolved(config) {
|
|
5591
5882
|
s.projectRoot = config.root;
|
|
5883
|
+
s.scanFilter = opts?.discovery ? createScanFilter(s.projectRoot, opts.discovery) : void 0;
|
|
5592
5884
|
s.isBuildMode = config.command === "build";
|
|
5593
5885
|
viteCommand = config.command;
|
|
5594
5886
|
viteMode = config.mode;
|
|
@@ -5991,9 +6283,11 @@ ${err.stack}`
|
|
|
5991
6283
|
logResult(200, `match ${result.routeName}`);
|
|
5992
6284
|
return;
|
|
5993
6285
|
} catch (err) {
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
6286
|
+
if (err?.name !== "Skip") {
|
|
6287
|
+
console.warn(
|
|
6288
|
+
`[rango] Dev prerender error for ${pathname} (serving live instead): ${err.message}`
|
|
6289
|
+
);
|
|
6290
|
+
}
|
|
5997
6291
|
}
|
|
5998
6292
|
}
|
|
5999
6293
|
res.statusCode = 404;
|
|
@@ -6783,6 +7077,8 @@ ${list}`);
|
|
|
6783
7077
|
enableBuildPrerender: prerenderEnabled,
|
|
6784
7078
|
buildEnv: options?.buildEnv,
|
|
6785
7079
|
preset,
|
|
7080
|
+
prerenderOnError: options?.prerender?.onError,
|
|
7081
|
+
discovery: options?.discovery,
|
|
6786
7082
|
clientChunkCtx
|
|
6787
7083
|
})
|
|
6788
7084
|
);
|
|
@@ -6798,7 +7094,7 @@ ${list}`);
|
|
|
6798
7094
|
// src/vite/plugins/refresh-cmd.ts
|
|
6799
7095
|
function poke() {
|
|
6800
7096
|
return {
|
|
6801
|
-
name: "
|
|
7097
|
+
name: "@rangojs/router:poke",
|
|
6802
7098
|
apply: "serve",
|
|
6803
7099
|
configureServer(server) {
|
|
6804
7100
|
const stdin = process.stdin;
|