@rangojs/router 0.0.0-experimental.106 → 0.0.0-experimental.108
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 +3 -3
- 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 +16 -16
- 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 +135 -143
- 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 -6
- package/skills/cache-guide/SKILL.md +30 -15
- package/skills/hooks/SKILL.md +2 -0
- package/skills/links/SKILL.md +2 -0
- package/skills/loader/SKILL.md +1 -1
- package/skills/middleware/SKILL.md +3 -3
- package/skills/mime-routes/SKILL.md +27 -0
- package/skills/observability/SKILL.md +3 -1
- package/skills/prerender/SKILL.md +13 -13
- package/skills/rango/SKILL.md +9 -0
- package/skills/response-routes/SKILL.md +27 -3
- package/skills/router-setup/SKILL.md +3 -3
- package/skills/typesafety/SKILL.md +186 -31
- package/src/__augment-tests__/augment.ts +37 -0
- package/src/__augment-tests__/augmented.check.ts +64 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/react/location-state-shared.ts +3 -3
- package/src/browser/rsc-router.tsx +14 -14
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/build/generate-manifest.ts +3 -3
- package/src/build/route-types/codegen.ts +4 -4
- package/src/build/route-types/include-resolution.ts +1 -1
- package/src/build/route-types/per-module-writer.ts +3 -3
- package/src/build/route-types/router-processing.ts +4 -4
- package/src/build/route-types/scan-filter.ts +1 -1
- package/src/errors.ts +1 -1
- package/src/handle.ts +2 -2
- package/src/href-client.ts +1 -1
- package/src/index.rsc.ts +2 -2
- package/src/loader.rsc.ts +1 -1
- package/src/loader.ts +1 -1
- package/src/prerender.ts +4 -4
- package/src/route-definition/dsl-helpers.ts +2 -2
- package/src/route-definition/helpers-types.ts +2 -2
- package/src/router/error-handling.ts +1 -1
- package/src/router/lazy-includes.ts +2 -2
- package/src/router/metrics.ts +1 -1
- package/src/router/middleware-types.ts +1 -1
- package/src/router/prerender-match.ts +1 -1
- package/src/router/router-interfaces.ts +34 -28
- package/src/router/router-options.ts +1 -1
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +2 -2
- package/src/router/segment-resolution/revalidation.ts +2 -2
- package/src/router.ts +13 -16
- package/src/rsc/handler-context.ts +2 -2
- package/src/rsc/index.ts +1 -1
- package/src/rsc/types.ts +2 -2
- package/src/search-params.ts +4 -4
- package/src/server/context.ts +16 -16
- package/src/static-handler.ts +1 -1
- package/src/types/global-namespace.ts +39 -26
- package/src/types/handler-context.ts +3 -3
- package/src/urls/path-helper-types.ts +2 -2
- package/src/urls/pattern-types.ts +34 -0
- package/src/vite/discovery/bundle-postprocess.ts +6 -6
- package/src/vite/discovery/discover-routers.ts +3 -3
- package/src/vite/discovery/discovery-errors.ts +1 -1
- package/src/vite/discovery/prerender-collection.ts +19 -25
- package/src/vite/discovery/route-types-writer.ts +3 -3
- package/src/vite/plugins/cloudflare-protocol-stub.ts +1 -1
- package/src/vite/plugins/expose-action-id.ts +2 -2
- package/src/vite/plugins/expose-id-utils.ts +12 -8
- package/src/vite/plugins/expose-ids/export-analysis.ts +33 -9
- package/src/vite/plugins/expose-internal-ids.ts +1 -1
- package/src/vite/plugins/performance-tracks.ts +12 -16
- package/src/vite/plugins/use-cache-transform.ts +1 -1
- package/src/vite/plugins/version-plugin.ts +2 -2
- package/src/vite/plugins/virtual-entries.ts +2 -2
- package/src/vite/rango.ts +11 -11
- package/src/vite/router-discovery.ts +15 -19
- package/src/vite/utils/ast-handler-extract.ts +15 -15
- package/src/vite/utils/bundle-analysis.ts +4 -2
- package/src/vite/utils/shared-utils.ts +26 -22
|
@@ -264,7 +264,7 @@ export type PathHelpers<TEnv> = {
|
|
|
264
264
|
* Define an intercepting route for soft navigation
|
|
265
265
|
* Note: routeName must match a named path() in this urlpatterns
|
|
266
266
|
*/
|
|
267
|
-
intercept: keyof
|
|
267
|
+
intercept: keyof Rango.GeneratedRouteMap extends never
|
|
268
268
|
? (
|
|
269
269
|
slotName: `@${string}`,
|
|
270
270
|
routeName: string,
|
|
@@ -273,7 +273,7 @@ export type PathHelpers<TEnv> = {
|
|
|
273
273
|
) => InterceptItem
|
|
274
274
|
: (
|
|
275
275
|
slotName: `@${string}`,
|
|
276
|
-
routeName: (keyof
|
|
276
|
+
routeName: (keyof Rango.GeneratedRouteMap & string) | `.${string}`,
|
|
277
277
|
handler: ReactNode | Handler<any, any, TEnv>,
|
|
278
278
|
use?: () => InterceptUseItem[],
|
|
279
279
|
) => InterceptItem;
|
|
@@ -88,6 +88,40 @@ export interface UrlPatterns<
|
|
|
88
88
|
readonly _responses?: TResponses;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Extract the phantom env type carried by a UrlPatterns value.
|
|
93
|
+
*/
|
|
94
|
+
export type UrlPatternsEnv<T> =
|
|
95
|
+
T extends UrlPatterns<infer TEnv, any, any> ? TEnv : never;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Guards `routes()` env compatibility without over-constraining.
|
|
99
|
+
*
|
|
100
|
+
* - An env-agnostic block (its env is `unknown` — e.g. a shared urls() module,
|
|
101
|
+
* or an app that does not augment `Rango.Env`) attaches to any router.
|
|
102
|
+
* - A block carrying a concrete env is accepted only when the router env
|
|
103
|
+
* (`TRouterEnv`) satisfies it; resolves to `never` otherwise, so a
|
|
104
|
+
* `urls<{ DB: D1Database }>()` cannot be mounted on a `createRouter<{}>()`.
|
|
105
|
+
*
|
|
106
|
+
* Use as `patterns: T & EnvCompatible<T, TEnv>` so `T` still infers from the
|
|
107
|
+
* argument — a bare `EnvCompatible<T, TEnv>` parameter sits in a non-inferrable
|
|
108
|
+
* conditional position and would collapse `T` to its constraint.
|
|
109
|
+
*
|
|
110
|
+
* Known limitation: `TRouterEnv extends ...` distributes over a union router env,
|
|
111
|
+
* so a `urls<A>()` block is accepted on `createRouter<A | B>()` even though the
|
|
112
|
+
* `B` arm cannot supply `A`'s env. Suppressing distribution with
|
|
113
|
+
* `[TRouterEnv] extends [...]` would close that edge but breaks the common
|
|
114
|
+
* generic-`TEnv` call sites (a deferred type parameter can't resolve the tuple
|
|
115
|
+
* conditional, so the intersection stops reducing to `T`). A router has one env,
|
|
116
|
+
* so a union env is not a supported pattern; the distributive form is kept.
|
|
117
|
+
*/
|
|
118
|
+
export type EnvCompatible<TPatterns, TRouterEnv> =
|
|
119
|
+
unknown extends UrlPatternsEnv<TPatterns>
|
|
120
|
+
? TPatterns
|
|
121
|
+
: TRouterEnv extends UrlPatternsEnv<TPatterns>
|
|
122
|
+
? TPatterns
|
|
123
|
+
: never;
|
|
124
|
+
|
|
91
125
|
/**
|
|
92
126
|
* Options for include()
|
|
93
127
|
*/
|
|
@@ -71,12 +71,12 @@ export function postprocessBundle(state: DiscoveryState): void {
|
|
|
71
71
|
writeFileSync(chunkPath, result.code);
|
|
72
72
|
const savedKB = (result.savedBytes / 1024).toFixed(1);
|
|
73
73
|
console.log(
|
|
74
|
-
`[
|
|
74
|
+
`[rango] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`,
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
77
|
} catch (replaceErr: any) {
|
|
78
78
|
console.warn(
|
|
79
|
-
`[
|
|
79
|
+
`[rango] Failed to evict ${target.label}: ${replaceErr.message}`,
|
|
80
80
|
);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -121,11 +121,11 @@ export function postprocessBundle(state: DiscoveryState): void {
|
|
|
121
121
|
|
|
122
122
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
123
123
|
console.log(
|
|
124
|
-
`[
|
|
124
|
+
`[rango] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries!).length} entries)`,
|
|
125
125
|
);
|
|
126
126
|
} catch (err: any) {
|
|
127
127
|
throw new Error(
|
|
128
|
-
`[
|
|
128
|
+
`[rango] Failed to write prerender assets: ${err.message}`,
|
|
129
129
|
);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -169,11 +169,11 @@ export function postprocessBundle(state: DiscoveryState): void {
|
|
|
169
169
|
|
|
170
170
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
171
171
|
console.log(
|
|
172
|
-
`[
|
|
172
|
+
`[rango] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries!).length} entries)`,
|
|
173
173
|
);
|
|
174
174
|
} catch (err: any) {
|
|
175
175
|
throw new Error(
|
|
176
|
-
`[
|
|
176
|
+
`[rango] Failed to write static assets: ${err.message}`,
|
|
177
177
|
);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -73,7 +73,7 @@ export async function discoverRouters(
|
|
|
73
73
|
|
|
74
74
|
if (hostRegistry && hostRegistry.size > 0) {
|
|
75
75
|
console.log(
|
|
76
|
-
`[
|
|
76
|
+
`[rango] Found ${hostRegistry.size} host router(s), resolving lazy handlers...`,
|
|
77
77
|
);
|
|
78
78
|
|
|
79
79
|
const handlerErrors = await resolveHostRouterHandlers(hostRegistry);
|
|
@@ -224,7 +224,7 @@ export async function discoverRouters(
|
|
|
224
224
|
newPerRouterPrecomputedMap.set(id, routerPrecomputed);
|
|
225
225
|
|
|
226
226
|
console.log(
|
|
227
|
-
`[
|
|
227
|
+
`[rango] Router "${id}" -> ${routeCount} routes ` +
|
|
228
228
|
`(${staticRoutes} static, ${dynamicRoutes} dynamic)`,
|
|
229
229
|
);
|
|
230
230
|
}
|
|
@@ -240,7 +240,7 @@ export async function discoverRouters(
|
|
|
240
240
|
);
|
|
241
241
|
if (autoIds.length > 1) {
|
|
242
242
|
console.warn(
|
|
243
|
-
`[
|
|
243
|
+
`[rango] WARNING: ${autoIds.length} routers use auto-generated IDs (${autoIds.join(", ")}). ` +
|
|
244
244
|
`In multi-router setups, each createRouter() must have an explicit \`id\` option ` +
|
|
245
245
|
`to ensure per-router manifest data is matched correctly at runtime. ` +
|
|
246
246
|
`Example: createRouter({ id: "site", ... })`,
|
|
@@ -131,7 +131,7 @@ export function formatNoRoutersError(
|
|
|
131
131
|
entryPath: string | undefined,
|
|
132
132
|
errors: CaughtDiscoveryError[],
|
|
133
133
|
): string {
|
|
134
|
-
const base = `[
|
|
134
|
+
const base = `[rango] No routers found in registry after importing ${entryPath}`;
|
|
135
135
|
if (errors.length === 0) {
|
|
136
136
|
return base;
|
|
137
137
|
}
|
|
@@ -81,7 +81,7 @@ export async function expandPrerenderRoutes(
|
|
|
81
81
|
? setInterval(() => {
|
|
82
82
|
const elapsed = ((performance.now() - paramsStart) / 1000).toFixed(1);
|
|
83
83
|
console.log(
|
|
84
|
-
`[
|
|
84
|
+
`[rango] Resolving prerender params... ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`,
|
|
85
85
|
);
|
|
86
86
|
}, 5000)
|
|
87
87
|
: undefined;
|
|
@@ -122,7 +122,7 @@ export async function expandPrerenderRoutes(
|
|
|
122
122
|
get env() {
|
|
123
123
|
if (buildEnv !== undefined) return buildEnv;
|
|
124
124
|
throw new Error(
|
|
125
|
-
"[
|
|
125
|
+
"[rango] ctx.env is not available during build-time getParams(). " +
|
|
126
126
|
"Configure buildEnv in your rango() plugin options to enable build-time env access.",
|
|
127
127
|
);
|
|
128
128
|
},
|
|
@@ -170,7 +170,7 @@ export async function expandPrerenderRoutes(
|
|
|
170
170
|
// Skip in getParams() skips the entire route
|
|
171
171
|
if (err.name === "Skip") {
|
|
172
172
|
console.log(
|
|
173
|
-
`[
|
|
173
|
+
`[rango] SKIP route "${routeName}" - ${err.message}`,
|
|
174
174
|
);
|
|
175
175
|
notifyOnError(
|
|
176
176
|
registry,
|
|
@@ -184,14 +184,14 @@ export async function expandPrerenderRoutes(
|
|
|
184
184
|
}
|
|
185
185
|
// Regular error: fail the build
|
|
186
186
|
console.error(
|
|
187
|
-
`[
|
|
187
|
+
`[rango] Failed to get params for prerender route "${routeName}": ${err.message}`,
|
|
188
188
|
);
|
|
189
189
|
notifyOnError(registry, err, "prerender", routeName);
|
|
190
190
|
throw err;
|
|
191
191
|
}
|
|
192
192
|
} else {
|
|
193
193
|
console.warn(
|
|
194
|
-
`[
|
|
194
|
+
`[rango] Dynamic prerender route "${routeName}" has no getParams(), skipping`,
|
|
195
195
|
);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
@@ -202,7 +202,7 @@ export async function expandPrerenderRoutes(
|
|
|
202
202
|
clearInterval(progressInterval);
|
|
203
203
|
const elapsed = ((performance.now() - paramsStart) / 1000).toFixed(1);
|
|
204
204
|
console.log(
|
|
205
|
-
`[
|
|
205
|
+
`[rango] Resolved prerender params: ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`,
|
|
206
206
|
);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
@@ -220,7 +220,7 @@ export async function expandPrerenderRoutes(
|
|
|
220
220
|
const concurrencyNote =
|
|
221
221
|
maxConcurrency > 1 ? ` (concurrency: ${maxConcurrency})` : "";
|
|
222
222
|
console.log(
|
|
223
|
-
`[
|
|
223
|
+
`[rango] Pre-rendering ${entries.length} URL(s)${concurrencyNote}...`,
|
|
224
224
|
);
|
|
225
225
|
debug?.(
|
|
226
226
|
"prerender loop: %d entries, max concurrency %d",
|
|
@@ -261,7 +261,7 @@ export async function expandPrerenderRoutes(
|
|
|
261
261
|
if (result.passthrough) {
|
|
262
262
|
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
263
263
|
console.log(
|
|
264
|
-
`[
|
|
264
|
+
`[rango] PASS ${entry.urlPath.padEnd(40)} (${elapsed}ms) - live fallback`,
|
|
265
265
|
);
|
|
266
266
|
doneCount++;
|
|
267
267
|
break;
|
|
@@ -295,7 +295,7 @@ export async function expandPrerenderRoutes(
|
|
|
295
295
|
}
|
|
296
296
|
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
297
297
|
console.log(
|
|
298
|
-
`[
|
|
298
|
+
`[rango] OK ${entry.urlPath.padEnd(40)} (${elapsed}ms)`,
|
|
299
299
|
);
|
|
300
300
|
doneCount++;
|
|
301
301
|
break;
|
|
@@ -303,7 +303,7 @@ export async function expandPrerenderRoutes(
|
|
|
303
303
|
if (err.name === "Skip") {
|
|
304
304
|
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
305
305
|
console.log(
|
|
306
|
-
`[
|
|
306
|
+
`[rango] SKIP ${entry.urlPath.padEnd(40)} (${elapsed}ms) - ${err.message}`,
|
|
307
307
|
);
|
|
308
308
|
skipCount++;
|
|
309
309
|
notifyOnError(
|
|
@@ -319,7 +319,7 @@ export async function expandPrerenderRoutes(
|
|
|
319
319
|
// Regular error: log, notify, and fail the build
|
|
320
320
|
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
321
321
|
console.error(
|
|
322
|
-
`[
|
|
322
|
+
`[rango] FAIL ${entry.urlPath.padEnd(40)} (${elapsed}ms) - ${err.message}`,
|
|
323
323
|
);
|
|
324
324
|
notifyOnError(
|
|
325
325
|
registry,
|
|
@@ -342,7 +342,7 @@ export async function expandPrerenderRoutes(
|
|
|
342
342
|
const parts = [`${doneCount} done`];
|
|
343
343
|
if (skipCount > 0) parts.push(`${skipCount} skipped`);
|
|
344
344
|
console.log(
|
|
345
|
-
`[
|
|
345
|
+
`[rango] Pre-render complete: ${parts.join(", ")} (${totalElapsed}ms total)`,
|
|
346
346
|
);
|
|
347
347
|
debug?.(
|
|
348
348
|
"expandPrerenderRoutes done: %d done, %d skipped, %sms (overall %sms)",
|
|
@@ -387,9 +387,7 @@ export async function renderStaticHandlers(
|
|
|
387
387
|
totalStaticCount += exportNames.length;
|
|
388
388
|
}
|
|
389
389
|
const startStatic = performance.now();
|
|
390
|
-
console.log(
|
|
391
|
-
`[rsc-router] Rendering ${totalStaticCount} static handler(s)...`,
|
|
392
|
-
);
|
|
390
|
+
console.log(`[rango] Rendering ${totalStaticCount} static handler(s)...`);
|
|
393
391
|
|
|
394
392
|
for (const [moduleId, exportNames] of state.resolvedStaticModules) {
|
|
395
393
|
let mod: any;
|
|
@@ -397,7 +395,7 @@ export async function renderStaticHandlers(
|
|
|
397
395
|
mod = await rscEnv!.runner.import(moduleId);
|
|
398
396
|
} catch (err: any) {
|
|
399
397
|
console.error(
|
|
400
|
-
`[
|
|
398
|
+
`[rango] Failed to import static module ${moduleId}: ${err.message}`,
|
|
401
399
|
);
|
|
402
400
|
notifyOnError(registry, err, "static");
|
|
403
401
|
throw err;
|
|
@@ -432,9 +430,7 @@ export async function renderStaticHandlers(
|
|
|
432
430
|
exportValue,
|
|
433
431
|
);
|
|
434
432
|
const elapsed = (performance.now() - startHandler).toFixed(0);
|
|
435
|
-
console.log(
|
|
436
|
-
`[rsc-router] OK ${name.padEnd(40)} (${elapsed}ms)`,
|
|
437
|
-
);
|
|
433
|
+
console.log(`[rango] OK ${name.padEnd(40)} (${elapsed}ms)`);
|
|
438
434
|
staticDone++;
|
|
439
435
|
handled = true;
|
|
440
436
|
break;
|
|
@@ -443,7 +439,7 @@ export async function renderStaticHandlers(
|
|
|
443
439
|
if (err.name === "Skip") {
|
|
444
440
|
const elapsed = (performance.now() - startHandler).toFixed(0);
|
|
445
441
|
console.log(
|
|
446
|
-
`[
|
|
442
|
+
`[rango] SKIP ${name.padEnd(40)} (${elapsed}ms) - ${err.message}`,
|
|
447
443
|
);
|
|
448
444
|
staticSkip++;
|
|
449
445
|
notifyOnError(registry, err, "static", undefined, undefined, true);
|
|
@@ -453,16 +449,14 @@ export async function renderStaticHandlers(
|
|
|
453
449
|
// Regular error: log, notify, and fail the build
|
|
454
450
|
const elapsed = (performance.now() - startHandler).toFixed(0);
|
|
455
451
|
console.error(
|
|
456
|
-
`[
|
|
452
|
+
`[rango] FAIL ${name.padEnd(40)} (${elapsed}ms) - ${err.message}`,
|
|
457
453
|
);
|
|
458
454
|
notifyOnError(registry, err, "static");
|
|
459
455
|
throw err;
|
|
460
456
|
}
|
|
461
457
|
}
|
|
462
458
|
if (!handled) {
|
|
463
|
-
console.warn(
|
|
464
|
-
`[rsc-router] No router could render static handler "${name}"`,
|
|
465
|
-
);
|
|
459
|
+
console.warn(`[rango] No router could render static handler "${name}"`);
|
|
466
460
|
}
|
|
467
461
|
}
|
|
468
462
|
}
|
|
@@ -474,7 +468,7 @@ export async function renderStaticHandlers(
|
|
|
474
468
|
const staticParts = [`${staticDone} done`];
|
|
475
469
|
if (staticSkip > 0) staticParts.push(`${staticSkip} skipped`);
|
|
476
470
|
console.log(
|
|
477
|
-
`[
|
|
471
|
+
`[rango] Static render complete: ${staticParts.join(", ")} (${totalStaticElapsed}ms total)`,
|
|
478
472
|
);
|
|
479
473
|
debug?.(
|
|
480
474
|
"renderStaticHandlers done: %d done, %d skipped, %sms (overall %sms)",
|
|
@@ -104,7 +104,7 @@ export function writeRouteTypesFiles(state: DiscoveryState): void {
|
|
|
104
104
|
if (existsSync(oldCombinedPath)) {
|
|
105
105
|
unlinkSync(oldCombinedPath);
|
|
106
106
|
console.log(
|
|
107
|
-
`[
|
|
107
|
+
`[rango] Removed stale combined route types: ${oldCombinedPath}`,
|
|
108
108
|
);
|
|
109
109
|
}
|
|
110
110
|
} catch {}
|
|
@@ -122,7 +122,7 @@ export function writeRouteTypesFiles(state: DiscoveryState): void {
|
|
|
122
122
|
// the wrong location, causing non-deterministic type resolution.
|
|
123
123
|
if (sourceFile.includes("node_modules")) {
|
|
124
124
|
throw new Error(
|
|
125
|
-
`[
|
|
125
|
+
`[rango] Router "${id}" has sourceFile inside node_modules: ${sourceFile}\n` +
|
|
126
126
|
`This means createRouter() stack trace parsing matched a Vite internal frame.\n` +
|
|
127
127
|
`Set an explicit \`id\` on createRouter() or check the call site.`,
|
|
128
128
|
);
|
|
@@ -169,7 +169,7 @@ export function writeRouteTypesFiles(state: DiscoveryState): void {
|
|
|
169
169
|
if (existing !== source) {
|
|
170
170
|
markSelfGenWrite(state, outPath, source);
|
|
171
171
|
writeFileSync(outPath, source);
|
|
172
|
-
console.log(`[
|
|
172
|
+
console.log(`[rango] Generated route types -> ${outPath}`);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
}
|
|
@@ -139,7 +139,7 @@ export function createCloudflareProtocolStubPlugin(): Plugin {
|
|
|
139
139
|
|
|
140
140
|
let ast: AstNode;
|
|
141
141
|
try {
|
|
142
|
-
ast = this.parse(code) as unknown as AstNode;
|
|
142
|
+
ast = this.parse(code, { lang: "tsx" }) as unknown as AstNode;
|
|
143
143
|
} catch {
|
|
144
144
|
// Malformed source — let a downstream plugin surface the parse error.
|
|
145
145
|
return null;
|
|
@@ -42,7 +42,7 @@ function getRscPluginApi(config: ResolvedConfig): RscPluginApi | undefined {
|
|
|
42
42
|
);
|
|
43
43
|
if (plugin) {
|
|
44
44
|
console.warn(
|
|
45
|
-
`[
|
|
45
|
+
`[rango:expose-action-id] RSC plugin found by API structure (name: "${plugin.name}"). ` +
|
|
46
46
|
`Consider updating the name lookup if the plugin was renamed.`,
|
|
47
47
|
);
|
|
48
48
|
}
|
|
@@ -287,7 +287,7 @@ export function exposeActionId(): Plugin {
|
|
|
287
287
|
|
|
288
288
|
if (!rscPluginApi) {
|
|
289
289
|
throw new Error(
|
|
290
|
-
"[
|
|
290
|
+
"[rango] Could not find @vitejs/plugin-rsc. " +
|
|
291
291
|
"@rangojs/router requires the Vite RSC plugin, which is included automatically by rango().",
|
|
292
292
|
);
|
|
293
293
|
}
|
|
@@ -32,18 +32,22 @@ export function makeStubId(
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* Generate an 8-char hex hash for an inline
|
|
36
|
-
*
|
|
35
|
+
* Generate an 8-char hex hash for an inline handler call site.
|
|
36
|
+
*
|
|
37
|
+
* Keyed on the source-order INDEX of the call (the Nth inline `fnName(...)` in
|
|
38
|
+
* the file), NOT its line number. Line numbers shift between the prerender
|
|
39
|
+
* build context and the production build context (preceding transforms differ,
|
|
40
|
+
* e.g. plugin-react boilerplate), which would desync the prerender manifest key
|
|
41
|
+
* from the runtime handler id and break prerender/static freezing. The
|
|
42
|
+
* source-order index is invariant to line shifts; `fnName` keeps Static and
|
|
43
|
+
* Prerender inline ids from colliding at the same index.
|
|
37
44
|
*/
|
|
38
45
|
export function hashInlineId(
|
|
39
46
|
filePath: string,
|
|
40
|
-
|
|
41
|
-
index
|
|
47
|
+
fnName: string,
|
|
48
|
+
index: number,
|
|
42
49
|
): string {
|
|
43
|
-
const input =
|
|
44
|
-
index !== undefined && index > 0
|
|
45
|
-
? `${filePath}:${lineNumber}:${index}`
|
|
46
|
-
: `${filePath}:${lineNumber}`;
|
|
50
|
+
const input = `${filePath}:${fnName}:${index}`;
|
|
47
51
|
return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
|
|
48
52
|
}
|
|
49
53
|
|
|
@@ -119,6 +119,28 @@ export function getCalledIdentifierFromCall(callExpr: any): string | null {
|
|
|
119
119
|
return null;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
/**
|
|
123
|
+
* plugin-react's dev Fast Refresh wraps exports whose function body uses
|
|
124
|
+
* hook-like calls in a signature-registration call. A loader/handle that calls
|
|
125
|
+
* `ctx.use(...)` trips this heuristic, so `export const X = createLoader(...)`
|
|
126
|
+
* becomes `export const X = _s(createLoader(...), "<sig>", true)` — the create*
|
|
127
|
+
* call is the first argument of an unrelated wrapper call. Unwrap a single such
|
|
128
|
+
* layer so ID injection still targets the inner create* call. The `$$id`
|
|
129
|
+
* assignment is appended after the whole statement (against the export local),
|
|
130
|
+
* which is unaffected by the wrapper since `_s(x)` returns `x`.
|
|
131
|
+
*/
|
|
132
|
+
function unwrapSignatureWrappedCall(init: any, fnNameSet: Set<string>): any {
|
|
133
|
+
if (init?.type !== "CallExpression") return init;
|
|
134
|
+
const directId = getCalledIdentifierFromCall(init);
|
|
135
|
+
if (directId && fnNameSet.has(directId)) return init;
|
|
136
|
+
const firstArg = init.arguments?.[0];
|
|
137
|
+
if (firstArg?.type === "CallExpression") {
|
|
138
|
+
const innerId = getCalledIdentifierFromCall(firstArg);
|
|
139
|
+
if (innerId && fnNameSet.has(innerId)) return firstArg;
|
|
140
|
+
}
|
|
141
|
+
return init;
|
|
142
|
+
}
|
|
143
|
+
|
|
122
144
|
export function collectCreateExportBindingsFallback(
|
|
123
145
|
code: string,
|
|
124
146
|
fnNames: string[],
|
|
@@ -196,7 +218,7 @@ export function collectCreateExportBindings(
|
|
|
196
218
|
): CreateExportBinding[] {
|
|
197
219
|
if (!program) {
|
|
198
220
|
try {
|
|
199
|
-
program = parseAst(code, {
|
|
221
|
+
program = parseAst(code, { lang: "tsx" });
|
|
200
222
|
} catch {
|
|
201
223
|
return collectCreateExportBindingsFallback(code, fnNames);
|
|
202
224
|
}
|
|
@@ -212,10 +234,13 @@ export function collectCreateExportBindings(
|
|
|
212
234
|
}
|
|
213
235
|
|
|
214
236
|
for (const decl of varDecl.declarations ?? []) {
|
|
215
|
-
|
|
237
|
+
// Unwrap a Fast Refresh signature wrapper (`_s(createLoader(...), ...)`)
|
|
238
|
+
// so injection targets the inner create* call. Falls back to decl.init.
|
|
239
|
+
const callExpr = unwrapSignatureWrappedCall(decl?.init, fnNameSet);
|
|
240
|
+
const calledIdentifier = getCalledIdentifierFromCall(callExpr);
|
|
216
241
|
if (
|
|
217
242
|
decl?.id?.type !== "Identifier" ||
|
|
218
|
-
|
|
243
|
+
callExpr?.type !== "CallExpression" ||
|
|
219
244
|
!calledIdentifier ||
|
|
220
245
|
!fnNameSet.has(calledIdentifier)
|
|
221
246
|
) {
|
|
@@ -226,9 +251,8 @@ export function collectCreateExportBindings(
|
|
|
226
251
|
const exportNames = exportMap.get(localName) ?? [];
|
|
227
252
|
if (exportNames.length === 0) continue;
|
|
228
253
|
|
|
229
|
-
const
|
|
230
|
-
const
|
|
231
|
-
const calleeEnd = decl.init.callee.end as number;
|
|
254
|
+
const callEnd = callExpr.end as number;
|
|
255
|
+
const calleeEnd = callExpr.callee.end as number;
|
|
232
256
|
|
|
233
257
|
let openParenPos = -1;
|
|
234
258
|
for (let i = calleeEnd; i < callEnd; i++) {
|
|
@@ -245,10 +269,10 @@ export function collectCreateExportBindings(
|
|
|
245
269
|
bindings.push({
|
|
246
270
|
localName,
|
|
247
271
|
exportNames,
|
|
248
|
-
callExprStart:
|
|
272
|
+
callExprStart: callExpr.start as number,
|
|
249
273
|
callOpenParenPos: openParenPos,
|
|
250
274
|
callCloseParenPos: closeParenPos,
|
|
251
|
-
argCount:
|
|
275
|
+
argCount: callExpr.arguments?.length ?? 0,
|
|
252
276
|
statementEnd,
|
|
253
277
|
});
|
|
254
278
|
}
|
|
@@ -284,7 +308,7 @@ export function buildUnsupportedShapeWarning(
|
|
|
284
308
|
fnName: string,
|
|
285
309
|
): string {
|
|
286
310
|
return [
|
|
287
|
-
`[
|
|
311
|
+
`[rango] Unsupported ${fnName} shape in "${filePath}".`,
|
|
288
312
|
`Supported shapes are:`,
|
|
289
313
|
` - export const X = ${fnName}(...)`,
|
|
290
314
|
` - const X = ${fnName}(...); export { X }`,
|
|
@@ -335,7 +335,7 @@ ${lazyImports.join(",\n")}
|
|
|
335
335
|
}
|
|
336
336
|
if (_cachedAst !== undefined || _astParseFailed) return _cachedAst;
|
|
337
337
|
try {
|
|
338
|
-
_cachedAst = parseAst(code, {
|
|
338
|
+
_cachedAst = parseAst(code, { lang: "tsx" });
|
|
339
339
|
} catch {
|
|
340
340
|
_astParseFailed = true;
|
|
341
341
|
}
|
|
@@ -48,25 +48,21 @@ export function patchRsdwClientDebugInfoRecovery(code: string): {
|
|
|
48
48
|
|
|
49
49
|
export function performanceTracksOptimizeDepsPlugin(): {
|
|
50
50
|
name: string;
|
|
51
|
-
|
|
51
|
+
load(id: string): Promise<{ code: string } | null>;
|
|
52
52
|
} {
|
|
53
|
+
const RSDW_CLIENT_RE =
|
|
54
|
+
/react-server-dom-webpack-client\.browser\.(development|production)\.js$/;
|
|
53
55
|
return {
|
|
54
56
|
name: "@rangojs/router:performance-tracks-optimize-deps",
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return {
|
|
65
|
-
contents: patched.code,
|
|
66
|
-
loader: "js",
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
);
|
|
57
|
+
// Vite 8 optimizes deps with Rolldown (Rollup-style plugin pipeline), so the
|
|
58
|
+
// pre-bundled RSDW client is patched via load() rather than esbuild's onLoad.
|
|
59
|
+
// Returning code overrides Rolldown's default filesystem read for the module.
|
|
60
|
+
async load(id: string): Promise<{ code: string } | null> {
|
|
61
|
+
const cleanId = id.split("?")[0] ?? id;
|
|
62
|
+
if (!RSDW_CLIENT_RE.test(cleanId)) return null;
|
|
63
|
+
const code = await readFile(cleanId, "utf8");
|
|
64
|
+
const patched = patchRsdwClientDebugInfoRecovery(code);
|
|
65
|
+
return { code: patched.code };
|
|
70
66
|
},
|
|
71
67
|
};
|
|
72
68
|
}
|
|
@@ -18,7 +18,7 @@ function getClientModuleSignature(
|
|
|
18
18
|
): ClientModuleSignature | undefined {
|
|
19
19
|
let program: any;
|
|
20
20
|
try {
|
|
21
|
-
program = parseAst(source, {
|
|
21
|
+
program = parseAst(source, { lang: "tsx" });
|
|
22
22
|
} catch {
|
|
23
23
|
return undefined;
|
|
24
24
|
}
|
|
@@ -141,7 +141,7 @@ export function createVersionPlugin(): Plugin {
|
|
|
141
141
|
// Use timestamp + counter to guarantee uniqueness even when multiple
|
|
142
142
|
// bumps happen within the same millisecond (e.g. cascading HMR events).
|
|
143
143
|
currentVersion = Date.now().toString(16) + String(++versionCounter);
|
|
144
|
-
console.log(`[
|
|
144
|
+
console.log(`[rango] ${reason}, version updated: ${currentVersion}`);
|
|
145
145
|
|
|
146
146
|
const rscEnv = server?.environments?.rsc;
|
|
147
147
|
const versionMod = rscEnv?.moduleGraph?.getModuleById(
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import { createElement, StrictMode } from "react";
|
|
15
15
|
import { hydrateRoot } from "react-dom/client";
|
|
16
16
|
import { rscStream } from "@rangojs/router/internal/deps/html-stream-client";
|
|
17
|
-
import { initBrowserApp,
|
|
17
|
+
import { initBrowserApp, Rango } from "@rangojs/router/browser";
|
|
18
18
|
|
|
19
19
|
async function initializeApp() {
|
|
20
20
|
const deps = {
|
|
@@ -29,7 +29,7 @@ async function initializeApp() {
|
|
|
29
29
|
|
|
30
30
|
hydrateRoot(
|
|
31
31
|
document,
|
|
32
|
-
createElement(StrictMode, null, createElement(
|
|
32
|
+
createElement(StrictMode, null, createElement(Rango))
|
|
33
33
|
);
|
|
34
34
|
}
|
|
35
35
|
|