@rangojs/router 0.0.0-experimental.e16b7c00 → 0.0.0-experimental.e9c0b2f2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +8 -0
- package/README.md +64 -6
- 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 +195 -52
- package/dist/bin/rango.js.map +1 -0
- package/dist/browser/event-controller.d.ts +191 -0
- package/dist/browser/event-controller.d.ts.map +1 -0
- package/dist/browser/event-controller.js +559 -0
- package/dist/browser/event-controller.js.map +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/link-interceptor.d.ts +38 -0
- package/dist/browser/link-interceptor.d.ts.map +1 -0
- package/dist/browser/link-interceptor.js +99 -0
- package/dist/browser/link-interceptor.js.map +1 -0
- package/dist/browser/logging.d.ts +10 -0
- package/dist/browser/logging.d.ts.map +1 -0
- package/dist/browser/logging.js +29 -0
- package/dist/browser/logging.js.map +1 -0
- package/dist/browser/lru-cache.d.ts +17 -0
- package/dist/browser/lru-cache.d.ts.map +1 -0
- package/dist/browser/lru-cache.js +50 -0
- package/dist/browser/lru-cache.js.map +1 -0
- package/dist/browser/merge-segment-loaders.d.ts +39 -0
- package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
- package/dist/browser/merge-segment-loaders.js +102 -0
- package/dist/browser/merge-segment-loaders.js.map +1 -0
- package/dist/browser/navigation-bridge.d.ts +102 -0
- package/dist/browser/navigation-bridge.d.ts.map +1 -0
- package/dist/browser/navigation-bridge.js +708 -0
- package/dist/browser/navigation-bridge.js.map +1 -0
- package/dist/browser/navigation-client.d.ts +25 -0
- package/dist/browser/navigation-client.d.ts.map +1 -0
- package/dist/browser/navigation-client.js +157 -0
- package/dist/browser/navigation-client.js.map +1 -0
- package/dist/browser/navigation-store.d.ts +101 -0
- package/dist/browser/navigation-store.d.ts.map +1 -0
- package/dist/browser/navigation-store.js +625 -0
- package/dist/browser/navigation-store.js.map +1 -0
- package/dist/browser/partial-update.d.ts +75 -0
- package/dist/browser/partial-update.d.ts.map +1 -0
- package/dist/browser/partial-update.js +426 -0
- package/dist/browser/partial-update.js.map +1 -0
- package/dist/browser/react/Link.d.ts +86 -0
- package/dist/browser/react/Link.d.ts.map +1 -0
- package/dist/browser/react/Link.js +128 -0
- package/dist/browser/react/Link.js.map +1 -0
- package/dist/browser/react/NavigationProvider.d.ts +63 -0
- package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
- package/dist/browser/react/NavigationProvider.js +216 -0
- package/dist/browser/react/NavigationProvider.js.map +1 -0
- package/dist/browser/react/ScrollRestoration.d.ts +75 -0
- package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
- package/dist/browser/react/ScrollRestoration.js +57 -0
- package/dist/browser/react/ScrollRestoration.js.map +1 -0
- package/dist/browser/react/context.d.ts +46 -0
- package/dist/browser/react/context.d.ts.map +1 -0
- package/dist/browser/react/context.js +10 -0
- package/dist/browser/react/context.js.map +1 -0
- package/dist/browser/react/index.d.ts +11 -0
- package/dist/browser/react/index.d.ts.map +1 -0
- package/dist/browser/react/index.js +22 -0
- package/dist/browser/react/index.js.map +1 -0
- package/dist/browser/react/location-state-shared.d.ts +63 -0
- package/dist/browser/react/location-state-shared.d.ts.map +1 -0
- package/dist/browser/react/location-state-shared.js +81 -0
- package/dist/browser/react/location-state-shared.js.map +1 -0
- package/dist/browser/react/location-state.d.ts +23 -0
- package/dist/browser/react/location-state.d.ts.map +1 -0
- package/dist/browser/react/location-state.js +29 -0
- package/dist/browser/react/location-state.js.map +1 -0
- package/dist/browser/react/mount-context.d.ts +24 -0
- package/dist/browser/react/mount-context.d.ts.map +1 -0
- package/dist/browser/react/mount-context.js +24 -0
- package/dist/browser/react/mount-context.js.map +1 -0
- package/dist/browser/react/use-action.d.ts +64 -0
- package/dist/browser/react/use-action.d.ts.map +1 -0
- package/dist/browser/react/use-action.js +134 -0
- package/dist/browser/react/use-action.js.map +1 -0
- package/dist/browser/react/use-client-cache.d.ts +41 -0
- package/dist/browser/react/use-client-cache.d.ts.map +1 -0
- package/{src/browser/react/use-client-cache.ts → dist/browser/react/use-client-cache.js} +9 -28
- package/dist/browser/react/use-client-cache.js.map +1 -0
- package/dist/browser/react/use-handle.d.ts +31 -0
- package/dist/browser/react/use-handle.d.ts.map +1 -0
- package/dist/browser/react/use-handle.js +144 -0
- package/dist/browser/react/use-handle.js.map +1 -0
- package/dist/browser/react/use-href.d.ts +33 -0
- package/dist/browser/react/use-href.d.ts.map +1 -0
- package/dist/browser/react/use-href.js +39 -0
- package/dist/browser/react/use-href.js.map +1 -0
- package/dist/browser/react/use-link-status.d.ts +37 -0
- package/dist/browser/react/use-link-status.d.ts.map +1 -0
- package/dist/browser/react/use-link-status.js +99 -0
- package/dist/browser/react/use-link-status.js.map +1 -0
- package/dist/browser/react/use-mount.d.ts +25 -0
- package/dist/browser/react/use-mount.d.ts.map +1 -0
- package/dist/browser/react/use-mount.js +30 -0
- package/dist/browser/react/use-mount.js.map +1 -0
- package/dist/browser/react/use-navigation.d.ts +27 -0
- package/dist/browser/react/use-navigation.d.ts.map +1 -0
- package/dist/browser/react/use-navigation.js +87 -0
- package/dist/browser/react/use-navigation.js.map +1 -0
- package/dist/browser/react/use-segments.d.ts +38 -0
- package/dist/browser/react/use-segments.d.ts.map +1 -0
- package/dist/browser/react/use-segments.js +130 -0
- package/dist/browser/react/use-segments.js.map +1 -0
- package/dist/browser/request-controller.d.ts +26 -0
- package/dist/browser/request-controller.d.ts.map +1 -0
- package/dist/browser/request-controller.js +147 -0
- package/dist/browser/request-controller.js.map +1 -0
- package/dist/browser/rsc-router.d.ts +129 -0
- package/dist/browser/rsc-router.d.ts.map +1 -0
- package/dist/browser/rsc-router.js +195 -0
- package/dist/browser/rsc-router.js.map +1 -0
- package/dist/browser/scroll-restoration.d.ts +93 -0
- package/dist/browser/scroll-restoration.d.ts.map +1 -0
- package/dist/browser/scroll-restoration.js +321 -0
- package/dist/browser/scroll-restoration.js.map +1 -0
- package/dist/browser/segment-structure-assert.d.ts +17 -0
- package/dist/browser/segment-structure-assert.d.ts.map +1 -0
- package/dist/browser/segment-structure-assert.js +59 -0
- package/dist/browser/segment-structure-assert.js.map +1 -0
- package/dist/browser/server-action-bridge.d.ts +26 -0
- package/dist/browser/server-action-bridge.d.ts.map +1 -0
- package/dist/browser/server-action-bridge.js +668 -0
- package/dist/browser/server-action-bridge.js.map +1 -0
- package/dist/browser/shallow.d.ts +12 -0
- package/dist/browser/shallow.d.ts.map +1 -0
- package/dist/browser/shallow.js +34 -0
- package/dist/browser/shallow.js.map +1 -0
- package/dist/browser/types.d.ts +369 -0
- package/dist/browser/types.d.ts.map +1 -0
- package/dist/browser/types.js +2 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
- package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-cli.test.js +237 -0
- package/dist/build/__tests__/generate-cli.test.js.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.js +119 -0
- package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.js +620 -0
- package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.js +308 -0
- package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
- package/dist/build/generate-manifest.d.ts +81 -0
- package/dist/build/generate-manifest.d.ts.map +1 -0
- package/dist/build/generate-manifest.js +276 -0
- package/dist/build/generate-manifest.js.map +1 -0
- package/dist/build/generate-route-types.d.ts +115 -0
- package/dist/build/generate-route-types.d.ts.map +1 -0
- package/dist/build/generate-route-types.js +740 -0
- package/dist/build/generate-route-types.js.map +1 -0
- package/dist/build/index.d.ts +21 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +21 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/route-trie.d.ts +71 -0
- package/dist/build/route-trie.d.ts.map +1 -0
- package/dist/build/route-trie.js +175 -0
- package/dist/build/route-trie.js.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.js +208 -0
- package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
- package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
- package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
- package/dist/cache/__tests__/document-cache.test.js +345 -0
- package/dist/cache/__tests__/document-cache.test.js.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
- package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
- package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-store.test.js +367 -0
- package/dist/cache/__tests__/memory-store.test.js.map +1 -0
- package/dist/cache/cache-scope.d.ts +102 -0
- package/dist/cache/cache-scope.d.ts.map +1 -0
- package/dist/cache/cache-scope.js +440 -0
- package/dist/cache/cache-scope.js.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
- package/dist/cache/cf/cf-cache-store.d.ts +165 -0
- package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
- package/dist/cache/cf/cf-cache-store.js +242 -0
- package/dist/cache/cf/cf-cache-store.js.map +1 -0
- package/dist/cache/cf/index.d.ts +14 -0
- package/dist/cache/cf/index.d.ts.map +1 -0
- package/dist/cache/cf/index.js +17 -0
- package/dist/cache/cf/index.js.map +1 -0
- package/dist/cache/document-cache.d.ts +64 -0
- package/dist/cache/document-cache.d.ts.map +1 -0
- package/dist/cache/document-cache.js +228 -0
- package/dist/cache/document-cache.js.map +1 -0
- package/dist/cache/index.d.ts +19 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory-segment-store.d.ts +110 -0
- package/dist/cache/memory-segment-store.d.ts.map +1 -0
- package/dist/cache/memory-segment-store.js +117 -0
- package/dist/cache/memory-segment-store.js.map +1 -0
- package/dist/cache/memory-store.d.ts +41 -0
- package/dist/cache/memory-store.d.ts.map +1 -0
- package/dist/cache/memory-store.js +191 -0
- package/dist/cache/memory-store.js.map +1 -0
- package/dist/cache/types.d.ts +317 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +12 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/client.d.ts +248 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +367 -0
- package/dist/client.js.map +1 -0
- package/dist/client.rsc.d.ts +26 -0
- package/dist/client.rsc.d.ts.map +1 -0
- package/dist/client.rsc.js +46 -0
- package/dist/client.rsc.js.map +1 -0
- package/dist/component-utils.d.ts +36 -0
- package/dist/component-utils.d.ts.map +1 -0
- package/dist/component-utils.js +61 -0
- package/dist/component-utils.js.map +1 -0
- package/dist/components/DefaultDocument.d.ts +13 -0
- package/dist/components/DefaultDocument.d.ts.map +1 -0
- package/dist/components/DefaultDocument.js +15 -0
- package/dist/components/DefaultDocument.js.map +1 -0
- package/dist/debug.d.ts +58 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +157 -0
- package/dist/debug.js.map +1 -0
- package/dist/default-error-boundary.d.ts +11 -0
- package/dist/default-error-boundary.d.ts.map +1 -0
- package/dist/default-error-boundary.js +45 -0
- package/dist/default-error-boundary.js.map +1 -0
- package/dist/deps/browser.d.ts +2 -0
- package/dist/deps/browser.d.ts.map +1 -0
- package/dist/deps/browser.js +3 -0
- package/dist/deps/browser.js.map +1 -0
- package/dist/deps/html-stream-client.d.ts +2 -0
- package/dist/deps/html-stream-client.d.ts.map +1 -0
- package/dist/deps/html-stream-client.js +3 -0
- package/dist/deps/html-stream-client.js.map +1 -0
- package/dist/deps/html-stream-server.d.ts +2 -0
- package/dist/deps/html-stream-server.d.ts.map +1 -0
- package/dist/deps/html-stream-server.js +3 -0
- package/dist/deps/html-stream-server.js.map +1 -0
- package/dist/deps/rsc.d.ts +2 -0
- package/dist/deps/rsc.d.ts.map +1 -0
- package/dist/deps/rsc.js +4 -0
- package/dist/deps/rsc.js.map +1 -0
- package/dist/deps/ssr.d.ts +2 -0
- package/dist/deps/ssr.d.ts.map +1 -0
- package/dist/deps/ssr.js +3 -0
- package/dist/deps/ssr.js.map +1 -0
- package/dist/errors.d.ts +174 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +241 -0
- package/dist/errors.js.map +1 -0
- package/dist/handle.d.ts +78 -0
- package/dist/handle.d.ts.map +1 -0
- package/dist/handle.js +82 -0
- package/dist/handle.js.map +1 -0
- package/dist/handles/MetaTags.d.ts +14 -0
- package/dist/handles/MetaTags.d.ts.map +1 -0
- package/dist/handles/MetaTags.js +136 -0
- package/dist/handles/MetaTags.js.map +1 -0
- package/{src/handles/index.ts → dist/handles/index.d.ts} +1 -2
- package/dist/handles/index.d.ts.map +1 -0
- package/dist/handles/index.js +6 -0
- package/dist/handles/index.js.map +1 -0
- package/dist/handles/meta.d.ts +39 -0
- package/dist/handles/meta.d.ts.map +1 -0
- package/dist/handles/meta.js +202 -0
- package/dist/handles/meta.js.map +1 -0
- package/dist/host/__tests__/errors.test.d.ts +2 -0
- package/dist/host/__tests__/errors.test.d.ts.map +1 -0
- package/dist/host/__tests__/errors.test.js +76 -0
- package/dist/host/__tests__/errors.test.js.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.js +251 -0
- package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
- package/dist/host/__tests__/router.test.d.ts +2 -0
- package/dist/host/__tests__/router.test.d.ts.map +1 -0
- package/dist/host/__tests__/router.test.js +241 -0
- package/dist/host/__tests__/router.test.js.map +1 -0
- package/dist/host/__tests__/testing.test.d.ts +2 -0
- package/dist/host/__tests__/testing.test.d.ts.map +1 -0
- package/dist/host/__tests__/testing.test.js +64 -0
- package/dist/host/__tests__/testing.test.js.map +1 -0
- package/dist/host/__tests__/utils.test.d.ts +2 -0
- package/dist/host/__tests__/utils.test.d.ts.map +1 -0
- package/dist/host/__tests__/utils.test.js +29 -0
- package/dist/host/__tests__/utils.test.js.map +1 -0
- package/dist/host/cookie-handler.d.ts +34 -0
- package/dist/host/cookie-handler.d.ts.map +1 -0
- package/dist/host/cookie-handler.js +124 -0
- package/dist/host/cookie-handler.js.map +1 -0
- package/dist/host/errors.d.ts +56 -0
- package/dist/host/errors.d.ts.map +1 -0
- package/dist/host/errors.js +79 -0
- package/dist/host/errors.js.map +1 -0
- package/dist/host/index.d.ts +29 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +32 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/pattern-matcher.d.ts +36 -0
- package/dist/host/pattern-matcher.d.ts.map +1 -0
- package/dist/host/pattern-matcher.js +172 -0
- package/dist/host/pattern-matcher.js.map +1 -0
- package/dist/host/router.d.ts +26 -0
- package/dist/host/router.d.ts.map +1 -0
- package/dist/host/router.js +218 -0
- package/dist/host/router.js.map +1 -0
- package/dist/host/testing.d.ts +36 -0
- package/dist/host/testing.d.ts.map +1 -0
- package/dist/host/testing.js +55 -0
- package/dist/host/testing.js.map +1 -0
- package/dist/host/types.d.ts +115 -0
- package/dist/host/types.d.ts.map +1 -0
- package/dist/host/types.js +7 -0
- package/dist/host/types.js.map +1 -0
- package/dist/host/utils.d.ts +21 -0
- package/dist/host/utils.d.ts.map +1 -0
- package/dist/host/utils.js +23 -0
- package/dist/host/utils.js.map +1 -0
- package/dist/href-client.d.ts +131 -0
- package/dist/href-client.d.ts.map +1 -0
- package/dist/href-client.js +64 -0
- package/dist/href-client.js.map +1 -0
- package/dist/href-context.d.ts +29 -0
- package/dist/href-context.d.ts.map +1 -0
- package/dist/href-context.js +21 -0
- package/dist/href-context.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/index.rsc.d.ts +32 -0
- package/dist/index.rsc.d.ts.map +1 -0
- package/dist/index.rsc.js +40 -0
- package/dist/index.rsc.js.map +1 -0
- package/dist/internal-debug.d.ts +2 -0
- package/dist/internal-debug.d.ts.map +1 -0
- package/dist/internal-debug.js +5 -0
- package/dist/internal-debug.js.map +1 -0
- package/dist/loader.d.ts +14 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +20 -0
- package/dist/loader.js.map +1 -0
- package/dist/loader.rsc.d.ts +19 -0
- package/dist/loader.rsc.d.ts.map +1 -0
- package/dist/loader.rsc.js +99 -0
- package/dist/loader.rsc.js.map +1 -0
- package/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/testing/vitest.js +82 -0
- package/dist/theme/ThemeProvider.d.ts +20 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +240 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/ThemeScript.d.ts +48 -0
- package/dist/theme/ThemeScript.d.ts.map +1 -0
- package/dist/theme/ThemeScript.js +13 -0
- package/dist/theme/ThemeScript.js.map +1 -0
- package/dist/theme/__tests__/theme.test.d.ts +2 -0
- package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
- package/dist/theme/__tests__/theme.test.js +103 -0
- package/dist/theme/__tests__/theme.test.js.map +1 -0
- package/dist/theme/constants.d.ts +29 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/constants.js +48 -0
- package/dist/theme/constants.js.map +1 -0
- package/dist/theme/index.d.ts +31 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +36 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-context.d.ts +40 -0
- package/dist/theme/theme-context.d.ts.map +1 -0
- package/dist/theme/theme-context.js +60 -0
- package/dist/theme/theme-context.js.map +1 -0
- package/dist/theme/theme-script.d.ts +27 -0
- package/dist/theme/theme-script.d.ts.map +1 -0
- package/dist/theme/theme-script.js +147 -0
- package/dist/theme/theme-script.js.map +1 -0
- package/dist/theme/types.d.ts +163 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +11 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/use-theme.d.ts +12 -0
- package/dist/theme/use-theme.d.ts.map +1 -0
- package/dist/theme/use-theme.js +40 -0
- package/dist/theme/use-theme.js.map +1 -0
- package/dist/types.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 +1165 -310
- 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 +71 -7
- package/skills/api-client/SKILL.md +211 -0
- package/skills/breadcrumbs/SKILL.md +61 -1
- package/skills/bundle-analysis/SKILL.md +2 -2
- package/skills/cache-guide/SKILL.md +2 -2
- package/skills/caching/SKILL.md +92 -10
- package/skills/css/SKILL.md +76 -0
- package/skills/debug-manifest/SKILL.md +4 -2
- package/skills/document-cache/SKILL.md +2 -2
- package/skills/handler-use/SKILL.md +1 -1
- package/skills/hooks/SKILL.md +40 -29
- package/skills/host-router/SKILL.md +80 -3
- package/skills/intercept/SKILL.md +5 -3
- package/skills/layout/SKILL.md +11 -6
- package/skills/loader/SKILL.md +25 -19
- package/skills/middleware/SKILL.md +4 -2
- package/skills/migrate-nextjs/SKILL.md +3 -1
- package/skills/migrate-react-router/SKILL.md +4 -2
- package/skills/mime-routes/SKILL.md +2 -2
- package/skills/observability/SKILL.md +61 -4
- package/skills/parallel/SKILL.md +9 -4
- package/skills/prerender/SKILL.md +31 -10
- package/skills/rango/SKILL.md +31 -10
- package/skills/response-routes/SKILL.md +63 -45
- package/skills/route/SKILL.md +14 -2
- package/skills/router-setup/SKILL.md +27 -3
- package/skills/scripts/SKILL.md +179 -0
- package/skills/server-actions/SKILL.md +25 -1
- package/skills/tailwind/SKILL.md +27 -3
- package/skills/testing/SKILL.md +129 -0
- package/skills/testing/bindings.md +103 -0
- package/skills/testing/cache-prerender.md +127 -0
- package/skills/testing/client-components.md +124 -0
- package/skills/testing/e2e-parity.md +125 -0
- package/skills/testing/flight.md +91 -0
- package/skills/testing/handles.md +129 -0
- package/skills/testing/loader.md +128 -0
- package/skills/testing/middleware.md +99 -0
- package/skills/testing/render-handler.md +121 -0
- package/skills/testing/response-routes.md +95 -0
- package/skills/testing/reverse-and-types.md +84 -0
- package/skills/testing/server-actions.md +107 -0
- package/skills/testing/server-tree.md +128 -0
- package/skills/testing/setup.md +123 -0
- package/skills/typesafety/SKILL.md +6 -5
- package/skills/use-cache/SKILL.md +10 -9
- package/skills/vercel/SKILL.md +128 -0
- package/src/__augment-tests__/augmented.check.ts +2 -3
- package/src/__internal.ts +0 -65
- package/src/browser/action-coordinator.ts +1 -1
- package/src/browser/action-fence.ts +47 -0
- package/src/browser/app-shell.ts +14 -27
- package/src/browser/connection-warmup.ts +134 -0
- package/src/browser/cookie-name.ts +140 -0
- package/src/browser/event-controller.ts +115 -89
- package/src/browser/invalidate-client-cache.ts +52 -0
- package/src/browser/navigation-bridge.ts +16 -52
- package/src/browser/navigation-client.ts +84 -69
- package/src/browser/navigation-store-handle.ts +38 -0
- package/src/browser/navigation-store.ts +25 -74
- package/src/browser/navigation-transaction.ts +0 -32
- package/src/browser/partial-update.ts +81 -127
- package/src/browser/prefetch/cache.ts +99 -72
- package/src/browser/prefetch/fetch.ts +176 -34
- package/src/browser/prefetch/queue.ts +6 -3
- package/src/browser/rango-state.ts +157 -115
- package/src/browser/react/Link.tsx +30 -7
- package/src/browser/react/NavigationProvider.tsx +32 -95
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/filter-segment-order.ts +17 -2
- package/src/browser/react/index.ts +0 -51
- package/src/browser/react/location-state-shared.ts +14 -15
- package/src/browser/react/location-state.ts +0 -1
- package/src/browser/react/use-action.ts +6 -15
- package/src/browser/react/use-handle.ts +0 -5
- package/src/browser/react/use-href.tsx +8 -1
- package/src/browser/react/use-link-status.ts +33 -8
- package/src/browser/react/use-navigation.ts +10 -5
- package/src/browser/react/use-params.ts +0 -2
- package/src/browser/react/use-router.ts +6 -4
- package/src/browser/react/use-search-params.ts +0 -5
- package/src/browser/react/use-segments.ts +0 -13
- package/src/browser/response-adapter.ts +41 -4
- package/src/browser/rsc-router.tsx +43 -18
- package/src/browser/scroll-restoration.ts +8 -3
- package/src/browser/server-action-bridge.ts +194 -28
- package/src/browser/types.ts +40 -21
- package/src/browser/validate-redirect-origin.ts +43 -16
- package/src/build/generate-route-types.ts +1 -1
- package/src/build/index.ts +8 -4
- package/src/build/prefix-tree-utils.ts +123 -0
- package/src/build/route-trie.ts +117 -15
- package/src/build/route-types/ast-route-extraction.ts +15 -8
- package/src/build/route-types/codegen.ts +12 -1
- package/src/build/route-types/include-resolution.ts +116 -22
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/per-module-writer.ts +15 -2
- package/src/build/route-types/router-processing.ts +77 -41
- package/src/build/route-types/source-scan.ts +105 -7
- package/src/cache/cache-key-utils.ts +29 -13
- package/src/cache/cache-policy.ts +42 -62
- package/src/cache/cache-runtime.ts +126 -30
- package/src/cache/cache-scope.ts +118 -43
- package/src/cache/cache-tag.ts +7 -39
- package/src/cache/cf/cf-base64.ts +33 -0
- package/src/cache/cf/cf-cache-constants.ts +127 -0
- package/src/cache/cf/cf-cache-store.ts +1257 -537
- package/src/cache/cf/cf-cache-types.ts +349 -0
- package/src/cache/cf/cf-kv-utils.ts +46 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
- package/src/cache/cf/index.ts +6 -19
- package/src/cache/document-cache.ts +32 -32
- package/src/cache/handle-snapshot.ts +70 -0
- package/src/cache/index.ts +20 -24
- package/src/cache/memory-segment-store.ts +3 -48
- package/src/cache/profile-registry.ts +31 -31
- package/src/cache/read-through-swr.ts +41 -11
- package/src/cache/segment-codec.ts +9 -17
- package/src/cache/tag-invalidation.ts +29 -5
- package/src/cache/types.ts +14 -104
- package/src/cache/vercel/index.ts +11 -0
- package/src/cache/vercel/vercel-cache-store.ts +855 -0
- package/src/client.rsc.tsx +42 -22
- package/src/client.tsx +31 -58
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +109 -0
- package/src/component-utils.ts +19 -0
- package/src/components/DefaultDocument.tsx +8 -2
- package/src/context-var.ts +13 -1
- package/src/decode-loader-results.ts +18 -2
- package/src/defer.ts +196 -0
- package/src/deps/ssr.ts +0 -1
- package/src/encode-kv.ts +49 -0
- package/src/errors.ts +0 -3
- package/src/escape-script.ts +52 -0
- package/src/handle.ts +28 -18
- package/src/handles/MetaTags.tsx +56 -19
- package/src/handles/Scripts.tsx +183 -0
- package/src/handles/breadcrumbs.ts +37 -8
- package/src/handles/is-thenable.ts +19 -0
- package/src/handles/meta.ts +51 -40
- package/src/handles/script.ts +244 -0
- package/src/host/cookie-handler.ts +9 -60
- package/src/host/errors.ts +0 -24
- package/src/host/index.ts +6 -0
- package/src/host/pattern-matcher.ts +23 -52
- package/src/host/router.ts +1 -65
- package/src/host/testing.ts +40 -27
- package/src/host/types.ts +6 -2
- package/src/href-client.ts +7 -12
- package/src/index.rsc.ts +75 -8
- package/src/index.ts +60 -4
- package/src/internal-debug.ts +2 -4
- package/src/loader.rsc.ts +19 -9
- package/src/loader.ts +12 -4
- package/src/network-error-thrower.tsx +1 -6
- package/src/outlet-provider.tsx +1 -5
- package/src/prerender/param-hash.ts +16 -16
- package/src/prerender/store.ts +32 -37
- package/src/prerender.ts +58 -3
- package/src/redirect-origin.ts +100 -0
- package/src/regex-escape.ts +8 -0
- package/src/response-utils.ts +25 -0
- package/src/root-error-boundary.tsx +1 -19
- package/src/route-content-wrapper.tsx +1 -44
- package/src/route-definition/dsl-helpers.ts +39 -21
- package/src/route-definition/helpers-types.ts +3 -3
- package/src/route-definition/redirect.ts +44 -11
- package/src/route-definition/resolve-handler-use.ts +6 -0
- package/src/route-map-builder.ts +0 -16
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +58 -23
- package/src/router/error-handling.ts +44 -17
- package/src/router/find-match.ts +44 -23
- package/src/router/handler-context.ts +6 -1
- package/src/router/instrument.ts +350 -0
- package/src/router/intercept-resolution.ts +35 -2
- package/src/router/lazy-includes.ts +7 -44
- package/src/router/loader-resolution.ts +139 -73
- package/src/router/logging.ts +0 -6
- package/src/router/manifest.ts +18 -29
- package/src/router/match-api.ts +0 -20
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +57 -58
- package/src/router/match-middleware/background-revalidation.ts +6 -7
- package/src/router/match-middleware/cache-lookup.ts +115 -194
- package/src/router/match-middleware/cache-store.ts +28 -32
- package/src/router/match-middleware/intercept-resolution.ts +0 -22
- package/src/router/match-middleware/segment-resolution.ts +0 -22
- package/src/router/match-pipelines.ts +1 -42
- package/src/router/match-result.ts +1 -52
- package/src/router/metrics.ts +0 -34
- package/src/router/middleware-types.ts +0 -116
- package/src/router/middleware.ts +175 -90
- package/src/router/navigation-snapshot.ts +0 -51
- package/src/router/params-util.ts +23 -0
- package/src/router/pattern-matching.ts +47 -89
- package/src/router/prefetch-cache-ttl.ts +51 -0
- package/src/router/prerender-match.ts +101 -64
- package/src/router/request-classification.ts +25 -35
- package/src/router/revalidation.ts +75 -81
- package/src/router/route-snapshot.ts +0 -1
- package/src/router/router-context.ts +3 -28
- package/src/router/router-interfaces.ts +38 -7
- package/src/router/router-options.ts +111 -4
- package/src/router/segment-resolution/fresh.ts +66 -78
- package/src/router/segment-resolution/helpers.ts +86 -6
- package/src/router/segment-resolution/loader-cache.ts +57 -23
- package/src/router/segment-resolution/revalidation.ts +212 -304
- package/src/router/segment-resolution/static-store.ts +19 -5
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution.ts +5 -1
- package/src/router/segment-wrappers.ts +6 -5
- package/src/router/state-cookie-name.ts +33 -0
- package/src/router/telemetry-otel.ts +161 -199
- package/src/router/telemetry.ts +96 -19
- package/src/router/timeout.ts +0 -20
- package/src/router/tracing.ts +206 -0
- package/src/router/trie-matching.ts +163 -64
- package/src/router/types.ts +1 -63
- package/src/router/url-params.ts +0 -5
- package/src/router.ts +87 -37
- package/src/rsc/handler-context.ts +1 -0
- package/src/rsc/handler.ts +232 -153
- package/src/rsc/helpers.ts +97 -4
- package/src/rsc/index.ts +1 -4
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +114 -38
- package/src/rsc/manifest-init.ts +28 -41
- package/src/rsc/origin-guard.ts +11 -15
- package/src/rsc/progressive-enhancement.ts +59 -9
- package/src/rsc/redirect-guard.ts +99 -0
- package/src/rsc/response-cache-serve.ts +238 -0
- package/src/rsc/response-error.ts +79 -12
- package/src/rsc/response-route-handler.ts +57 -147
- package/src/rsc/rsc-rendering.ts +64 -24
- package/src/rsc/runtime-warnings.ts +14 -0
- package/src/rsc/server-action.ts +244 -81
- package/src/rsc/types.ts +15 -3
- package/src/runtime-env.ts +18 -0
- package/src/search-params.ts +31 -26
- package/src/segment-loader-promise.ts +31 -4
- package/src/segment-system.tsx +89 -89
- package/src/server/context.ts +32 -0
- package/src/server/cookie-parse.ts +32 -0
- package/src/server/cookie-store.ts +52 -1
- package/src/server/handle-store.ts +21 -38
- package/src/server/loader-registry.ts +21 -42
- package/src/server/request-context.ts +189 -131
- package/src/ssr/index.tsx +19 -18
- package/src/static-handler.ts +10 -13
- package/src/testing/cache-status.ts +162 -0
- package/src/testing/collect-handle.ts +40 -0
- package/src/testing/dispatch.ts +701 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +188 -0
- package/src/testing/e2e/index.ts +128 -0
- package/src/testing/e2e/matchers.ts +35 -0
- package/src/testing/e2e/page-helpers.ts +272 -0
- package/src/testing/e2e/parity.ts +387 -0
- package/src/testing/e2e/server.ts +195 -0
- package/src/testing/flight-matchers.ts +97 -0
- package/src/testing/flight-normalize.ts +11 -0
- package/src/testing/flight-runtime.d.ts +57 -0
- package/src/testing/flight-tree.ts +682 -0
- package/src/testing/flight.entry.ts +52 -0
- package/src/testing/flight.ts +257 -0
- package/src/testing/generated-routes.ts +183 -0
- package/src/testing/index.ts +99 -0
- package/src/testing/internal/context.ts +371 -0
- package/src/testing/internal/flight-client-globals.ts +30 -0
- package/src/testing/internal/seed-vars.ts +54 -0
- package/src/testing/render-handler.ts +343 -0
- package/src/testing/render-route.tsx +581 -0
- package/src/testing/run-loader.ts +385 -0
- package/src/testing/run-middleware.ts +205 -0
- package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
- package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
- package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
- package/src/testing/vitest-stubs/version.ts +5 -0
- package/src/testing/vitest.ts +305 -0
- package/src/theme/ThemeProvider.tsx +20 -58
- package/src/theme/ThemeScript.tsx +7 -9
- package/src/theme/constants.ts +52 -13
- package/src/theme/index.ts +0 -7
- package/src/theme/theme-context.ts +1 -5
- package/src/theme/theme-script.ts +22 -21
- package/src/theme/use-theme.ts +0 -3
- package/src/types/boundaries.ts +0 -35
- package/src/types/cache-types.ts +3 -3
- package/src/types/error-types.ts +25 -89
- package/src/types/global-namespace.ts +15 -15
- package/src/types/handler-context.ts +44 -14
- package/src/types/index.ts +0 -10
- package/src/types/loader-types.ts +6 -3
- package/src/types/request-scope.ts +8 -22
- package/src/types/route-config.ts +6 -50
- package/src/types/route-entry.ts +0 -6
- package/src/types/segments.ts +0 -13
- package/src/urls/include-helper.ts +0 -4
- package/src/urls/index.ts +1 -8
- package/src/urls/path-helper-types.ts +8 -2
- package/src/urls/path-helper.ts +0 -54
- package/src/urls/type-extraction.ts +33 -24
- package/src/urls/urls-function.ts +0 -13
- package/src/use-loader.tsx +0 -186
- package/src/vercel/index.ts +11 -0
- package/src/vercel/tracing.ts +88 -0
- package/src/vite/discovery/bundle-postprocess.ts +2 -1
- package/src/vite/discovery/discover-routers.ts +33 -42
- package/src/vite/discovery/prerender-collection.ts +33 -46
- package/src/vite/discovery/state.ts +12 -1
- package/src/vite/discovery/virtual-module-codegen.ts +1 -11
- package/src/vite/index.ts +2 -0
- package/src/vite/plugin-types.ts +143 -10
- package/src/vite/plugins/cjs-to-esm.ts +8 -12
- package/src/vite/plugins/client-ref-dedup.ts +0 -11
- package/src/vite/plugins/client-ref-hashing.ts +0 -10
- package/src/vite/plugins/cloudflare-protocol-stub.ts +0 -20
- package/src/vite/plugins/expose-action-id.ts +2 -73
- package/src/vite/plugins/expose-id-utils.ts +85 -56
- package/src/vite/plugins/expose-ids/export-analysis.ts +30 -43
- package/src/vite/plugins/expose-ids/handler-transform.ts +5 -31
- package/src/vite/plugins/expose-ids/loader-transform.ts +12 -20
- package/src/vite/plugins/expose-ids/router-transform.ts +98 -26
- package/src/vite/plugins/expose-internal-ids.ts +10 -1
- package/src/vite/plugins/performance-tracks.ts +0 -3
- package/src/vite/plugins/refresh-cmd.ts +1 -1
- package/src/vite/plugins/use-cache-transform.ts +21 -46
- package/src/vite/plugins/vercel-output.ts +295 -0
- package/src/vite/plugins/version-injector.ts +0 -20
- package/src/vite/plugins/version-plugin.ts +6 -66
- package/src/vite/plugins/virtual-entries.ts +70 -17
- package/src/vite/rango.ts +135 -134
- package/src/vite/router-discovery.ts +21 -8
- package/src/vite/utils/ast-handler-extract.ts +11 -20
- package/src/vite/utils/bundle-analysis.ts +6 -13
- package/src/vite/utils/client-chunks.ts +0 -6
- package/src/vite/utils/directive-prologue.ts +40 -0
- package/src/vite/utils/forward-user-plugins.ts +0 -22
- package/src/vite/utils/manifest-utils.ts +4 -75
- package/src/vite/utils/package-resolution.ts +1 -73
- package/src/vite/utils/prerender-utils.ts +54 -40
- package/src/vite/utils/shared-utils.ts +8 -37
- package/src/browser/shallow.ts +0 -40
- package/src/router/middleware-cookies.ts +0 -55
package/src/vite/rango.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type PluginOption } from "vite";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { exposeActionId } from "./plugins/expose-action-id.js";
|
|
@@ -15,7 +15,10 @@ import {
|
|
|
15
15
|
getPublishedPackageName,
|
|
16
16
|
getVendorAliases,
|
|
17
17
|
} from "./utils/package-resolution.js";
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
findRouterFiles,
|
|
20
|
+
findHostRouterFiles,
|
|
21
|
+
} from "../build/generate-route-types.js";
|
|
19
22
|
import { createVersionPlugin } from "./plugins/version-plugin.js";
|
|
20
23
|
import {
|
|
21
24
|
sharedRolldownOptions,
|
|
@@ -27,7 +30,12 @@ import {
|
|
|
27
30
|
resolveClientChunks,
|
|
28
31
|
type ClientChunkContext,
|
|
29
32
|
} from "./utils/client-chunks.js";
|
|
30
|
-
import type {
|
|
33
|
+
import type {
|
|
34
|
+
RangoOptions,
|
|
35
|
+
RangoNodeOptions,
|
|
36
|
+
RangoVercelOptions,
|
|
37
|
+
} from "./plugin-types.js";
|
|
38
|
+
import { createVercelOutputPlugin } from "./plugins/vercel-output.js";
|
|
31
39
|
import { printBanner, rangoVersion } from "./utils/banner.js";
|
|
32
40
|
import { createVersionInjectorPlugin } from "./plugins/version-injector.js";
|
|
33
41
|
import { createCjsToEsmPlugin } from "./plugins/cjs-to-esm.js";
|
|
@@ -37,6 +45,13 @@ import { createRangoDebugger, NS } from "./debug.js";
|
|
|
37
45
|
|
|
38
46
|
const debugConfig = createRangoDebugger(NS.config);
|
|
39
47
|
|
|
48
|
+
// The leading-directive 'use client' sniff is shared with version-plugin's
|
|
49
|
+
// getClientModuleSignature so the two cannot drift. Imported for local use by the
|
|
50
|
+
// HMR transform below and re-exported because the E8 sniff test imports it from
|
|
51
|
+
// this module.
|
|
52
|
+
import { hasUseClientDirective } from "./utils/directive-prologue.js";
|
|
53
|
+
export { hasUseClientDirective };
|
|
54
|
+
|
|
40
55
|
/**
|
|
41
56
|
* Vite plugin for @rangojs/router.
|
|
42
57
|
*
|
|
@@ -66,18 +81,7 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
66
81
|
const resolvedOptions: RangoOptions = options ?? { preset: "node" };
|
|
67
82
|
const preset = resolvedOptions.preset ?? "node";
|
|
68
83
|
const showBanner = resolvedOptions.banner ?? true;
|
|
69
|
-
// Client-chunking strategy (per-route/per-feature splitting of the browser
|
|
70
|
-
// bundle). Defaults to the built-in directory strategy (`true`) pre-1.0; pass
|
|
71
|
-
// `clientChunks: false` to opt out. Resolved once and forwarded to
|
|
72
|
-
// @vitejs/plugin-rsc in both presets. The built-in strategy only splits where it
|
|
73
|
-
// recognizes a route structure, so this default is a no-op for flat / host-split
|
|
74
|
-
// apps and never duplicates the shared runtime.
|
|
75
84
|
const clientChunksOption = resolvedOptions.clientChunks ?? true;
|
|
76
|
-
// Shared context the built-in strategy reads at build time: the production
|
|
77
|
-
// hashes of registered error/notFound fallback modules (-> app-fallback).
|
|
78
|
-
// Populated by the discovery plugin in buildStart, before the client build
|
|
79
|
-
// invokes the strategy. Only wired when the built-in strategy is active; a
|
|
80
|
-
// custom function owns its own grouping.
|
|
81
85
|
const useBuiltInClientChunks = clientChunksOption === true;
|
|
82
86
|
const clientChunkCtx: ClientChunkContext | undefined = useBuiltInClientChunks
|
|
83
87
|
? { fallbackRefs: new Set<string>() }
|
|
@@ -114,24 +118,28 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
114
118
|
const pkg = getPublishedPackageName();
|
|
115
119
|
const nested = (spec: string) => `${pkg} > ${spec}`;
|
|
116
120
|
|
|
117
|
-
// Mutable ref for
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
+
// Mutable ref for the served entry path (node/vercel presets only). Populated
|
|
122
|
+
// by the auto-discover config() hook using Vite's resolved root. `kind` selects
|
|
123
|
+
// the RSC entry template: "router" wraps a single createRouter() app in
|
|
124
|
+
// createRSCHandler; "host" wraps a createHostRouter() instance and serves it
|
|
125
|
+
// via hostRouter.match().
|
|
126
|
+
const routerRef: { path: string | undefined; kind: "router" | "host" } = {
|
|
127
|
+
path: undefined,
|
|
128
|
+
kind: "router",
|
|
129
|
+
};
|
|
130
|
+
// Explicit host-router entry (node/vercel `hostRouter` option), root-relative.
|
|
131
|
+
const explicitHostRouter =
|
|
132
|
+
preset !== "cloudflare"
|
|
133
|
+
? (resolvedOptions as RangoNodeOptions | RangoVercelOptions).hostRouter
|
|
134
|
+
: undefined;
|
|
121
135
|
|
|
122
136
|
// Build-time prerendering is enabled for both presets.
|
|
123
137
|
// Collection runs in-process via the RSC dev environment runner during discoverRouters().
|
|
124
138
|
const prerenderEnabled = true;
|
|
125
139
|
|
|
126
140
|
if (preset === "cloudflare") {
|
|
127
|
-
// Cloudflare preset: configure entries for cloudflare worker setup
|
|
128
|
-
// Router is not needed here - worker.rsc.tsx imports it directly
|
|
129
|
-
|
|
130
|
-
// Dynamically import @vitejs/plugin-rsc
|
|
131
141
|
const { default: rsc } = await import("@vitejs/plugin-rsc");
|
|
132
142
|
|
|
133
|
-
// Only client and ssr entries - rsc entry is handled by cloudflare plugin
|
|
134
|
-
// Always use virtual modules for cloudflare preset
|
|
135
143
|
const finalEntries: { client: string; ssr: string } = {
|
|
136
144
|
client: VIRTUAL_IDS.browser,
|
|
137
145
|
ssr: VIRTUAL_IDS.ssr,
|
|
@@ -142,10 +150,7 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
142
150
|
enforce: "pre",
|
|
143
151
|
|
|
144
152
|
config() {
|
|
145
|
-
// Configure environments for cloudflare deployment
|
|
146
153
|
return {
|
|
147
|
-
// Exclude rsc-router modules from optimization to prevent module duplication
|
|
148
|
-
// This ensures the same Context instance is used by both browser entry and RSC proxy modules
|
|
149
154
|
optimizeDeps: {
|
|
150
155
|
exclude: excludeDeps,
|
|
151
156
|
rolldownOptions: sharedRolldownOptions,
|
|
@@ -168,21 +173,12 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
168
173
|
client: {
|
|
169
174
|
build: {
|
|
170
175
|
rollupOptions: {
|
|
171
|
-
// FILE_NAME_CONFLICT (and any other client-build warning) is
|
|
172
|
-
// emitted by the CLIENT environment build, which consults THIS
|
|
173
|
-
// env's onwarn -- Vite 8's environment builds do NOT propagate
|
|
174
|
-
// the top-level build.rollupOptions.onwarn into the client env.
|
|
175
|
-
// Wire it here so the suppression runs where the conflicts
|
|
176
|
-
// originate (the top-level handler is invoked 0x for these; the
|
|
177
|
-
// client-env handler is invoked for all of them).
|
|
178
176
|
onwarn,
|
|
179
177
|
output: {
|
|
180
178
|
manualChunks: getManualChunks,
|
|
181
179
|
},
|
|
182
180
|
},
|
|
183
181
|
},
|
|
184
|
-
// Pre-bundle rsc-html-stream to prevent discovery during first request
|
|
185
|
-
// Exclude rsc-router modules to ensure same Context instance
|
|
186
182
|
optimizeDeps: {
|
|
187
183
|
include: [nested("rsc-html-stream/client")],
|
|
188
184
|
exclude: excludeDeps,
|
|
@@ -190,12 +186,9 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
190
186
|
},
|
|
191
187
|
},
|
|
192
188
|
ssr: {
|
|
193
|
-
// Build SSR inside RSC directory so wrangler can deploy self-contained dist/rsc
|
|
194
189
|
build: {
|
|
195
190
|
outDir: "./dist/rsc/ssr",
|
|
196
191
|
},
|
|
197
|
-
// Pre-bundle SSR entry and React for proper module linking with childEnvironments
|
|
198
|
-
// All deps must be listed to avoid late discovery triggering ERR_OUTDATED_OPTIMIZED_DEP
|
|
199
192
|
optimizeDeps: {
|
|
200
193
|
entries: [finalEntries.ssr],
|
|
201
194
|
include: [
|
|
@@ -215,10 +208,7 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
215
208
|
},
|
|
216
209
|
},
|
|
217
210
|
rsc: {
|
|
218
|
-
// RSC environment needs exclude list and esbuild options
|
|
219
|
-
// Exclude rsc-router modules to prevent createContext in RSC environment
|
|
220
211
|
optimizeDeps: {
|
|
221
|
-
// Pre-bundle all RSC deps to prevent late discovery triggering ERR_OUTDATED_OPTIMIZED_DEP
|
|
222
212
|
include: [
|
|
223
213
|
"react",
|
|
224
214
|
"react/jsx-runtime",
|
|
@@ -249,13 +239,7 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
249
239
|
});
|
|
250
240
|
|
|
251
241
|
plugins.push(createVirtualEntriesPlugin(finalEntries));
|
|
252
|
-
|
|
253
|
-
// Dev-only: RSDW client patch for React Performance Tracks
|
|
254
242
|
plugins.push(performanceTracksPlugin());
|
|
255
|
-
|
|
256
|
-
// Add RSC plugin with cloudflare-specific options
|
|
257
|
-
// Note: loadModuleDevProxy should NOT be used with childEnvironments
|
|
258
|
-
// since SSR runs in workerd alongside RSC
|
|
259
243
|
plugins.push(
|
|
260
244
|
rsc({
|
|
261
245
|
entries: finalEntries,
|
|
@@ -263,13 +247,8 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
263
247
|
clientChunks,
|
|
264
248
|
}) as PluginOption,
|
|
265
249
|
);
|
|
266
|
-
|
|
267
|
-
// Deduplicate client references from third-party packages in dev mode.
|
|
268
|
-
// Prevents module duplication when server components import "use client"
|
|
269
|
-
// packages that are also imported directly by client components.
|
|
270
250
|
plugins.push(clientRefDedup());
|
|
271
251
|
} else {
|
|
272
|
-
// Auto-discover router using Vite's resolved root (not process.cwd())
|
|
273
252
|
plugins.push({
|
|
274
253
|
name: "@rangojs/router:auto-discover",
|
|
275
254
|
config(userConfig) {
|
|
@@ -277,33 +256,62 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
277
256
|
const root = userConfig.root
|
|
278
257
|
? resolve(process.cwd(), userConfig.root)
|
|
279
258
|
: process.cwd();
|
|
259
|
+
const toRootRelative = (abs: string) =>
|
|
260
|
+
(abs.startsWith(root)
|
|
261
|
+
? "./" + abs.slice(root.length + 1)
|
|
262
|
+
: abs
|
|
263
|
+
).replaceAll("\\", "/");
|
|
264
|
+
const bulletList = (files: string[]) =>
|
|
265
|
+
files.map((f) => " - " + toRootRelative(f)).join("\n");
|
|
266
|
+
|
|
267
|
+
// 1. Explicit host entry wins: serve the createHostRouter() instance.
|
|
268
|
+
if (explicitHostRouter) {
|
|
269
|
+
routerRef.path = explicitHostRouter.replaceAll("\\", "/");
|
|
270
|
+
routerRef.kind = "host";
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// 2. A createHostRouter() file means this is a multi-app host deploy:
|
|
275
|
+
// serve it via the host entry. Checked BEFORE single-router discovery,
|
|
276
|
+
// because a host app may compose just one createRouter() sub-app plus
|
|
277
|
+
// host middleware / domain rules / inline .map() routes -- and a lone
|
|
278
|
+
// sub-app must not shadow the host entry (it would bypass
|
|
279
|
+
// hostRouter.match()).
|
|
280
|
+
const hostCandidates = findHostRouterFiles(root);
|
|
281
|
+
if (hostCandidates.length === 1) {
|
|
282
|
+
routerRef.path = toRootRelative(hostCandidates[0]);
|
|
283
|
+
routerRef.kind = "host";
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if (hostCandidates.length > 1) {
|
|
287
|
+
throw new Error(
|
|
288
|
+
`[rango] Multiple host routers found:\n${bulletList(hostCandidates)}\n\n` +
|
|
289
|
+
`Set the \`hostRouter\` option to the entry to serve, e.g. rango({ preset: "${preset}", hostRouter: "./src/worker.rsc.tsx" }).`,
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// 3. No host entry: single createRouter() app.
|
|
280
294
|
const candidates = findRouterFiles(root);
|
|
281
295
|
if (candidates.length === 1) {
|
|
282
|
-
|
|
283
|
-
routerRef.
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
(
|
|
290
|
-
|
|
291
|
-
)
|
|
292
|
-
.join("\n");
|
|
293
|
-
throw new Error(`[rango] Multiple routers found:\n${list}`);
|
|
296
|
+
routerRef.path = toRootRelative(candidates[0]);
|
|
297
|
+
routerRef.kind = "router";
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (candidates.length > 1) {
|
|
301
|
+
throw new Error(
|
|
302
|
+
`[rango] Multiple routers found:\n${bulletList(candidates)}\n\n` +
|
|
303
|
+
`If this is a multi-app host router, export a createHostRouter() instance and set the \`hostRouter\` option (e.g. rango({ preset: "${preset}", hostRouter: "./src/worker.rsc.tsx" })), or use preset: "cloudflare" where you own the worker entry.`,
|
|
304
|
+
);
|
|
294
305
|
}
|
|
295
|
-
// 0 found: routerRef.path stays undefined, warn at startup via discovery plugin
|
|
296
306
|
},
|
|
297
307
|
});
|
|
298
308
|
|
|
299
|
-
// Always use virtual entries for client, ssr, and rsc
|
|
300
309
|
const finalEntries = {
|
|
301
310
|
client: VIRTUAL_IDS.browser,
|
|
302
311
|
ssr: VIRTUAL_IDS.ssr,
|
|
303
312
|
rsc: VIRTUAL_IDS.rsc,
|
|
304
313
|
};
|
|
305
314
|
|
|
306
|
-
// Dynamically import @vitejs/plugin-rsc
|
|
307
315
|
const { default: rsc } = await import("@vitejs/plugin-rsc");
|
|
308
316
|
|
|
309
317
|
let hasWarnedDuplicate = false;
|
|
@@ -312,8 +320,38 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
312
320
|
name: "@rangojs/router:rsc-integration",
|
|
313
321
|
enforce: "pre",
|
|
314
322
|
|
|
315
|
-
config() {
|
|
323
|
+
config(_userConfig, configEnv) {
|
|
324
|
+
// Fold NODE_ENV for the vercel preset's build. The cloudflare plugin
|
|
325
|
+
// does this automatically and node apps do it themselves; vercel has no
|
|
326
|
+
// platform plugin, so without this React's CJS dev branch survives and
|
|
327
|
+
// doubles the SSR/RSC bundle (Bundle Hygiene rule #2). Only the exact
|
|
328
|
+
// `process.env.NODE_ENV` token is replaced.
|
|
329
|
+
const vercelDefine =
|
|
330
|
+
preset === "vercel" && configEnv.command === "build"
|
|
331
|
+
? { "process.env.NODE_ENV": JSON.stringify("production") }
|
|
332
|
+
: undefined;
|
|
333
|
+
// The vercel preset's deployed function has no node_modules, so the
|
|
334
|
+
// server bundles must be fully self-contained. Bundle every dependency
|
|
335
|
+
// into the rsc + ssr builds instead of externalizing them (the node
|
|
336
|
+
// default, which only works because `vite preview` runs where
|
|
337
|
+
// node_modules exists). node: builtins stay external automatically.
|
|
338
|
+
const vercelServerEnv =
|
|
339
|
+
preset === "vercel"
|
|
340
|
+
? { resolve: { noExternal: true as const } }
|
|
341
|
+
: undefined;
|
|
342
|
+
// Dev only: @vercel/functions is a CJS package (consumed at its root for
|
|
343
|
+
// getCache/waitUntil) whose nested internal requires vite's RSC + SSR dev
|
|
344
|
+
// module runners cannot load directly, so a vercel app using
|
|
345
|
+
// VercelCacheStore crashes on `vite dev`. Pre-bundle it for the server
|
|
346
|
+
// environments (the production build bundles it via noExternal above, so
|
|
347
|
+
// this is serve-only). The preset already requires @vercel/functions at
|
|
348
|
+
// build time, so the unconditional include matches the existing contract.
|
|
349
|
+
const vercelServerInclude =
|
|
350
|
+
preset === "vercel" && configEnv.command === "serve"
|
|
351
|
+
? ["@vercel/functions"]
|
|
352
|
+
: [];
|
|
316
353
|
return {
|
|
354
|
+
...(vercelDefine ? { define: vercelDefine } : {}),
|
|
317
355
|
optimizeDeps: {
|
|
318
356
|
exclude: excludeDeps,
|
|
319
357
|
rolldownOptions: sharedRolldownOptions,
|
|
@@ -336,13 +374,6 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
336
374
|
client: {
|
|
337
375
|
build: {
|
|
338
376
|
rollupOptions: {
|
|
339
|
-
// FILE_NAME_CONFLICT (and any other client-build warning) is
|
|
340
|
-
// emitted by the CLIENT environment build, which consults THIS
|
|
341
|
-
// env's onwarn -- Vite 8's environment builds do NOT propagate
|
|
342
|
-
// the top-level build.rollupOptions.onwarn into the client env.
|
|
343
|
-
// Wire it here so the suppression runs where the conflicts
|
|
344
|
-
// originate (the top-level handler is invoked 0x for these; the
|
|
345
|
-
// client-env handler is invoked for all of them).
|
|
346
377
|
onwarn,
|
|
347
378
|
output: {
|
|
348
379
|
manualChunks: getManualChunks,
|
|
@@ -363,6 +394,7 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
363
394
|
},
|
|
364
395
|
},
|
|
365
396
|
ssr: {
|
|
397
|
+
...(vercelServerEnv ?? {}),
|
|
366
398
|
optimizeDeps: {
|
|
367
399
|
entries: [VIRTUAL_IDS.ssr],
|
|
368
400
|
include: [
|
|
@@ -375,12 +407,14 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
375
407
|
nested(
|
|
376
408
|
"@vitejs/plugin-rsc/vendor/react-server-dom/client.edge",
|
|
377
409
|
),
|
|
410
|
+
...vercelServerInclude,
|
|
378
411
|
],
|
|
379
412
|
exclude: excludeDeps,
|
|
380
413
|
rolldownOptions: sharedRolldownOptions,
|
|
381
414
|
},
|
|
382
415
|
},
|
|
383
416
|
rsc: {
|
|
417
|
+
...(vercelServerEnv ?? {}),
|
|
384
418
|
optimizeDeps: {
|
|
385
419
|
entries: [VIRTUAL_IDS.rsc],
|
|
386
420
|
include: [
|
|
@@ -390,7 +424,14 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
390
424
|
nested(
|
|
391
425
|
"@vitejs/plugin-rsc/vendor/react-server-dom/server.edge",
|
|
392
426
|
),
|
|
427
|
+
...vercelServerInclude,
|
|
393
428
|
],
|
|
429
|
+
// Vite 8 does not propagate the top-level optimizeDeps.exclude
|
|
430
|
+
// (set in config()) to non-client envs, so the rsc env must set
|
|
431
|
+
// it explicitly — mirroring the node ssr env and the cloudflare
|
|
432
|
+
// rsc env. Without it a strict-pnpm npm-installed app can try to
|
|
433
|
+
// pre-bundle the router's own subpath entries and fail.
|
|
434
|
+
exclude: excludeDeps,
|
|
394
435
|
rolldownOptions: sharedRolldownOptions,
|
|
395
436
|
},
|
|
396
437
|
},
|
|
@@ -406,7 +447,11 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
406
447
|
? "preview"
|
|
407
448
|
: "dev"
|
|
408
449
|
: "build";
|
|
409
|
-
printBanner(
|
|
450
|
+
printBanner(
|
|
451
|
+
mode,
|
|
452
|
+
preset === "vercel" ? "vercel" : "node",
|
|
453
|
+
rangoVersion,
|
|
454
|
+
);
|
|
410
455
|
}
|
|
411
456
|
|
|
412
457
|
const rscMinimalCount = config.plugins.filter(
|
|
@@ -423,36 +468,17 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
423
468
|
},
|
|
424
469
|
});
|
|
425
470
|
|
|
426
|
-
// Add virtual entries plugin (RSC entry generated lazily from routerRef)
|
|
427
471
|
plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
|
|
428
|
-
|
|
429
|
-
// Dev-only: RSDW client patch for React Performance Tracks
|
|
430
472
|
plugins.push(performanceTracksPlugin());
|
|
431
|
-
|
|
432
473
|
plugins.push(
|
|
433
474
|
rsc({
|
|
434
475
|
entries: finalEntries,
|
|
435
476
|
clientChunks,
|
|
436
477
|
}) as PluginOption,
|
|
437
478
|
);
|
|
438
|
-
|
|
439
|
-
// Deduplicate client references from third-party packages in dev mode.
|
|
440
|
-
// Prevents module duplication when server components import "use client"
|
|
441
|
-
// packages that are also imported directly by client components.
|
|
442
479
|
plugins.push(clientRefDedup());
|
|
443
480
|
}
|
|
444
481
|
|
|
445
|
-
// Fix HMR for "use client" components.
|
|
446
|
-
//
|
|
447
|
-
// @vitejs/plugin-rsc's hotUpdate returns undefined for "use client" files
|
|
448
|
-
// in the RSC environment. Vite then tries to propagate through the RSC
|
|
449
|
-
// module graph, but the proxy module has no import.meta.hot.accept()
|
|
450
|
-
// boundary, causing a full page reload. The client env would handle it
|
|
451
|
-
// fine via React Refresh, but the RSC env's full-reload arrives first.
|
|
452
|
-
//
|
|
453
|
-
// Fix: in the RSC env, return [] for "use client" files to signal
|
|
454
|
-
// "handled, nothing to propagate". The client env is left alone so
|
|
455
|
-
// React Refresh processes the update normally.
|
|
456
482
|
plugins.push({
|
|
457
483
|
name: "@rangojs/router:client-component-hmr",
|
|
458
484
|
hotUpdate(ctx) {
|
|
@@ -471,74 +497,49 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
|
|
|
471
497
|
|
|
472
498
|
try {
|
|
473
499
|
const source = readFileSync(file, "utf-8");
|
|
474
|
-
|
|
475
|
-
if (
|
|
476
|
-
trimmed.startsWith('"use client"') ||
|
|
477
|
-
trimmed.startsWith("'use client'")
|
|
478
|
-
) {
|
|
479
|
-
// Consume the update in RSC/SSR envs. The proxy module was already
|
|
480
|
-
// re-transformed by the RSC plugin's hotUpdate. Without this, Vite
|
|
481
|
-
// tries to propagate through the RSC/SSR module graph where the proxy
|
|
482
|
-
// has no import.meta.hot.accept() boundary, triggering a full reload.
|
|
483
|
-
// The actual component update is handled by React Refresh in the
|
|
484
|
-
// client environment.
|
|
500
|
+
if (hasUseClientDirective(source)) {
|
|
485
501
|
return [];
|
|
486
502
|
}
|
|
487
|
-
} catch {
|
|
488
|
-
// File deleted/moved during HMR, let default handling proceed
|
|
489
|
-
}
|
|
503
|
+
} catch {}
|
|
490
504
|
},
|
|
491
505
|
});
|
|
492
506
|
|
|
493
507
|
plugins.push(exposeActionId());
|
|
494
|
-
|
|
495
|
-
// "use cache" directive transform (enforce: "post"):
|
|
496
|
-
// Wraps exports with registerCachedFunction() for function-level caching.
|
|
497
508
|
plugins.push(useCacheTransform());
|
|
498
|
-
|
|
499
|
-
// Consolidated plugin for create* ID injection (enforce: "post"):
|
|
500
|
-
// loaders, handles, location state, and prerender handlers.
|
|
501
509
|
plugins.push(exposeInternalIds());
|
|
502
|
-
|
|
503
|
-
// Router ID injection runs at normal priority (no enforce) to avoid
|
|
504
|
-
// changing Vite's dep optimization timing.
|
|
505
510
|
plugins.push(exposeRouterId());
|
|
506
|
-
|
|
507
|
-
// Add version virtual module plugin for cache invalidation
|
|
508
511
|
plugins.push(createVersionPlugin());
|
|
509
512
|
|
|
510
|
-
// Entry path for discovery: user-specified value (if any) or undefined.
|
|
511
|
-
// Auto-discovered path is passed separately via routerRef.
|
|
512
|
-
// Cloudflare preset: deferred to configResolved (read from resolved Vite env config).
|
|
513
513
|
const discoveryEntryPath =
|
|
514
514
|
preset !== "cloudflare" ? routerRef.path : undefined;
|
|
515
|
-
// Ref for deferred auto-discovery (node preset only, undefined for cloudflare)
|
|
516
515
|
const discoveryRouterRef = preset !== "cloudflare" ? routerRef : undefined;
|
|
517
516
|
|
|
518
|
-
// Version injector: auto-injects VERSION and routes-manifest into the RSC entry.
|
|
519
|
-
// For cloudflare preset, the entry is resolved lazily in configResolved.
|
|
520
|
-
// For node preset, the virtual entry already includes these imports.
|
|
521
517
|
if (preset === "cloudflare") {
|
|
522
518
|
plugins.push(createVersionInjectorPlugin(undefined));
|
|
523
519
|
}
|
|
524
520
|
|
|
525
|
-
// Transform CJS vendor files to ESM for browser compatibility
|
|
526
|
-
// optimizeDeps.include doesn't work because the file is loaded after initial optimization
|
|
527
521
|
plugins.push(createCjsToEsmPlugin());
|
|
528
|
-
|
|
529
|
-
// Router discovery plugin for build-time manifest generation.
|
|
530
|
-
// For cloudflare, the entry is resolved lazily in configResolved from the RSC environment.
|
|
531
|
-
// For node, discoveryRouterRef provides the auto-discovered path when not user-specified.
|
|
532
522
|
plugins.push(
|
|
533
523
|
createRouterDiscoveryPlugin(discoveryEntryPath, {
|
|
534
524
|
routerPathRef: discoveryRouterRef,
|
|
535
525
|
enableBuildPrerender: prerenderEnabled,
|
|
536
526
|
buildEnv: options?.buildEnv,
|
|
537
527
|
preset,
|
|
528
|
+
prerenderOnError: options?.prerender?.onError,
|
|
529
|
+
discovery: options?.discovery,
|
|
538
530
|
clientChunkCtx,
|
|
539
531
|
}),
|
|
540
532
|
);
|
|
541
533
|
|
|
534
|
+
// Vercel preset: assemble .vercel/output from dist/ after the build. Pushed
|
|
535
|
+
// last so its (ssr-gated) closeBundle runs after the discovery plugin's
|
|
536
|
+
// rsc-env postprocess and after every environment has been written.
|
|
537
|
+
if (preset === "vercel") {
|
|
538
|
+
plugins.push(
|
|
539
|
+
createVercelOutputPlugin(resolvedOptions as RangoVercelOptions),
|
|
540
|
+
);
|
|
541
|
+
}
|
|
542
|
+
|
|
542
543
|
debugConfig?.(
|
|
543
544
|
"rango(%s) setup done: %d plugin(s) (%sms)",
|
|
544
545
|
preset,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
formatNestedRouterConflictError,
|
|
17
17
|
findNestedRouterConflict,
|
|
18
18
|
findRouterFiles,
|
|
19
|
+
createScanFilter,
|
|
19
20
|
} from "../build/generate-route-types.js";
|
|
20
21
|
import { firstCodeMatchIndex } from "../build/route-types/source-scan.js";
|
|
21
22
|
import { createVersionPlugin } from "./plugins/version-plugin.js";
|
|
@@ -326,6 +327,12 @@ export function createRouterDiscoveryPlugin(
|
|
|
326
327
|
|
|
327
328
|
configResolved(config) {
|
|
328
329
|
s.projectRoot = config.root;
|
|
330
|
+
// Compile the optional discovery scan filter (glob include/exclude) now
|
|
331
|
+
// that the project root is known. findRouterFiles() below — and the
|
|
332
|
+
// build/HMR rediscovery paths — honor s.scanFilter.
|
|
333
|
+
s.scanFilter = opts?.discovery
|
|
334
|
+
? createScanFilter(s.projectRoot, opts.discovery)
|
|
335
|
+
: undefined;
|
|
329
336
|
s.isBuildMode = config.command === "build";
|
|
330
337
|
viteCommand = config.command as "serve" | "build";
|
|
331
338
|
viteMode = config.mode;
|
|
@@ -424,7 +431,8 @@ export function createRouterDiscoveryPlugin(
|
|
|
424
431
|
releaseBuildEnv(s).catch(() => {});
|
|
425
432
|
});
|
|
426
433
|
|
|
427
|
-
// Mirror the build-path contract (
|
|
434
|
+
// Mirror the build-path contract (the buildStart hook below, which sets
|
|
435
|
+
// __rscRouterDiscoveryActive before running user modules):
|
|
428
436
|
// set __rscRouterDiscoveryActive before running user modules so any
|
|
429
437
|
// module-level router.reverse() calls return a placeholder instead
|
|
430
438
|
// of throwing. The temp Vite server's module runner has its own
|
|
@@ -893,10 +901,9 @@ export function createRouterDiscoveryPlugin(
|
|
|
893
901
|
if (wantIntercept && result.interceptSegments?.length) {
|
|
894
902
|
payload = {
|
|
895
903
|
segments: [...result.segments, ...result.interceptSegments],
|
|
896
|
-
handles
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
},
|
|
904
|
+
// Pre-encoded MERGED handle string from the producer (handles are
|
|
905
|
+
// Flight-encoded so Promise/ReactNode values survive the wire).
|
|
906
|
+
handles: result.interceptHandles ?? "",
|
|
900
907
|
};
|
|
901
908
|
} else {
|
|
902
909
|
payload = { segments: result.segments, handles: result.handles };
|
|
@@ -905,9 +912,15 @@ export function createRouterDiscoveryPlugin(
|
|
|
905
912
|
logResult(200, `match ${result.routeName}`);
|
|
906
913
|
return;
|
|
907
914
|
} catch (err: any) {
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
)
|
|
915
|
+
// matchForPrerender now re-throws render failures instead of baking
|
|
916
|
+
// an error page (issue #587). In dev there is no frozen artifact, so
|
|
917
|
+
// we fall through (404 -> live handler). A `throw new Skip()` is the
|
|
918
|
+
// expected "skip this URL" signal, not a failure, so it stays quiet.
|
|
919
|
+
if (err?.name !== "Skip") {
|
|
920
|
+
console.warn(
|
|
921
|
+
`[rango] Dev prerender error for ${pathname} (serving live instead): ${err.message}`,
|
|
922
|
+
);
|
|
923
|
+
}
|
|
911
924
|
}
|
|
912
925
|
}
|
|
913
926
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type MagicString from "magic-string";
|
|
2
2
|
import { hashInlineId, buildExportMap } from "../plugins/expose-id-utils.js";
|
|
3
3
|
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// Types
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
|
|
8
4
|
/** Minimal ESTree Program node — avoids importing from `rollup` (not a direct dep). */
|
|
9
5
|
interface ProgramNode {
|
|
10
6
|
type: "Program";
|
|
@@ -70,10 +66,6 @@ function findImportInsertionPos(
|
|
|
70
66
|
return insertionPos;
|
|
71
67
|
}
|
|
72
68
|
|
|
73
|
-
// ---------------------------------------------------------------------------
|
|
74
|
-
// AST walking helper
|
|
75
|
-
// ---------------------------------------------------------------------------
|
|
76
|
-
|
|
77
69
|
/**
|
|
78
70
|
* Recursively walk an ESTree AST node, calling `enter` on each node.
|
|
79
71
|
* Parent is passed for context.
|
|
@@ -111,10 +103,6 @@ function walkNode(
|
|
|
111
103
|
ancestors.pop();
|
|
112
104
|
}
|
|
113
105
|
|
|
114
|
-
// ---------------------------------------------------------------------------
|
|
115
|
-
// AST analysis
|
|
116
|
-
// ---------------------------------------------------------------------------
|
|
117
|
-
|
|
118
106
|
/**
|
|
119
107
|
* Parse the file with Vite's parseAst and find all calls to `fnName`.
|
|
120
108
|
* Distinguishes between `export const X = fnName(...)` (exportInfo set)
|
|
@@ -294,16 +282,23 @@ function isInertExpression(node: any): boolean {
|
|
|
294
282
|
(e: any) => e === null || isInertExpression(e),
|
|
295
283
|
);
|
|
296
284
|
case "ObjectExpression":
|
|
297
|
-
return (node.properties ?? []).every(
|
|
298
|
-
(
|
|
285
|
+
return (node.properties ?? []).every((p: any) => {
|
|
286
|
+
// A spread inside an object (`{ ...x }`) is inert iff `x` is inert.
|
|
287
|
+
if (p.type === "SpreadElement" || p.type === "RestElement") {
|
|
288
|
+
return isInertExpression(p.argument);
|
|
289
|
+
}
|
|
290
|
+
return (
|
|
299
291
|
p.type === "Property" &&
|
|
300
292
|
(!p.computed || isInertExpression(p.key)) &&
|
|
301
|
-
isInertExpression(p.value)
|
|
302
|
-
|
|
293
|
+
isInertExpression(p.value)
|
|
294
|
+
);
|
|
295
|
+
});
|
|
303
296
|
case "UnaryExpression":
|
|
304
297
|
return isInertExpression(node.argument);
|
|
305
298
|
case "BinaryExpression":
|
|
306
299
|
return isInertExpression(node.left) && isInertExpression(node.right);
|
|
300
|
+
case "LogicalExpression":
|
|
301
|
+
return isInertExpression(node.left) && isInertExpression(node.right);
|
|
307
302
|
case "ConditionalExpression":
|
|
308
303
|
return (
|
|
309
304
|
isInertExpression(node.test) &&
|
|
@@ -426,10 +421,6 @@ export function extractModuleLevelDeclarations(
|
|
|
426
421
|
return declarations;
|
|
427
422
|
}
|
|
428
423
|
|
|
429
|
-
// ---------------------------------------------------------------------------
|
|
430
|
-
// Transform
|
|
431
|
-
// ---------------------------------------------------------------------------
|
|
432
|
-
|
|
433
424
|
/**
|
|
434
425
|
* Transform inline handler calls by extracting them into virtual modules.
|
|
435
426
|
* Only processes inline calls (exportInfo === null); export const calls are
|