@rangojs/router 0.0.0-experimental.9c9afef3 → 0.0.0-experimental.9eb4192e
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 +126 -38
- package/dist/bin/rango.js +130 -47
- package/dist/vite/index.js +1543 -574
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/package.json +7 -5
- package/skills/breadcrumbs/SKILL.md +3 -1
- package/skills/handler-use/SKILL.md +362 -0
- package/skills/hooks/SKILL.md +28 -20
- package/skills/intercept/SKILL.md +20 -0
- package/skills/layout/SKILL.md +22 -0
- package/skills/links/SKILL.md +91 -17
- package/skills/loader/SKILL.md +35 -2
- package/skills/middleware/SKILL.md +34 -3
- package/skills/migrate-nextjs/SKILL.md +560 -0
- package/skills/migrate-react-router/SKILL.md +765 -0
- package/skills/parallel/SKILL.md +59 -0
- package/skills/prerender/SKILL.md +110 -68
- package/skills/rango/SKILL.md +24 -22
- package/skills/response-routes/SKILL.md +8 -0
- package/skills/route/SKILL.md +24 -0
- package/skills/router-setup/SKILL.md +35 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/typesafety/SKILL.md +3 -1
- package/src/__internal.ts +1 -1
- package/src/browser/app-shell.ts +52 -0
- package/src/browser/app-version.ts +14 -0
- package/src/browser/navigation-bridge.ts +87 -6
- package/src/browser/navigation-client.ts +128 -68
- package/src/browser/navigation-store.ts +68 -9
- package/src/browser/partial-update.ts +60 -7
- package/src/browser/prefetch/cache.ts +129 -21
- package/src/browser/prefetch/fetch.ts +156 -18
- package/src/browser/prefetch/queue.ts +36 -5
- package/src/browser/rango-state.ts +53 -13
- package/src/browser/react/Link.tsx +72 -8
- package/src/browser/react/NavigationProvider.tsx +57 -11
- package/src/browser/react/context.ts +7 -2
- package/src/browser/react/use-handle.ts +9 -58
- package/src/browser/react/use-navigation.ts +22 -2
- package/src/browser/react/use-params.ts +11 -1
- package/src/browser/react/use-router.ts +29 -9
- package/src/browser/rsc-router.tsx +60 -9
- package/src/browser/scroll-restoration.ts +10 -8
- package/src/browser/segment-reconciler.ts +36 -14
- package/src/browser/server-action-bridge.ts +8 -17
- package/src/browser/types.ts +37 -5
- package/src/build/generate-manifest.ts +6 -6
- package/src/build/generate-route-types.ts +3 -0
- package/src/build/route-trie.ts +50 -24
- 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/cache/cf/cf-cache-store.ts +5 -7
- package/src/client.tsx +84 -230
- package/src/handle.ts +40 -0
- package/src/index.rsc.ts +6 -1
- package/src/index.ts +49 -6
- package/src/outlet-context.ts +1 -1
- package/src/prerender/store.ts +5 -4
- package/src/prerender.ts +138 -77
- package/src/response-utils.ts +28 -0
- package/src/reverse.ts +27 -2
- package/src/route-definition/dsl-helpers.ts +210 -35
- package/src/route-definition/helpers-types.ts +61 -14
- package/src/route-definition/index.ts +3 -0
- package/src/route-definition/redirect.ts +9 -1
- package/src/route-definition/resolve-handler-use.ts +155 -0
- package/src/route-types.ts +18 -0
- package/src/router/content-negotiation.ts +100 -1
- package/src/router/handler-context.ts +70 -17
- package/src/router/intercept-resolution.ts +9 -4
- package/src/router/lazy-includes.ts +6 -6
- package/src/router/loader-resolution.ts +153 -21
- package/src/router/manifest.ts +22 -13
- package/src/router/match-api.ts +127 -192
- package/src/router/match-middleware/cache-lookup.ts +28 -8
- package/src/router/match-middleware/segment-resolution.ts +53 -0
- package/src/router/match-result.ts +82 -4
- package/src/router/middleware-types.ts +2 -28
- package/src/router/middleware.ts +32 -7
- package/src/router/navigation-snapshot.ts +182 -0
- package/src/router/pattern-matching.ts +60 -9
- 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 +70 -5
- package/src/router/segment-resolution/revalidation.ts +87 -9
- package/src/router/trie-matching.ts +10 -4
- package/src/router/url-params.ts +49 -0
- package/src/router.ts +54 -7
- package/src/rsc/handler.ts +478 -395
- package/src/rsc/helpers.ts +69 -41
- package/src/rsc/loader-fetch.ts +18 -3
- package/src/rsc/manifest-init.ts +5 -1
- package/src/rsc/progressive-enhancement.ts +14 -3
- package/src/rsc/response-route-handler.ts +14 -1
- package/src/rsc/rsc-rendering.ts +15 -2
- package/src/rsc/server-action.ts +10 -2
- package/src/rsc/ssr-setup.ts +2 -2
- package/src/rsc/types.ts +6 -4
- package/src/segment-content-promise.ts +67 -0
- package/src/segment-loader-promise.ts +122 -0
- package/src/segment-system.tsx +11 -61
- package/src/server/context.ts +65 -5
- package/src/server/handle-store.ts +19 -0
- package/src/server/loader-registry.ts +9 -8
- package/src/server/request-context.ts +142 -55
- 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 -43
- package/src/types/loader-types.ts +37 -11
- package/src/types/request-scope.ts +126 -0
- package/src/types/route-entry.ts +12 -1
- package/src/types/segments.ts +1 -1
- package/src/urls/include-helper.ts +24 -14
- package/src/urls/path-helper-types.ts +39 -6
- package/src/urls/path-helper.ts +47 -12
- package/src/urls/pattern-types.ts +12 -0
- package/src/urls/response-types.ts +18 -16
- package/src/use-loader.tsx +77 -5
- package/src/vite/debug.ts +140 -0
- package/src/vite/discovery/bundle-postprocess.ts +30 -33
- package/src/vite/discovery/discover-routers.ts +36 -4
- package/src/vite/discovery/prerender-collection.ts +175 -74
- 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/cjs-to-esm.ts +11 -0
- package/src/vite/plugins/client-ref-dedup.ts +21 -0
- package/src/vite/plugins/client-ref-hashing.ts +16 -4
- package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
- package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
- package/src/vite/plugins/expose-action-id.ts +52 -28
- package/src/vite/plugins/expose-id-utils.ts +12 -0
- package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
- package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
- package/src/vite/plugins/expose-internal-ids.ts +563 -316
- package/src/vite/plugins/performance-tracks.ts +71 -170
- package/src/vite/plugins/refresh-cmd.ts +88 -26
- package/src/vite/plugins/use-cache-transform.ts +57 -43
- package/src/vite/rango.ts +62 -14
- package/src/vite/router-discovery.ts +389 -59
- package/src/vite/utils/banner.ts +1 -1
- package/src/vite/utils/package-resolution.ts +41 -1
- package/src/vite/utils/prerender-utils.ts +37 -5
- 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
|
@@ -10,6 +10,8 @@ import type { Plugin } from "vite";
|
|
|
10
10
|
import { createServer as createViteServer } from "vite";
|
|
11
11
|
import { resolve } from "node:path";
|
|
12
12
|
import { readFileSync } from "node:fs";
|
|
13
|
+
import { createRequire, register } from "node:module";
|
|
14
|
+
import { pathToFileURL } from "node:url";
|
|
13
15
|
import {
|
|
14
16
|
formatNestedRouterConflictError,
|
|
15
17
|
findNestedRouterConflict,
|
|
@@ -17,6 +19,10 @@ import {
|
|
|
17
19
|
} from "../build/generate-route-types.js";
|
|
18
20
|
import { createVersionPlugin } from "./plugins/version-plugin.js";
|
|
19
21
|
import { createVirtualStubPlugin } from "./plugins/virtual-stub-plugin.js";
|
|
22
|
+
import {
|
|
23
|
+
BUILD_ENV_GLOBAL_KEY,
|
|
24
|
+
createCloudflareProtocolStubPlugin,
|
|
25
|
+
} from "./plugins/cloudflare-protocol-stub.js";
|
|
20
26
|
import {
|
|
21
27
|
exposeInternalIds,
|
|
22
28
|
exposeRouterId,
|
|
@@ -42,9 +48,58 @@ import {
|
|
|
42
48
|
} from "./discovery/virtual-module-codegen.js";
|
|
43
49
|
import { postprocessBundle } from "./discovery/bundle-postprocess.js";
|
|
44
50
|
import { resetStagedBuildAssets } from "./utils/prerender-utils.js";
|
|
51
|
+
import { createRangoDebugger, timed, timedSync } from "./debug.js";
|
|
52
|
+
|
|
53
|
+
const debugDiscovery = createRangoDebugger("rango:discovery");
|
|
54
|
+
const debugRoutes = createRangoDebugger("rango:routes");
|
|
55
|
+
const debugBuild = createRangoDebugger("rango:build");
|
|
56
|
+
const debugDev = createRangoDebugger("rango:dev");
|
|
45
57
|
|
|
46
58
|
export { VIRTUAL_ROUTES_MANIFEST_ID };
|
|
47
59
|
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Node ESM Loader Hook Registration
|
|
62
|
+
// ============================================================================
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Registers a Node ESM loader hook that resolves `cloudflare:*` specifiers
|
|
66
|
+
* to a data: URL stub. Defense-in-depth alongside the Vite transform in
|
|
67
|
+
* `cloudflare-protocol-stub.ts`:
|
|
68
|
+
*
|
|
69
|
+
* - The Vite transform catches `cloudflare:*` imports in modules that flow
|
|
70
|
+
* through Vite's plugin pipeline. That's the vast majority of cases.
|
|
71
|
+
* - The Node loader catches imports in modules that Vite/Rollup externalize
|
|
72
|
+
* (e.g. the `partyserver` package, which has a top-level
|
|
73
|
+
* `import { DurableObject, env } from "cloudflare:workers"` and ships
|
|
74
|
+
* shapes plugin-rsc marks as external). Externalized modules are loaded
|
|
75
|
+
* via Node's native ESM loader, which rejects URL schemes.
|
|
76
|
+
*
|
|
77
|
+
* Registration is process-global and one-shot. The hook only intercepts
|
|
78
|
+
* `cloudflare:*` specifiers; everything else passes through via
|
|
79
|
+
* `nextResolve()`. It runs in a separate worker thread (Node ESM loader
|
|
80
|
+
* architecture), so it can't read the `globalThis[BUILD_ENV_GLOBAL_KEY]`
|
|
81
|
+
* bridge that the Vite transform uses — the stubs served here always
|
|
82
|
+
* return `env = {}`. That's fine because externalized libraries don't
|
|
83
|
+
* typically access `env` at module top level; user source (where real
|
|
84
|
+
* `env` matters at build time) flows through the Vite transform.
|
|
85
|
+
*/
|
|
86
|
+
let loaderHookRegistered = false;
|
|
87
|
+
function ensureCloudflareProtocolLoaderRegistered(): void {
|
|
88
|
+
if (loaderHookRegistered) return;
|
|
89
|
+
loaderHookRegistered = true;
|
|
90
|
+
try {
|
|
91
|
+
register(
|
|
92
|
+
new URL("./plugins/cloudflare-protocol-loader-hook.mjs", import.meta.url),
|
|
93
|
+
);
|
|
94
|
+
} catch (err: any) {
|
|
95
|
+
// register() requires Node 18.19+ / 20.6+. Older Node still has the
|
|
96
|
+
// Vite transform as primary defense.
|
|
97
|
+
console.warn(
|
|
98
|
+
`[rsc-router] Could not register Node ESM loader hook for cloudflare:* imports (${err?.message ?? err}). Falling back to Vite transform only.`,
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
48
103
|
// ============================================================================
|
|
49
104
|
// Temp Server Factory
|
|
50
105
|
// ============================================================================
|
|
@@ -64,6 +119,11 @@ async function createTempRscServer(
|
|
|
64
119
|
state: DiscoveryState,
|
|
65
120
|
options: { forceBuild?: boolean; cacheDir?: string } = {},
|
|
66
121
|
) {
|
|
122
|
+
// Install the Node ESM loader hook before any module evaluation so
|
|
123
|
+
// `cloudflare:*` specifiers in externalized/loader-delegated modules
|
|
124
|
+
// (e.g. packages plugin-rsc marks as external) resolve to stubs
|
|
125
|
+
// instead of crashing Node's native loader.
|
|
126
|
+
ensureCloudflareProtocolLoaderRegistered();
|
|
67
127
|
const { default: rsc } = await import("@vitejs/plugin-rsc");
|
|
68
128
|
return createViteServer({
|
|
69
129
|
root: state.projectRoot,
|
|
@@ -86,6 +146,7 @@ async function createTempRscServer(
|
|
|
86
146
|
...(options.forceBuild ? [hashClientRefs(state.projectRoot)] : []),
|
|
87
147
|
createVersionPlugin(),
|
|
88
148
|
createVirtualStubPlugin(),
|
|
149
|
+
createCloudflareProtocolStubPlugin(),
|
|
89
150
|
// Dev prerender must use dev-mode IDs (path-based) to match the workerd
|
|
90
151
|
// runtime. forceBuild produces hashed IDs for production bundle consistency.
|
|
91
152
|
exposeInternalIds(options.forceBuild ? { forceBuild: true } : undefined),
|
|
@@ -94,6 +155,111 @@ async function createTempRscServer(
|
|
|
94
155
|
});
|
|
95
156
|
}
|
|
96
157
|
|
|
158
|
+
// ============================================================================
|
|
159
|
+
// Build-Time Env Resolution
|
|
160
|
+
// ============================================================================
|
|
161
|
+
|
|
162
|
+
import type {
|
|
163
|
+
BuildEnvOption,
|
|
164
|
+
BuildEnvFactoryContext,
|
|
165
|
+
BuildEnvResult,
|
|
166
|
+
} from "./plugin-types.js";
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Resolve the buildEnv option into a concrete { env, dispose? } result.
|
|
170
|
+
* Handles all four input shapes: false, "auto", factory, plain object.
|
|
171
|
+
*/
|
|
172
|
+
async function resolveBuildEnv(
|
|
173
|
+
option: BuildEnvOption | undefined,
|
|
174
|
+
factoryCtx: BuildEnvFactoryContext,
|
|
175
|
+
): Promise<BuildEnvResult | null> {
|
|
176
|
+
if (!option) return null;
|
|
177
|
+
|
|
178
|
+
if (option === "auto") {
|
|
179
|
+
if (factoryCtx.preset !== "cloudflare") {
|
|
180
|
+
throw new Error(
|
|
181
|
+
'[rsc-router] buildEnv: "auto" is only supported with preset: "cloudflare". ' +
|
|
182
|
+
"Use a factory function or plain object for other presets.",
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
// Resolve wrangler from the user's project root (not the router package)
|
|
187
|
+
const userRequire = createRequire(
|
|
188
|
+
resolve(factoryCtx.root, "package.json"),
|
|
189
|
+
);
|
|
190
|
+
const wranglerPath = userRequire.resolve("wrangler");
|
|
191
|
+
const { getPlatformProxy } = (await import(
|
|
192
|
+
pathToFileURL(wranglerPath).href
|
|
193
|
+
)) as {
|
|
194
|
+
getPlatformProxy: (opts?: any) => Promise<any>;
|
|
195
|
+
};
|
|
196
|
+
const proxy = await getPlatformProxy();
|
|
197
|
+
return {
|
|
198
|
+
env: proxy.env as Record<string, unknown>,
|
|
199
|
+
dispose: proxy.dispose,
|
|
200
|
+
};
|
|
201
|
+
} catch (err: any) {
|
|
202
|
+
throw new Error(
|
|
203
|
+
'[rsc-router] buildEnv: "auto" requires wrangler to be installed.\n' +
|
|
204
|
+
`Install it with: pnpm add -D wrangler\n${err.message}`,
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
if (typeof option === "function") {
|
|
210
|
+
return await option(factoryCtx);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Plain object
|
|
214
|
+
return { env: option };
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Acquire build-time env bindings and store on discovery state.
|
|
219
|
+
* Returns true if env was acquired, false if buildEnv is disabled.
|
|
220
|
+
*/
|
|
221
|
+
async function acquireBuildEnv(
|
|
222
|
+
s: DiscoveryState,
|
|
223
|
+
command: "serve" | "build",
|
|
224
|
+
mode: string,
|
|
225
|
+
): Promise<boolean> {
|
|
226
|
+
const option = s.opts?.buildEnv;
|
|
227
|
+
if (!option) return false;
|
|
228
|
+
|
|
229
|
+
const result = await resolveBuildEnv(option, {
|
|
230
|
+
root: s.projectRoot,
|
|
231
|
+
mode,
|
|
232
|
+
command,
|
|
233
|
+
preset: s.opts?.preset ?? "node",
|
|
234
|
+
});
|
|
235
|
+
if (!result) return false;
|
|
236
|
+
|
|
237
|
+
s.resolvedBuildEnv = result.env;
|
|
238
|
+
s.buildEnvDispose = result.dispose ?? null;
|
|
239
|
+
// Bridge the resolved env into `cloudflare:workers`'s stubbed `env`
|
|
240
|
+
// export so user code that does `import { env } from "cloudflare:workers"`
|
|
241
|
+
// sees the real bindings proxy during discovery + prerender instead of
|
|
242
|
+
// an empty object. The stub reads this global at module-evaluation time.
|
|
243
|
+
(globalThis as Record<string, unknown>)[BUILD_ENV_GLOBAL_KEY] = result.env;
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Release build-time env resources and clear state.
|
|
249
|
+
*/
|
|
250
|
+
async function releaseBuildEnv(s: DiscoveryState): Promise<void> {
|
|
251
|
+
if (s.buildEnvDispose) {
|
|
252
|
+
try {
|
|
253
|
+
await s.buildEnvDispose();
|
|
254
|
+
} catch (err: any) {
|
|
255
|
+
console.warn(`[rsc-router] buildEnv dispose failed: ${err.message}`);
|
|
256
|
+
}
|
|
257
|
+
s.buildEnvDispose = null;
|
|
258
|
+
}
|
|
259
|
+
s.resolvedBuildEnv = undefined;
|
|
260
|
+
delete (globalThis as Record<string, unknown>)[BUILD_ENV_GLOBAL_KEY];
|
|
261
|
+
}
|
|
262
|
+
|
|
97
263
|
/**
|
|
98
264
|
* Plugin that discovers router instances at dev/build time via the RSC environment.
|
|
99
265
|
*
|
|
@@ -111,6 +277,8 @@ export function createRouterDiscoveryPlugin(
|
|
|
111
277
|
opts?: PluginOptions,
|
|
112
278
|
): Plugin {
|
|
113
279
|
const s = createDiscoveryState(entryPath, opts);
|
|
280
|
+
let viteCommand: "serve" | "build" = "build";
|
|
281
|
+
let viteMode = "production";
|
|
114
282
|
|
|
115
283
|
return {
|
|
116
284
|
name: "@rangojs/router:discovery",
|
|
@@ -121,32 +289,20 @@ export function createRouterDiscoveryPlugin(
|
|
|
121
289
|
__RANGO_DEBUG__: JSON.stringify(!!process.env.INTERNAL_RANGO_DEBUG),
|
|
122
290
|
},
|
|
123
291
|
};
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
manualChunks(id: string) {
|
|
131
|
-
if (s.resolvedPrerenderModules?.has(id)) {
|
|
132
|
-
return "__prerender-handlers";
|
|
133
|
-
}
|
|
134
|
-
if (s.resolvedStaticModules?.has(id)) {
|
|
135
|
-
return "__static-handlers";
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
}
|
|
292
|
+
// Prerender/static handler modules are bundled naturally with the
|
|
293
|
+
// rest of the RSC entry. A previous design forced them into dedicated
|
|
294
|
+
// __prerender-handlers / __static-handlers chunks via manualChunks,
|
|
295
|
+
// but Rollup hoisted all shared dependencies into those chunks,
|
|
296
|
+
// inflating them to ~1 MB with active runtime code. Handler code is
|
|
297
|
+
// evicted in closeBundle regardless of which chunk it lands in.
|
|
144
298
|
return config;
|
|
145
299
|
},
|
|
146
300
|
|
|
147
301
|
configResolved(config) {
|
|
148
302
|
s.projectRoot = config.root;
|
|
149
303
|
s.isBuildMode = config.command === "build";
|
|
304
|
+
viteCommand = config.command as "serve" | "build";
|
|
305
|
+
viteMode = config.mode;
|
|
150
306
|
// Capture user's resolve aliases for the temp server
|
|
151
307
|
s.userResolveAlias = config.resolve.alias;
|
|
152
308
|
// Node preset: pick up auto-discovered router path from the config() hook.
|
|
@@ -217,12 +373,13 @@ export function createRouterDiscoveryPlugin(
|
|
|
217
373
|
let prerenderTempServer: any = null;
|
|
218
374
|
let prerenderNodeRegistry: Map<string, any> | null = null;
|
|
219
375
|
|
|
220
|
-
// Clean up the temporary server when the dev server shuts down
|
|
376
|
+
// Clean up the temporary server and build env when the dev server shuts down
|
|
221
377
|
server.httpServer?.on("close", () => {
|
|
222
378
|
if (prerenderTempServer) {
|
|
223
379
|
prerenderTempServer.close().catch(() => {});
|
|
224
380
|
prerenderTempServer = null;
|
|
225
381
|
}
|
|
382
|
+
releaseBuildEnv(s).catch(() => {});
|
|
226
383
|
});
|
|
227
384
|
|
|
228
385
|
async function getOrCreateTempServer(): Promise<any | null> {
|
|
@@ -252,20 +409,35 @@ export function createRouterDiscoveryPlugin(
|
|
|
252
409
|
}
|
|
253
410
|
|
|
254
411
|
const discover = async () => {
|
|
412
|
+
const discoverStart = performance.now();
|
|
255
413
|
const rscEnv = (server.environments as any)?.rsc;
|
|
256
414
|
if (!rscEnv?.runner) {
|
|
257
415
|
// Cloudflare dev: no module runner available (workerd-based RSC env).
|
|
258
416
|
// Set devServerOrigin so the virtual module can inject __PRERENDER_DEV_URL
|
|
259
417
|
// for on-demand prerender via the /__rsc_prerender endpoint.
|
|
418
|
+
debugDiscovery?.("dev: no rsc runner (cloudflare path)");
|
|
260
419
|
s.devServerOrigin = getDevServerOrigin();
|
|
261
420
|
|
|
262
421
|
// Create a temp Node.js server to run runtime discovery and generate
|
|
263
422
|
// named route types (static parser can't resolve factory calls).
|
|
264
423
|
try {
|
|
265
|
-
|
|
424
|
+
// Acquire build-time env bindings for dev prerender
|
|
425
|
+
await timed(debugDiscovery, "acquireBuildEnv", () =>
|
|
426
|
+
acquireBuildEnv(s, viteCommand, viteMode),
|
|
427
|
+
);
|
|
428
|
+
|
|
429
|
+
const tempRscEnv = await timed(
|
|
430
|
+
debugDiscovery,
|
|
431
|
+
"getOrCreateTempServer",
|
|
432
|
+
() => getOrCreateTempServer(),
|
|
433
|
+
);
|
|
266
434
|
if (tempRscEnv) {
|
|
267
|
-
await discoverRouters(
|
|
268
|
-
|
|
435
|
+
await timed(debugDiscovery, "discoverRouters (cloudflare)", () =>
|
|
436
|
+
discoverRouters(s, tempRscEnv),
|
|
437
|
+
);
|
|
438
|
+
timedSync(debugDiscovery, "writeRouteTypesFiles", () =>
|
|
439
|
+
writeRouteTypesFiles(s),
|
|
440
|
+
);
|
|
269
441
|
}
|
|
270
442
|
} catch (err: any) {
|
|
271
443
|
console.warn(
|
|
@@ -273,21 +445,35 @@ export function createRouterDiscoveryPlugin(
|
|
|
273
445
|
);
|
|
274
446
|
}
|
|
275
447
|
|
|
448
|
+
debugDiscovery?.(
|
|
449
|
+
"dev discovery done (%sms)",
|
|
450
|
+
(performance.now() - discoverStart).toFixed(1),
|
|
451
|
+
);
|
|
276
452
|
resolveDiscovery!();
|
|
277
453
|
return;
|
|
278
454
|
}
|
|
279
455
|
|
|
280
456
|
try {
|
|
457
|
+
// Acquire build-time env bindings for dev prerender (Node.js path)
|
|
458
|
+
debugDiscovery?.("dev: node path start");
|
|
459
|
+
await timed(debugDiscovery, "acquireBuildEnv", () =>
|
|
460
|
+
acquireBuildEnv(s, viteCommand, viteMode),
|
|
461
|
+
);
|
|
462
|
+
|
|
281
463
|
// Set the readiness gate BEFORE discovery so early requests
|
|
282
464
|
// block until manifest is populated
|
|
283
|
-
const serverMod = await
|
|
284
|
-
|
|
465
|
+
const serverMod = await timed(
|
|
466
|
+
debugDiscovery,
|
|
467
|
+
"import @rangojs/router/server",
|
|
468
|
+
() => rscEnv.runner.import("@rangojs/router/server"),
|
|
285
469
|
);
|
|
286
470
|
if (serverMod?.setManifestReadyPromise) {
|
|
287
471
|
serverMod.setManifestReadyPromise(discoveryPromise);
|
|
288
472
|
}
|
|
289
473
|
|
|
290
|
-
await
|
|
474
|
+
await timed(debugDiscovery, "discoverRouters", () =>
|
|
475
|
+
discoverRouters(s, rscEnv),
|
|
476
|
+
);
|
|
291
477
|
|
|
292
478
|
// Store server origin for dev prerender endpoint (virtual module injection)
|
|
293
479
|
s.devServerOrigin = getDevServerOrigin();
|
|
@@ -297,15 +483,23 @@ export function createRouterDiscoveryPlugin(
|
|
|
297
483
|
// routes (e.g. Array.from loops) that the static parser cannot see.
|
|
298
484
|
// writeRouteTypesFiles() only writes when content changes, so this
|
|
299
485
|
// won't cause unnecessary HMR triggers.
|
|
300
|
-
writeRouteTypesFiles(
|
|
486
|
+
timedSync(debugDiscovery, "writeRouteTypesFiles", () =>
|
|
487
|
+
writeRouteTypesFiles(s),
|
|
488
|
+
);
|
|
301
489
|
|
|
302
490
|
// Populate the route map and per-router data in the RSC env
|
|
303
|
-
await propagateDiscoveryState(
|
|
491
|
+
await timed(debugDiscovery, "propagateDiscoveryState", () =>
|
|
492
|
+
propagateDiscoveryState(rscEnv),
|
|
493
|
+
);
|
|
304
494
|
} catch (err: any) {
|
|
305
495
|
console.warn(
|
|
306
496
|
`[rsc-router] Router discovery failed: ${err.message}\n${err.stack}`,
|
|
307
497
|
);
|
|
308
498
|
} finally {
|
|
499
|
+
debugDiscovery?.(
|
|
500
|
+
"dev discovery done (%sms)",
|
|
501
|
+
(performance.now() - discoverStart).toFixed(1),
|
|
502
|
+
);
|
|
309
503
|
resolveDiscovery!();
|
|
310
504
|
}
|
|
311
505
|
};
|
|
@@ -372,6 +566,17 @@ export function createRouterDiscoveryPlugin(
|
|
|
372
566
|
};
|
|
373
567
|
|
|
374
568
|
server.middlewares.use("/__rsc_prerender", async (req: any, res: any) => {
|
|
569
|
+
const reqStart = debugDev ? performance.now() : 0;
|
|
570
|
+
const logResult = (status: number, note: string) => {
|
|
571
|
+
debugDev?.(
|
|
572
|
+
"/__rsc_prerender %s -> %d %s (%sms)",
|
|
573
|
+
req.url,
|
|
574
|
+
status,
|
|
575
|
+
note,
|
|
576
|
+
(performance.now() - reqStart).toFixed(1),
|
|
577
|
+
);
|
|
578
|
+
};
|
|
579
|
+
|
|
375
580
|
if (s.discoveryDone) await s.discoveryDone;
|
|
376
581
|
|
|
377
582
|
const url = new URL(req.url || "/", "http://localhost");
|
|
@@ -379,12 +584,36 @@ export function createRouterDiscoveryPlugin(
|
|
|
379
584
|
if (!pathname) {
|
|
380
585
|
res.statusCode = 400;
|
|
381
586
|
res.end("Missing pathname");
|
|
587
|
+
logResult(400, "missing pathname");
|
|
382
588
|
return;
|
|
383
589
|
}
|
|
384
590
|
|
|
385
|
-
//
|
|
386
|
-
//
|
|
387
|
-
|
|
591
|
+
// Import the user's entry module to force re-evaluation of any
|
|
592
|
+
// HMR-invalidated modules in the chain (entry → router → urls → handlers).
|
|
593
|
+
// This ensures createRouter() re-runs with updated handler code before
|
|
594
|
+
// we read RouterRegistry. Without this, edits to prerender handler files
|
|
595
|
+
// produce stale content because the old router instance remains registered.
|
|
596
|
+
const rscEnv = (server.environments as any)?.rsc;
|
|
597
|
+
let registry: Map<string, any> | null = null;
|
|
598
|
+
if (rscEnv?.runner && s.resolvedEntryPath) {
|
|
599
|
+
try {
|
|
600
|
+
await rscEnv.runner.import(s.resolvedEntryPath);
|
|
601
|
+
const serverMod = await rscEnv.runner.import(
|
|
602
|
+
"@rangojs/router/server",
|
|
603
|
+
);
|
|
604
|
+
registry = serverMod.RouterRegistry ?? null;
|
|
605
|
+
} catch (err: any) {
|
|
606
|
+
console.warn(
|
|
607
|
+
`[rsc-router] Dev prerender module refresh failed: ${err.message}`,
|
|
608
|
+
);
|
|
609
|
+
res.statusCode = 500;
|
|
610
|
+
res.end(`Prerender handler error: ${err.message}`);
|
|
611
|
+
logResult(500, "module refresh failed");
|
|
612
|
+
return;
|
|
613
|
+
}
|
|
614
|
+
} else {
|
|
615
|
+
registry = mainRegistry;
|
|
616
|
+
}
|
|
388
617
|
|
|
389
618
|
if (!registry) {
|
|
390
619
|
// No main registry: the RSC env has no module runner (Cloudflare dev).
|
|
@@ -398,6 +627,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
398
627
|
if (!registry || registry.size === 0) {
|
|
399
628
|
res.statusCode = 503;
|
|
400
629
|
res.end("Prerender runner not available");
|
|
630
|
+
logResult(503, "no registry");
|
|
401
631
|
return;
|
|
402
632
|
}
|
|
403
633
|
|
|
@@ -413,6 +643,8 @@ export function createRouterDiscoveryPlugin(
|
|
|
413
643
|
{},
|
|
414
644
|
undefined,
|
|
415
645
|
wantPassthrough,
|
|
646
|
+
s.resolvedBuildEnv,
|
|
647
|
+
true, // devMode: check getParams for passthrough routes
|
|
416
648
|
);
|
|
417
649
|
if (!result) continue;
|
|
418
650
|
if (result.passthrough) continue;
|
|
@@ -434,6 +666,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
434
666
|
payload = { segments: result.segments, handles: result.handles };
|
|
435
667
|
}
|
|
436
668
|
res.end(JSON.stringify(payload));
|
|
669
|
+
logResult(200, `match ${result.routeName}`);
|
|
437
670
|
return;
|
|
438
671
|
} catch (err: any) {
|
|
439
672
|
console.warn(
|
|
@@ -444,6 +677,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
444
677
|
|
|
445
678
|
res.statusCode = 404;
|
|
446
679
|
res.end("No prerender match");
|
|
680
|
+
logResult(404, "no match");
|
|
447
681
|
});
|
|
448
682
|
|
|
449
683
|
// Watch url module and router files for changes and regenerate named-routes.gen.ts.
|
|
@@ -491,15 +725,26 @@ export function createRouterDiscoveryPlugin(
|
|
|
491
725
|
const rscEnv = (server.environments as any)?.rsc;
|
|
492
726
|
if (!rscEnv?.runner || runtimeRediscoveryInProgress) return;
|
|
493
727
|
runtimeRediscoveryInProgress = true;
|
|
728
|
+
const hmrStart = performance.now();
|
|
494
729
|
try {
|
|
495
|
-
await
|
|
496
|
-
|
|
497
|
-
|
|
730
|
+
await timed(debugDiscovery, "hmr discoverRouters", () =>
|
|
731
|
+
discoverRouters(s, rscEnv),
|
|
732
|
+
);
|
|
733
|
+
timedSync(debugDiscovery, "hmr writeRouteTypesFiles", () =>
|
|
734
|
+
writeRouteTypesFiles(s),
|
|
735
|
+
);
|
|
736
|
+
await timed(debugDiscovery, "hmr propagateDiscoveryState", () =>
|
|
737
|
+
propagateDiscoveryState(rscEnv),
|
|
738
|
+
);
|
|
498
739
|
} catch (err: any) {
|
|
499
740
|
console.warn(
|
|
500
741
|
`[rsc-router] Runtime re-discovery failed: ${err.message}`,
|
|
501
742
|
);
|
|
502
743
|
} finally {
|
|
744
|
+
debugDiscovery?.(
|
|
745
|
+
"hmr re-discovery done (%sms)",
|
|
746
|
+
(performance.now() - hmrStart).toFixed(1),
|
|
747
|
+
);
|
|
503
748
|
runtimeRediscoveryInProgress = false;
|
|
504
749
|
}
|
|
505
750
|
};
|
|
@@ -508,6 +753,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
508
753
|
clearTimeout(routeChangeTimer);
|
|
509
754
|
routeChangeTimer = setTimeout(() => {
|
|
510
755
|
routeChangeTimer = undefined;
|
|
756
|
+
const regenStart = debugDiscovery ? performance.now() : 0;
|
|
511
757
|
try {
|
|
512
758
|
writeCombinedRouteTypesWithTracking(s);
|
|
513
759
|
if (s.perRouterManifests.length > 0) {
|
|
@@ -518,6 +764,10 @@ export function createRouterDiscoveryPlugin(
|
|
|
518
764
|
`[rsc-router] Route regeneration error: ${err.message}`,
|
|
519
765
|
);
|
|
520
766
|
}
|
|
767
|
+
debugDiscovery?.(
|
|
768
|
+
"watcher: regenerated gen files (%sms)",
|
|
769
|
+
(performance.now() - regenStart).toFixed(1),
|
|
770
|
+
);
|
|
521
771
|
// Async: re-run runtime discovery to refresh factory-generated
|
|
522
772
|
// routes that the static parser cannot resolve.
|
|
523
773
|
if (s.perRouterManifests.length > 0) {
|
|
@@ -552,6 +802,12 @@ export function createRouterDiscoveryPlugin(
|
|
|
552
802
|
const hasUrls = source.includes("urls(");
|
|
553
803
|
const hasCreateRouter = /\bcreateRouter\s*[<(]/.test(source);
|
|
554
804
|
if (!hasUrls && !hasCreateRouter) return;
|
|
805
|
+
debugDiscovery?.(
|
|
806
|
+
"watcher: %s matches (urls=%s, router=%s)",
|
|
807
|
+
filePath,
|
|
808
|
+
hasUrls,
|
|
809
|
+
hasCreateRouter,
|
|
810
|
+
);
|
|
555
811
|
// Invalidate cache when a router file changes (new router added/removed)
|
|
556
812
|
if (hasCreateRouter) {
|
|
557
813
|
const nestedRouterConflict = findNestedRouterConflict([
|
|
@@ -596,11 +852,24 @@ export function createRouterDiscoveryPlugin(
|
|
|
596
852
|
async buildStart() {
|
|
597
853
|
if (!s.isBuildMode) return;
|
|
598
854
|
// Only run once across environment builds
|
|
599
|
-
if (s.mergedRouteManifest !== null)
|
|
855
|
+
if (s.mergedRouteManifest !== null) {
|
|
856
|
+
debugDiscovery?.(
|
|
857
|
+
"build: skip (already discovered, env=%s)",
|
|
858
|
+
this.environment?.name ?? "?",
|
|
859
|
+
);
|
|
860
|
+
return;
|
|
861
|
+
}
|
|
862
|
+
const buildStartTime = performance.now();
|
|
863
|
+
debugDiscovery?.("build: start (env=%s)", this.environment?.name ?? "?");
|
|
600
864
|
resetStagedBuildAssets(s.projectRoot);
|
|
601
865
|
s.prerenderManifestEntries = null;
|
|
602
866
|
s.staticManifestEntries = null;
|
|
603
867
|
|
|
868
|
+
// Acquire build-time env bindings if configured
|
|
869
|
+
await timed(debugDiscovery, "build acquireBuildEnv", () =>
|
|
870
|
+
acquireBuildEnv(s, viteCommand, viteMode),
|
|
871
|
+
);
|
|
872
|
+
|
|
604
873
|
let tempServer: any = null;
|
|
605
874
|
// Signal to user-space code (e.g. reverse.ts) that build-time discovery
|
|
606
875
|
// is active. Uses globalThis because the temp server's module runner
|
|
@@ -608,7 +877,11 @@ export function createRouterDiscoveryPlugin(
|
|
|
608
877
|
// between the vite plugin and user code loaded via runner.import().
|
|
609
878
|
(globalThis as any).__rscRouterDiscoveryActive = true;
|
|
610
879
|
try {
|
|
611
|
-
tempServer = await
|
|
880
|
+
tempServer = await timed(
|
|
881
|
+
debugDiscovery,
|
|
882
|
+
"build createTempRscServer",
|
|
883
|
+
() => createTempRscServer(s, { forceBuild: true }),
|
|
884
|
+
);
|
|
612
885
|
|
|
613
886
|
const rscEnv = (tempServer.environments as any)?.rsc;
|
|
614
887
|
if (!rscEnv?.runner) {
|
|
@@ -628,11 +901,15 @@ export function createRouterDiscoveryPlugin(
|
|
|
628
901
|
s.resolvedStaticModules = tempIdsPlugin.api.staticHandlerModules;
|
|
629
902
|
}
|
|
630
903
|
|
|
631
|
-
await
|
|
904
|
+
await timed(debugDiscovery, "build discoverRouters", () =>
|
|
905
|
+
discoverRouters(s, rscEnv),
|
|
906
|
+
);
|
|
632
907
|
// Update named-routes.gen.ts from runtime discovery.
|
|
633
908
|
// The runtime manifest includes dynamically generated routes
|
|
634
909
|
// that the static parser cannot extract from source code.
|
|
635
|
-
writeRouteTypesFiles(
|
|
910
|
+
timedSync(debugDiscovery, "build writeRouteTypesFiles", () =>
|
|
911
|
+
writeRouteTypesFiles(s),
|
|
912
|
+
);
|
|
636
913
|
} catch (err: any) {
|
|
637
914
|
// Extract the user source file from the stack trace (skip internal frames)
|
|
638
915
|
const sourceFile = err.stack
|
|
@@ -657,8 +934,15 @@ export function createRouterDiscoveryPlugin(
|
|
|
657
934
|
} finally {
|
|
658
935
|
delete (globalThis as any).__rscRouterDiscoveryActive;
|
|
659
936
|
if (tempServer) {
|
|
660
|
-
await tempServer.close()
|
|
937
|
+
await timed(debugDiscovery, "build tempServer.close", () =>
|
|
938
|
+
tempServer.close(),
|
|
939
|
+
);
|
|
661
940
|
}
|
|
941
|
+
await releaseBuildEnv(s);
|
|
942
|
+
debugDiscovery?.(
|
|
943
|
+
"build discovery done (%sms)",
|
|
944
|
+
(performance.now() - buildStartTime).toFixed(1),
|
|
945
|
+
);
|
|
662
946
|
}
|
|
663
947
|
},
|
|
664
948
|
|
|
@@ -682,19 +966,34 @@ export function createRouterDiscoveryPlugin(
|
|
|
682
966
|
// This is critical for Cloudflare dev where the worker runs in a separate
|
|
683
967
|
// Miniflare process and can only receive manifest data via the virtual module.
|
|
684
968
|
if (s.discoveryDone) {
|
|
685
|
-
await
|
|
969
|
+
await timed(debugRoutes, "await discoveryDone (manifest)", () =>
|
|
970
|
+
Promise.resolve(s.discoveryDone),
|
|
971
|
+
);
|
|
686
972
|
}
|
|
687
|
-
|
|
973
|
+
const code = await timed(
|
|
974
|
+
debugRoutes,
|
|
975
|
+
"generateRoutesManifestModule",
|
|
976
|
+
() => generateRoutesManifestModule(s),
|
|
977
|
+
);
|
|
978
|
+
debugRoutes?.("manifest module emitted (%d bytes)", code?.length ?? 0);
|
|
979
|
+
return code;
|
|
688
980
|
}
|
|
689
981
|
// Per-router virtual modules: pure data exports (no side effects).
|
|
690
982
|
// ensureRouterManifest() imports the module and stores the data.
|
|
691
983
|
const perRouterPrefix = "\0" + VIRTUAL_ROUTES_MANIFEST_ID + "/";
|
|
692
984
|
if (id.startsWith(perRouterPrefix)) {
|
|
693
985
|
if (s.discoveryDone) {
|
|
694
|
-
await
|
|
986
|
+
await timed(debugRoutes, "await discoveryDone (per-router)", () =>
|
|
987
|
+
Promise.resolve(s.discoveryDone),
|
|
988
|
+
);
|
|
695
989
|
}
|
|
696
990
|
const routerId = id.slice(perRouterPrefix.length);
|
|
697
|
-
|
|
991
|
+
const code = await timed(
|
|
992
|
+
debugRoutes,
|
|
993
|
+
`generatePerRouterModule ${routerId}`,
|
|
994
|
+
() => generatePerRouterModule(s, routerId),
|
|
995
|
+
);
|
|
996
|
+
return code;
|
|
698
997
|
}
|
|
699
998
|
// virtual:rsc-router/prerender-paths load handler removed
|
|
700
999
|
return null;
|
|
@@ -704,6 +1003,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
704
1003
|
// Used by closeBundle for handler code eviction and prerender data injection.
|
|
705
1004
|
generateBundle(_options: any, bundle: any) {
|
|
706
1005
|
if (this.environment?.name !== "rsc") return;
|
|
1006
|
+
const genStart = debugBuild ? performance.now() : 0;
|
|
707
1007
|
|
|
708
1008
|
// Record RSC entry chunk filename for closeBundle injection
|
|
709
1009
|
for (const [fileName, chunk] of Object.entries(bundle) as [
|
|
@@ -716,8 +1016,19 @@ export function createRouterDiscoveryPlugin(
|
|
|
716
1016
|
}
|
|
717
1017
|
}
|
|
718
1018
|
|
|
719
|
-
if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size)
|
|
1019
|
+
if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size) {
|
|
1020
|
+
debugBuild?.(
|
|
1021
|
+
"generateBundle (rsc): no handlers to scan (%sms)",
|
|
1022
|
+
(performance.now() - genStart).toFixed(1),
|
|
1023
|
+
);
|
|
720
1024
|
return;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
// Clear maps at the start of each RSC generateBundle pass.
|
|
1028
|
+
// Vite 6 multi-environment builds run RSC twice (analysis + production);
|
|
1029
|
+
// clearing prevents stale/duplicate records from the analysis pass.
|
|
1030
|
+
s.handlerChunkInfoMap.clear();
|
|
1031
|
+
s.staticHandlerChunkInfoMap.clear();
|
|
721
1032
|
|
|
722
1033
|
for (const [fileName, chunk] of Object.entries(bundle) as [
|
|
723
1034
|
string,
|
|
@@ -725,27 +1036,28 @@ export function createRouterDiscoveryPlugin(
|
|
|
725
1036
|
][]) {
|
|
726
1037
|
if (chunk.type !== "chunk") continue;
|
|
727
1038
|
|
|
728
|
-
//
|
|
729
|
-
if (
|
|
730
|
-
fileName.includes("__prerender-handlers") &&
|
|
731
|
-
s.resolvedPrerenderModules?.size
|
|
732
|
-
) {
|
|
1039
|
+
// Scan all chunks for handler exports (handlers may land in any chunk)
|
|
1040
|
+
if (s.resolvedPrerenderModules?.size) {
|
|
733
1041
|
const handlers = extractHandlerExportsFromChunk(
|
|
734
1042
|
chunk.code,
|
|
735
1043
|
s.resolvedPrerenderModules,
|
|
736
1044
|
"Prerender",
|
|
737
|
-
|
|
1045
|
+
false,
|
|
738
1046
|
);
|
|
739
1047
|
if (handlers.length > 0) {
|
|
740
|
-
|
|
1048
|
+
const existing = s.handlerChunkInfoMap.get(fileName);
|
|
1049
|
+
if (existing) {
|
|
1050
|
+
existing.exports.push(...handlers);
|
|
1051
|
+
} else {
|
|
1052
|
+
s.handlerChunkInfoMap.set(fileName, {
|
|
1053
|
+
fileName,
|
|
1054
|
+
exports: handlers,
|
|
1055
|
+
});
|
|
1056
|
+
}
|
|
741
1057
|
}
|
|
742
1058
|
}
|
|
743
1059
|
|
|
744
|
-
|
|
745
|
-
if (
|
|
746
|
-
fileName.includes("__static-handlers") &&
|
|
747
|
-
s.resolvedStaticModules?.size
|
|
748
|
-
) {
|
|
1060
|
+
if (s.resolvedStaticModules?.size) {
|
|
749
1061
|
const handlers = extractHandlerExportsFromChunk(
|
|
750
1062
|
chunk.code,
|
|
751
1063
|
s.resolvedStaticModules,
|
|
@@ -753,10 +1065,26 @@ export function createRouterDiscoveryPlugin(
|
|
|
753
1065
|
false,
|
|
754
1066
|
);
|
|
755
1067
|
if (handlers.length > 0) {
|
|
756
|
-
|
|
1068
|
+
const existing = s.staticHandlerChunkInfoMap.get(fileName);
|
|
1069
|
+
if (existing) {
|
|
1070
|
+
existing.exports.push(...handlers);
|
|
1071
|
+
} else {
|
|
1072
|
+
s.staticHandlerChunkInfoMap.set(fileName, {
|
|
1073
|
+
fileName,
|
|
1074
|
+
exports: handlers,
|
|
1075
|
+
});
|
|
1076
|
+
}
|
|
757
1077
|
}
|
|
758
1078
|
}
|
|
759
1079
|
}
|
|
1080
|
+
|
|
1081
|
+
debugBuild?.(
|
|
1082
|
+
"generateBundle (rsc): scanned %d chunks, %d prerender chunk(s), %d static chunk(s) (%sms)",
|
|
1083
|
+
Object.keys(bundle).length,
|
|
1084
|
+
s.handlerChunkInfoMap.size,
|
|
1085
|
+
s.staticHandlerChunkInfoMap.size,
|
|
1086
|
+
(performance.now() - genStart).toFixed(1),
|
|
1087
|
+
);
|
|
760
1088
|
},
|
|
761
1089
|
|
|
762
1090
|
// Build-time pre-rendering: evict handler code and inject collected prerender data.
|
|
@@ -770,7 +1098,9 @@ export function createRouterDiscoveryPlugin(
|
|
|
770
1098
|
// Only run for the RSC environment — other environments (client, ssr) have
|
|
771
1099
|
// no prerender/static data to process and would just do redundant file I/O.
|
|
772
1100
|
if (this.environment && this.environment.name !== "rsc") return;
|
|
773
|
-
postprocessBundle(
|
|
1101
|
+
timedSync(debugBuild, "closeBundle postprocessBundle", () =>
|
|
1102
|
+
postprocessBundle(s),
|
|
1103
|
+
);
|
|
774
1104
|
},
|
|
775
1105
|
},
|
|
776
1106
|
};
|