@nifrajs/web 5.5.0 → 5.6.0
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/CHANGELOG.md +162 -0
- package/dist/boundary.d.ts +67 -7
- package/dist/boundary.d.ts.map +1 -1
- package/dist/boundary.js +6 -4
- package/dist/boundary.js.map +1 -1
- package/dist/build-plan.d.ts +3 -0
- package/dist/build-plan.d.ts.map +1 -1
- package/dist/build-plan.js.map +1 -1
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js +2 -0
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +9 -2
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +9 -0
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +140 -12
- package/dist/client.js.map +1 -1
- package/dist/csp.d.ts +8 -0
- package/dist/csp.d.ts.map +1 -1
- package/dist/csp.js +11 -2
- package/dist/csp.js.map +1 -1
- package/dist/deferred.d.ts +6 -4
- package/dist/deferred.d.ts.map +1 -1
- package/dist/deferred.js +10 -6
- package/dist/deferred.js.map +1 -1
- package/dist/dev-feed.d.ts.map +1 -1
- package/dist/dev-feed.js +11 -2
- package/dist/dev-feed.js.map +1 -1
- package/dist/dev-session.d.ts.map +1 -1
- package/dist/dev-session.js +13 -6
- package/dist/dev-session.js.map +1 -1
- package/dist/dev.d.ts +4 -1
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +12 -5
- package/dist/dev.js.map +1 -1
- package/dist/diagnostic-catalog.d.ts +4 -0
- package/dist/diagnostic-catalog.d.ts.map +1 -1
- package/dist/diagnostic-catalog.js +48 -0
- package/dist/diagnostic-catalog.js.map +1 -1
- package/dist/diagnostic.d.ts +1 -1
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +1 -1
- package/dist/diagnostic.js.map +1 -1
- package/dist/fn.d.ts +5 -3
- package/dist/fn.d.ts.map +1 -1
- package/dist/fn.js +20 -5
- package/dist/fn.js.map +1 -1
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +13 -3
- package/dist/fs.js.map +1 -1
- package/dist/identity.d.ts +22 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +60 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/cdn/cloudflare.d.ts +2 -1
- package/dist/internal/cdn/cloudflare.d.ts.map +1 -1
- package/dist/internal/cdn/cloudflare.js +2 -1
- package/dist/internal/cdn/cloudflare.js.map +1 -1
- package/dist/internal/certified-components.d.ts +1 -1
- package/dist/internal/certified-components.js +1 -1
- package/dist/internal/codegen.d.ts +11 -10
- package/dist/internal/codegen.d.ts.map +1 -1
- package/dist/internal/codegen.js +65 -8
- package/dist/internal/codegen.js.map +1 -1
- package/dist/internal/dev-websocket.d.ts +73 -0
- package/dist/internal/dev-websocket.d.ts.map +1 -0
- package/dist/internal/dev-websocket.js +145 -0
- package/dist/internal/dev-websocket.js.map +1 -0
- package/dist/internal/hole-runtime.d.ts +66 -0
- package/dist/internal/hole-runtime.d.ts.map +1 -0
- package/dist/internal/hole-runtime.js +211 -0
- package/dist/internal/hole-runtime.js.map +1 -0
- package/dist/internal/identity-epoch.d.ts +50 -0
- package/dist/internal/identity-epoch.d.ts.map +1 -0
- package/dist/internal/identity-epoch.js +179 -0
- package/dist/internal/identity-epoch.js.map +1 -0
- package/dist/internal/invalidation-contract.d.ts +23 -0
- package/dist/internal/invalidation-contract.d.ts.map +1 -0
- package/dist/internal/invalidation-contract.js +11 -0
- package/dist/internal/invalidation-contract.js.map +1 -0
- package/dist/internal/invalidation.d.ts +62 -0
- package/dist/internal/invalidation.d.ts.map +1 -0
- package/dist/internal/invalidation.js +149 -0
- package/dist/internal/invalidation.js.map +1 -0
- package/dist/internal/island-bindings.d.ts +51 -0
- package/dist/internal/island-bindings.d.ts.map +1 -0
- package/dist/internal/island-bindings.js +147 -0
- package/dist/internal/island-bindings.js.map +1 -0
- package/dist/internal/island-list.d.ts +26 -0
- package/dist/internal/island-list.d.ts.map +1 -0
- package/dist/internal/island-list.js +78 -0
- package/dist/internal/island-list.js.map +1 -0
- package/dist/internal/island-mount.d.ts +4 -0
- package/dist/internal/island-mount.d.ts.map +1 -0
- package/dist/internal/island-mount.js +66 -0
- package/dist/internal/island-mount.js.map +1 -0
- package/dist/internal/island-owner.d.ts +5 -0
- package/dist/internal/island-owner.d.ts.map +1 -0
- package/dist/internal/island-owner.js +20 -0
- package/dist/internal/island-owner.js.map +1 -0
- package/dist/internal/island-resource.d.ts +30 -0
- package/dist/internal/island-resource.d.ts.map +1 -0
- package/dist/internal/island-resource.js +57 -0
- package/dist/internal/island-resource.js.map +1 -0
- package/dist/internal/island-signals.d.ts +51 -0
- package/dist/internal/island-signals.d.ts.map +1 -0
- package/dist/internal/island-signals.js +220 -0
- package/dist/internal/island-signals.js.map +1 -0
- package/dist/internal/keep-alive-table.d.ts +23 -0
- package/dist/internal/keep-alive-table.d.ts.map +1 -0
- package/dist/internal/keep-alive-table.js +53 -0
- package/dist/internal/keep-alive-table.js.map +1 -0
- package/dist/internal/live-contract.d.ts +96 -0
- package/dist/internal/live-contract.d.ts.map +1 -0
- package/dist/internal/live-contract.js +5 -0
- package/dist/internal/live-contract.js.map +1 -0
- package/dist/internal/live-queries.d.ts +22 -0
- package/dist/internal/live-queries.d.ts.map +1 -0
- package/dist/internal/live-queries.js +54 -0
- package/dist/internal/live-queries.js.map +1 -0
- package/dist/internal/page-events.d.ts +10 -0
- package/dist/internal/page-events.d.ts.map +1 -0
- package/dist/internal/page-events.js +26 -0
- package/dist/internal/page-events.js.map +1 -0
- package/dist/internal/page-execution.d.ts +14 -1
- package/dist/internal/page-execution.d.ts.map +1 -1
- package/dist/internal/page-execution.js +415 -31
- package/dist/internal/page-execution.js.map +1 -1
- package/dist/internal/ppr/admission.d.ts +83 -0
- package/dist/internal/ppr/admission.d.ts.map +1 -0
- package/dist/internal/ppr/admission.js +221 -0
- package/dist/internal/ppr/admission.js.map +1 -0
- package/dist/internal/ppr/canary.d.ts +24 -0
- package/dist/internal/ppr/canary.d.ts.map +1 -0
- package/dist/internal/ppr/canary.js +102 -0
- package/dist/internal/ppr/canary.js.map +1 -0
- package/dist/internal/ppr/compile-shell.d.ts +39 -0
- package/dist/internal/ppr/compile-shell.d.ts.map +1 -0
- package/dist/internal/ppr/compile-shell.js +298 -0
- package/dist/internal/ppr/compile-shell.js.map +1 -0
- package/dist/internal/ppr/contract.d.ts +177 -0
- package/dist/internal/ppr/contract.d.ts.map +1 -0
- package/dist/internal/ppr/contract.js +80 -0
- package/dist/internal/ppr/contract.js.map +1 -0
- package/dist/internal/ppr/frames.d.ts +71 -0
- package/dist/internal/ppr/frames.d.ts.map +1 -0
- package/dist/internal/ppr/frames.js +119 -0
- package/dist/internal/ppr/frames.js.map +1 -0
- package/dist/internal/ppr/integration.d.ts +19 -0
- package/dist/internal/ppr/integration.d.ts.map +1 -0
- package/dist/internal/ppr/integration.js +106 -0
- package/dist/internal/ppr/integration.js.map +1 -0
- package/dist/internal/ppr/options.d.ts +96 -0
- package/dist/internal/ppr/options.d.ts.map +1 -0
- package/dist/internal/ppr/options.js +125 -0
- package/dist/internal/ppr/options.js.map +1 -0
- package/dist/internal/ppr/route-rules.d.ts +12 -0
- package/dist/internal/ppr/route-rules.d.ts.map +1 -0
- package/dist/internal/ppr/route-rules.js +53 -0
- package/dist/internal/ppr/route-rules.js.map +1 -0
- package/dist/internal/ppr/runtime.d.ts +29 -0
- package/dist/internal/ppr/runtime.d.ts.map +1 -0
- package/dist/internal/ppr/runtime.js +32 -0
- package/dist/internal/ppr/runtime.js.map +1 -0
- package/dist/internal/ppr/server.d.ts +29 -0
- package/dist/internal/ppr/server.d.ts.map +1 -0
- package/dist/internal/ppr/server.js +1407 -0
- package/dist/internal/ppr/server.js.map +1 -0
- package/dist/internal/ppr/shell-store.d.ts +38 -0
- package/dist/internal/ppr/shell-store.d.ts.map +1 -0
- package/dist/internal/ppr/shell-store.js +90 -0
- package/dist/internal/ppr/shell-store.js.map +1 -0
- package/dist/internal/prerendered-pages.d.ts +1 -1
- package/dist/internal/prerendered-pages.d.ts.map +1 -1
- package/dist/internal/prerendered-pages.js +7 -4
- package/dist/internal/prerendered-pages.js.map +1 -1
- package/dist/internal/query-digest.d.ts +9 -0
- package/dist/internal/query-digest.d.ts.map +1 -0
- package/dist/internal/query-digest.js +23 -0
- package/dist/internal/query-digest.js.map +1 -0
- package/dist/internal/query-runtime.d.ts +6 -1
- package/dist/internal/query-runtime.d.ts.map +1 -1
- package/dist/internal/query-runtime.js +9 -0
- package/dist/internal/query-runtime.js.map +1 -1
- package/dist/internal/query-seam.d.ts +29 -0
- package/dist/internal/query-seam.d.ts.map +1 -0
- package/dist/internal/query-seam.js +23 -0
- package/dist/internal/query-seam.js.map +1 -0
- package/dist/internal/render-document.d.ts +28 -1
- package/dist/internal/render-document.d.ts.map +1 -1
- package/dist/internal/render-document.js +83 -18
- package/dist/internal/render-document.js.map +1 -1
- package/dist/internal/request-abort.d.ts +8 -0
- package/dist/internal/request-abort.d.ts.map +1 -0
- package/dist/internal/request-abort.js +22 -0
- package/dist/internal/request-abort.js.map +1 -0
- package/dist/internal/server-boundary.d.ts +2 -0
- package/dist/internal/server-boundary.d.ts.map +1 -1
- package/dist/internal/server-boundary.js +8 -1
- package/dist/internal/server-boundary.js.map +1 -1
- package/dist/internal/share-data.d.ts +10 -0
- package/dist/internal/share-data.d.ts.map +1 -0
- package/dist/internal/share-data.js +135 -0
- package/dist/internal/share-data.js.map +1 -0
- package/dist/internal/store-signature.d.ts +15 -0
- package/dist/internal/store-signature.d.ts.map +1 -0
- package/dist/internal/store-signature.js +114 -0
- package/dist/internal/store-signature.js.map +1 -0
- package/dist/internal/vite-plugin-compat.d.ts +2 -2
- package/dist/internal/vite-plugin-compat.js +2 -2
- package/dist/internal/web-app.d.ts +25 -0
- package/dist/internal/web-app.d.ts.map +1 -1
- package/dist/internal/web-app.js +78 -3
- package/dist/internal/web-app.js.map +1 -1
- package/dist/islands-swap.d.ts +41 -0
- package/dist/islands-swap.d.ts.map +1 -0
- package/dist/islands-swap.js +270 -0
- package/dist/islands-swap.js.map +1 -0
- package/dist/islands.d.ts +86 -24
- package/dist/islands.d.ts.map +1 -1
- package/dist/islands.js +138 -78
- package/dist/islands.js.map +1 -1
- package/dist/isr.d.ts +67 -13
- package/dist/isr.d.ts.map +1 -1
- package/dist/isr.js +247 -99
- package/dist/isr.js.map +1 -1
- package/dist/keep-alive.d.ts +147 -0
- package/dist/keep-alive.d.ts.map +1 -0
- package/dist/keep-alive.js +1069 -0
- package/dist/keep-alive.js.map +1 -0
- package/dist/live/bus.d.ts +56 -0
- package/dist/live/bus.d.ts.map +1 -0
- package/dist/live/bus.js +32 -0
- package/dist/live/bus.js.map +1 -0
- package/dist/live/core.d.ts +25 -0
- package/dist/live/core.d.ts.map +1 -0
- package/dist/live/core.js +29 -0
- package/dist/live/core.js.map +1 -0
- package/dist/live/history.d.ts +38 -0
- package/dist/live/history.d.ts.map +1 -0
- package/dist/live/history.js +104 -0
- package/dist/live/history.js.map +1 -0
- package/dist/live/hub-protocol.d.ts +46 -0
- package/dist/live/hub-protocol.d.ts.map +1 -0
- package/dist/live/hub-protocol.js +108 -0
- package/dist/live/hub-protocol.js.map +1 -0
- package/dist/live/hub.d.ts +181 -0
- package/dist/live/hub.d.ts.map +1 -0
- package/dist/live/hub.js +539 -0
- package/dist/live/hub.js.map +1 -0
- package/dist/live/keyring.d.ts +87 -0
- package/dist/live/keyring.d.ts.map +1 -0
- package/dist/live/keyring.js +260 -0
- package/dist/live/keyring.js.map +1 -0
- package/dist/live/read-capped.d.ts +6 -0
- package/dist/live/read-capped.d.ts.map +1 -0
- package/dist/live/read-capped.js +42 -0
- package/dist/live/read-capped.js.map +1 -0
- package/dist/live/revocations.d.ts +52 -0
- package/dist/live/revocations.d.ts.map +1 -0
- package/dist/live/revocations.js +116 -0
- package/dist/live/revocations.js.map +1 -0
- package/dist/live/settings.d.ts +14 -0
- package/dist/live/settings.d.ts.map +1 -0
- package/dist/live/settings.js +38 -0
- package/dist/live/settings.js.map +1 -0
- package/dist/live-client.d.ts +34 -0
- package/dist/live-client.d.ts.map +1 -0
- package/dist/live-client.js +840 -0
- package/dist/live-client.js.map +1 -0
- package/dist/live-hub.d.ts +130 -0
- package/dist/live-hub.d.ts.map +1 -0
- package/dist/live-hub.js +507 -0
- package/dist/live-hub.js.map +1 -0
- package/dist/live-redis.d.ts +48 -0
- package/dist/live-redis.d.ts.map +1 -0
- package/dist/live-redis.js +201 -0
- package/dist/live-redis.js.map +1 -0
- package/dist/live.d.ts +94 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +869 -0
- package/dist/live.js.map +1 -0
- package/dist/manifest.d.ts +113 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +109 -5
- package/dist/manifest.js.map +1 -1
- package/dist/navigation.d.ts +9 -3
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +13 -3
- package/dist/navigation.js.map +1 -1
- package/dist/plugins/vite-zone-guard.d.ts +6 -0
- package/dist/plugins/vite-zone-guard.d.ts.map +1 -1
- package/dist/plugins/vite-zone-guard.js +8 -2
- package/dist/plugins/vite-zone-guard.js.map +1 -1
- package/dist/ppr.d.ts +73 -0
- package/dist/ppr.d.ts.map +1 -0
- package/dist/ppr.js +76 -0
- package/dist/ppr.js.map +1 -0
- package/dist/query.d.ts +8 -13
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +112 -18
- package/dist/query.js.map +1 -1
- package/dist/render-seam.d.ts +30 -0
- package/dist/render-seam.d.ts.map +1 -1
- package/dist/render-seam.js +5 -0
- package/dist/render-seam.js.map +1 -1
- package/dist/route-types.d.ts.map +1 -1
- package/dist/route-types.js +2 -2
- package/dist/route-types.js.map +1 -1
- package/dist/router.d.ts +72 -4
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +374 -99
- package/dist/router.js.map +1 -1
- package/dist/server-components/build.d.ts.map +1 -1
- package/dist/server-components/build.js +3 -3
- package/dist/server-components/build.js.map +1 -1
- package/dist/server-components/client.d.ts +23 -1
- package/dist/server-components/client.d.ts.map +1 -1
- package/dist/server-components/client.js +92 -5
- package/dist/server-components/client.js.map +1 -1
- package/dist/server-components/hole.d.ts +8 -0
- package/dist/server-components/hole.d.ts.map +1 -0
- package/dist/server-components/hole.js +20 -0
- package/dist/server-components/hole.js.map +1 -0
- package/dist/server-components/html-policy.d.ts.map +1 -1
- package/dist/server-components/html-policy.js +62 -4
- package/dist/server-components/html-policy.js.map +1 -1
- package/dist/server-components/html-scan.d.ts +17 -0
- package/dist/server-components/html-scan.d.ts.map +1 -0
- package/dist/server-components/html-scan.js +180 -0
- package/dist/server-components/html-scan.js.map +1 -0
- package/dist/server-components/html.d.ts.map +1 -1
- package/dist/server-components/html.js +19 -4
- package/dist/server-components/html.js.map +1 -1
- package/dist/server-components/router-integration.d.ts +4 -1
- package/dist/server-components/router-integration.d.ts.map +1 -1
- package/dist/server-components/router-integration.js +23 -2
- package/dist/server-components/router-integration.js.map +1 -1
- package/dist/server-components/runtime.d.ts +6 -1
- package/dist/server-components/runtime.d.ts.map +1 -1
- package/dist/server-components/runtime.js +86 -28
- package/dist/server-components/runtime.js.map +1 -1
- package/dist/server-components/state.d.ts +3 -1
- package/dist/server-components/state.d.ts.map +1 -1
- package/dist/server-components/state.js +50 -38
- package/dist/server-components/state.js.map +1 -1
- package/dist/server-components/types.d.ts +9 -0
- package/dist/server-components/types.d.ts.map +1 -1
- package/dist/vite.d.ts +5 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +58 -4
- package/dist/vite.js.map +1 -1
- package/package.json +48 -8
- package/src/boundary.ts +77 -5
- package/src/build-plan.ts +3 -0
- package/src/build-vite.ts +2 -0
- package/src/build.ts +19 -1
- package/src/client.ts +147 -10
- package/src/csp.ts +16 -2
- package/src/deferred.ts +11 -5
- package/src/dev-feed.ts +11 -2
- package/src/dev-session.ts +22 -11
- package/src/dev.ts +29 -8
- package/src/diagnostic-catalog.ts +53 -0
- package/src/diagnostic.ts +1 -0
- package/src/fn.ts +24 -7
- package/src/fs.ts +22 -8
- package/src/identity.ts +61 -0
- package/src/index.ts +19 -0
- package/src/internal/cdn/cloudflare.ts +2 -1
- package/src/internal/certified-components.ts +1 -1
- package/src/internal/codegen.ts +87 -8
- package/src/internal/dev-websocket.ts +230 -0
- package/src/internal/hole-runtime.ts +286 -0
- package/src/internal/identity-epoch.ts +235 -0
- package/src/internal/invalidation-contract.ts +35 -0
- package/src/internal/invalidation.ts +213 -0
- package/src/internal/island-bindings.ts +191 -0
- package/src/internal/island-list.ts +92 -0
- package/src/internal/island-mount.ts +68 -0
- package/src/internal/island-owner.ts +20 -0
- package/src/internal/island-resource.ts +76 -0
- package/src/internal/island-signals.ts +249 -0
- package/src/internal/keep-alive-table.ts +72 -0
- package/src/internal/live-contract.ts +106 -0
- package/src/internal/live-queries.ts +60 -0
- package/src/internal/page-events.ts +27 -0
- package/src/internal/page-execution.ts +579 -40
- package/src/internal/ppr/admission.ts +300 -0
- package/src/internal/ppr/canary.ts +122 -0
- package/src/internal/ppr/compile-shell.ts +379 -0
- package/src/internal/ppr/contract.ts +265 -0
- package/src/internal/ppr/frames.ts +170 -0
- package/src/internal/ppr/integration.ts +137 -0
- package/src/internal/ppr/options.ts +221 -0
- package/src/internal/ppr/route-rules.ts +77 -0
- package/src/internal/ppr/runtime.ts +36 -0
- package/src/internal/ppr/server.ts +1764 -0
- package/src/internal/ppr/shell-store.ts +139 -0
- package/src/internal/prerendered-pages.ts +7 -4
- package/src/internal/query-digest.ts +34 -0
- package/src/internal/query-runtime.ts +14 -1
- package/src/internal/query-seam.ts +48 -0
- package/src/internal/render-document.ts +149 -22
- package/src/internal/request-abort.ts +26 -0
- package/src/internal/server-boundary.ts +10 -1
- package/src/internal/share-data.ts +136 -0
- package/src/internal/store-signature.ts +149 -0
- package/src/internal/vite-plugin-compat.ts +2 -2
- package/src/internal/web-app.ts +121 -3
- package/src/islands-swap.ts +283 -0
- package/src/islands.ts +169 -72
- package/src/isr.ts +348 -106
- package/src/keep-alive.ts +1315 -0
- package/src/live/bus.ts +77 -0
- package/src/live/core.ts +52 -0
- package/src/live/history.ts +109 -0
- package/src/live/hub-protocol.ts +133 -0
- package/src/live/hub.ts +615 -0
- package/src/live/keyring.ts +379 -0
- package/src/live/read-capped.ts +36 -0
- package/src/live/revocations.ts +155 -0
- package/src/live/settings.ts +46 -0
- package/src/live-client.ts +973 -0
- package/src/live-hub.ts +658 -0
- package/src/live-redis.ts +259 -0
- package/src/live.ts +1096 -0
- package/src/manifest.ts +274 -6
- package/src/navigation.ts +14 -2
- package/src/plugins/vite-zone-guard.ts +15 -2
- package/src/ppr.ts +153 -0
- package/src/query.ts +147 -20
- package/src/render-seam.ts +35 -0
- package/src/route-types.ts +3 -1
- package/src/router.ts +494 -101
- package/src/server-components/build.ts +9 -3
- package/src/server-components/client.ts +89 -5
- package/src/server-components/hole.ts +23 -0
- package/src/server-components/html-policy.ts +63 -4
- package/src/server-components/html-scan.ts +159 -0
- package/src/server-components/html.ts +18 -4
- package/src/server-components/router-integration.ts +21 -2
- package/src/server-components/runtime.ts +112 -30
- package/src/server-components/state.ts +66 -44
- package/src/server-components/types.ts +16 -0
- package/src/vite.ts +75 -6
- package/dist/nano.d.ts +0 -125
- package/dist/nano.d.ts.map +0 -1
- package/dist/nano.js +0 -190
- package/dist/nano.js.map +0 -1
- package/src/nano.ts +0 -246
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* guard and the consumer check read these; `component-certification.test.ts` holds the exact pins
|
|
4
4
|
* in every manifest that runs the pipeline to them, so a range bump cannot drift past the guard.
|
|
5
5
|
*/
|
|
6
|
-
export declare const CERTIFIED_COMPONENT_VITE = "8.
|
|
6
|
+
export declare const CERTIFIED_COMPONENT_VITE = "8.3.4";
|
|
7
7
|
export declare const CERTIFIED_COMPONENT_REACT = "19.3.1";
|
|
8
8
|
//# sourceMappingURL=certified-components.d.ts.map
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* guard and the consumer check read these; `component-certification.test.ts` holds the exact pins
|
|
4
4
|
* in every manifest that runs the pipeline to them, so a range bump cannot drift past the guard.
|
|
5
5
|
*/
|
|
6
|
-
export const CERTIFIED_COMPONENT_VITE = "8.
|
|
6
|
+
export const CERTIFIED_COMPONENT_VITE = "8.3.4";
|
|
7
7
|
export const CERTIFIED_COMPONENT_REACT = "19.3.1";
|
|
8
8
|
//# sourceMappingURL=certified-components.js.map
|
|
@@ -20,17 +20,18 @@ export interface GenerateClientEntryOptions {
|
|
|
20
20
|
/** The build moved copy tables into per-locale chunks: the handover carries the chunk URLs, and a
|
|
21
21
|
* navigation loads the copy of the URL it goes to beside the route's code. */
|
|
22
22
|
readonly copyChunks?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The server runs `createWebApp({ live })`: route loads go through its live load endpoint and the
|
|
25
|
+
* entry keeps what is on screen fresh (`@nifrajs/web/live-client`). Absent, the entry is exactly the
|
|
26
|
+
* non-live one.
|
|
27
|
+
*/
|
|
28
|
+
readonly live?: LiveClientEntry | undefined;
|
|
29
|
+
}
|
|
30
|
+
/** A client entry for a live server: `{}`, or the endpoints when the runtime moves them. */
|
|
31
|
+
export interface LiveClientEntry {
|
|
32
|
+
readonly path?: string;
|
|
33
|
+
readonly loadPath?: string;
|
|
23
34
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Codegen: emit a client-entry module (as source) that lazily imports each route's layout chain
|
|
26
|
-
* (so `Bun.build` with `splitting` code-splits one chunk per route), builds a `patterns` list,
|
|
27
|
-
* then creates the agnostic router store (with a `loadModule` hook), installs history + form
|
|
28
|
-
* interception, loads the initial route's chunk, and hydrates the adapter's stateful Router. The
|
|
29
|
-
* initial route is derived from the URL (falling back to the server-injected route id, e.g.
|
|
30
|
-
* `_404`), so after hydration the Router owns navigation and swaps routes without full reloads.
|
|
31
|
-
* Bun has no `import.meta.glob`, so file-based routing needs this. Write the result to a file and
|
|
32
|
-
* bundle it with `buildClient` / `Bun.build` (+ the adapter's transform).
|
|
33
|
-
*/
|
|
34
35
|
export declare function generateClientEntry(manifest: Manifest, options: GenerateClientEntryOptions): string;
|
|
35
36
|
export interface GenerateRouteSearchTypesOptions {
|
|
36
37
|
/** Turn a route source file into a module specifier for a `typeof import(...)` type - the same contract
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,oBAAoB,CAAA;AAElG,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,oBAAoB,CAAA;AAElG,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAkB3D,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAIlE;AAaD,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC;kFAC8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;CAC5C;AAMD,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAqBD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,0BAA0B,GAClC,MAAM,CAuYR;AAED,MAAM,WAAW,+BAA+B;IAC9C;;qEAEiE;IACjE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;gHAC4G;IAC5G,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,+BAA+B,GACvC,MAAM,CAuBR;AAED,MAAM,WAAW,6BAA6B;IAC5C;6DACyD;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;4EACwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;+FAE2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C;uFACmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9E,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC;gGAC4F;IAC5F,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAClE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACpD;;;2FAGuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAuCD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,GACrC,MAAM,CAoGR"}
|
package/dist/internal/codegen.js
CHANGED
|
@@ -3,6 +3,7 @@ import { MAP_DEFERRED_SOURCE } from "../deferred.js";
|
|
|
3
3
|
import { ACTION_GLOBAL, BOUNDARY_GLOBAL, COMPONENT_GLOBAL, COPY_CHUNKS_GLOBAL, COPY_REALM, DATA_GLOBAL, HANDOVER_ID, LAYOUT_DATA_GLOBAL, LOCALES_GLOBAL, ROOT_ATTRIBUTE, ROUTE_GLOBAL, } from "../render-seam.js";
|
|
4
4
|
import { PRERENDERED_GLOBAL } from "../router.js";
|
|
5
5
|
import { jsStringLiteral, jsValueLiteral } from "./js-string.js";
|
|
6
|
+
import { keepAliveTable } from "./keep-alive-table.js";
|
|
6
7
|
/** The refusal for a server build given no client entry, shared by the codegen and `buildServer`. */
|
|
7
8
|
export function missingClientEntry(clientEntry) {
|
|
8
9
|
return new TypeError(`[nifra/web] the server build needs the client build: pass client (the manifest buildClient returned) or clientEntry (its entry URL), got clientEntry ${clientEntry === null ? "null" : typeof clientEntry}; pass clientEntry "" for an app with no client script`);
|
|
@@ -18,6 +19,8 @@ const HANDOVER_GLOBALS = [
|
|
|
18
19
|
PRERENDERED_GLOBAL,
|
|
19
20
|
LOCALES_GLOBAL,
|
|
20
21
|
];
|
|
22
|
+
// The router as the entry names it: in a keep-alive app, the keep-alive layer over `router`.
|
|
23
|
+
const keepAround = (keep, router) => keep === undefined ? `const router = ${router}` : `const router = __keep.attach(${router})`;
|
|
21
24
|
/**
|
|
22
25
|
* Codegen: emit a client-entry module (as source) that lazily imports each route's layout chain
|
|
23
26
|
* (so `Bun.build` with `splitting` code-splits one chunk per route), builds a `patterns` list,
|
|
@@ -28,8 +31,24 @@ const HANDOVER_GLOBALS = [
|
|
|
28
31
|
* Bun has no `import.meta.glob`, so file-based routing needs this. Write the result to a file and
|
|
29
32
|
* bundle it with `buildClient` / `Bun.build` (+ the adapter's transform).
|
|
30
33
|
*/
|
|
34
|
+
/** The client modules whose package has a keep-alive mount beside them, at `<package>/keep-alive`. */
|
|
35
|
+
const KEEP_ALIVE_ADAPTERS = [
|
|
36
|
+
"@nifrajs/web-react/client",
|
|
37
|
+
"@nifrajs/web-svelte/client",
|
|
38
|
+
"@nifrajs/web-preact/client",
|
|
39
|
+
"@nifrajs/web-solid/client",
|
|
40
|
+
"@nifrajs/web-vue/client",
|
|
41
|
+
];
|
|
31
42
|
export function generateClientEntry(manifest, options) {
|
|
32
|
-
const {
|
|
43
|
+
const { resolve } = options;
|
|
44
|
+
const keep = keepAliveTable(manifest);
|
|
45
|
+
if (keep !== undefined && !KEEP_ALIVE_ADAPTERS.includes(options.clientModule)) {
|
|
46
|
+
throw new Error(`[nifra/web] ${keep.routes.map((id) => `"${id}"`).join(", ")} export keepAlive, which needs the React, Preact, Solid, Svelte or Vue adapter; this app's client module is ${jsStringLiteral(options.clientModule)}. Remove the keepAlive export or switch the adapter.`);
|
|
47
|
+
}
|
|
48
|
+
// A keep-alive app mounts through the adapter's keep-alive module, which re-exports its client.
|
|
49
|
+
const clientModule = keep === undefined
|
|
50
|
+
? options.clientModule
|
|
51
|
+
: options.clientModule.replace(/\/client$/, "/keep-alive");
|
|
33
52
|
const loaderRows = [];
|
|
34
53
|
const patternRows = [];
|
|
35
54
|
const statusRoutes = {};
|
|
@@ -106,6 +125,12 @@ export function generateClientEntry(manifest, options) {
|
|
|
106
125
|
}
|
|
107
126
|
loadingLines.push("const loadingModules = {", ...loadings.map(([id, entry]) => ` ${jsStringLiteral(id)}: () => import(${jsStringLiteral(resolve(entry.file))}),`), "}", "const loadingRoutes = {", ...routeRows.values(), "}");
|
|
108
127
|
}
|
|
128
|
+
const live = options.live;
|
|
129
|
+
const liveFetch = keep !== undefined
|
|
130
|
+
? ", fetchData: __keep.fetchData"
|
|
131
|
+
: live === undefined
|
|
132
|
+
? ""
|
|
133
|
+
: ", fetchData: __live.fetchData";
|
|
109
134
|
return `${[
|
|
110
135
|
// `/client`, never the root: the root's graph carries the server (renderPage, the static-file
|
|
111
136
|
// server), and Vite's dev server evaluates what it is given instead of tree-shaking it.
|
|
@@ -114,6 +139,8 @@ export function generateClientEntry(manifest, options) {
|
|
|
114
139
|
...(options.serverComponents
|
|
115
140
|
? ['import { bindComponentRouter } from "@nifrajs/web/server-components/client"']
|
|
116
141
|
: []),
|
|
142
|
+
...(live === undefined ? [] : ['import { liveClient } from "@nifrajs/web/live-client"']),
|
|
143
|
+
...(keep === undefined ? [] : ['import { keepAliveClient } from "@nifrajs/web/keep-alive"']),
|
|
117
144
|
// Namespace import: `errorBoundary` is optional (an adapter may not export it). A namespace member
|
|
118
145
|
// access yields `undefined` if absent - unlike a named import, which would be a link error.
|
|
119
146
|
...(loadings.length > 0
|
|
@@ -174,7 +201,22 @@ export function generateClientEntry(manifest, options) {
|
|
|
174
201
|
"const holds = {}",
|
|
175
202
|
// routeId → the ids and `handle` exports `useMatches` reports (layouts, then the page).
|
|
176
203
|
`const layoutIdsOf = ${jsValueLiteral(layoutIdsOf)}`,
|
|
204
|
+
...(live === undefined
|
|
205
|
+
? []
|
|
206
|
+
: [
|
|
207
|
+
`const __live = liveClient({ ${[
|
|
208
|
+
"layoutIdsOf",
|
|
209
|
+
...(live.path === undefined ? [] : [`path: ${jsStringLiteral(live.path)}`]),
|
|
210
|
+
...(live.loadPath === undefined ? [] : [`loadPath: ${jsStringLiteral(live.loadPath)}`]),
|
|
211
|
+
].join(", ")} })`,
|
|
212
|
+
]),
|
|
177
213
|
"const matchChains = {}",
|
|
214
|
+
...(keep === undefined
|
|
215
|
+
? []
|
|
216
|
+
: [
|
|
217
|
+
`const keepAliveTable = ${jsValueLiteral(keep)}`,
|
|
218
|
+
`const __keep = keepAliveClient({ table: keepAliveTable, routeHooks, matchChains${live === undefined ? "" : ", fetchData: __live.fetchData"} })`,
|
|
219
|
+
]),
|
|
178
220
|
`const ${options.copyChunks === true ? "loadRoute" : "loadModule"} = async (id) => {`,
|
|
179
221
|
" if (chains[id]) return",
|
|
180
222
|
" const mods = await loaders[id]()",
|
|
@@ -210,7 +252,7 @@ export function generateClientEntry(manifest, options) {
|
|
|
210
252
|
// backend half, which no browser bundle contains.
|
|
211
253
|
" const boundaryMods = errorRouteIds.has(id) ? mods.slice(0, -1) : mods",
|
|
212
254
|
" const boundaries = boundaryMods.flatMap((m) => (m.boundaries ?? []).map((b) => ({ name: b.name, mode: b.mode, ...(b.errorId === undefined ? {} : { errorId: b.errorId }) })))",
|
|
213
|
-
|
|
255
|
+
` routeHooks[id] = { clientLoader: page.clientLoader, clientAction: page.clientAction, shareData: page.shareData, ${keep === undefined ? "" : "keepAlive: page.keepAlive, "}boundaries }`,
|
|
214
256
|
" if (page.ssr === false) holds[id] = [...chains[id].slice(0, -1), page.HydrateFallback ?? (() => null)]",
|
|
215
257
|
"}",
|
|
216
258
|
...(options.copyChunks === true
|
|
@@ -273,9 +315,15 @@ export function generateClientEntry(manifest, options) {
|
|
|
273
315
|
...loadingLines,
|
|
274
316
|
// With `_loading` pages the store is wrapped: a slow navigation then names a loading chain (the
|
|
275
317
|
// shared layouts + the `_loading` component) for the mounted view to render in the meantime.
|
|
276
|
-
loadings.length > 0
|
|
277
|
-
? `
|
|
278
|
-
: `
|
|
318
|
+
keepAround(keep, loadings.length > 0
|
|
319
|
+
? `withLoading(createClientRouter({ patterns, initial, loadModule, statusRoutes${routerStatusOption}, searchClientKeys, routeHooks${liveFetch} }), { routes: loadingRoutes, modules: loadingModules, chains, searchSchemas, matchChains })`
|
|
320
|
+
: `createClientRouter({ patterns, initial, loadModule, statusRoutes${routerStatusOption}, searchClientKeys, routeHooks${liveFetch} })`),
|
|
321
|
+
// Kept pages hold the code they were rendered with: a hot update drops them.
|
|
322
|
+
...(keep === undefined
|
|
323
|
+
? []
|
|
324
|
+
: [
|
|
325
|
+
'if (import.meta.hot) for (const event of ["bun:afterUpdate", "vite:afterUpdate"]) import.meta.hot.on(event, () => router.dropKept("hot-update"))',
|
|
326
|
+
]),
|
|
279
327
|
...(options.serverComponents ? ["bindComponentRouter(router)"] : []),
|
|
280
328
|
"installHistory(router)",
|
|
281
329
|
"installForms(router)",
|
|
@@ -329,11 +377,13 @@ export function generateClientEntry(manifest, options) {
|
|
|
329
377
|
" for (const listener of [...listeners]) listener()",
|
|
330
378
|
" }, 0)",
|
|
331
379
|
" }",
|
|
332
|
-
|
|
380
|
+
` mountRouter({ router: view, routes: chains, searchSchemas, matchChains, container: root${keep === undefined ? "" : ", keepAlive: keepAliveTable"} })`,
|
|
333
381
|
// Run the optional client loader only after the adapter has mounted the SSR tree. The initial
|
|
334
382
|
// server data is already in `window.__NIFRA_DATA__`, so `serverLoader()` reuses it and cannot
|
|
335
383
|
// duplicate the first request.
|
|
336
384
|
" router.hydrate().catch((error) => console.error('[nifra/web] clientLoader failed:', error))",
|
|
385
|
+
// Once mounted: the first live load and the socket must not race the hydration.
|
|
386
|
+
...(live === undefined ? [] : [" __live.attach(router)"]),
|
|
337
387
|
// Next frame: the adapter has committed its initial hydration, so handlers are attached. Flip the
|
|
338
388
|
// document to interactive (`data-nifra-hydrated` + `nifra:hydrated`) for apps to gate pre-hydration UI.
|
|
339
389
|
" requestAnimationFrame(signalHydrated)",
|
|
@@ -407,6 +457,13 @@ function moduleSpecifier(resolved) {
|
|
|
407
457
|
// A route's namespace is not assignable to `RouteModule` under a strict `tsc` (a backend half has no
|
|
408
458
|
// `default`, a typed `meta` narrows its data), so the table holds plain objects and the cast happens at
|
|
409
459
|
// `buildManifest`'s boundary - the same cast `discoverRoutes` applies to its dynamic import.
|
|
460
|
+
// The routes the scan found exporting `keepAlive`, which a disk-less server cannot scan again.
|
|
461
|
+
const keepAliveArg = (manifest) => {
|
|
462
|
+
const files = [
|
|
463
|
+
...new Set(manifest.routes.filter((route) => route.keepAlive).map((route) => route.file)),
|
|
464
|
+
];
|
|
465
|
+
return files.length === 0 ? "" : `, { keepAlive: ${jsValueLiteral(files)} }`;
|
|
466
|
+
};
|
|
410
467
|
const LAZY_IMPORTER = "(file) => loaders[file] as () => Promise<RouteModule>";
|
|
411
468
|
const EAGER_IMPORTER = "(file) => () => Promise.resolve(modules[file] as RouteModule)";
|
|
412
469
|
export function generateServerManifest(manifest, options) {
|
|
@@ -469,7 +526,7 @@ export function generateServerManifest(manifest, options) {
|
|
|
469
526
|
cssLoadingLine,
|
|
470
527
|
...copyChunksLines,
|
|
471
528
|
...buildAssetsLines,
|
|
472
|
-
`export const manifest = buildManifest(Object.keys(loaders), ${LAZY_IMPORTER})`,
|
|
529
|
+
`export const manifest = buildManifest(Object.keys(loaders), ${LAZY_IMPORTER}${keepAliveArg(manifest)})`,
|
|
473
530
|
].join("\n")}\n`;
|
|
474
531
|
}
|
|
475
532
|
// Eager: `import * as` per route (all bundled into the entry, parsed at boot). Index-based
|
|
@@ -488,7 +545,7 @@ export function generateServerManifest(manifest, options) {
|
|
|
488
545
|
cssLoadingLine,
|
|
489
546
|
...copyChunksLines,
|
|
490
547
|
...buildAssetsLines,
|
|
491
|
-
`export const manifest = buildManifest(Object.keys(modules), ${EAGER_IMPORTER})`,
|
|
548
|
+
`export const manifest = buildManifest(Object.keys(modules), ${EAGER_IMPORTER}${keepAliveArg(manifest)})`,
|
|
492
549
|
].join("\n")}\n`;
|
|
493
550
|
}
|
|
494
551
|
//# sourceMappingURL=codegen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The app's WebSocket routes under the dev servers. Neither dev server is the app's own listener, so
|
|
3
|
+
* neither gets the upgrades `app.listen()` and the adapters wire: each hands the handshake to the
|
|
4
|
+
* app's `resolveWebSocketUpgrade` seam - the route's `upgrade()` guard and Origin check included - and
|
|
5
|
+
* wires an accepted socket with the runtime's own `attach`, so a dev socket behaves as a served one.
|
|
6
|
+
*/
|
|
7
|
+
import type { WebSocketUpgradeOutcome } from "@nifrajs/core";
|
|
8
|
+
type Upgrade = Extract<WebSocketUpgradeOutcome, {
|
|
9
|
+
readonly kind: "upgrade";
|
|
10
|
+
}>;
|
|
11
|
+
/** A nifra app's handshake seam; a plain `{ fetch }` handler has none and takes no upgrades. */
|
|
12
|
+
export interface UpgradableApp {
|
|
13
|
+
resolveWebSocketUpgrade?(request: Request): WebSocketUpgradeOutcome | Promise<WebSocketUpgradeOutcome>;
|
|
14
|
+
}
|
|
15
|
+
export declare function isWebSocketUpgrade(request: Request): boolean;
|
|
16
|
+
/** What a dev socket carries from its handshake to `open`, and the view its events go to after. */
|
|
17
|
+
export interface BunDevSocketData {
|
|
18
|
+
readonly outcome: Upgrade;
|
|
19
|
+
emit?: (type: string, event: unknown) => void;
|
|
20
|
+
}
|
|
21
|
+
/** The part of Bun's `ServerWebSocket` used here. */
|
|
22
|
+
interface BunDevSocket {
|
|
23
|
+
send(data: string | ArrayBufferView | ArrayBuffer): unknown;
|
|
24
|
+
close(code?: number, reason?: string): void;
|
|
25
|
+
readonly readyState: number;
|
|
26
|
+
readonly data: BunDevSocketData;
|
|
27
|
+
}
|
|
28
|
+
export interface BunUpgradeServer {
|
|
29
|
+
upgrade(request: Request, options: {
|
|
30
|
+
data: BunDevSocketData;
|
|
31
|
+
}): boolean;
|
|
32
|
+
}
|
|
33
|
+
/** `Bun.serve`'s `websocket` option for a dev server whose upgrades go through {@link upgradeOnBun}. */
|
|
34
|
+
export declare const bunDevWebSocket: {
|
|
35
|
+
open(socket: BunDevSocket): void;
|
|
36
|
+
message(socket: BunDevSocket, message: string | Uint8Array): void;
|
|
37
|
+
close(socket: BunDevSocket, code: number, reason: string): void;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Run the handshake through the app. `undefined` when the socket was upgraded; a `Response` for a
|
|
41
|
+
* refusal; `"pass"` when no WebSocket route takes the path, for the dev server to answer as HTTP.
|
|
42
|
+
*/
|
|
43
|
+
export declare function upgradeOnBun(app: UpgradableApp, request: Request, server: BunUpgradeServer): Promise<Response | "pass" | undefined>;
|
|
44
|
+
/** The part of a Node socket an upgrade writes to. */
|
|
45
|
+
export interface UpgradeSocket {
|
|
46
|
+
write(chunk: string): unknown;
|
|
47
|
+
destroy(): void;
|
|
48
|
+
on(event: "error", listener: () => void): unknown;
|
|
49
|
+
}
|
|
50
|
+
/** The part of the `ws` package's `WebSocketServer` used here (no `@types/ws` dependency). */
|
|
51
|
+
export interface WsServer {
|
|
52
|
+
handleUpgrade(request: unknown, socket: UpgradeSocket, head: unknown, done: (ws: WsSocket) => void): void;
|
|
53
|
+
}
|
|
54
|
+
/** The part of a `ws` socket used here. Its own events, not its `addEventListener`: Bun's `ws`
|
|
55
|
+
* shim hands text frames to that as bytes. The shim also gives a close reason as a string where
|
|
56
|
+
* `ws` gives bytes. */
|
|
57
|
+
interface WsSocket {
|
|
58
|
+
send(data: string | ArrayBufferView | ArrayBuffer): void;
|
|
59
|
+
close(code?: number, reason?: string): void;
|
|
60
|
+
readonly readyState: number;
|
|
61
|
+
on(event: "message", listener: (data: string | Uint8Array, isBinary: boolean) => void): void;
|
|
62
|
+
on(event: "close", listener: (code: number, reason: string | Uint8Array) => void): void;
|
|
63
|
+
on(event: "error", listener: (error: Error) => void): void;
|
|
64
|
+
}
|
|
65
|
+
/** A noServer `ws` server from `specifier`; undefined when it cannot be loaded or has none. */
|
|
66
|
+
export declare function wsServerFrom(specifier: string): Promise<WsServer | undefined>;
|
|
67
|
+
/**
|
|
68
|
+
* Answer a Node `upgrade` event through the app. Resolves `false` when no WebSocket route takes the
|
|
69
|
+
* path, leaving the socket to the other listeners (Vite's HMR among them).
|
|
70
|
+
*/
|
|
71
|
+
export declare function upgradeOnNode(app: UpgradableApp, request: Request, nodeRequest: unknown, socket: UpgradeSocket, head: unknown, wsServerOf?: () => Promise<WsServer | undefined>): Promise<boolean>;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=dev-websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-websocket.d.ts","sourceRoot":"","sources":["../../src/internal/dev-websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
return path;
|
|
8
|
+
};
|
|
9
|
+
export function isWebSocketUpgrade(request) {
|
|
10
|
+
return request.headers.get("upgrade")?.toLowerCase() === "websocket";
|
|
11
|
+
}
|
|
12
|
+
/** A standard-socket view `attach` wires its listeners to; the dev server feeds it events. */
|
|
13
|
+
function socketView(native) {
|
|
14
|
+
const listeners = new Map();
|
|
15
|
+
return {
|
|
16
|
+
view: {
|
|
17
|
+
send: (data) => {
|
|
18
|
+
native.send(data);
|
|
19
|
+
},
|
|
20
|
+
close: (code, reason) => native.close(code, reason),
|
|
21
|
+
get readyState() {
|
|
22
|
+
return native.readyState;
|
|
23
|
+
},
|
|
24
|
+
addEventListener(type, listener) {
|
|
25
|
+
listeners.set(type, [...(listeners.get(type) ?? []), listener]);
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
emit(type, event) {
|
|
29
|
+
for (const listener of listeners.get(type) ?? [])
|
|
30
|
+
Reflect.apply(listener, undefined, [event]);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function attachView(view, outcome) {
|
|
35
|
+
outcome.attach(view, outcome.handler, outcome.data, {
|
|
36
|
+
openNow: true,
|
|
37
|
+
pubsub: outcome.pubsub,
|
|
38
|
+
maxPayloadBytes: outcome.maxPayloadBytes,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/** `Bun.serve`'s `websocket` option for a dev server whose upgrades go through {@link upgradeOnBun}. */
|
|
42
|
+
export const bunDevWebSocket = {
|
|
43
|
+
open(socket) {
|
|
44
|
+
const { view, emit } = socketView(socket);
|
|
45
|
+
socket.data.emit = emit;
|
|
46
|
+
attachView(view, socket.data.outcome);
|
|
47
|
+
},
|
|
48
|
+
message(socket, message) {
|
|
49
|
+
socket.data.emit?.("message", { data: message });
|
|
50
|
+
},
|
|
51
|
+
close(socket, code, reason) {
|
|
52
|
+
socket.data.emit?.("close", { code, reason });
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Run the handshake through the app. `undefined` when the socket was upgraded; a `Response` for a
|
|
57
|
+
* refusal; `"pass"` when no WebSocket route takes the path, for the dev server to answer as HTTP.
|
|
58
|
+
*/
|
|
59
|
+
export async function upgradeOnBun(app, request, server) {
|
|
60
|
+
if (app.resolveWebSocketUpgrade === undefined)
|
|
61
|
+
return "pass";
|
|
62
|
+
const outcome = await app.resolveWebSocketUpgrade(request);
|
|
63
|
+
if (outcome.kind === "pass")
|
|
64
|
+
return "pass";
|
|
65
|
+
if (outcome.kind === "reject")
|
|
66
|
+
return outcome.response;
|
|
67
|
+
return server.upgrade(request, { data: { outcome } })
|
|
68
|
+
? undefined
|
|
69
|
+
: new Response("upgrade_required", { status: 426 });
|
|
70
|
+
}
|
|
71
|
+
const TEXT = new TextDecoder();
|
|
72
|
+
const textOf = (data) => typeof data === "string" ? data : TEXT.decode(data);
|
|
73
|
+
/** A non-literal specifier: `ws` is an optional peer, typed structurally above. */
|
|
74
|
+
const WS_MODULE = "ws";
|
|
75
|
+
/** A noServer `ws` server from `specifier`; undefined when it cannot be loaded or has none. */
|
|
76
|
+
export async function wsServerFrom(specifier) {
|
|
77
|
+
try {
|
|
78
|
+
const mod = await import(__rewriteRelativeImportExtension(specifier));
|
|
79
|
+
const Server = mod.WebSocketServer ?? mod.default?.WebSocketServer;
|
|
80
|
+
return Server === undefined ? undefined : new Server({ noServer: true });
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
let wsServer;
|
|
87
|
+
/** One server for every dev upgrade. */
|
|
88
|
+
const loadWsServer = () => {
|
|
89
|
+
wsServer ??= wsServerFrom(WS_MODULE);
|
|
90
|
+
return wsServer;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Answer a Node `upgrade` event through the app. Resolves `false` when no WebSocket route takes the
|
|
94
|
+
* path, leaving the socket to the other listeners (Vite's HMR among them).
|
|
95
|
+
*/
|
|
96
|
+
export async function upgradeOnNode(app, request, nodeRequest, socket, head, wsServerOf = loadWsServer) {
|
|
97
|
+
if (app.resolveWebSocketUpgrade === undefined)
|
|
98
|
+
return false;
|
|
99
|
+
// A peer can reset the socket while the guard is awaited; with no listener that error ends the process.
|
|
100
|
+
socket.on("error", () => { });
|
|
101
|
+
let outcome;
|
|
102
|
+
try {
|
|
103
|
+
outcome = await app.resolveWebSocketUpgrade(request);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
await writeRefusal(socket, new Response("internal_error", { status: 500 }));
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
if (outcome.kind === "pass")
|
|
110
|
+
return false;
|
|
111
|
+
if (outcome.kind === "reject") {
|
|
112
|
+
await writeRefusal(socket, outcome.response);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
const wss = await wsServerOf();
|
|
116
|
+
if (wss === undefined) {
|
|
117
|
+
await writeRefusal(socket, new Response("[nifra] install `ws` to serve app.ws() routes under the Vite dev server\n", {
|
|
118
|
+
status: 501,
|
|
119
|
+
}));
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
const upgrade = outcome;
|
|
123
|
+
wss.handleUpgrade(nodeRequest, socket, head, (ws) => {
|
|
124
|
+
const { view, emit } = socketView(ws);
|
|
125
|
+
ws.on("message", (data, isBinary) => emit("message", { data: isBinary ? data : textOf(data) }));
|
|
126
|
+
// Bun's `node:http` stops listening when a socket's close listener throws.
|
|
127
|
+
ws.on("close", (code, reason) => emit("close", { code, reason: textOf(reason) }));
|
|
128
|
+
ws.on("error", (error) => emit("error", error));
|
|
129
|
+
attachView(view, upgrade);
|
|
130
|
+
});
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
/** A refusal written to the raw socket, then closed. */
|
|
134
|
+
async function writeRefusal(socket, response) {
|
|
135
|
+
const body = await response.text();
|
|
136
|
+
let head = `HTTP/1.1 ${response.status} ${response.statusText || "Refused"}\r\n`;
|
|
137
|
+
response.headers.forEach((value, key) => {
|
|
138
|
+
if (key !== "content-length" && key !== "connection")
|
|
139
|
+
head += `${key}: ${value}\r\n`;
|
|
140
|
+
});
|
|
141
|
+
head += `content-length: ${new TextEncoder().encode(body).byteLength}\r\nconnection: close\r\n\r\n`;
|
|
142
|
+
socket.write(head + body);
|
|
143
|
+
socket.destroy();
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=dev-websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-websocket.js","sourceRoot":"","sources":["../../src/internal/dev-websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The browser side of a partially prerendered page's holes, shared by every adapter's `Hole`: the
|
|
3
|
+
* host's first fill from the document, and each refill a data request brings when the page on screen
|
|
4
|
+
* reloads. An adapter supplies only how an interactive hole's own root hydrates, updates and goes. A
|
|
5
|
+
* hole that shows a server component mounts the client islands inside it through the component
|
|
6
|
+
* client the app registered with `holeComponents` (`@nifrajs/web/server-components/client`).
|
|
7
|
+
*/
|
|
8
|
+
import type { ComponentClientAdapter } from "../server-components/client.js";
|
|
9
|
+
import type { ComponentRecord } from "../server-components/types.js";
|
|
10
|
+
/** One hole's fill, as the PPR runtime keeps it. */
|
|
11
|
+
export interface HoleFill {
|
|
12
|
+
readonly props?: unknown;
|
|
13
|
+
readonly error: boolean;
|
|
14
|
+
/** The record of the server component the hole shows, without its HTML. */
|
|
15
|
+
readonly component?: unknown;
|
|
16
|
+
/** That component's HTML. */
|
|
17
|
+
readonly html?: string;
|
|
18
|
+
}
|
|
19
|
+
/** The error slot a failed, timed-out or refused hole shows. Constant: no thrown message reaches it. */
|
|
20
|
+
export declare const HOLE_ERROR_HTML = "<p data-nifra-hole-error=\"\">This section is unavailable.</p>";
|
|
21
|
+
/** How the islands inside a hole that shows a server component mount: the app's component client,
|
|
22
|
+
* and the protocol check the component's record passes first. */
|
|
23
|
+
export interface HoleComponents {
|
|
24
|
+
readonly client: ComponentClientAdapter;
|
|
25
|
+
record(value: unknown): ComponentRecord;
|
|
26
|
+
}
|
|
27
|
+
/** What `holeComponents` registers; `undefined` forgets it. */
|
|
28
|
+
export declare function setHoleComponents(next: HoleComponents | undefined): void;
|
|
29
|
+
/** An interactive hole's own root, as its adapter made it. */
|
|
30
|
+
export interface HoleRoot {
|
|
31
|
+
/** Render new props into the root, keeping its state; `false` when it has to be made again. */
|
|
32
|
+
update(props: unknown): boolean;
|
|
33
|
+
/** `leaving`: the page is unmounting the host, so the adapter may defer the work. A promise means
|
|
34
|
+
* the host is not free until it settles. */
|
|
35
|
+
dispose(leaving: boolean): void | Promise<void>;
|
|
36
|
+
/** The kept page holding the host is hidden (`true`) or shown again: a root whose framework can
|
|
37
|
+
* pause what it runs keeps its state either way. */
|
|
38
|
+
hide?(hidden: boolean): void;
|
|
39
|
+
}
|
|
40
|
+
export interface HoleHost {
|
|
41
|
+
/** Apply a data request's fill once it arrives, unless a newer one is given first. Without the
|
|
42
|
+
* shell's runtime, only a server component's fill or the error slot can be put. A first fill the
|
|
43
|
+
* host was rendered with (`initialHtml`) hydrates its islands over that HTML. */
|
|
44
|
+
refill(fill: unknown): void;
|
|
45
|
+
dispose(): void;
|
|
46
|
+
/**
|
|
47
|
+
* For an adapter whose hidden page cleans its effects up (React's `Activity`): while a kept page
|
|
48
|
+
* hides the host, keep it, root and all, for the page's return, and dispose it only if the page is
|
|
49
|
+
* dropped. `false` when nothing hides the host, and disposing is the adapter's.
|
|
50
|
+
*/
|
|
51
|
+
park(): boolean;
|
|
52
|
+
/** The parked host is the adapter's again. */
|
|
53
|
+
unpark(): void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* What a host renders with: a blocking render's settled fill puts the server's HTML in it, which a
|
|
57
|
+
* crawler reads with no script; any other state leaves it empty. A host reads it once, so no later
|
|
58
|
+
* render changes what the runtime put there.
|
|
59
|
+
*/
|
|
60
|
+
export declare const initialHtml: (fill: unknown) => string;
|
|
61
|
+
/**
|
|
62
|
+
* Drive the host of hole `name`. `hydrate` makes an interactive hole's root over the server HTML in
|
|
63
|
+
* `host`; a hole without one only ever shows server HTML, or a server component's.
|
|
64
|
+
*/
|
|
65
|
+
export declare function holeHost(name: string, host: Element, hydrate: ((host: Element, props: unknown) => HoleRoot) | undefined): HoleHost;
|
|
66
|
+
//# sourceMappingURL=hole-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hole-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/hole-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,gCAAgC,CAAA;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAGpE,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAWD,wGAAwG;AACxG,eAAO,MAAM,eAAe,mEAAiE,CAAA;AAgB7F;iEACiE;AACjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAAA;CACxC;AAID,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAExE;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,+FAA+F;IAC/F,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC/B;gDAC4C;IAC5C,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C;wDACoD;IACpD,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB;;qFAEiF;IACjF,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3B,OAAO,IAAI,IAAI,CAAA;IACf;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAA;IACf,8CAA8C;IAC9C,MAAM,IAAI,IAAI,CAAA;CACf;AAWD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,KAAG,MACwD,CAAA;AAkEpG;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,GAAG,SAAS,GACjE,QAAQ,CA2GV"}
|