@rangojs/router 0.0.0-experimental.8678bb02 → 0.0.0-experimental.88a3b2f7
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 +76 -18
- package/dist/bin/rango.js +130 -47
- package/dist/vite/index.js +408 -259
- package/package.json +2 -2
- package/skills/links/SKILL.md +3 -1
- package/skills/middleware/SKILL.md +2 -0
- package/skills/prerender/SKILL.md +110 -68
- package/skills/router-setup/SKILL.md +35 -0
- package/src/__internal.ts +1 -1
- package/src/browser/app-version.ts +14 -0
- package/src/browser/navigation-bridge.ts +16 -3
- package/src/browser/navigation-client.ts +64 -64
- package/src/browser/navigation-store.ts +43 -8
- package/src/browser/partial-update.ts +27 -5
- package/src/browser/prefetch/fetch.ts +8 -2
- package/src/browser/react/Link.tsx +44 -8
- package/src/browser/react/NavigationProvider.tsx +8 -1
- package/src/browser/react/context.ts +7 -2
- package/src/browser/react/use-handle.ts +9 -58
- package/src/browser/react/use-router.ts +21 -8
- package/src/browser/rsc-router.tsx +26 -3
- package/src/browser/scroll-restoration.ts +10 -8
- package/src/browser/server-action-bridge.ts +8 -18
- package/src/browser/types.ts +20 -5
- package/src/build/generate-manifest.ts +6 -6
- package/src/build/generate-route-types.ts +3 -0
- package/src/build/route-types/include-resolution.ts +8 -1
- package/src/build/route-types/router-processing.ts +211 -72
- package/src/build/route-types/scan-filter.ts +8 -1
- package/src/deps/browser.ts +0 -1
- package/src/handle.ts +40 -0
- package/src/index.rsc.ts +3 -1
- package/src/index.ts +8 -0
- package/src/prerender/store.ts +5 -4
- package/src/prerender.ts +138 -77
- package/src/reverse.ts +22 -1
- package/src/route-definition/dsl-helpers.ts +37 -18
- package/src/route-definition/index.ts +3 -0
- package/src/route-definition/redirect.ts +9 -1
- package/src/route-definition/resolve-handler-use.ts +149 -0
- package/src/route-types.ts +11 -0
- package/src/router/content-negotiation.ts +100 -1
- package/src/router/handler-context.ts +48 -15
- package/src/router/intercept-resolution.ts +9 -4
- package/src/router/loader-resolution.ts +115 -10
- package/src/router/match-api.ts +124 -189
- package/src/router/match-middleware/cache-lookup.ts +22 -7
- package/src/router/match-middleware/segment-resolution.ts +53 -0
- package/src/router/middleware-types.ts +0 -6
- package/src/router/middleware.ts +0 -3
- package/src/router/navigation-snapshot.ts +182 -0
- package/src/router/prerender-match.ts +110 -10
- package/src/router/preview-match.ts +30 -102
- package/src/router/request-classification.ts +310 -0
- package/src/router/route-snapshot.ts +245 -0
- package/src/router/router-interfaces.ts +36 -4
- package/src/router/router-options.ts +37 -11
- package/src/router/segment-resolution/fresh.ts +18 -5
- package/src/router/segment-resolution/revalidation.ts +18 -8
- package/src/router.ts +53 -5
- package/src/rsc/handler.ts +460 -393
- package/src/rsc/loader-fetch.ts +2 -7
- package/src/rsc/manifest-init.ts +5 -1
- package/src/rsc/progressive-enhancement.ts +5 -4
- package/src/rsc/rsc-rendering.ts +6 -4
- package/src/rsc/server-action.ts +2 -2
- package/src/rsc/ssr-setup.ts +2 -2
- package/src/rsc/types.ts +5 -4
- package/src/server/context.ts +39 -2
- package/src/server/loader-registry.ts +9 -8
- package/src/server/request-context.ts +91 -12
- package/src/ssr/index.tsx +3 -0
- package/src/static-handler.ts +18 -6
- package/src/types/cache-types.ts +4 -4
- package/src/types/handler-context.ts +17 -11
- package/src/types/loader-types.ts +32 -5
- package/src/types/route-entry.ts +1 -1
- package/src/urls/path-helper-types.ts +5 -1
- package/src/urls/path-helper.ts +47 -12
- package/src/urls/pattern-types.ts +12 -0
- package/src/urls/response-types.ts +16 -6
- package/src/vite/discovery/bundle-postprocess.ts +30 -33
- package/src/vite/discovery/discover-routers.ts +5 -1
- package/src/vite/discovery/prerender-collection.ts +14 -1
- package/src/vite/discovery/state.ts +13 -4
- package/src/vite/index.ts +4 -0
- package/src/vite/plugin-types.ts +60 -5
- package/src/vite/plugins/performance-tracks.ts +64 -206
- package/src/vite/plugins/refresh-cmd.ts +88 -26
- package/src/vite/rango.ts +17 -11
- package/src/vite/router-discovery.ts +153 -34
- package/src/vite/utils/prerender-utils.ts +18 -0
- package/src/vite/utils/shared-utils.ts +3 -2
- package/dist/__internal.d.ts +0 -83
- package/dist/__internal.d.ts.map +0 -1
- package/dist/__internal.js +0 -19
- package/dist/__internal.js.map +0 -1
- package/dist/__mocks__/version.d.ts +0 -7
- package/dist/__mocks__/version.d.ts.map +0 -1
- package/dist/__mocks__/version.js +0 -7
- package/dist/__mocks__/version.js.map +0 -1
- package/dist/__tests__/client-href.test.d.ts +0 -2
- package/dist/__tests__/client-href.test.d.ts.map +0 -1
- package/dist/__tests__/client-href.test.js +0 -74
- package/dist/__tests__/client-href.test.js.map +0 -1
- package/dist/__tests__/component-utils.test.d.ts +0 -2
- package/dist/__tests__/component-utils.test.d.ts.map +0 -1
- package/dist/__tests__/component-utils.test.js +0 -51
- package/dist/__tests__/component-utils.test.js.map +0 -1
- package/dist/__tests__/event-controller.test.d.ts +0 -2
- package/dist/__tests__/event-controller.test.d.ts.map +0 -1
- package/dist/__tests__/event-controller.test.js +0 -538
- package/dist/__tests__/event-controller.test.js.map +0 -1
- package/dist/__tests__/helpers/route-tree.d.ts +0 -118
- package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
- package/dist/__tests__/helpers/route-tree.js +0 -374
- package/dist/__tests__/helpers/route-tree.js.map +0 -1
- package/dist/__tests__/match-result.test.d.ts +0 -2
- package/dist/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/__tests__/match-result.test.js +0 -154
- package/dist/__tests__/match-result.test.js.map +0 -1
- package/dist/__tests__/navigation-store.test.d.ts +0 -2
- package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
- package/dist/__tests__/navigation-store.test.js +0 -440
- package/dist/__tests__/navigation-store.test.js.map +0 -1
- package/dist/__tests__/partial-update.test.d.ts +0 -2
- package/dist/__tests__/partial-update.test.d.ts.map +0 -1
- package/dist/__tests__/partial-update.test.js +0 -1009
- package/dist/__tests__/partial-update.test.js.map +0 -1
- package/dist/__tests__/reverse-types.test.d.ts +0 -8
- package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
- package/dist/__tests__/reverse-types.test.js +0 -656
- package/dist/__tests__/reverse-types.test.js.map +0 -1
- package/dist/__tests__/route-definition.test.d.ts +0 -2
- package/dist/__tests__/route-definition.test.d.ts.map +0 -1
- package/dist/__tests__/route-definition.test.js +0 -55
- package/dist/__tests__/route-definition.test.js.map +0 -1
- package/dist/__tests__/router-helpers.test.d.ts +0 -2
- package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/router-helpers.test.js +0 -377
- package/dist/__tests__/router-helpers.test.js.map +0 -1
- package/dist/__tests__/router-integration-2.test.d.ts +0 -2
- package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration-2.test.js +0 -426
- package/dist/__tests__/router-integration-2.test.js.map +0 -1
- package/dist/__tests__/router-integration.test.d.ts +0 -2
- package/dist/__tests__/router-integration.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration.test.js +0 -1051
- package/dist/__tests__/router-integration.test.js.map +0 -1
- package/dist/__tests__/search-params.test.d.ts +0 -5
- package/dist/__tests__/search-params.test.d.ts.map +0 -1
- package/dist/__tests__/search-params.test.js +0 -306
- package/dist/__tests__/search-params.test.js.map +0 -1
- package/dist/__tests__/segment-system.test.d.ts +0 -2
- package/dist/__tests__/segment-system.test.d.ts.map +0 -1
- package/dist/__tests__/segment-system.test.js +0 -627
- package/dist/__tests__/segment-system.test.js.map +0 -1
- package/dist/__tests__/static-handler-types.test.d.ts +0 -8
- package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
- package/dist/__tests__/static-handler-types.test.js +0 -63
- package/dist/__tests__/static-handler-types.test.js.map +0 -1
- package/dist/__tests__/urls.test.d.ts +0 -2
- package/dist/__tests__/urls.test.d.ts.map +0 -1
- package/dist/__tests__/urls.test.js +0 -421
- package/dist/__tests__/urls.test.js.map +0 -1
- package/dist/__tests__/use-mount.test.d.ts +0 -2
- package/dist/__tests__/use-mount.test.d.ts.map +0 -1
- package/dist/__tests__/use-mount.test.js +0 -35
- package/dist/__tests__/use-mount.test.js.map +0 -1
- package/dist/bin/rango.d.ts +0 -2
- package/dist/bin/rango.d.ts.map +0 -1
- package/dist/bin/rango.js.map +0 -1
- package/dist/browser/event-controller.d.ts +0 -191
- package/dist/browser/event-controller.d.ts.map +0 -1
- package/dist/browser/event-controller.js +0 -559
- package/dist/browser/event-controller.js.map +0 -1
- package/dist/browser/index.d.ts +0 -2
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -14
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/link-interceptor.d.ts +0 -38
- package/dist/browser/link-interceptor.d.ts.map +0 -1
- package/dist/browser/link-interceptor.js +0 -99
- package/dist/browser/link-interceptor.js.map +0 -1
- package/dist/browser/logging.d.ts +0 -10
- package/dist/browser/logging.d.ts.map +0 -1
- package/dist/browser/logging.js +0 -29
- package/dist/browser/logging.js.map +0 -1
- package/dist/browser/lru-cache.d.ts +0 -17
- package/dist/browser/lru-cache.d.ts.map +0 -1
- package/dist/browser/lru-cache.js +0 -50
- package/dist/browser/lru-cache.js.map +0 -1
- package/dist/browser/merge-segment-loaders.d.ts +0 -39
- package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
- package/dist/browser/merge-segment-loaders.js +0 -102
- package/dist/browser/merge-segment-loaders.js.map +0 -1
- package/dist/browser/navigation-bridge.d.ts +0 -102
- package/dist/browser/navigation-bridge.d.ts.map +0 -1
- package/dist/browser/navigation-bridge.js +0 -708
- package/dist/browser/navigation-bridge.js.map +0 -1
- package/dist/browser/navigation-client.d.ts +0 -25
- package/dist/browser/navigation-client.d.ts.map +0 -1
- package/dist/browser/navigation-client.js +0 -157
- package/dist/browser/navigation-client.js.map +0 -1
- package/dist/browser/navigation-store.d.ts +0 -101
- package/dist/browser/navigation-store.d.ts.map +0 -1
- package/dist/browser/navigation-store.js +0 -625
- package/dist/browser/navigation-store.js.map +0 -1
- package/dist/browser/partial-update.d.ts +0 -75
- package/dist/browser/partial-update.d.ts.map +0 -1
- package/dist/browser/partial-update.js +0 -426
- package/dist/browser/partial-update.js.map +0 -1
- package/dist/browser/react/Link.d.ts +0 -86
- package/dist/browser/react/Link.d.ts.map +0 -1
- package/dist/browser/react/Link.js +0 -128
- package/dist/browser/react/Link.js.map +0 -1
- package/dist/browser/react/NavigationProvider.d.ts +0 -63
- package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
- package/dist/browser/react/NavigationProvider.js +0 -216
- package/dist/browser/react/NavigationProvider.js.map +0 -1
- package/dist/browser/react/ScrollRestoration.d.ts +0 -75
- package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
- package/dist/browser/react/ScrollRestoration.js +0 -57
- package/dist/browser/react/ScrollRestoration.js.map +0 -1
- package/dist/browser/react/context.d.ts +0 -46
- package/dist/browser/react/context.d.ts.map +0 -1
- package/dist/browser/react/context.js +0 -10
- package/dist/browser/react/context.js.map +0 -1
- package/dist/browser/react/index.d.ts +0 -11
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/index.js +0 -22
- package/dist/browser/react/index.js.map +0 -1
- package/dist/browser/react/location-state-shared.d.ts +0 -63
- package/dist/browser/react/location-state-shared.d.ts.map +0 -1
- package/dist/browser/react/location-state-shared.js +0 -81
- package/dist/browser/react/location-state-shared.js.map +0 -1
- package/dist/browser/react/location-state.d.ts +0 -23
- package/dist/browser/react/location-state.d.ts.map +0 -1
- package/dist/browser/react/location-state.js +0 -29
- package/dist/browser/react/location-state.js.map +0 -1
- package/dist/browser/react/mount-context.d.ts +0 -24
- package/dist/browser/react/mount-context.d.ts.map +0 -1
- package/dist/browser/react/mount-context.js +0 -24
- package/dist/browser/react/mount-context.js.map +0 -1
- package/dist/browser/react/use-action.d.ts +0 -64
- package/dist/browser/react/use-action.d.ts.map +0 -1
- package/dist/browser/react/use-action.js +0 -134
- package/dist/browser/react/use-action.js.map +0 -1
- package/dist/browser/react/use-client-cache.d.ts +0 -41
- package/dist/browser/react/use-client-cache.d.ts.map +0 -1
- package/dist/browser/react/use-client-cache.js +0 -39
- package/dist/browser/react/use-client-cache.js.map +0 -1
- package/dist/browser/react/use-handle.d.ts +0 -31
- package/dist/browser/react/use-handle.d.ts.map +0 -1
- package/dist/browser/react/use-handle.js +0 -144
- package/dist/browser/react/use-handle.js.map +0 -1
- package/dist/browser/react/use-href.d.ts +0 -33
- package/dist/browser/react/use-href.d.ts.map +0 -1
- package/dist/browser/react/use-href.js +0 -39
- package/dist/browser/react/use-href.js.map +0 -1
- package/dist/browser/react/use-link-status.d.ts +0 -37
- package/dist/browser/react/use-link-status.d.ts.map +0 -1
- package/dist/browser/react/use-link-status.js +0 -99
- package/dist/browser/react/use-link-status.js.map +0 -1
- package/dist/browser/react/use-mount.d.ts +0 -25
- package/dist/browser/react/use-mount.d.ts.map +0 -1
- package/dist/browser/react/use-mount.js +0 -30
- package/dist/browser/react/use-mount.js.map +0 -1
- package/dist/browser/react/use-navigation.d.ts +0 -27
- package/dist/browser/react/use-navigation.d.ts.map +0 -1
- package/dist/browser/react/use-navigation.js +0 -87
- package/dist/browser/react/use-navigation.js.map +0 -1
- package/dist/browser/react/use-segments.d.ts +0 -38
- package/dist/browser/react/use-segments.d.ts.map +0 -1
- package/dist/browser/react/use-segments.js +0 -130
- package/dist/browser/react/use-segments.js.map +0 -1
- package/dist/browser/request-controller.d.ts +0 -26
- package/dist/browser/request-controller.d.ts.map +0 -1
- package/dist/browser/request-controller.js +0 -147
- package/dist/browser/request-controller.js.map +0 -1
- package/dist/browser/rsc-router.d.ts +0 -129
- package/dist/browser/rsc-router.d.ts.map +0 -1
- package/dist/browser/rsc-router.js +0 -195
- package/dist/browser/rsc-router.js.map +0 -1
- package/dist/browser/scroll-restoration.d.ts +0 -93
- package/dist/browser/scroll-restoration.d.ts.map +0 -1
- package/dist/browser/scroll-restoration.js +0 -321
- package/dist/browser/scroll-restoration.js.map +0 -1
- package/dist/browser/segment-structure-assert.d.ts +0 -17
- package/dist/browser/segment-structure-assert.d.ts.map +0 -1
- package/dist/browser/segment-structure-assert.js +0 -59
- package/dist/browser/segment-structure-assert.js.map +0 -1
- package/dist/browser/server-action-bridge.d.ts +0 -26
- package/dist/browser/server-action-bridge.d.ts.map +0 -1
- package/dist/browser/server-action-bridge.js +0 -668
- package/dist/browser/server-action-bridge.js.map +0 -1
- package/dist/browser/shallow.d.ts +0 -12
- package/dist/browser/shallow.d.ts.map +0 -1
- package/dist/browser/shallow.js +0 -34
- package/dist/browser/shallow.js.map +0 -1
- package/dist/browser/types.d.ts +0 -369
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -2
- package/dist/browser/types.js.map +0 -1
- package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
- package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-cli.test.js +0 -237
- package/dist/build/__tests__/generate-cli.test.js.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.js +0 -119
- package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.js +0 -620
- package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.js +0 -308
- package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
- package/dist/build/generate-manifest.d.ts +0 -81
- package/dist/build/generate-manifest.d.ts.map +0 -1
- package/dist/build/generate-manifest.js +0 -276
- package/dist/build/generate-manifest.js.map +0 -1
- package/dist/build/generate-route-types.d.ts +0 -115
- package/dist/build/generate-route-types.d.ts.map +0 -1
- package/dist/build/generate-route-types.js +0 -740
- package/dist/build/generate-route-types.js.map +0 -1
- package/dist/build/index.d.ts +0 -21
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js +0 -21
- package/dist/build/index.js.map +0 -1
- package/dist/build/route-trie.d.ts +0 -71
- package/dist/build/route-trie.d.ts.map +0 -1
- package/dist/build/route-trie.js +0 -175
- package/dist/build/route-trie.js.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.js +0 -208
- package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
- package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
- package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
- package/dist/cache/__tests__/document-cache.test.js +0 -345
- package/dist/cache/__tests__/document-cache.test.js.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
- package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
- package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-store.test.js +0 -367
- package/dist/cache/__tests__/memory-store.test.js.map +0 -1
- package/dist/cache/cache-scope.d.ts +0 -102
- package/dist/cache/cache-scope.d.ts.map +0 -1
- package/dist/cache/cache-scope.js +0 -440
- package/dist/cache/cache-scope.js.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
- package/dist/cache/cf/cf-cache-store.d.ts +0 -165
- package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
- package/dist/cache/cf/cf-cache-store.js +0 -242
- package/dist/cache/cf/cf-cache-store.js.map +0 -1
- package/dist/cache/cf/index.d.ts +0 -14
- package/dist/cache/cf/index.d.ts.map +0 -1
- package/dist/cache/cf/index.js +0 -17
- package/dist/cache/cf/index.js.map +0 -1
- package/dist/cache/document-cache.d.ts +0 -64
- package/dist/cache/document-cache.d.ts.map +0 -1
- package/dist/cache/document-cache.js +0 -228
- package/dist/cache/document-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -19
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -21
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/memory-segment-store.d.ts +0 -110
- package/dist/cache/memory-segment-store.d.ts.map +0 -1
- package/dist/cache/memory-segment-store.js +0 -117
- package/dist/cache/memory-segment-store.js.map +0 -1
- package/dist/cache/memory-store.d.ts +0 -41
- package/dist/cache/memory-store.d.ts.map +0 -1
- package/dist/cache/memory-store.js +0 -191
- package/dist/cache/memory-store.js.map +0 -1
- package/dist/cache/types.d.ts +0 -317
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -12
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -248
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -367
- package/dist/client.js.map +0 -1
- package/dist/client.rsc.d.ts +0 -26
- package/dist/client.rsc.d.ts.map +0 -1
- package/dist/client.rsc.js +0 -46
- package/dist/client.rsc.js.map +0 -1
- package/dist/component-utils.d.ts +0 -36
- package/dist/component-utils.d.ts.map +0 -1
- package/dist/component-utils.js +0 -61
- package/dist/component-utils.js.map +0 -1
- package/dist/components/DefaultDocument.d.ts +0 -13
- package/dist/components/DefaultDocument.d.ts.map +0 -1
- package/dist/components/DefaultDocument.js +0 -15
- package/dist/components/DefaultDocument.js.map +0 -1
- package/dist/debug.d.ts +0 -58
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -157
- package/dist/debug.js.map +0 -1
- package/dist/default-error-boundary.d.ts +0 -11
- package/dist/default-error-boundary.d.ts.map +0 -1
- package/dist/default-error-boundary.js +0 -45
- package/dist/default-error-boundary.js.map +0 -1
- package/dist/deps/browser.d.ts +0 -2
- package/dist/deps/browser.d.ts.map +0 -1
- package/dist/deps/browser.js +0 -3
- package/dist/deps/browser.js.map +0 -1
- package/dist/deps/html-stream-client.d.ts +0 -2
- package/dist/deps/html-stream-client.d.ts.map +0 -1
- package/dist/deps/html-stream-client.js +0 -3
- package/dist/deps/html-stream-client.js.map +0 -1
- package/dist/deps/html-stream-server.d.ts +0 -2
- package/dist/deps/html-stream-server.d.ts.map +0 -1
- package/dist/deps/html-stream-server.js +0 -3
- package/dist/deps/html-stream-server.js.map +0 -1
- package/dist/deps/rsc.d.ts +0 -2
- package/dist/deps/rsc.d.ts.map +0 -1
- package/dist/deps/rsc.js +0 -4
- package/dist/deps/rsc.js.map +0 -1
- package/dist/deps/ssr.d.ts +0 -2
- package/dist/deps/ssr.d.ts.map +0 -1
- package/dist/deps/ssr.js +0 -3
- package/dist/deps/ssr.js.map +0 -1
- package/dist/errors.d.ts +0 -174
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -241
- package/dist/errors.js.map +0 -1
- package/dist/handle.d.ts +0 -78
- package/dist/handle.d.ts.map +0 -1
- package/dist/handle.js +0 -82
- package/dist/handle.js.map +0 -1
- package/dist/handles/MetaTags.d.ts +0 -14
- package/dist/handles/MetaTags.d.ts.map +0 -1
- package/dist/handles/MetaTags.js +0 -136
- package/dist/handles/MetaTags.js.map +0 -1
- package/dist/handles/index.d.ts +0 -6
- package/dist/handles/index.d.ts.map +0 -1
- package/dist/handles/index.js +0 -6
- package/dist/handles/index.js.map +0 -1
- package/dist/handles/meta.d.ts +0 -39
- package/dist/handles/meta.d.ts.map +0 -1
- package/dist/handles/meta.js +0 -202
- package/dist/handles/meta.js.map +0 -1
- package/dist/host/__tests__/errors.test.d.ts +0 -2
- package/dist/host/__tests__/errors.test.d.ts.map +0 -1
- package/dist/host/__tests__/errors.test.js +0 -76
- package/dist/host/__tests__/errors.test.js.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.js +0 -251
- package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/host/__tests__/router.test.d.ts +0 -2
- package/dist/host/__tests__/router.test.d.ts.map +0 -1
- package/dist/host/__tests__/router.test.js +0 -241
- package/dist/host/__tests__/router.test.js.map +0 -1
- package/dist/host/__tests__/testing.test.d.ts +0 -2
- package/dist/host/__tests__/testing.test.d.ts.map +0 -1
- package/dist/host/__tests__/testing.test.js +0 -64
- package/dist/host/__tests__/testing.test.js.map +0 -1
- package/dist/host/__tests__/utils.test.d.ts +0 -2
- package/dist/host/__tests__/utils.test.d.ts.map +0 -1
- package/dist/host/__tests__/utils.test.js +0 -29
- package/dist/host/__tests__/utils.test.js.map +0 -1
- package/dist/host/cookie-handler.d.ts +0 -34
- package/dist/host/cookie-handler.d.ts.map +0 -1
- package/dist/host/cookie-handler.js +0 -124
- package/dist/host/cookie-handler.js.map +0 -1
- package/dist/host/errors.d.ts +0 -56
- package/dist/host/errors.d.ts.map +0 -1
- package/dist/host/errors.js +0 -79
- package/dist/host/errors.js.map +0 -1
- package/dist/host/index.d.ts +0 -29
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/index.js +0 -32
- package/dist/host/index.js.map +0 -1
- package/dist/host/pattern-matcher.d.ts +0 -36
- package/dist/host/pattern-matcher.d.ts.map +0 -1
- package/dist/host/pattern-matcher.js +0 -172
- package/dist/host/pattern-matcher.js.map +0 -1
- package/dist/host/router.d.ts +0 -26
- package/dist/host/router.d.ts.map +0 -1
- package/dist/host/router.js +0 -218
- package/dist/host/router.js.map +0 -1
- package/dist/host/testing.d.ts +0 -36
- package/dist/host/testing.d.ts.map +0 -1
- package/dist/host/testing.js +0 -55
- package/dist/host/testing.js.map +0 -1
- package/dist/host/types.d.ts +0 -115
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -7
- package/dist/host/types.js.map +0 -1
- package/dist/host/utils.d.ts +0 -21
- package/dist/host/utils.d.ts.map +0 -1
- package/dist/host/utils.js +0 -23
- package/dist/host/utils.js.map +0 -1
- package/dist/href-client.d.ts +0 -131
- package/dist/href-client.d.ts.map +0 -1
- package/dist/href-client.js +0 -64
- package/dist/href-client.js.map +0 -1
- package/dist/href-context.d.ts +0 -29
- package/dist/href-context.d.ts.map +0 -1
- package/dist/href-context.js +0 -21
- package/dist/href-context.js.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -91
- package/dist/index.js.map +0 -1
- package/dist/index.rsc.d.ts +0 -32
- package/dist/index.rsc.d.ts.map +0 -1
- package/dist/index.rsc.js +0 -40
- package/dist/index.rsc.js.map +0 -1
- package/dist/internal-debug.d.ts +0 -2
- package/dist/internal-debug.d.ts.map +0 -1
- package/dist/internal-debug.js +0 -5
- package/dist/internal-debug.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -20
- package/dist/loader.js.map +0 -1
- package/dist/loader.rsc.d.ts +0 -19
- package/dist/loader.rsc.d.ts.map +0 -1
- package/dist/loader.rsc.js +0 -99
- package/dist/loader.rsc.js.map +0 -1
- package/dist/network-error-thrower.d.ts +0 -17
- package/dist/network-error-thrower.d.ts.map +0 -1
- package/dist/network-error-thrower.js +0 -14
- package/dist/network-error-thrower.js.map +0 -1
- package/dist/outlet-context.d.ts +0 -13
- package/dist/outlet-context.d.ts.map +0 -1
- package/dist/outlet-context.js +0 -3
- package/dist/outlet-context.js.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.js +0 -148
- package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
- package/dist/prerender/param-hash.d.ts +0 -16
- package/dist/prerender/param-hash.d.ts.map +0 -1
- package/dist/prerender/param-hash.js +0 -36
- package/dist/prerender/param-hash.js.map +0 -1
- package/dist/prerender/store.d.ts +0 -38
- package/dist/prerender/store.d.ts.map +0 -1
- package/dist/prerender/store.js +0 -61
- package/dist/prerender/store.js.map +0 -1
- package/dist/prerender.d.ts +0 -66
- package/dist/prerender.d.ts.map +0 -1
- package/dist/prerender.js +0 -57
- package/dist/prerender.js.map +0 -1
- package/dist/reverse.d.ts +0 -196
- package/dist/reverse.d.ts.map +0 -1
- package/dist/reverse.js +0 -78
- package/dist/reverse.js.map +0 -1
- package/dist/root-error-boundary.d.ts +0 -33
- package/dist/root-error-boundary.d.ts.map +0 -1
- package/dist/root-error-boundary.js +0 -165
- package/dist/root-error-boundary.js.map +0 -1
- package/dist/route-content-wrapper.d.ts +0 -46
- package/dist/route-content-wrapper.d.ts.map +0 -1
- package/dist/route-content-wrapper.js +0 -77
- package/dist/route-content-wrapper.js.map +0 -1
- package/dist/route-definition.d.ts +0 -421
- package/dist/route-definition.d.ts.map +0 -1
- package/dist/route-definition.js +0 -868
- package/dist/route-definition.js.map +0 -1
- package/dist/route-map-builder.d.ts +0 -155
- package/dist/route-map-builder.d.ts.map +0 -1
- package/dist/route-map-builder.js +0 -237
- package/dist/route-map-builder.js.map +0 -1
- package/dist/route-types.d.ts +0 -165
- package/dist/route-types.d.ts.map +0 -1
- package/dist/route-types.js +0 -7
- package/dist/route-types.js.map +0 -1
- package/dist/router/__tests__/handler-context.test.d.ts +0 -2
- package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/handler-context.test.js +0 -65
- package/dist/router/__tests__/handler-context.test.js.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
- package/dist/router/__tests__/match-context.test.d.ts +0 -2
- package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-context.test.js +0 -92
- package/dist/router/__tests__/match-context.test.js.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.js +0 -417
- package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
- package/dist/router/__tests__/match-result.test.d.ts +0 -2
- package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-result.test.js +0 -457
- package/dist/router/__tests__/match-result.test.js.map +0 -1
- package/dist/router/__tests__/on-error.test.d.ts +0 -2
- package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
- package/dist/router/__tests__/on-error.test.js +0 -678
- package/dist/router/__tests__/on-error.test.js.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.js +0 -629
- package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
- package/dist/router/error-handling.d.ts +0 -77
- package/dist/router/error-handling.d.ts.map +0 -1
- package/dist/router/error-handling.js +0 -202
- package/dist/router/error-handling.js.map +0 -1
- package/dist/router/handler-context.d.ts +0 -20
- package/dist/router/handler-context.d.ts.map +0 -1
- package/dist/router/handler-context.js +0 -198
- package/dist/router/handler-context.js.map +0 -1
- package/dist/router/intercept-resolution.d.ts +0 -66
- package/dist/router/intercept-resolution.d.ts.map +0 -1
- package/dist/router/intercept-resolution.js +0 -246
- package/dist/router/intercept-resolution.js.map +0 -1
- package/dist/router/loader-resolution.d.ts +0 -64
- package/dist/router/loader-resolution.d.ts.map +0 -1
- package/dist/router/loader-resolution.js +0 -284
- package/dist/router/loader-resolution.js.map +0 -1
- package/dist/router/logging.d.ts +0 -15
- package/dist/router/logging.d.ts.map +0 -1
- package/dist/router/logging.js +0 -99
- package/dist/router/logging.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -22
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -181
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match-api.d.ts +0 -35
- package/dist/router/match-api.d.ts.map +0 -1
- package/dist/router/match-api.js +0 -406
- package/dist/router/match-api.js.map +0 -1
- package/dist/router/match-context.d.ts +0 -206
- package/dist/router/match-context.d.ts.map +0 -1
- package/dist/router/match-context.js +0 -17
- package/dist/router/match-context.js.map +0 -1
- package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
- package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
- package/dist/router/match-middleware/background-revalidation.js +0 -75
- package/dist/router/match-middleware/background-revalidation.js.map +0 -1
- package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
- package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-lookup.js +0 -257
- package/dist/router/match-middleware/cache-lookup.js.map +0 -1
- package/dist/router/match-middleware/cache-store.d.ts +0 -113
- package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-store.js +0 -108
- package/dist/router/match-middleware/cache-store.js.map +0 -1
- package/dist/router/match-middleware/index.d.ts +0 -81
- package/dist/router/match-middleware/index.d.ts.map +0 -1
- package/dist/router/match-middleware/index.js +0 -80
- package/dist/router/match-middleware/index.js.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.js +0 -134
- package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
- package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
- package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/segment-resolution.js +0 -53
- package/dist/router/match-middleware/segment-resolution.js.map +0 -1
- package/dist/router/match-pipelines.d.ts +0 -147
- package/dist/router/match-pipelines.d.ts.map +0 -1
- package/dist/router/match-pipelines.js +0 -82
- package/dist/router/match-pipelines.js.map +0 -1
- package/dist/router/match-result.d.ts +0 -126
- package/dist/router/match-result.d.ts.map +0 -1
- package/dist/router/match-result.js +0 -93
- package/dist/router/match-result.js.map +0 -1
- package/dist/router/metrics.d.ts +0 -20
- package/dist/router/metrics.d.ts.map +0 -1
- package/dist/router/metrics.js +0 -47
- package/dist/router/metrics.js.map +0 -1
- package/dist/router/middleware.d.ts +0 -249
- package/dist/router/middleware.d.ts.map +0 -1
- package/dist/router/middleware.js +0 -434
- package/dist/router/middleware.js.map +0 -1
- package/dist/router/middleware.test.d.ts +0 -2
- package/dist/router/middleware.test.d.ts.map +0 -1
- package/dist/router/middleware.test.js +0 -816
- package/dist/router/middleware.test.js.map +0 -1
- package/dist/router/pattern-matching.d.ts +0 -149
- package/dist/router/pattern-matching.d.ts.map +0 -1
- package/dist/router/pattern-matching.js +0 -349
- package/dist/router/pattern-matching.js.map +0 -1
- package/dist/router/revalidation.d.ts +0 -44
- package/dist/router/revalidation.d.ts.map +0 -1
- package/dist/router/revalidation.js +0 -147
- package/dist/router/revalidation.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -135
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -36
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/segment-resolution.d.ts +0 -127
- package/dist/router/segment-resolution.d.ts.map +0 -1
- package/dist/router/segment-resolution.js +0 -919
- package/dist/router/segment-resolution.js.map +0 -1
- package/dist/router/trie-matching.d.ts +0 -40
- package/dist/router/trie-matching.d.ts.map +0 -1
- package/dist/router/trie-matching.js +0 -127
- package/dist/router/trie-matching.js.map +0 -1
- package/dist/router/types.d.ts +0 -136
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -7
- package/dist/router/types.js.map +0 -1
- package/dist/router.d.ts +0 -753
- package/dist/router.d.ts.map +0 -1
- package/dist/router.gen.d.ts +0 -6
- package/dist/router.gen.d.ts.map +0 -1
- package/dist/router.gen.js +0 -6
- package/dist/router.gen.js.map +0 -1
- package/dist/router.js +0 -1304
- package/dist/router.js.map +0 -1
- package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
- package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
- package/dist/rsc/__tests__/helpers.test.js +0 -140
- package/dist/rsc/__tests__/helpers.test.js.map +0 -1
- package/dist/rsc/handler.d.ts +0 -45
- package/dist/rsc/handler.d.ts.map +0 -1
- package/dist/rsc/handler.js +0 -1172
- package/dist/rsc/handler.js.map +0 -1
- package/dist/rsc/helpers.d.ts +0 -16
- package/dist/rsc/helpers.d.ts.map +0 -1
- package/dist/rsc/helpers.js +0 -55
- package/dist/rsc/helpers.js.map +0 -1
- package/dist/rsc/index.d.ts +0 -22
- package/dist/rsc/index.d.ts.map +0 -1
- package/dist/rsc/index.js +0 -23
- package/dist/rsc/index.js.map +0 -1
- package/dist/rsc/nonce.d.ts +0 -9
- package/dist/rsc/nonce.d.ts.map +0 -1
- package/dist/rsc/nonce.js +0 -18
- package/dist/rsc/nonce.js.map +0 -1
- package/dist/rsc/types.d.ts +0 -206
- package/dist/rsc/types.d.ts.map +0 -1
- package/dist/rsc/types.js +0 -8
- package/dist/rsc/types.js.map +0 -1
- package/dist/search-params.d.ts +0 -103
- package/dist/search-params.d.ts.map +0 -1
- package/dist/search-params.js +0 -74
- package/dist/search-params.js.map +0 -1
- package/dist/segment-system.d.ts +0 -75
- package/dist/segment-system.d.ts.map +0 -1
- package/dist/segment-system.js +0 -336
- package/dist/segment-system.js.map +0 -1
- package/dist/server/context.d.ts +0 -245
- package/dist/server/context.d.ts.map +0 -1
- package/dist/server/context.js +0 -197
- package/dist/server/context.js.map +0 -1
- package/dist/server/fetchable-loader-store.d.ts +0 -18
- package/dist/server/fetchable-loader-store.d.ts.map +0 -1
- package/dist/server/fetchable-loader-store.js +0 -18
- package/dist/server/fetchable-loader-store.js.map +0 -1
- package/dist/server/handle-store.d.ts +0 -85
- package/dist/server/handle-store.d.ts.map +0 -1
- package/dist/server/handle-store.js +0 -142
- package/dist/server/handle-store.js.map +0 -1
- package/dist/server/loader-registry.d.ts +0 -55
- package/dist/server/loader-registry.d.ts.map +0 -1
- package/dist/server/loader-registry.js +0 -132
- package/dist/server/loader-registry.js.map +0 -1
- package/dist/server/request-context.d.ts +0 -226
- package/dist/server/request-context.d.ts.map +0 -1
- package/dist/server/request-context.js +0 -290
- package/dist/server/request-context.js.map +0 -1
- package/dist/server/root-layout.d.ts +0 -4
- package/dist/server/root-layout.d.ts.map +0 -1
- package/dist/server/root-layout.js +0 -5
- package/dist/server/root-layout.js.map +0 -1
- package/dist/server.d.ts +0 -15
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -20
- package/dist/server.js.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
- package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
- package/dist/ssr/index.d.ts +0 -98
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/ssr/index.js +0 -158
- package/dist/ssr/index.js.map +0 -1
- package/dist/static-handler.d.ts +0 -50
- package/dist/static-handler.d.ts.map +0 -1
- package/dist/static-handler.gen.d.ts +0 -5
- package/dist/static-handler.gen.d.ts.map +0 -1
- package/dist/static-handler.gen.js +0 -5
- package/dist/static-handler.gen.js.map +0 -1
- package/dist/static-handler.js +0 -29
- package/dist/static-handler.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -20
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -240
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -48
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/ThemeScript.js +0 -13
- package/dist/theme/ThemeScript.js.map +0 -1
- package/dist/theme/__tests__/theme.test.d.ts +0 -2
- package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
- package/dist/theme/__tests__/theme.test.js +0 -103
- package/dist/theme/__tests__/theme.test.js.map +0 -1
- package/dist/theme/constants.d.ts +0 -29
- package/dist/theme/constants.d.ts.map +0 -1
- package/dist/theme/constants.js +0 -48
- package/dist/theme/constants.js.map +0 -1
- package/dist/theme/index.d.ts +0 -31
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -36
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/theme-context.d.ts +0 -40
- package/dist/theme/theme-context.d.ts.map +0 -1
- package/dist/theme/theme-context.js +0 -60
- package/dist/theme/theme-context.js.map +0 -1
- package/dist/theme/theme-script.d.ts +0 -27
- package/dist/theme/theme-script.d.ts.map +0 -1
- package/dist/theme/theme-script.js +0 -147
- package/dist/theme/theme-script.js.map +0 -1
- package/dist/theme/types.d.ts +0 -163
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -11
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/use-theme.d.ts +0 -12
- package/dist/theme/use-theme.d.ts.map +0 -1
- package/dist/theme/use-theme.js +0 -40
- package/dist/theme/use-theme.js.map +0 -1
- package/dist/types.d.ts +0 -1479
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +0 -1
- package/dist/urls.d.ts +0 -441
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.gen.d.ts +0 -8
- package/dist/urls.gen.d.ts.map +0 -1
- package/dist/urls.gen.js +0 -8
- package/dist/urls.gen.js.map +0 -1
- package/dist/urls.js +0 -443
- package/dist/urls.js.map +0 -1
- package/dist/use-loader.d.ts +0 -127
- package/dist/use-loader.d.ts.map +0 -1
- package/dist/use-loader.js +0 -237
- package/dist/use-loader.js.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
- package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.js +0 -39
- package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
- package/dist/vite/ast-handler-extract.d.ts +0 -49
- package/dist/vite/ast-handler-extract.d.ts.map +0 -1
- package/dist/vite/ast-handler-extract.js +0 -249
- package/dist/vite/ast-handler-extract.js.map +0 -1
- package/dist/vite/expose-action-id.d.ts +0 -19
- package/dist/vite/expose-action-id.d.ts.map +0 -1
- package/dist/vite/expose-action-id.js +0 -250
- package/dist/vite/expose-action-id.js.map +0 -1
- package/dist/vite/expose-id-utils.d.ts +0 -69
- package/dist/vite/expose-id-utils.d.ts.map +0 -1
- package/dist/vite/expose-id-utils.js +0 -289
- package/dist/vite/expose-id-utils.js.map +0 -1
- package/dist/vite/expose-internal-ids.d.ts +0 -22
- package/dist/vite/expose-internal-ids.d.ts.map +0 -1
- package/dist/vite/expose-internal-ids.js +0 -886
- package/dist/vite/expose-internal-ids.js.map +0 -1
- package/dist/vite/index.d.ts +0 -149
- package/dist/vite/index.d.ts.map +0 -1
- package/dist/vite/index.js.map +0 -1
- package/dist/vite/index.named-routes.gen.ts +0 -103
- package/dist/vite/package-resolution.d.ts +0 -43
- package/dist/vite/package-resolution.d.ts.map +0 -1
- package/dist/vite/package-resolution.js +0 -112
- package/dist/vite/package-resolution.js.map +0 -1
- package/dist/vite/virtual-entries.d.ts +0 -25
- package/dist/vite/virtual-entries.d.ts.map +0 -1
- package/dist/vite/virtual-entries.js +0 -110
- package/dist/vite/virtual-entries.js.map +0 -1
- package/src/browser/debug-channel.ts +0 -93
package/dist/vite/index.js
CHANGED
|
@@ -9,18 +9,18 @@ import fs from "node:fs";
|
|
|
9
9
|
|
|
10
10
|
// src/vite/plugins/expose-id-utils.ts
|
|
11
11
|
import path from "node:path";
|
|
12
|
-
import
|
|
12
|
+
import crypto from "node:crypto";
|
|
13
13
|
function normalizePath(p) {
|
|
14
14
|
return p.split(path.sep).join("/");
|
|
15
15
|
}
|
|
16
16
|
function hashId(filePath, exportName) {
|
|
17
17
|
const input = `${filePath}#${exportName}`;
|
|
18
|
-
const hash =
|
|
18
|
+
const hash = crypto.createHash("sha256").update(input).digest("hex");
|
|
19
19
|
return `${hash.slice(0, 8)}#${exportName}`;
|
|
20
20
|
}
|
|
21
21
|
function hashInlineId(filePath, lineNumber, index) {
|
|
22
22
|
const input = index !== void 0 && index > 0 ? `${filePath}:${lineNumber}:${index}` : `${filePath}:${lineNumber}`;
|
|
23
|
-
return
|
|
23
|
+
return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
|
|
24
24
|
}
|
|
25
25
|
function buildExportMap(program) {
|
|
26
26
|
const exportMap = /* @__PURE__ */ new Map();
|
|
@@ -1745,7 +1745,7 @@ import { resolve } from "node:path";
|
|
|
1745
1745
|
// package.json
|
|
1746
1746
|
var package_default = {
|
|
1747
1747
|
name: "@rangojs/router",
|
|
1748
|
-
version: "0.0.0-experimental.
|
|
1748
|
+
version: "0.0.0-experimental.88a3b2f7",
|
|
1749
1749
|
description: "Django-inspired RSC router with composable URL patterns",
|
|
1750
1750
|
keywords: [
|
|
1751
1751
|
"react",
|
|
@@ -1887,7 +1887,7 @@ var package_default = {
|
|
|
1887
1887
|
"test:unit:watch": "vitest"
|
|
1888
1888
|
},
|
|
1889
1889
|
dependencies: {
|
|
1890
|
-
"@vitejs/plugin-rsc": "^0.5.
|
|
1890
|
+
"@vitejs/plugin-rsc": "^0.5.19",
|
|
1891
1891
|
"magic-string": "^0.30.17",
|
|
1892
1892
|
picomatch: "^4.0.3",
|
|
1893
1893
|
"rsc-html-stream": "^0.0.7"
|
|
@@ -2317,7 +2317,7 @@ function buildRouteMapFromBlock(block, fullSource, filePath, visited, searchSche
|
|
|
2317
2317
|
}
|
|
2318
2318
|
return routeMap;
|
|
2319
2319
|
}
|
|
2320
|
-
function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagnosticsOut) {
|
|
2320
|
+
function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagnosticsOut, inlineBlock) {
|
|
2321
2321
|
visited = visited ?? /* @__PURE__ */ new Set();
|
|
2322
2322
|
const realPath = resolve2(filePath);
|
|
2323
2323
|
const key = variableName ? `${realPath}:${variableName}` : realPath;
|
|
@@ -2333,7 +2333,9 @@ function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagno
|
|
|
2333
2333
|
return { routes: {}, searchSchemas: {} };
|
|
2334
2334
|
}
|
|
2335
2335
|
let block;
|
|
2336
|
-
if (
|
|
2336
|
+
if (inlineBlock) {
|
|
2337
|
+
block = inlineBlock;
|
|
2338
|
+
} else if (variableName) {
|
|
2337
2339
|
const extracted = extractUrlsBlockForVariable(source, variableName);
|
|
2338
2340
|
if (!extracted) return { routes: {}, searchSchemas: {} };
|
|
2339
2341
|
block = extracted;
|
|
@@ -2452,7 +2454,7 @@ Router root: ${conflict.ancestor}
|
|
|
2452
2454
|
Nested router: ${conflict.nested}
|
|
2453
2455
|
Move the nested router into a sibling directory or configure it as a separate app root.`;
|
|
2454
2456
|
}
|
|
2455
|
-
function
|
|
2457
|
+
function extractUrlsFromRouter(code) {
|
|
2456
2458
|
const sourceFile = ts5.createSourceFile(
|
|
2457
2459
|
"router.tsx",
|
|
2458
2460
|
code,
|
|
@@ -2466,24 +2468,70 @@ function extractUrlsVariableFromRouter(code) {
|
|
|
2466
2468
|
const callee = node.expression;
|
|
2467
2469
|
return ts5.isIdentifier(callee) && callee.text === "createRouter";
|
|
2468
2470
|
}
|
|
2471
|
+
function isInlineBuilder(node) {
|
|
2472
|
+
return ts5.isArrowFunction(node) || ts5.isFunctionExpression(node);
|
|
2473
|
+
}
|
|
2474
|
+
function isRoutesOnCreateRouter(node) {
|
|
2475
|
+
if (!ts5.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "routes")
|
|
2476
|
+
return false;
|
|
2477
|
+
let inner = node.expression.expression;
|
|
2478
|
+
while (ts5.isCallExpression(inner) && ts5.isPropertyAccessExpression(inner.expression)) {
|
|
2479
|
+
inner = inner.expression.expression;
|
|
2480
|
+
}
|
|
2481
|
+
return isCreateRouterCall(inner);
|
|
2482
|
+
}
|
|
2469
2483
|
function visit(node) {
|
|
2470
2484
|
if (result) return;
|
|
2471
|
-
if (ts5.isCallExpression(node) &&
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
}
|
|
2476
|
-
|
|
2477
|
-
result = node.arguments[0].text;
|
|
2478
|
-
return;
|
|
2485
|
+
if (ts5.isCallExpression(node) && node.arguments.length >= 1 && isRoutesOnCreateRouter(node)) {
|
|
2486
|
+
const arg = node.arguments[0];
|
|
2487
|
+
if (ts5.isIdentifier(arg)) {
|
|
2488
|
+
result = { kind: "variable", name: arg.text };
|
|
2489
|
+
} else if (isInlineBuilder(arg)) {
|
|
2490
|
+
result = { kind: "inline", block: arg.getText(sourceFile) };
|
|
2479
2491
|
}
|
|
2492
|
+
return;
|
|
2480
2493
|
}
|
|
2481
2494
|
if (isCreateRouterCall(node)) {
|
|
2482
2495
|
const callExpr = node;
|
|
2483
|
-
for (const
|
|
2496
|
+
for (const callArg of callExpr.arguments) {
|
|
2497
|
+
if (ts5.isObjectLiteralExpression(callArg)) {
|
|
2498
|
+
for (const prop of callArg.properties) {
|
|
2499
|
+
if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "urls") {
|
|
2500
|
+
if (ts5.isIdentifier(prop.initializer)) {
|
|
2501
|
+
result = { kind: "variable", name: prop.initializer.text };
|
|
2502
|
+
} else if (isInlineBuilder(prop.initializer)) {
|
|
2503
|
+
result = {
|
|
2504
|
+
kind: "inline",
|
|
2505
|
+
block: prop.initializer.getText(sourceFile)
|
|
2506
|
+
};
|
|
2507
|
+
}
|
|
2508
|
+
return;
|
|
2509
|
+
}
|
|
2510
|
+
}
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
}
|
|
2514
|
+
ts5.forEachChild(node, visit);
|
|
2515
|
+
}
|
|
2516
|
+
visit(sourceFile);
|
|
2517
|
+
return result;
|
|
2518
|
+
}
|
|
2519
|
+
function extractBasenameFromRouter(code) {
|
|
2520
|
+
const sourceFile = ts5.createSourceFile(
|
|
2521
|
+
"router.tsx",
|
|
2522
|
+
code,
|
|
2523
|
+
ts5.ScriptTarget.Latest,
|
|
2524
|
+
true,
|
|
2525
|
+
ts5.ScriptKind.TSX
|
|
2526
|
+
);
|
|
2527
|
+
let result;
|
|
2528
|
+
function visit(node) {
|
|
2529
|
+
if (result !== void 0) return;
|
|
2530
|
+
if (ts5.isCallExpression(node) && ts5.isIdentifier(node.expression) && node.expression.text === "createRouter") {
|
|
2531
|
+
for (const arg of node.arguments) {
|
|
2484
2532
|
if (ts5.isObjectLiteralExpression(arg)) {
|
|
2485
2533
|
for (const prop of arg.properties) {
|
|
2486
|
-
if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "
|
|
2534
|
+
if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "basename" && ts5.isStringLiteral(prop.initializer)) {
|
|
2487
2535
|
result = prop.initializer.text;
|
|
2488
2536
|
return;
|
|
2489
2537
|
}
|
|
@@ -2496,6 +2544,19 @@ function extractUrlsVariableFromRouter(code) {
|
|
|
2496
2544
|
visit(sourceFile);
|
|
2497
2545
|
return result;
|
|
2498
2546
|
}
|
|
2547
|
+
function applyBasenameToRoutes(result, basename3) {
|
|
2548
|
+
const prefixed = {};
|
|
2549
|
+
for (const [name, pattern] of Object.entries(result.routes)) {
|
|
2550
|
+
if (pattern === "/") {
|
|
2551
|
+
prefixed[name] = basename3;
|
|
2552
|
+
} else if (basename3.endsWith("/") && pattern.startsWith("/")) {
|
|
2553
|
+
prefixed[name] = basename3 + pattern.slice(1);
|
|
2554
|
+
} else {
|
|
2555
|
+
prefixed[name] = basename3 + pattern;
|
|
2556
|
+
}
|
|
2557
|
+
}
|
|
2558
|
+
return { routes: prefixed, searchSchemas: result.searchSchemas };
|
|
2559
|
+
}
|
|
2499
2560
|
function buildCombinedRouteMapForRouterFile(routerFilePath) {
|
|
2500
2561
|
let routerSource;
|
|
2501
2562
|
try {
|
|
@@ -2503,19 +2564,40 @@ function buildCombinedRouteMapForRouterFile(routerFilePath) {
|
|
|
2503
2564
|
} catch {
|
|
2504
2565
|
return { routes: {}, searchSchemas: {} };
|
|
2505
2566
|
}
|
|
2506
|
-
const
|
|
2507
|
-
if (!
|
|
2567
|
+
const extraction = extractUrlsFromRouter(routerSource);
|
|
2568
|
+
if (!extraction) {
|
|
2508
2569
|
return { routes: {}, searchSchemas: {} };
|
|
2509
2570
|
}
|
|
2510
|
-
const
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2571
|
+
const rawBasename = extractBasenameFromRouter(routerSource);
|
|
2572
|
+
const basename3 = rawBasename ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "") : void 0;
|
|
2573
|
+
let result;
|
|
2574
|
+
if (extraction.kind === "inline") {
|
|
2575
|
+
result = buildCombinedRouteMapWithSearch(
|
|
2576
|
+
routerFilePath,
|
|
2577
|
+
void 0,
|
|
2578
|
+
void 0,
|
|
2579
|
+
void 0,
|
|
2580
|
+
extraction.block
|
|
2581
|
+
);
|
|
2582
|
+
} else {
|
|
2583
|
+
const imported = resolveImportedVariable(routerSource, extraction.name);
|
|
2584
|
+
if (imported) {
|
|
2585
|
+
const targetFile = resolveImportPath(imported.specifier, routerFilePath);
|
|
2586
|
+
if (!targetFile) {
|
|
2587
|
+
return { routes: {}, searchSchemas: {} };
|
|
2588
|
+
}
|
|
2589
|
+
result = buildCombinedRouteMapWithSearch(
|
|
2590
|
+
targetFile,
|
|
2591
|
+
imported.exportedName
|
|
2592
|
+
);
|
|
2593
|
+
} else {
|
|
2594
|
+
result = buildCombinedRouteMapWithSearch(routerFilePath, extraction.name);
|
|
2515
2595
|
}
|
|
2516
|
-
return buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
|
|
2517
2596
|
}
|
|
2518
|
-
|
|
2597
|
+
if (basename3) {
|
|
2598
|
+
result = applyBasenameToRoutes(result, basename3);
|
|
2599
|
+
}
|
|
2600
|
+
return result;
|
|
2519
2601
|
}
|
|
2520
2602
|
function findRouterFiles(root, filter) {
|
|
2521
2603
|
const result = [];
|
|
@@ -2540,25 +2622,15 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
|
|
|
2540
2622
|
throw new Error(formatNestedRouterConflictError(nestedRouterConflict));
|
|
2541
2623
|
}
|
|
2542
2624
|
for (const routerFilePath of routerFilePaths) {
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
routerSource
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
const imported = resolveImportedVariable(routerSource, urlsVarName);
|
|
2553
|
-
if (imported) {
|
|
2554
|
-
const targetFile = resolveImportPath(imported.specifier, routerFilePath);
|
|
2555
|
-
if (!targetFile) continue;
|
|
2556
|
-
result = buildCombinedRouteMapWithSearch(
|
|
2557
|
-
targetFile,
|
|
2558
|
-
imported.exportedName
|
|
2559
|
-
);
|
|
2560
|
-
} else {
|
|
2561
|
-
result = buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
|
|
2625
|
+
const result = buildCombinedRouteMapForRouterFile(routerFilePath);
|
|
2626
|
+
if (Object.keys(result.routes).length === 0 && Object.keys(result.searchSchemas).length === 0) {
|
|
2627
|
+
let routerSource;
|
|
2628
|
+
try {
|
|
2629
|
+
routerSource = readFileSync2(routerFilePath, "utf-8");
|
|
2630
|
+
} catch {
|
|
2631
|
+
continue;
|
|
2632
|
+
}
|
|
2633
|
+
if (!extractUrlsFromRouter(routerSource)) continue;
|
|
2562
2634
|
}
|
|
2563
2635
|
const routerBasename = pathBasename(routerFilePath).replace(
|
|
2564
2636
|
/\.(tsx?|jsx?)$/,
|
|
@@ -2784,6 +2856,68 @@ function createVersionPlugin() {
|
|
|
2784
2856
|
|
|
2785
2857
|
// src/vite/utils/shared-utils.ts
|
|
2786
2858
|
import * as Vite from "vite";
|
|
2859
|
+
|
|
2860
|
+
// src/vite/plugins/performance-tracks.ts
|
|
2861
|
+
import { readFile } from "node:fs/promises";
|
|
2862
|
+
var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
|
|
2863
|
+
function buildPatchReplacement(match, debugInfoVar) {
|
|
2864
|
+
return `${match}
|
|
2865
|
+
if (${debugInfoVar} && 0 === ${debugInfoVar}.length && "fulfilled" === root.status) {
|
|
2866
|
+
var _resolved = "function" === typeof resolveLazy ? resolveLazy(root.value) : root.value;
|
|
2867
|
+
if ("object" === typeof _resolved && null !== _resolved && isArrayImpl(_resolved._debugInfo)) {
|
|
2868
|
+
${debugInfoVar} = _resolved._debugInfo;
|
|
2869
|
+
}
|
|
2870
|
+
}`;
|
|
2871
|
+
}
|
|
2872
|
+
function patchRsdwClientDebugInfoRecovery(code) {
|
|
2873
|
+
const match = code.match(RSDW_PATCH_RE);
|
|
2874
|
+
if (!match) {
|
|
2875
|
+
return { code, debugInfoVar: null };
|
|
2876
|
+
}
|
|
2877
|
+
return {
|
|
2878
|
+
code: code.replace(match[1], buildPatchReplacement(match[1], match[2])),
|
|
2879
|
+
debugInfoVar: match[2]
|
|
2880
|
+
};
|
|
2881
|
+
}
|
|
2882
|
+
function performanceTracksOptimizeDepsPlugin() {
|
|
2883
|
+
return {
|
|
2884
|
+
name: "@rangojs/router:performance-tracks-optimize-deps",
|
|
2885
|
+
setup(build) {
|
|
2886
|
+
build.onLoad(
|
|
2887
|
+
{
|
|
2888
|
+
filter: /react-server-dom-webpack-client\.browser\.(development|production)\.js$/
|
|
2889
|
+
},
|
|
2890
|
+
async (args) => {
|
|
2891
|
+
const code = await readFile(args.path, "utf8");
|
|
2892
|
+
const patched = patchRsdwClientDebugInfoRecovery(code);
|
|
2893
|
+
return {
|
|
2894
|
+
contents: patched.code,
|
|
2895
|
+
loader: "js"
|
|
2896
|
+
};
|
|
2897
|
+
}
|
|
2898
|
+
);
|
|
2899
|
+
}
|
|
2900
|
+
};
|
|
2901
|
+
}
|
|
2902
|
+
function performanceTracksPlugin() {
|
|
2903
|
+
return {
|
|
2904
|
+
name: "@rangojs/router:performance-tracks",
|
|
2905
|
+
transform(code, id) {
|
|
2906
|
+
if (!id.includes("react-server-dom") || !id.includes("client")) return;
|
|
2907
|
+
const patched = patchRsdwClientDebugInfoRecovery(code);
|
|
2908
|
+
if (!patched.debugInfoVar) return;
|
|
2909
|
+
if (process.env.INTERNAL_RANGO_DEBUG)
|
|
2910
|
+
console.log(
|
|
2911
|
+
"[perf-tracks] patched RSDW client (var:",
|
|
2912
|
+
patched.debugInfoVar,
|
|
2913
|
+
")"
|
|
2914
|
+
);
|
|
2915
|
+
return patched.code;
|
|
2916
|
+
}
|
|
2917
|
+
};
|
|
2918
|
+
}
|
|
2919
|
+
|
|
2920
|
+
// src/vite/utils/shared-utils.ts
|
|
2787
2921
|
var versionEsbuildPlugin = {
|
|
2788
2922
|
name: "@rangojs/router-version",
|
|
2789
2923
|
setup(build) {
|
|
@@ -2801,7 +2935,7 @@ var versionEsbuildPlugin = {
|
|
|
2801
2935
|
}
|
|
2802
2936
|
};
|
|
2803
2937
|
var sharedEsbuildOptions = {
|
|
2804
|
-
plugins: [versionEsbuildPlugin]
|
|
2938
|
+
plugins: [versionEsbuildPlugin, performanceTracksOptimizeDepsPlugin()]
|
|
2805
2939
|
};
|
|
2806
2940
|
function createVirtualEntriesPlugin(entries, routerPathRef) {
|
|
2807
2941
|
const virtualModules = {};
|
|
@@ -3007,6 +3141,8 @@ function createCjsToEsmPlugin() {
|
|
|
3007
3141
|
import { createServer as createViteServer } from "vite";
|
|
3008
3142
|
import { resolve as resolve8 } from "node:path";
|
|
3009
3143
|
import { readFileSync as readFileSync6 } from "node:fs";
|
|
3144
|
+
import { createRequire } from "node:module";
|
|
3145
|
+
import { pathToFileURL } from "node:url";
|
|
3010
3146
|
|
|
3011
3147
|
// src/vite/plugins/virtual-stub-plugin.ts
|
|
3012
3148
|
function createVirtualStubPlugin() {
|
|
@@ -3190,8 +3326,8 @@ function createDiscoveryState(entryPath, opts) {
|
|
|
3190
3326
|
perRouterManifestDataMap: /* @__PURE__ */ new Map(),
|
|
3191
3327
|
prerenderManifestEntries: null,
|
|
3192
3328
|
staticManifestEntries: null,
|
|
3193
|
-
|
|
3194
|
-
|
|
3329
|
+
handlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
3330
|
+
staticHandlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
3195
3331
|
rscEntryFileName: null,
|
|
3196
3332
|
resolvedPrerenderModules: void 0,
|
|
3197
3333
|
resolvedStaticModules: void 0,
|
|
@@ -3322,6 +3458,7 @@ function encodePathParam(value) {
|
|
|
3322
3458
|
}
|
|
3323
3459
|
function substituteRouteParams(pattern, params, encode = encodeURIComponent) {
|
|
3324
3460
|
let result = pattern;
|
|
3461
|
+
let hadOmittedOptional = false;
|
|
3325
3462
|
for (const [key, value] of Object.entries(params)) {
|
|
3326
3463
|
const escaped = escapeRegExp2(key);
|
|
3327
3464
|
result = result.replace(
|
|
@@ -3330,6 +3467,15 @@ function substituteRouteParams(pattern, params, encode = encodeURIComponent) {
|
|
|
3330
3467
|
);
|
|
3331
3468
|
result = result.replace(`*${key}`, encode(value));
|
|
3332
3469
|
}
|
|
3470
|
+
result = result.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)(\([^)]*\))?\?/g, () => {
|
|
3471
|
+
hadOmittedOptional = true;
|
|
3472
|
+
return "";
|
|
3473
|
+
});
|
|
3474
|
+
if (hadOmittedOptional) {
|
|
3475
|
+
const hadTrailingSlash = pattern.length > 1 && pattern.endsWith("/");
|
|
3476
|
+
result = result.replace(/\/\/+/g, "/").replace(/\/+$/, "") || "/";
|
|
3477
|
+
if (hadTrailingSlash && !result.endsWith("/")) result += "/";
|
|
3478
|
+
}
|
|
3333
3479
|
return result;
|
|
3334
3480
|
}
|
|
3335
3481
|
async function runWithConcurrency(items, concurrency, fn) {
|
|
@@ -3441,11 +3587,12 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
3441
3587
|
for (const { manifest } of allManifests) {
|
|
3442
3588
|
if (!manifest.prerenderRoutes) continue;
|
|
3443
3589
|
const defs = manifest._prerenderDefs || {};
|
|
3590
|
+
const passthroughSet = new Set(manifest.passthroughRoutes || []);
|
|
3444
3591
|
for (const routeName of manifest.prerenderRoutes) {
|
|
3445
3592
|
const pattern = manifest.routeManifest[routeName];
|
|
3446
3593
|
if (!pattern) continue;
|
|
3447
3594
|
const def = defs[routeName];
|
|
3448
|
-
const isPassthroughRoute =
|
|
3595
|
+
const isPassthroughRoute = passthroughSet.has(routeName);
|
|
3449
3596
|
const hasDynamic = pattern.includes(":") || pattern.includes("*");
|
|
3450
3597
|
if (!hasDynamic) {
|
|
3451
3598
|
entries.push({
|
|
@@ -3458,12 +3605,20 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
3458
3605
|
if (def?.getParams) {
|
|
3459
3606
|
try {
|
|
3460
3607
|
const buildVars = {};
|
|
3608
|
+
const buildEnv = state.resolvedBuildEnv;
|
|
3461
3609
|
const getParamsCtx = {
|
|
3462
3610
|
build: true,
|
|
3611
|
+
dev: !state.isBuildMode,
|
|
3463
3612
|
set: ((keyOrVar, value) => {
|
|
3464
3613
|
contextSet(buildVars, keyOrVar, value);
|
|
3465
3614
|
}),
|
|
3466
|
-
reverse: getParamsReverse
|
|
3615
|
+
reverse: getParamsReverse,
|
|
3616
|
+
get env() {
|
|
3617
|
+
if (buildEnv !== void 0) return buildEnv;
|
|
3618
|
+
throw new Error(
|
|
3619
|
+
"[rsc-router] ctx.env is not available during build-time getParams(). Configure buildEnv in your rango() plugin options to enable build-time env access."
|
|
3620
|
+
);
|
|
3621
|
+
}
|
|
3467
3622
|
};
|
|
3468
3623
|
const paramsList = await def.getParams(getParamsCtx);
|
|
3469
3624
|
const concurrency = def.options?.concurrency ?? 1;
|
|
@@ -3542,7 +3697,8 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
3542
3697
|
entry.urlPath,
|
|
3543
3698
|
{},
|
|
3544
3699
|
entry.buildVars,
|
|
3545
|
-
entry.isPassthroughRoute
|
|
3700
|
+
entry.isPassthroughRoute,
|
|
3701
|
+
state.resolvedBuildEnv
|
|
3546
3702
|
);
|
|
3547
3703
|
if (!result) continue;
|
|
3548
3704
|
if (result.passthrough) {
|
|
@@ -3666,7 +3822,9 @@ async function renderStaticHandlers(state, rscEnv, registry) {
|
|
|
3666
3822
|
const result = await routerInstance.renderStaticSegment(
|
|
3667
3823
|
def.handler,
|
|
3668
3824
|
def.$$id,
|
|
3669
|
-
def.$$routePrefix
|
|
3825
|
+
def.$$routePrefix,
|
|
3826
|
+
state.resolvedBuildEnv,
|
|
3827
|
+
!state.isBuildMode
|
|
3670
3828
|
);
|
|
3671
3829
|
if (result) {
|
|
3672
3830
|
const hasHandles = Object.keys(result.handles).length > 0;
|
|
@@ -3791,7 +3949,11 @@ async function discoverRouters(state, rscEnv) {
|
|
|
3791
3949
|
if (!router.urlpatterns || !generateManifestFull) {
|
|
3792
3950
|
continue;
|
|
3793
3951
|
}
|
|
3794
|
-
const manifest = generateManifestFull(
|
|
3952
|
+
const manifest = generateManifestFull(
|
|
3953
|
+
router.urlpatterns,
|
|
3954
|
+
routerMountIndex,
|
|
3955
|
+
router.__basename ? { urlPrefix: router.__basename } : void 0
|
|
3956
|
+
);
|
|
3795
3957
|
routerMountIndex++;
|
|
3796
3958
|
allManifests.push({ id, manifest });
|
|
3797
3959
|
const routeCount = Object.keys(manifest.routeManifest).length;
|
|
@@ -4240,48 +4402,45 @@ function postprocessBundle(state) {
|
|
|
4240
4402
|
);
|
|
4241
4403
|
const evictionTargets = [
|
|
4242
4404
|
{
|
|
4243
|
-
|
|
4405
|
+
infos: state.handlerChunkInfoMap.values(),
|
|
4244
4406
|
fnName: "Prerender",
|
|
4245
4407
|
brand: "prerenderHandler",
|
|
4246
4408
|
label: "handler code from RSC bundle"
|
|
4247
4409
|
},
|
|
4248
4410
|
{
|
|
4249
|
-
|
|
4411
|
+
infos: state.staticHandlerChunkInfoMap.values(),
|
|
4250
4412
|
fnName: "Static",
|
|
4251
4413
|
brand: "staticHandler",
|
|
4252
4414
|
label: "static handler code"
|
|
4253
4415
|
}
|
|
4254
4416
|
];
|
|
4255
4417
|
for (const target of evictionTargets) {
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4418
|
+
for (const info of target.infos) {
|
|
4419
|
+
const chunkPath = resolve7(state.projectRoot, "dist/rsc", info.fileName);
|
|
4420
|
+
try {
|
|
4421
|
+
const code = readFileSync5(chunkPath, "utf-8");
|
|
4422
|
+
const result = evictHandlerCode(
|
|
4423
|
+
code,
|
|
4424
|
+
info.exports,
|
|
4425
|
+
target.fnName,
|
|
4426
|
+
target.brand
|
|
4427
|
+
);
|
|
4428
|
+
if (result) {
|
|
4429
|
+
writeFileSync4(chunkPath, result.code);
|
|
4430
|
+
const savedKB = (result.savedBytes / 1024).toFixed(1);
|
|
4431
|
+
console.log(
|
|
4432
|
+
`[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`
|
|
4433
|
+
);
|
|
4434
|
+
}
|
|
4435
|
+
} catch (replaceErr) {
|
|
4436
|
+
console.warn(
|
|
4437
|
+
`[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`
|
|
4275
4438
|
);
|
|
4276
4439
|
}
|
|
4277
|
-
} catch (replaceErr) {
|
|
4278
|
-
console.warn(
|
|
4279
|
-
`[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`
|
|
4280
|
-
);
|
|
4281
4440
|
}
|
|
4282
4441
|
}
|
|
4283
|
-
state.
|
|
4284
|
-
state.
|
|
4442
|
+
state.handlerChunkInfoMap.clear();
|
|
4443
|
+
state.staticHandlerChunkInfoMap.clear();
|
|
4285
4444
|
if (hasPrerenderData && existsSync6(rscEntryPath)) {
|
|
4286
4445
|
const rscCode = readFileSync5(rscEntryPath, "utf-8");
|
|
4287
4446
|
if (!rscCode.includes("__prerender-manifest.js")) {
|
|
@@ -4324,7 +4483,7 @@ function postprocessBundle(state) {
|
|
|
4324
4483
|
}
|
|
4325
4484
|
if (hasStaticData && existsSync6(rscEntryPath)) {
|
|
4326
4485
|
const rscCode = readFileSync5(rscEntryPath, "utf-8");
|
|
4327
|
-
if (!rscCode.includes("
|
|
4486
|
+
if (!rscCode.includes("__static-manifest.js")) {
|
|
4328
4487
|
try {
|
|
4329
4488
|
const manifestEntries = [];
|
|
4330
4489
|
let totalBytes = copyStagedBuildAssets(
|
|
@@ -4393,8 +4552,67 @@ async function createTempRscServer(state, options = {}) {
|
|
|
4393
4552
|
]
|
|
4394
4553
|
});
|
|
4395
4554
|
}
|
|
4555
|
+
async function resolveBuildEnv(option, factoryCtx) {
|
|
4556
|
+
if (!option) return null;
|
|
4557
|
+
if (option === "auto") {
|
|
4558
|
+
if (factoryCtx.preset !== "cloudflare") {
|
|
4559
|
+
throw new Error(
|
|
4560
|
+
'[rsc-router] buildEnv: "auto" is only supported with preset: "cloudflare". Use a factory function or plain object for other presets.'
|
|
4561
|
+
);
|
|
4562
|
+
}
|
|
4563
|
+
try {
|
|
4564
|
+
const userRequire = createRequire(
|
|
4565
|
+
resolve8(factoryCtx.root, "package.json")
|
|
4566
|
+
);
|
|
4567
|
+
const wranglerPath = userRequire.resolve("wrangler");
|
|
4568
|
+
const { getPlatformProxy } = await import(pathToFileURL(wranglerPath).href);
|
|
4569
|
+
const proxy = await getPlatformProxy();
|
|
4570
|
+
return {
|
|
4571
|
+
env: proxy.env,
|
|
4572
|
+
dispose: proxy.dispose
|
|
4573
|
+
};
|
|
4574
|
+
} catch (err) {
|
|
4575
|
+
throw new Error(
|
|
4576
|
+
`[rsc-router] buildEnv: "auto" requires wrangler to be installed.
|
|
4577
|
+
Install it with: pnpm add -D wrangler
|
|
4578
|
+
${err.message}`
|
|
4579
|
+
);
|
|
4580
|
+
}
|
|
4581
|
+
}
|
|
4582
|
+
if (typeof option === "function") {
|
|
4583
|
+
return await option(factoryCtx);
|
|
4584
|
+
}
|
|
4585
|
+
return { env: option };
|
|
4586
|
+
}
|
|
4587
|
+
async function acquireBuildEnv(s, command, mode) {
|
|
4588
|
+
const option = s.opts?.buildEnv;
|
|
4589
|
+
if (!option) return false;
|
|
4590
|
+
const result = await resolveBuildEnv(option, {
|
|
4591
|
+
root: s.projectRoot,
|
|
4592
|
+
mode,
|
|
4593
|
+
command,
|
|
4594
|
+
preset: s.opts?.preset ?? "node"
|
|
4595
|
+
});
|
|
4596
|
+
if (!result) return false;
|
|
4597
|
+
s.resolvedBuildEnv = result.env;
|
|
4598
|
+
s.buildEnvDispose = result.dispose ?? null;
|
|
4599
|
+
return true;
|
|
4600
|
+
}
|
|
4601
|
+
async function releaseBuildEnv(s) {
|
|
4602
|
+
if (s.buildEnvDispose) {
|
|
4603
|
+
try {
|
|
4604
|
+
await s.buildEnvDispose();
|
|
4605
|
+
} catch (err) {
|
|
4606
|
+
console.warn(`[rsc-router] buildEnv dispose failed: ${err.message}`);
|
|
4607
|
+
}
|
|
4608
|
+
s.buildEnvDispose = null;
|
|
4609
|
+
}
|
|
4610
|
+
s.resolvedBuildEnv = void 0;
|
|
4611
|
+
}
|
|
4396
4612
|
function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
4397
4613
|
const s = createDiscoveryState(entryPath, opts);
|
|
4614
|
+
let viteCommand = "build";
|
|
4615
|
+
let viteMode = "production";
|
|
4398
4616
|
return {
|
|
4399
4617
|
name: "@rangojs/router:discovery",
|
|
4400
4618
|
config() {
|
|
@@ -4403,31 +4621,13 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
4403
4621
|
__RANGO_DEBUG__: JSON.stringify(!!process.env.INTERNAL_RANGO_DEBUG)
|
|
4404
4622
|
}
|
|
4405
4623
|
};
|
|
4406
|
-
if (opts?.enableBuildPrerender) {
|
|
4407
|
-
config.environments = {
|
|
4408
|
-
rsc: {
|
|
4409
|
-
build: {
|
|
4410
|
-
rollupOptions: {
|
|
4411
|
-
output: {
|
|
4412
|
-
manualChunks(id) {
|
|
4413
|
-
if (s.resolvedPrerenderModules?.has(id)) {
|
|
4414
|
-
return "__prerender-handlers";
|
|
4415
|
-
}
|
|
4416
|
-
if (s.resolvedStaticModules?.has(id)) {
|
|
4417
|
-
return "__static-handlers";
|
|
4418
|
-
}
|
|
4419
|
-
}
|
|
4420
|
-
}
|
|
4421
|
-
}
|
|
4422
|
-
}
|
|
4423
|
-
}
|
|
4424
|
-
};
|
|
4425
|
-
}
|
|
4426
4624
|
return config;
|
|
4427
4625
|
},
|
|
4428
4626
|
configResolved(config) {
|
|
4429
4627
|
s.projectRoot = config.root;
|
|
4430
4628
|
s.isBuildMode = config.command === "build";
|
|
4629
|
+
viteCommand = config.command;
|
|
4630
|
+
viteMode = config.mode;
|
|
4431
4631
|
s.userResolveAlias = config.resolve.alias;
|
|
4432
4632
|
if (!s.resolvedEntryPath && opts?.routerPathRef?.path) {
|
|
4433
4633
|
s.resolvedEntryPath = opts.routerPathRef.path;
|
|
@@ -4472,6 +4672,8 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
4472
4672
|
});
|
|
4473
4673
|
prerenderTempServer = null;
|
|
4474
4674
|
}
|
|
4675
|
+
releaseBuildEnv(s).catch(() => {
|
|
4676
|
+
});
|
|
4475
4677
|
});
|
|
4476
4678
|
async function getOrCreateTempServer() {
|
|
4477
4679
|
if (prerenderNodeRegistry) {
|
|
@@ -4502,6 +4704,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
4502
4704
|
if (!rscEnv?.runner) {
|
|
4503
4705
|
s.devServerOrigin = getDevServerOrigin();
|
|
4504
4706
|
try {
|
|
4707
|
+
await acquireBuildEnv(s, viteCommand, viteMode);
|
|
4505
4708
|
const tempRscEnv = await getOrCreateTempServer();
|
|
4506
4709
|
if (tempRscEnv) {
|
|
4507
4710
|
await discoverRouters(s, tempRscEnv);
|
|
@@ -4517,6 +4720,7 @@ ${err.stack}`
|
|
|
4517
4720
|
return;
|
|
4518
4721
|
}
|
|
4519
4722
|
try {
|
|
4723
|
+
await acquireBuildEnv(s, viteCommand, viteMode);
|
|
4520
4724
|
const serverMod = await rscEnv.runner.import(
|
|
4521
4725
|
"@rangojs/router/server"
|
|
4522
4726
|
);
|
|
@@ -4603,7 +4807,10 @@ ${err.stack}`
|
|
|
4603
4807
|
pathname,
|
|
4604
4808
|
{},
|
|
4605
4809
|
void 0,
|
|
4606
|
-
wantPassthrough
|
|
4810
|
+
wantPassthrough,
|
|
4811
|
+
s.resolvedBuildEnv,
|
|
4812
|
+
true
|
|
4813
|
+
// devMode: check getParams for passthrough routes
|
|
4607
4814
|
);
|
|
4608
4815
|
if (!result) continue;
|
|
4609
4816
|
if (result.passthrough) continue;
|
|
@@ -4739,6 +4946,7 @@ ${err.stack}`
|
|
|
4739
4946
|
resetStagedBuildAssets(s.projectRoot);
|
|
4740
4947
|
s.prerenderManifestEntries = null;
|
|
4741
4948
|
s.staticManifestEntries = null;
|
|
4949
|
+
await acquireBuildEnv(s, viteCommand, viteMode);
|
|
4742
4950
|
let tempServer = null;
|
|
4743
4951
|
globalThis.__rscRouterDiscoveryActive = true;
|
|
4744
4952
|
try {
|
|
@@ -4778,6 +4986,7 @@ ${details}`
|
|
|
4778
4986
|
if (tempServer) {
|
|
4779
4987
|
await tempServer.close();
|
|
4780
4988
|
}
|
|
4989
|
+
await releaseBuildEnv(s);
|
|
4781
4990
|
}
|
|
4782
4991
|
},
|
|
4783
4992
|
// Virtual module: provides the pre-generated route manifest as a JS module
|
|
@@ -4820,20 +5029,30 @@ ${details}`
|
|
|
4820
5029
|
}
|
|
4821
5030
|
if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size)
|
|
4822
5031
|
return;
|
|
5032
|
+
s.handlerChunkInfoMap.clear();
|
|
5033
|
+
s.staticHandlerChunkInfoMap.clear();
|
|
4823
5034
|
for (const [fileName, chunk] of Object.entries(bundle)) {
|
|
4824
5035
|
if (chunk.type !== "chunk") continue;
|
|
4825
|
-
if (
|
|
5036
|
+
if (s.resolvedPrerenderModules?.size) {
|
|
4826
5037
|
const handlers = extractHandlerExportsFromChunk(
|
|
4827
5038
|
chunk.code,
|
|
4828
5039
|
s.resolvedPrerenderModules,
|
|
4829
5040
|
"Prerender",
|
|
4830
|
-
|
|
5041
|
+
false
|
|
4831
5042
|
);
|
|
4832
5043
|
if (handlers.length > 0) {
|
|
4833
|
-
|
|
5044
|
+
const existing = s.handlerChunkInfoMap.get(fileName);
|
|
5045
|
+
if (existing) {
|
|
5046
|
+
existing.exports.push(...handlers);
|
|
5047
|
+
} else {
|
|
5048
|
+
s.handlerChunkInfoMap.set(fileName, {
|
|
5049
|
+
fileName,
|
|
5050
|
+
exports: handlers
|
|
5051
|
+
});
|
|
5052
|
+
}
|
|
4834
5053
|
}
|
|
4835
5054
|
}
|
|
4836
|
-
if (
|
|
5055
|
+
if (s.resolvedStaticModules?.size) {
|
|
4837
5056
|
const handlers = extractHandlerExportsFromChunk(
|
|
4838
5057
|
chunk.code,
|
|
4839
5058
|
s.resolvedStaticModules,
|
|
@@ -4841,7 +5060,15 @@ ${details}`
|
|
|
4841
5060
|
false
|
|
4842
5061
|
);
|
|
4843
5062
|
if (handlers.length > 0) {
|
|
4844
|
-
|
|
5063
|
+
const existing = s.staticHandlerChunkInfoMap.get(fileName);
|
|
5064
|
+
if (existing) {
|
|
5065
|
+
existing.exports.push(...handlers);
|
|
5066
|
+
} else {
|
|
5067
|
+
s.staticHandlerChunkInfoMap.set(fileName, {
|
|
5068
|
+
fileName,
|
|
5069
|
+
exports: handlers
|
|
5070
|
+
});
|
|
5071
|
+
}
|
|
4845
5072
|
}
|
|
4846
5073
|
}
|
|
4847
5074
|
}
|
|
@@ -4861,144 +5088,23 @@ ${details}`
|
|
|
4861
5088
|
};
|
|
4862
5089
|
}
|
|
4863
5090
|
|
|
4864
|
-
// src/vite/plugins/performance-tracks.ts
|
|
4865
|
-
import { Module } from "node:module";
|
|
4866
|
-
var DEBUG_ID_HEADER = "X-RSC-Debug-Id";
|
|
4867
|
-
var DEBUG_S2C_EVENT = "rango:perf-s2c";
|
|
4868
|
-
var DEBUG_C2S_EVENT = "rango:perf-c2s";
|
|
4869
|
-
var GLOBAL_KEY = "__RANGO_DEBUG_CHANNELS__";
|
|
4870
|
-
function getRegistry() {
|
|
4871
|
-
return Module[GLOBAL_KEY] ??= {
|
|
4872
|
-
channels: /* @__PURE__ */ new Map(),
|
|
4873
|
-
sessions: /* @__PURE__ */ new Map()
|
|
4874
|
-
};
|
|
4875
|
-
}
|
|
4876
|
-
var bytesToBase64 = (bytes) => Buffer.from(bytes).toString("base64");
|
|
4877
|
-
var base64ToBytes = (base64) => new Uint8Array(Buffer.from(base64, "base64"));
|
|
4878
|
-
function performanceTracksPlugin() {
|
|
4879
|
-
return {
|
|
4880
|
-
name: "@rangojs/router:performance-tracks",
|
|
4881
|
-
// Only configureServer hook — naturally dev-only
|
|
4882
|
-
configureServer(server) {
|
|
4883
|
-
console.log("[perf-tracks] plugin loaded, configureServer called");
|
|
4884
|
-
const hot = server.environments.client.hot;
|
|
4885
|
-
const registry = getRegistry();
|
|
4886
|
-
const sessions = registry.sessions;
|
|
4887
|
-
const sendChunk = (debugId, chunk) => {
|
|
4888
|
-
hot.send(DEBUG_S2C_EVENT, {
|
|
4889
|
-
i: debugId,
|
|
4890
|
-
b: bytesToBase64(chunk)
|
|
4891
|
-
});
|
|
4892
|
-
};
|
|
4893
|
-
const cleanupIfEnded = (debugId, session) => {
|
|
4894
|
-
if (session.pendingChunks || !session.ended) return;
|
|
4895
|
-
sessions.delete(debugId);
|
|
4896
|
-
hot.send(DEBUG_S2C_EVENT, {
|
|
4897
|
-
i: debugId,
|
|
4898
|
-
d: true
|
|
4899
|
-
});
|
|
4900
|
-
};
|
|
4901
|
-
const registerDebugChannel = (debugId) => {
|
|
4902
|
-
let session = sessions.get(debugId);
|
|
4903
|
-
if (!session) {
|
|
4904
|
-
session = { pendingChunks: [], ended: false };
|
|
4905
|
-
sessions.set(debugId, session);
|
|
4906
|
-
}
|
|
4907
|
-
const readable = new ReadableStream({
|
|
4908
|
-
start(controller) {
|
|
4909
|
-
session.cmdController = controller;
|
|
4910
|
-
},
|
|
4911
|
-
cancel() {
|
|
4912
|
-
delete session.cmdController;
|
|
4913
|
-
}
|
|
4914
|
-
});
|
|
4915
|
-
const writable = new WritableStream({
|
|
4916
|
-
write(chunk) {
|
|
4917
|
-
if (session.pendingChunks) {
|
|
4918
|
-
session.pendingChunks.push(chunk);
|
|
4919
|
-
} else {
|
|
4920
|
-
sendChunk(debugId, chunk);
|
|
4921
|
-
}
|
|
4922
|
-
},
|
|
4923
|
-
close() {
|
|
4924
|
-
session.ended = true;
|
|
4925
|
-
cleanupIfEnded(debugId, session);
|
|
4926
|
-
},
|
|
4927
|
-
abort() {
|
|
4928
|
-
session.ended = true;
|
|
4929
|
-
cleanupIfEnded(debugId, session);
|
|
4930
|
-
}
|
|
4931
|
-
});
|
|
4932
|
-
registry.channels.set(debugId, { readable, writable });
|
|
4933
|
-
};
|
|
4934
|
-
hot.on(DEBUG_C2S_EVENT, (raw) => {
|
|
4935
|
-
const payload = raw;
|
|
4936
|
-
const session = sessions.get(payload.i);
|
|
4937
|
-
if (payload.d) {
|
|
4938
|
-
if (session?.cmdController) {
|
|
4939
|
-
try {
|
|
4940
|
-
session.cmdController.close();
|
|
4941
|
-
} catch {
|
|
4942
|
-
}
|
|
4943
|
-
delete session.cmdController;
|
|
4944
|
-
}
|
|
4945
|
-
return;
|
|
4946
|
-
}
|
|
4947
|
-
if (payload.b) {
|
|
4948
|
-
if (session?.cmdController) {
|
|
4949
|
-
try {
|
|
4950
|
-
session.cmdController.enqueue(base64ToBytes(payload.b));
|
|
4951
|
-
} catch {
|
|
4952
|
-
delete session.cmdController;
|
|
4953
|
-
}
|
|
4954
|
-
}
|
|
4955
|
-
return;
|
|
4956
|
-
}
|
|
4957
|
-
if (session) {
|
|
4958
|
-
if (session.pendingChunks) {
|
|
4959
|
-
for (const chunk of session.pendingChunks) {
|
|
4960
|
-
sendChunk(payload.i, chunk);
|
|
4961
|
-
}
|
|
4962
|
-
delete session.pendingChunks;
|
|
4963
|
-
}
|
|
4964
|
-
cleanupIfEnded(payload.i, session);
|
|
4965
|
-
} else {
|
|
4966
|
-
sessions.set(payload.i, { ended: false });
|
|
4967
|
-
}
|
|
4968
|
-
});
|
|
4969
|
-
server.middlewares.use((req, _res, next) => {
|
|
4970
|
-
const existingId = req.headers[DEBUG_ID_HEADER.toLowerCase()];
|
|
4971
|
-
const debugId = existingId || crypto.randomUUID();
|
|
4972
|
-
if (!existingId) {
|
|
4973
|
-
const lowerName = DEBUG_ID_HEADER.toLowerCase();
|
|
4974
|
-
req.headers[lowerName] = debugId;
|
|
4975
|
-
if (req.rawHeaders) {
|
|
4976
|
-
req.rawHeaders.push(DEBUG_ID_HEADER, debugId);
|
|
4977
|
-
}
|
|
4978
|
-
}
|
|
4979
|
-
registerDebugChannel(debugId);
|
|
4980
|
-
console.log(
|
|
4981
|
-
"[perf-tracks] middleware: channel for",
|
|
4982
|
-
debugId,
|
|
4983
|
-
"url:",
|
|
4984
|
-
req.url?.slice(0, 60),
|
|
4985
|
-
existingId ? "(client)" : "(server-generated)"
|
|
4986
|
-
);
|
|
4987
|
-
next();
|
|
4988
|
-
});
|
|
4989
|
-
}
|
|
4990
|
-
};
|
|
4991
|
-
}
|
|
4992
|
-
|
|
4993
5091
|
// src/vite/rango.ts
|
|
4994
5092
|
async function rango(options) {
|
|
4995
5093
|
const resolvedOptions = options ?? { preset: "node" };
|
|
4996
5094
|
const preset = resolvedOptions.preset ?? "node";
|
|
4997
|
-
console.log("[perf-tracks] rango() called, preset:", preset);
|
|
4998
5095
|
const showBanner = resolvedOptions.banner ?? true;
|
|
4999
5096
|
const plugins = [];
|
|
5000
5097
|
const rangoAliases = getPackageAliases();
|
|
5001
|
-
const excludeDeps =
|
|
5098
|
+
const excludeDeps = [
|
|
5099
|
+
...getExcludeDeps(),
|
|
5100
|
+
// The public browser entry re-exports the RSDW browser client.
|
|
5101
|
+
// Excluding both keeps Vite from freezing the unpatched bundle into
|
|
5102
|
+
// .vite/deps before our source transforms run.
|
|
5103
|
+
"@vitejs/plugin-rsc/browser",
|
|
5104
|
+
// Keep the browser RSDW client out of Vite's dep optimizer so our
|
|
5105
|
+
// cjs-to-esm transform can patch the real file.
|
|
5106
|
+
"@vitejs/plugin-rsc/vendor/react-server-dom/client.browser"
|
|
5107
|
+
];
|
|
5002
5108
|
const routerRef = { path: void 0 };
|
|
5003
5109
|
const prerenderEnabled = true;
|
|
5004
5110
|
if (preset === "cloudflare") {
|
|
@@ -5094,6 +5200,7 @@ async function rango(options) {
|
|
|
5094
5200
|
}
|
|
5095
5201
|
});
|
|
5096
5202
|
plugins.push(createVirtualEntriesPlugin(finalEntries));
|
|
5203
|
+
plugins.push(performanceTracksPlugin());
|
|
5097
5204
|
plugins.push(
|
|
5098
5205
|
rsc({
|
|
5099
5206
|
entries: finalEntries,
|
|
@@ -5212,12 +5319,7 @@ ${list}`);
|
|
|
5212
5319
|
}
|
|
5213
5320
|
});
|
|
5214
5321
|
plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
|
|
5215
|
-
|
|
5216
|
-
console.log(
|
|
5217
|
-
"[perf-tracks] rango: plugin created, has configureServer:",
|
|
5218
|
-
!!perfPlugin.configureServer
|
|
5219
|
-
);
|
|
5220
|
-
plugins.push(perfPlugin);
|
|
5322
|
+
plugins.push(performanceTracksPlugin());
|
|
5221
5323
|
plugins.push(
|
|
5222
5324
|
rsc({
|
|
5223
5325
|
entries: finalEntries
|
|
@@ -5258,7 +5360,8 @@ ${list}`);
|
|
|
5258
5360
|
createRouterDiscoveryPlugin(discoveryEntryPath, {
|
|
5259
5361
|
routerPathRef: discoveryRouterRef,
|
|
5260
5362
|
enableBuildPrerender: prerenderEnabled,
|
|
5261
|
-
|
|
5363
|
+
buildEnv: options?.buildEnv,
|
|
5364
|
+
preset
|
|
5262
5365
|
})
|
|
5263
5366
|
);
|
|
5264
5367
|
return plugins;
|
|
@@ -5271,29 +5374,75 @@ function poke() {
|
|
|
5271
5374
|
apply: "serve",
|
|
5272
5375
|
configureServer(server) {
|
|
5273
5376
|
const stdin = process.stdin;
|
|
5274
|
-
const
|
|
5377
|
+
const debug = process.env.RANGO_POKE_DEBUG === "1";
|
|
5378
|
+
const triggerReload = (source) => {
|
|
5379
|
+
server.hot.send({ type: "full-reload", path: "*" });
|
|
5380
|
+
server.config.logger.info(` browser reload (${source})`, {
|
|
5381
|
+
timestamp: true
|
|
5382
|
+
});
|
|
5383
|
+
};
|
|
5384
|
+
const toBuffer = (chunk) => {
|
|
5385
|
+
return typeof chunk === "string" ? Buffer.from(chunk, "utf8") : chunk;
|
|
5386
|
+
};
|
|
5387
|
+
const formatChunk = (chunk) => {
|
|
5388
|
+
const data = toBuffer(chunk);
|
|
5389
|
+
const hex = Array.from(data).map((byte) => `0x${byte.toString(16).padStart(2, "0")}`).join(" ");
|
|
5390
|
+
const ascii = Array.from(data).map((byte) => {
|
|
5391
|
+
if (byte >= 32 && byte <= 126) return String.fromCharCode(byte);
|
|
5392
|
+
if (byte === 10) return "\\n";
|
|
5393
|
+
if (byte === 13) return "\\r";
|
|
5394
|
+
if (byte === 9) return "\\t";
|
|
5395
|
+
return ".";
|
|
5396
|
+
}).join("");
|
|
5397
|
+
return `len=${data.length} hex=[${hex}] ascii="${ascii}"`;
|
|
5398
|
+
};
|
|
5399
|
+
const readCtrlR = (chunk) => {
|
|
5400
|
+
const data = typeof chunk === "string" ? Buffer.from(chunk, "utf8") : chunk;
|
|
5401
|
+
return data.length === 1 && data[0] === 18;
|
|
5402
|
+
};
|
|
5403
|
+
const readSubmittedCommands = (chunk) => {
|
|
5404
|
+
const text = toBuffer(chunk).toString("utf8").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
5405
|
+
if (!text.includes("\n")) return [];
|
|
5406
|
+
const lines = text.split("\n");
|
|
5407
|
+
lines.pop();
|
|
5408
|
+
return lines;
|
|
5409
|
+
};
|
|
5410
|
+
if (debug) {
|
|
5411
|
+
server.config.logger.info(
|
|
5412
|
+
` poke debug enabled (isTTY=${stdin.isTTY ? "yes" : "no"}, isRaw=${stdin.isTTY ? stdin.isRaw ? "yes" : "no" : "n/a"})`,
|
|
5413
|
+
{ timestamp: true }
|
|
5414
|
+
);
|
|
5415
|
+
}
|
|
5275
5416
|
if (stdin.isTTY) {
|
|
5276
|
-
|
|
5417
|
+
server.config.logger.info(
|
|
5418
|
+
" poke ready: press e + enter to reload browser (ctrl+r also works when available)",
|
|
5419
|
+
{ timestamp: true }
|
|
5420
|
+
);
|
|
5277
5421
|
}
|
|
5278
5422
|
const onData = (data) => {
|
|
5279
|
-
if (
|
|
5280
|
-
|
|
5281
|
-
process.emit("SIGINT", "SIGINT");
|
|
5282
|
-
return;
|
|
5283
|
-
}
|
|
5284
|
-
if (data[0] === 18) {
|
|
5285
|
-
server.hot.send({ type: "full-reload", path: "*" });
|
|
5286
|
-
server.config.logger.info(" browser reload (ctrl+r)", {
|
|
5423
|
+
if (debug) {
|
|
5424
|
+
server.config.logger.info(` poke stdin ${formatChunk(data)}`, {
|
|
5287
5425
|
timestamp: true
|
|
5288
5426
|
});
|
|
5289
5427
|
}
|
|
5428
|
+
if (readCtrlR(data)) {
|
|
5429
|
+
triggerReload("ctrl+r");
|
|
5430
|
+
return;
|
|
5431
|
+
}
|
|
5432
|
+
for (const command of readSubmittedCommands(data)) {
|
|
5433
|
+
if (command === "e") {
|
|
5434
|
+
triggerReload("e+enter");
|
|
5435
|
+
return;
|
|
5436
|
+
}
|
|
5437
|
+
if (command === "\x1Br") {
|
|
5438
|
+
triggerReload("option+r+enter");
|
|
5439
|
+
return;
|
|
5440
|
+
}
|
|
5441
|
+
}
|
|
5290
5442
|
};
|
|
5291
5443
|
stdin.on("data", onData);
|
|
5292
5444
|
server.httpServer?.on("close", () => {
|
|
5293
5445
|
stdin.off("data", onData);
|
|
5294
|
-
if (stdin.isTTY && previousRawMode !== null) {
|
|
5295
|
-
stdin.setRawMode(previousRawMode);
|
|
5296
|
-
}
|
|
5297
5446
|
});
|
|
5298
5447
|
}
|
|
5299
5448
|
};
|