@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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { timingSafeEqual } from "./timing-safe-equal.js";
|
|
2
|
+
const TEXT = new TextEncoder();
|
|
3
|
+
const MAC_HEX = /^[0-9a-f]{64}$/;
|
|
4
|
+
// Code units of signed text a signer remembers as proven. A hot page then costs a comparison per
|
|
5
|
+
// hit, not a hash: about 1.5 ns a byte to hash against a fraction of that to compare.
|
|
6
|
+
const MAX_PROVEN_CHARS = 2 * 1024 * 1024;
|
|
7
|
+
const MAX_SIGNERS = 4;
|
|
8
|
+
/** Below this, a secret is too short to sign with. */
|
|
9
|
+
export const MIN_STORE_SECRET_LENGTH = 32;
|
|
10
|
+
export const isStoreSecret = (value) => typeof value === "string" && value.length >= MIN_STORE_SECRET_LENGTH;
|
|
11
|
+
// Looked up, never imported: a Worker without nodejs_compat cannot load node:crypto. Where it exists
|
|
12
|
+
// it is the cheaper path: Web Crypto answers on another thread, about 20 us a call on Bun, Node and
|
|
13
|
+
// Deno, more than hashing a 16 KB page.
|
|
14
|
+
function nodeCreateHmac() {
|
|
15
|
+
const createHmac = globalThis.process?.getBuiltinModule?.("node:crypto")?.createHmac;
|
|
16
|
+
return typeof createHmac === "function" ? createHmac : undefined;
|
|
17
|
+
}
|
|
18
|
+
const sameParts = (a, b) => a.length === b.length && a.every((part, at) => part === b[at]);
|
|
19
|
+
const lengthOf = (parts) => parts.reduce((sum, part) => sum + part.length, 0);
|
|
20
|
+
// One signer per secret for the process, so a handler built per request (a Worker reads its bindings
|
|
21
|
+
// in `fetch`) still finds the pages earlier requests proved.
|
|
22
|
+
const signers = new Map();
|
|
23
|
+
export function storeSigner(secret) {
|
|
24
|
+
const existing = signers.get(secret);
|
|
25
|
+
if (existing !== undefined)
|
|
26
|
+
return existing;
|
|
27
|
+
const signer = provingSigner(hasher(secret));
|
|
28
|
+
for (const oldest of signers.keys()) {
|
|
29
|
+
if (signers.size < MAX_SIGNERS)
|
|
30
|
+
break;
|
|
31
|
+
signers.delete(oldest);
|
|
32
|
+
}
|
|
33
|
+
signers.set(secret, signer);
|
|
34
|
+
return signer;
|
|
35
|
+
}
|
|
36
|
+
function provingSigner(hashing) {
|
|
37
|
+
// MAC to the parts this signer signed or verified, oldest first.
|
|
38
|
+
const proven = new Map();
|
|
39
|
+
let provenChars = 0;
|
|
40
|
+
const remember = (mac, parts) => {
|
|
41
|
+
const length = lengthOf(parts);
|
|
42
|
+
if (length > MAX_PROVEN_CHARS / 8)
|
|
43
|
+
return;
|
|
44
|
+
const had = proven.get(mac);
|
|
45
|
+
if (had !== undefined) {
|
|
46
|
+
proven.delete(mac);
|
|
47
|
+
provenChars -= lengthOf(had);
|
|
48
|
+
}
|
|
49
|
+
proven.set(mac, parts);
|
|
50
|
+
provenChars += length;
|
|
51
|
+
for (const [oldest, kept] of proven) {
|
|
52
|
+
if (provenChars <= MAX_PROVEN_CHARS)
|
|
53
|
+
break;
|
|
54
|
+
proven.delete(oldest);
|
|
55
|
+
provenChars -= lengthOf(kept);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
async sign(parts) {
|
|
60
|
+
const mac = await hashing.sign(parts);
|
|
61
|
+
remember(mac, parts);
|
|
62
|
+
return mac;
|
|
63
|
+
},
|
|
64
|
+
async verify(parts, mac) {
|
|
65
|
+
if (typeof mac !== "string" || !MAC_HEX.test(mac))
|
|
66
|
+
return false;
|
|
67
|
+
const known = proven.get(mac);
|
|
68
|
+
if (known !== undefined && sameParts(known, parts))
|
|
69
|
+
return true;
|
|
70
|
+
if (!(await hashing.matches(parts, mac)))
|
|
71
|
+
return false;
|
|
72
|
+
remember(mac, parts);
|
|
73
|
+
return true;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function hasher(secret) {
|
|
78
|
+
const createHmac = nodeCreateHmac();
|
|
79
|
+
if (createHmac !== undefined) {
|
|
80
|
+
const hex = (parts) => {
|
|
81
|
+
const hmac = createHmac("sha256", secret);
|
|
82
|
+
for (const part of parts)
|
|
83
|
+
hmac.update(`${part.length}:`).update(part);
|
|
84
|
+
return hmac.digest("hex");
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
sign: async (parts) => hex(parts),
|
|
88
|
+
matches: async (parts, mac) => timingSafeEqual(hex(parts), mac),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
let signingKey;
|
|
92
|
+
const key = () => {
|
|
93
|
+
signingKey ??= crypto.subtle.importKey("raw", TEXT.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign", "verify"]);
|
|
94
|
+
return signingKey;
|
|
95
|
+
};
|
|
96
|
+
const bytes = (parts) => TEXT.encode(parts.map((part) => `${part.length}:${part}`).join(""));
|
|
97
|
+
return {
|
|
98
|
+
async sign(parts) {
|
|
99
|
+
const mac = new Uint8Array(await crypto.subtle.sign("HMAC", await key(), bytes(parts)));
|
|
100
|
+
let hex = "";
|
|
101
|
+
for (const byte of mac)
|
|
102
|
+
hex += byte.toString(16).padStart(2, "0");
|
|
103
|
+
return hex;
|
|
104
|
+
},
|
|
105
|
+
async matches(parts, mac) {
|
|
106
|
+
const expected = new Uint8Array(mac.length / 2);
|
|
107
|
+
for (let at = 0; at < expected.length; at++) {
|
|
108
|
+
expected[at] = Number.parseInt(mac.slice(at * 2, at * 2 + 2), 16);
|
|
109
|
+
}
|
|
110
|
+
return crypto.subtle.verify("HMAC", await key(), expected, bytes(parts));
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=store-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-signature.js","sourceRoot":"","sources":["../../src/internal/store-signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* Only a plugin's `config` hook output is rewritten, never mutated, and only under rolldown-vite.
|
|
17
17
|
* Non-rolldown Vite is passed through verbatim.
|
|
18
18
|
*
|
|
19
|
-
* FLATTEN FIRST: a
|
|
20
|
-
* returns `[vite:react-babel, vite:react-refresh]`, and it's `
|
|
19
|
+
* FLATTEN FIRST: a plugin factory may return an ARRAY of plugins - `@vitejs/plugin-react@4.x`'s `react()`
|
|
20
|
+
* returns `[vite:react-babel, vite:react-refresh]`, and it's `vite:react-babel`'s `config` hook that emits
|
|
21
21
|
* the offending `optimizeDeps.rollupOptions.jsx`. `nifra.config.ts` writes `vitePlugins = [react()]`, so the
|
|
22
22
|
* plugin list arrives NESTED (`[[babel, refresh]]`). Without flattening, `.map` sees the inner array (which
|
|
23
23
|
* has no `config`), leaves it untouched, and Vite - which flattens plugin arrays itself before running them
|
|
@@ -17,8 +17,8 @@ const isRecord = (value) => value !== null && typeof value === "object" && !Arra
|
|
|
17
17
|
* Only a plugin's `config` hook output is rewritten, never mutated, and only under rolldown-vite.
|
|
18
18
|
* Non-rolldown Vite is passed through verbatim.
|
|
19
19
|
*
|
|
20
|
-
* FLATTEN FIRST: a
|
|
21
|
-
* returns `[vite:react-babel, vite:react-refresh]`, and it's `
|
|
20
|
+
* FLATTEN FIRST: a plugin factory may return an ARRAY of plugins - `@vitejs/plugin-react@4.x`'s `react()`
|
|
21
|
+
* returns `[vite:react-babel, vite:react-refresh]`, and it's `vite:react-babel`'s `config` hook that emits
|
|
22
22
|
* the offending `optimizeDeps.rollupOptions.jsx`. `nifra.config.ts` writes `vitePlugins = [react()]`, so the
|
|
23
23
|
* plugin list arrives NESTED (`[[babel, refresh]]`). Without flattening, `.map` sees the inner array (which
|
|
24
24
|
* has no `config`), leaves it untouched, and Vite - which flattens plugin arrays itself before running them
|
|
@@ -5,7 +5,10 @@ import type { CssLoadingMode } from "../css-contract.js";
|
|
|
5
5
|
import { type BuildAssetSet, type HostPolicy } from "../host-policy.js";
|
|
6
6
|
import type { Manifest } from "../manifest.js";
|
|
7
7
|
import type { RenderAdapter } from "../render-seam.js";
|
|
8
|
+
import { type KeepAliveServerOptions } from "./identity-epoch.js";
|
|
9
|
+
import { type LiveRuntimeHandle } from "./live-contract.js";
|
|
8
10
|
import { type NonceResolver } from "./page-execution.js";
|
|
11
|
+
import { type PprSetup } from "./ppr/contract.js";
|
|
9
12
|
import { type PrerenderedPages } from "./prerendered-pages.js";
|
|
10
13
|
export type { NonceResolver } from "./page-execution.js";
|
|
11
14
|
/** An app's locale routing as `createWebApp` reads it: what `defineI18nRouting()` from
|
|
@@ -53,6 +56,15 @@ export interface CreateWebAppOptions<Env = unknown> {
|
|
|
53
56
|
* and stays cacheable by `withISR` or a CDN. `meta` still receives a nonce to name.
|
|
54
57
|
*/
|
|
55
58
|
readonly csp?: CspPolicy;
|
|
59
|
+
/** Experimental and unstable: features whose API may change in any release. */
|
|
60
|
+
readonly experimental?: {
|
|
61
|
+
/**
|
|
62
|
+
* Partial prerendering, from `partialPrerendering()` in `@nifrajs/web/ppr`. A route whose backend
|
|
63
|
+
* half exports `shellLoader` streams a shell shared by every visitor, then each `dynamic` boundary
|
|
64
|
+
* as it settles. Needs `csp` (hashes), not `nonce`.
|
|
65
|
+
*/
|
|
66
|
+
readonly ppr?: PprSetup;
|
|
67
|
+
};
|
|
56
68
|
/**
|
|
57
69
|
* Options for the underlying `server()` - `requestTimeoutMs`, `admission`, `gracefulSignals`, and
|
|
58
70
|
* the rest of {@link ServerOptions}.
|
|
@@ -173,6 +185,11 @@ export interface CreateWebAppOptions<Env = unknown> {
|
|
|
173
185
|
* signed `__nifra_draft` cookie gets `ctx.draft === true` in loaders/actions (else always `false`).
|
|
174
186
|
* Pair with `withISR({ draftSecret })` so editors bypass the cache. Omit to disable draft mode. */
|
|
175
187
|
readonly draftSecret?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Live data refresh, from `live()` in `@nifrajs/web/live`. Loaders declare keys with `ctx.live()`;
|
|
190
|
+
* the app answers live loads at the runtime's load endpoint. Omit and nothing live is loaded.
|
|
191
|
+
*/
|
|
192
|
+
readonly live?: LiveRuntimeHandle;
|
|
176
193
|
/** Per-route chunk URLs (`buildClient`'s `BuildManifest.routes`) - `routeId → [layout chunks…, own
|
|
177
194
|
* chunk]`. When present, each page `modulepreload`s its matched route's chunks alongside the entry,
|
|
178
195
|
* so the route code downloads in parallel (no entry→route-chunk waterfall). Omit ⇒ entry-only. */
|
|
@@ -228,6 +245,14 @@ export interface CreateWebAppOptions<Env = unknown> {
|
|
|
228
245
|
* server entry, before its static files too. A refused path answers the policy's refusal.
|
|
229
246
|
*/
|
|
230
247
|
readonly hostPolicy?: HostPolicy;
|
|
248
|
+
/**
|
|
249
|
+
* Which cookies say who is signed in, for an app with a `keepAlive` route. A response that changes
|
|
250
|
+
* or deletes one rotates the readable identity epoch cookie, and every tab drops the pages it kept
|
|
251
|
+
* for the previous visitor. The session cookies of `@nifrajs/auth`, Better Auth and Auth.js count
|
|
252
|
+
* under their default names; name any other in `identityCookies`. Development reports, once per
|
|
253
|
+
* name, an `HttpOnly` cookie that changes and is in neither list (`NIFRA_KEEPALIVE_IDENTITY_COOKIE`).
|
|
254
|
+
*/
|
|
255
|
+
readonly keepAlive?: KeepAliveServerOptions;
|
|
231
256
|
/**
|
|
232
257
|
* The files the build emitted, by request path: `buildAssets` from the generated server manifest.
|
|
233
258
|
* A {@link hostPolicy} rule's `buildAssets` token matches exactly these. `nifra dev` serves the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-app.d.ts","sourceRoot":"","sources":["../../src/internal/web-app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-app.d.ts","sourceRoot":"","sources":["../../src/internal/web-app.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/web-app.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { emitRequestErrorLog } from "@nifrajs/core/edge-kit";
|
|
2
2
|
import { jsonLogger } from "@nifrajs/core/logger";
|
|
3
3
|
import { NIFRA_BACKEND_EVIDENCE, NIFRA_BACKEND_MOUNT, NIFRA_BACKEND_WS_MOUNT, NIFRA_BACKEND_WS_RUNTIME, preRouteMountPaths, } from "@nifrajs/core/mount";
|
|
4
|
-
import {
|
|
4
|
+
import { withResponseObserver } from "@nifrajs/core/response-observer";
|
|
5
|
+
import { replacedRequestOf, server } from "@nifrajs/core/server";
|
|
5
6
|
import { cspNonceResolver, DOCUMENT_POLICY, isCspPolicy } from "../csp.js";
|
|
6
7
|
import { hostPolicyGate, isHostPolicy, } from "../host-policy.js";
|
|
7
8
|
import { CACHE_CHANNEL } from "../isr.js";
|
|
8
9
|
import { generateLlmsTxt } from "../llms-txt.js";
|
|
9
10
|
import { createMatcher, PRERENDERED_LIST_PATH } from "../router.js";
|
|
11
|
+
import { identityEpochHook } from "./identity-epoch.js";
|
|
12
|
+
import { INVALIDATION, invalidationOf } from "./invalidation-contract.js";
|
|
13
|
+
import { LIVE_ATTACH } from "./live-contract.js";
|
|
10
14
|
import { formatShadowedPages, shadowedPages } from "./mount-shadow.js";
|
|
11
15
|
import { createPageRequestExecutor } from "./page-execution.js";
|
|
16
|
+
import { PPR_SERVER, PPR_SETUP } from "./ppr/contract.js";
|
|
12
17
|
import { servePrerenderedPages } from "./prerendered-pages.js";
|
|
13
18
|
import { requestPattern } from "./route-path.js";
|
|
14
19
|
function pageI18n(routing) {
|
|
@@ -44,6 +49,11 @@ function pageI18n(routing) {
|
|
|
44
49
|
* The `Request` is rebuilt rather than mutated (`url` is read-only), preserving method, headers, body,
|
|
45
50
|
* and duplex streaming - the body is passed through unread, so a large or streamed upload is untouched.
|
|
46
51
|
*/
|
|
52
|
+
/** Publish what a write named, for an app with `live` and no cache wrapper to run the pipeline. */
|
|
53
|
+
async function publishOwn(op, request, publish) {
|
|
54
|
+
const { settleInvalidation } = await import("./invalidation.js");
|
|
55
|
+
await settleInvalidation(op, { publish }, request, undefined);
|
|
56
|
+
}
|
|
47
57
|
/**
|
|
48
58
|
* Resolve the explicit symbol-keyed backend mount interface. The symbol seam forwards platform
|
|
49
59
|
* context without making web depend on client.
|
|
@@ -125,14 +135,23 @@ export function createWebApp(options) {
|
|
|
125
135
|
}
|
|
126
136
|
app.use(hostPolicyGate(options.hostPolicy, options.buildAssets));
|
|
127
137
|
}
|
|
138
|
+
// Before every app hook: a live load becomes the target page's GET here, so each hook, middleware,
|
|
139
|
+
// gate and loader sees that path once, as a navigation would.
|
|
140
|
+
const liveAttachment = options.live?.[LIVE_ATTACH]({
|
|
141
|
+
matchRoute: (path) => pageExecutor.matchRoute(path),
|
|
142
|
+
app,
|
|
143
|
+
});
|
|
144
|
+
if (liveAttachment !== undefined)
|
|
145
|
+
app.onRequest(liveAttachment.onRequest);
|
|
128
146
|
// Before the mount hooks and before every page route, so the order-scoped hooks (`derive`,
|
|
129
147
|
// `beforeHandle`, assurance evidence) actually bind to them - see the `use` option. A caller
|
|
130
148
|
// cannot do this after the fact: by the time this function returns, the routes are declared.
|
|
131
149
|
options.use?.(app);
|
|
132
150
|
if (options.serverComponents !== undefined) {
|
|
133
151
|
const runtime = options.serverComponents;
|
|
152
|
+
// A route whose holes show server components is one visitor's too.
|
|
134
153
|
const match = createMatcher(manifest.routes
|
|
135
|
-
.filter((route) => runtime.owns(route.id))
|
|
154
|
+
.filter((route) => runtime.owns(route.id) || runtime.hosts?.(route.id) === true)
|
|
136
155
|
.map((route) => ({ routeId: route.id, pattern: route.pattern })));
|
|
137
156
|
const privateRoute = (request) => request.headers.has("x-nifra-component") || match(new URL(request.url).pathname) !== undefined;
|
|
138
157
|
Object.defineProperty(app, Symbol.for("nifra.web.private-route"), { value: privateRoute });
|
|
@@ -173,6 +192,36 @@ export function createWebApp(options) {
|
|
|
173
192
|
cacheChannel.enabled = true;
|
|
174
193
|
},
|
|
175
194
|
});
|
|
195
|
+
// One owner per write. A cache wrapper that opened the channel runs the whole pipeline and takes
|
|
196
|
+
// the operation here, by the request it passed in; without one, the app publishes the write's keys
|
|
197
|
+
// and tags itself, and a write with nothing to publish needs nothing at all.
|
|
198
|
+
const handedOver = new WeakMap();
|
|
199
|
+
const live = options.live;
|
|
200
|
+
const publish = live === undefined ? undefined : (keys) => live.publish(...keys);
|
|
201
|
+
Object.defineProperty(app, INVALIDATION, {
|
|
202
|
+
value: {
|
|
203
|
+
take: (request) => {
|
|
204
|
+
const op = handedOver.get(request);
|
|
205
|
+
handedOver.delete(request);
|
|
206
|
+
return op;
|
|
207
|
+
},
|
|
208
|
+
publish,
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
const invalidate = (revalidation, request) => {
|
|
212
|
+
if (cacheChannel.enabled) {
|
|
213
|
+
const op = invalidationOf(revalidation);
|
|
214
|
+
// Every request in a hook's replacement chain: the wrapper holds the first one.
|
|
215
|
+
for (let held = request; held !== undefined; held = replacedRequestOf(held))
|
|
216
|
+
handedOver.set(held, op);
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
// Paths alone refresh only the submitting page, which the response header already does.
|
|
220
|
+
const named = revalidation.__nifraInvalidate;
|
|
221
|
+
if (publish === undefined || named === undefined || named.keys.length + named.tags.length === 0)
|
|
222
|
+
return undefined;
|
|
223
|
+
return publishOwn(invalidationOf(revalidation), request, publish);
|
|
224
|
+
};
|
|
176
225
|
// Mount the in-process backend over HTTP at `apiPrefix`, when one is given, BEFORE page routing.
|
|
177
226
|
// Core's pre-route mount seam runs before the page wildcard `/*`; parent request hooks run first,
|
|
178
227
|
// child request hooks run inside the mount, and parent response hooks still wrap the result.
|
|
@@ -209,6 +258,14 @@ export function createWebApp(options) {
|
|
|
209
258
|
const prerenderedList = ownPatterns.has(PRERENDERED_LIST_PATH)
|
|
210
259
|
? undefined
|
|
211
260
|
: servedPrerenderedList(options.prerenderedPaths);
|
|
261
|
+
const ppr = options.experimental?.ppr?.[PPR_SETUP]({
|
|
262
|
+
adapter,
|
|
263
|
+
// biome-ignore lint/plugin/noConditionalEmptyObjectSpread: partial prerendering lists its scripts by hash only under an app's own policy.
|
|
264
|
+
...(options.csp === undefined ? {} : { csp: options.csp }),
|
|
265
|
+
// The content-hashed entry changes with every client build; the store is per process.
|
|
266
|
+
deployment: clientEntry,
|
|
267
|
+
perRequestNonce: options.nonce !== undefined,
|
|
268
|
+
});
|
|
212
269
|
const pageExecutor = createPageRequestExecutor({
|
|
213
270
|
...(options.cacheRouteModules === undefined
|
|
214
271
|
? {}
|
|
@@ -252,7 +309,15 @@ export function createWebApp(options) {
|
|
|
252
309
|
...(options.onLoaderError === undefined ? {} : { onLoaderError: options.onLoaderError }),
|
|
253
310
|
logBoundaryError: boundaryErrorLog(options.server),
|
|
254
311
|
cacheChannel,
|
|
312
|
+
// biome-ignore lint/plugin/noConditionalEmptyObjectSpread: the executor takes a route's shell path only when partial prerendering is set up.
|
|
313
|
+
...(ppr === undefined ? {} : { ppr }),
|
|
314
|
+
invalidate,
|
|
315
|
+
liveLoadOf: liveAttachment?.loadOf,
|
|
255
316
|
});
|
|
317
|
+
if (ppr !== undefined) {
|
|
318
|
+
Object.defineProperty(app, PPR_SERVER, { value: ppr.server });
|
|
319
|
+
app.register("POST", ppr.cancelPath, undefined, (c) => ppr.cancel(c.req));
|
|
320
|
+
}
|
|
256
321
|
// A nonce app's documents authorize their scripts per request, which a file rendered once cannot.
|
|
257
322
|
const prerendered = options.prerenderedPages === undefined || options.nonce !== undefined
|
|
258
323
|
? undefined
|
|
@@ -263,7 +328,8 @@ export function createWebApp(options) {
|
|
|
263
328
|
if (pattern.startsWith("/*"))
|
|
264
329
|
ownsRootCatchAll = true;
|
|
265
330
|
const render = pageExecutor.get(route);
|
|
266
|
-
app.register("GET", pattern, options.serverComponents?.owns(route.id)
|
|
331
|
+
app.register("GET", pattern, options.serverComponents?.owns(route.id) ||
|
|
332
|
+
options.serverComponents?.hosts?.(route.id) === true
|
|
267
333
|
? { capabilities: options.serverComponents.capabilities(route.id) }
|
|
268
334
|
: undefined, prerendered === undefined ? render : prerendered(render));
|
|
269
335
|
app.register("POST", pattern, undefined, pageExecutor.post(route));
|
|
@@ -312,6 +378,15 @@ export function createWebApp(options) {
|
|
|
312
378
|
// and the router refuses a second `/*` under another param name.
|
|
313
379
|
if (!ownsRootCatchAll)
|
|
314
380
|
app.register("GET", "/*", undefined, pageExecutor.fallback);
|
|
381
|
+
// Last, after every hook the caller's `use` added: a cookie any of them sets is seen here.
|
|
382
|
+
if (manifest.routes.some((route) => route.keepAlive === true)) {
|
|
383
|
+
// As for error details: only a run that says it is development or test reports, and an unset
|
|
384
|
+
// NODE_ENV (an unbuilt `bun app.ts`, a Worker) counts as production.
|
|
385
|
+
const nodeEnv = typeof process === "undefined" ? undefined : process.env?.NODE_ENV;
|
|
386
|
+
app.use(withResponseObserver({
|
|
387
|
+
onResponseHeaders: identityEpochHook(options.keepAlive ?? {}, nodeEnv === "development" || nodeEnv === "test"),
|
|
388
|
+
}));
|
|
389
|
+
}
|
|
315
390
|
const evidenceProvider = async (passed) => {
|
|
316
391
|
const { traverseEvidence } = await import("./evidence-traversal.js");
|
|
317
392
|
return traverseEvidence(evidenceProvider, passed, async (ancestry) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-app.js","sourceRoot":"","sources":["../../src/internal/web-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAIL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAsB,MAAM,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAkB,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1F,OAAO,EAGL,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEnE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAqC,MAAM,qBAAqB,CAAA;AAClG,OAAO,EAAyB,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAsBhD,SAAS,QAAQ,CAAC,OAAmB;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QACtC,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU;QAC1C,OAAO,OAAO,EAAE,YAAY,KAAK,UAAU;QAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAC9B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,2GAA2G,CAC5G,CAAA;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;YAC3B,CAAC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1C,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;KACzE,CAAA;AACH,CAAC;AAmPD;;;;;;;;;;;;GAYG;AACH;;;GAGG;AACH,SAAS,cAAc,CAAM,GAAY;IACvC,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC5F,MAAM,QAAQ,GAAI,GAAkC,CAAC,mBAAmB,CAAC,CAAA;IACzE,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACpD,MAAM,SAAS,GAAI,GAAkC,CAAC,sBAAsB,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAI,GAAkC,CAAC,wBAAwB,CAAC,CAAA;IAC7E,MAAM,QAAQ,GAAI,GAAkC,CAAC,sBAAsB,CAAC,CAAA;IAC5E,MAAM,KAAK,GAKP;QACF,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;KACpE,CAAA;IACD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/F,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAA;IAC5E,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAA;IAC5E,OAAO,KAAK,CAAA;AACd,CAAC;AAMD,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAClG,MAAM,QAAQ,GAAI,KAAgD,CAAC,sBAAsB,CAAC,CAAA;IAC1F,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAAqC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5F,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,IAAI,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,GAAG;QAAE,OAAO,EAAE,CAAA;IAChE,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,GAAG,GAAG,eAAe,CAAC,MAAM,CAAA;IAChC,OAAO,GAAG,GAAG,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS;QAAE,GAAG,EAAE,CAAA;IAC7E,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,sGAAsG;AACtG,SAAS,gBAAgB,CACvB,OAAkC;IAElC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,OAAO,EAAE,cAAc,IAAI,MAAM,CAAA;IAChD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AACzF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC9D,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAA;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAA;IACxF,CAAC;IACD,qGAAqG;IACrG,sGAAsG;IACtG,sGAAsG;IACtG,MAAM,GAAG,GAAG,MAAM,CAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,wFAAwF;IACxF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAA;QAChG,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,2FAA2F;IAC3F,6FAA6F;IAC7F,6FAA6F;IAC7F,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAClB,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAA;QACxC,MAAM,KAAK,GAAG,aAAa,CACzB,QAAQ,CAAC,MAAM;aACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CACnE,CAAA;QACD,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAW,EAAE,CACjD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;QAChG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;QAC1F,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAAE,OAAO,QAAQ,CAAA;YAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;YACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;iBACxB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBACxC,MAAM,CAAC,OAAO,CAAC,CACnB,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACzC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;YACxC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;YAClC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO;aACR,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,sGAAsG;IACtG,mGAAmG;IACnG,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAA;IAC/C,IAAI,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IAC9D,kGAAkG;IAClG,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACvC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE;QACxC,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7B,CAAC;KACF,CAAC,CAAA;IACF,iGAAiG;IACjG,kGAAkG;IAClG,6FAA6F;IAC7F,iGAAiG;IACjG,0FAA0F;IAC1F,wFAAwF;IACxF,8FAA8F;IAC9F,mGAAmG;IACnG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAA;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;IAC1C,MAAM,UAAU,GAAG,cAAc,CAAM,GAAG,CAAC,CAAA;IAC3C,oGAAoG;IACpG,iDAAiD;IACjD,MAAM,gBAAgB,GAAiC,MAAM,CAAC,MAAM,CAClE,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CACxB,CAAC,KAAK,EAAqB,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;KAChE,CAAC,CACH,CACF,CAAA;IACD,MAAM,MAAM,GAA6B,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5C,qGAAqG;IACrG,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC5D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,yBAAyB,CAAM;QAClD,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,gBAAgB,EAAE,KAAK,EACrB,OAAgB,EAChB,OAA4D,EAC5D,EAAE,CACF,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;oBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC5E,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC1E,CAAC;aACL,CAAC;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9F,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACxF,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QAClD,YAAY;KACb,CAAC,CAAA;IAEF,kGAAkG;IAClG,MAAM,WAAW,GACf,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QACnE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1E,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,gBAAgB,GAAG,IAAI,CAAA;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtC,GAAG,CAAC,QAAQ,CACV,KAAK,EACL,OAAO,EACP,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;YACnE,CAAC,CAAC,SAAS,EACb,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CACzD,CAAA;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,CAAC;IACD,sGAAsG;IACtG,oGAAoG;IACpG,kFAAkF;IAClF,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG;YAClB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YAC/D,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAA;QACD,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;QAChF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;YACzB,CAAC,WAAW,EAAE,KAAK,CAAC;YACpB,CAAC,gBAAgB,EAAE,IAAI,CAAC;SAChB,EAAE,CAAC;YACX,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACnC,IAAI,IAAiC,CAAA;YACrC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;gBAC9C,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtF,IAAI,GAAG,SAAS,CAAA;oBAChB,MAAM,KAAK,CAAA;gBACb,CAAC,CAAC,CAAA;gBACF,OAAO,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE;oBAC9B,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE;iBACzD,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAA;QACzC,GAAG,CAAC,QAAQ,CACV,KAAK,EACL,qBAAqB,EACrB,SAAS,EACT,CAAC,CAA4B,EAAE,EAAE,CAC/B,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,yFAAyF;gBACzF,eAAe,EACb,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;oBAClD,CAAC,CAAC,qCAAqC;oBACvC,CAAC,CAAC,UAAU;aACjB;SACF,CAAC,CACL,CAAA;IACH,CAAC;IAED,8FAA8F;IAC9F,iGAAiG;IACjG,iEAAiE;IACjE,IAAI,CAAC,gBAAgB;QAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAElF,MAAM,gBAAgB,GAA6B,KAAK,EAAE,MAAM,EAAE,EAAE;QAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;QACpE,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACnE,MAAM,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CACtE,wBAAwB,CACzB,CAAA;YACD,MAAM,KAAK,GAGN,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,sFAAsF;oBACtF,0BAA0B;oBAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;wBAAE,SAAQ;oBACxC,MAAM,IAAI,KAAK,CACb,yDAAyD,KAAK,CAAC,IAAI,oGAAoG,CACxK,CAAA;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;oBAClD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;gBACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CACb,uEAAuE,SAAS,uCAAuC,CACxH,CAAA;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;oBAC5C,oIAAoI;oBACpI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,sBAAsB,EAAE;QACjD,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IACF,mGAAmG;IACnG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAElF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAe;IAEf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,gGAAgG;AAChG,MAAM,wBAAwB,GAAG,IAAI,CAAA;AAErC,+FAA+F;AAC/F,SAAS,qBAAqB,CAC5B,KAAoC;IAEpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,wBAAwB;QAAE,OAAO,SAAS,CAAA;IAC7D,8FAA8F;IAC9F,gDAAgD;IAChD,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC7F,MAAM,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,qBAAqB,MAAM,OAAO,EAAE,EAAE,CAAA;AACxE,CAAC"}
|
|
1
|
+
{"version":3,"file":"web-app.js","sourceRoot":"","sources":["../../src/internal/web-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAIL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAsB,MAAM,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAkB,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1F,OAAO,EAGL,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEnE,OAAO,EAAE,iBAAiB,EAA+B,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,YAAY,EAAuB,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,WAAW,EAA+C,MAAM,oBAAoB,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAqC,MAAM,qBAAqB,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAyB,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAErF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAsBhD,SAAS,QAAQ,CAAC,OAAmB;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QACtC,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU;QAC1C,OAAO,OAAO,EAAE,YAAY,KAAK,UAAU;QAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAC9B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,2GAA2G,CAC5G,CAAA;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;YAC3B,CAAC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1C,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;KACzE,CAAA;AACH,CAAC;AAyQD;;;;;;;;;;;;GAYG;AACH,mGAAmG;AACnG,KAAK,UAAU,UAAU,CACvB,EAAkB,EAClB,OAAgB,EAChB,OAAmD;IAEnD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAChE,MAAM,kBAAkB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAM,GAAY;IACvC,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC5F,MAAM,QAAQ,GAAI,GAAkC,CAAC,mBAAmB,CAAC,CAAA;IACzE,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACpD,MAAM,SAAS,GAAI,GAAkC,CAAC,sBAAsB,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAI,GAAkC,CAAC,wBAAwB,CAAC,CAAA;IAC7E,MAAM,QAAQ,GAAI,GAAkC,CAAC,sBAAsB,CAAC,CAAA;IAC5E,MAAM,KAAK,GAKP;QACF,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;KACpE,CAAA;IACD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/F,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAA;IAC5E,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAA;IAC5E,OAAO,KAAK,CAAA;AACd,CAAC;AAMD,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAClG,MAAM,QAAQ,GAAI,KAAgD,CAAC,sBAAsB,CAAC,CAAA;IAC1F,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAAqC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5F,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,IAAI,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,GAAG;QAAE,OAAO,EAAE,CAAA;IAChE,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,GAAG,GAAG,eAAe,CAAC,MAAM,CAAA;IAChC,OAAO,GAAG,GAAG,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS;QAAE,GAAG,EAAE,CAAA;IAC7E,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,sGAAsG;AACtG,SAAS,gBAAgB,CACvB,OAAkC;IAElC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,OAAO,EAAE,cAAc,IAAI,MAAM,CAAA;IAChD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AACzF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC9D,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAA;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAA;IACxF,CAAC;IACD,qGAAqG;IACrG,sGAAsG;IACtG,sGAAsG;IACtG,MAAM,GAAG,GAAG,MAAM,CAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,wFAAwF;IACxF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAA;QAChG,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,mGAAmG;IACnG,8DAA8D;IAC9D,MAAM,cAAc,GAA+B,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;QAC7E,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;QACnD,GAAG;KACJ,CAAC,CAAA;IACF,IAAI,cAAc,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;IACzE,2FAA2F;IAC3F,6FAA6F;IAC7F,6FAA6F;IAC7F,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAClB,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAA;QACxC,mEAAmE;QACnE,MAAM,KAAK,GAAG,aAAa,CACzB,QAAQ,CAAC,MAAM;aACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;aAC/E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CACnE,CAAA;QACD,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAW,EAAE,CACjD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;QAChG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;QAC1F,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAAE,OAAO,QAAQ,CAAA;YAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;YACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;iBACxB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBACxC,MAAM,CAAC,OAAO,CAAC,CACnB,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACzC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;YACxC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;YAClC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO;aACR,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,sGAAsG;IACtG,mGAAmG;IACnG,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAA;IAC/C,IAAI,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IAC9D,kGAAkG;IAClG,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACvC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE;QACxC,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7B,CAAC;KACF,CAAC,CAAA;IACF,iGAAiG;IACjG,mGAAmG;IACnG,6EAA6E;IAC7E,MAAM,UAAU,GAAG,IAAI,OAAO,EAA2B,CAAA;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,MAAM,OAAO,GACX,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACrF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE;QACvC,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,OAAgB,EAA8B,EAAE;gBACrD,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAClC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC1B,OAAO,EAAE,CAAA;YACX,CAAC;YACD,OAAO;SACR;KACF,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,CACjB,YAAuC,EACvC,OAAgB,EACW,EAAE;QAC7B,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;YACvC,gFAAgF;YAChF,KACE,IAAI,IAAI,GAAwB,OAAO,EACvC,IAAI,KAAK,SAAS,EAClB,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBAE9B,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAC1B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,wFAAwF;QACxF,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAA;QAC5C,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAC7F,OAAO,SAAS,CAAA;QAClB,OAAO,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC,CAAA;IACD,iGAAiG;IACjG,kGAAkG;IAClG,6FAA6F;IAC7F,iGAAiG;IACjG,0FAA0F;IAC1F,wFAAwF;IACxF,8FAA8F;IAC9F,mGAAmG;IACnG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAA;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;IAC1C,MAAM,UAAU,GAAG,cAAc,CAAM,GAAG,CAAC,CAAA;IAC3C,oGAAoG;IACpG,iDAAiD;IACjD,MAAM,gBAAgB,GAAiC,MAAM,CAAC,MAAM,CAClE,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CACxB,CAAC,KAAK,EAAqB,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;KAChE,CAAC,CACH,CACF,CAAA;IACD,MAAM,MAAM,GAA6B,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5C,qGAAqG;IACrG,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC5D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO;QACP,0IAA0I;QAC1I,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,sFAAsF;QACtF,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS;KAC7C,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,yBAAyB,CAAM;QAClD,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,gBAAgB,EAAE,KAAK,EACrB,OAAgB,EAChB,OAA4D,EAC5D,EAAE,CACF,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;oBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC5E,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC1E,CAAC;aACL,CAAC;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9F,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACxF,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QAClD,YAAY;QACZ,6IAA6I;QAC7I,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,UAAU;QACV,UAAU,EAAE,cAAc,EAAE,MAAM;KACnC,CAAC,CAAA;IACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7D,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAA4B,EAAE,EAAE,CAC/E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAClB,CAAA;IACH,CAAC;IAED,kGAAkG;IAClG,MAAM,WAAW,GACf,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QACnE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1E,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,gBAAgB,GAAG,IAAI,CAAA;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtC,GAAG,CAAC,QAAQ,CACV,KAAK,EACL,OAAO,EACP,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI;YACpD,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;YACnE,CAAC,CAAC,SAAS,EACb,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CACzD,CAAA;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,CAAC;IACD,sGAAsG;IACtG,oGAAoG;IACpG,kFAAkF;IAClF,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG;YAClB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YAC/D,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAA;QACD,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;QAChF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;YACzB,CAAC,WAAW,EAAE,KAAK,CAAC;YACpB,CAAC,gBAAgB,EAAE,IAAI,CAAC;SAChB,EAAE,CAAC;YACX,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACnC,IAAI,IAAiC,CAAA;YACrC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;gBAC9C,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtF,IAAI,GAAG,SAAS,CAAA;oBAChB,MAAM,KAAK,CAAA;gBACb,CAAC,CAAC,CAAA;gBACF,OAAO,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE;oBAC9B,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE;iBACzD,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAA;QACzC,GAAG,CAAC,QAAQ,CACV,KAAK,EACL,qBAAqB,EACrB,SAAS,EACT,CAAC,CAA4B,EAAE,EAAE,CAC/B,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,yFAAyF;gBACzF,eAAe,EACb,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;oBAClD,CAAC,CAAC,qCAAqC;oBACvC,CAAC,CAAC,UAAU;aACjB;SACF,CAAC,CACL,CAAA;IACH,CAAC;IAED,8FAA8F;IAC9F,iGAAiG;IACjG,iEAAiE;IACjE,IAAI,CAAC,gBAAgB;QAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAElF,2FAA2F;IAC3F,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9D,6FAA6F;QAC7F,qEAAqE;QACrE,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAA;QAClF,GAAG,CAAC,GAAG,CACL,oBAAoB,CAAC;YACnB,iBAAiB,EAAE,iBAAiB,CAClC,OAAO,CAAC,SAAS,IAAI,EAAE,EACvB,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,MAAM,CAChD;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GAA6B,KAAK,EAAE,MAAM,EAAE,EAAE;QAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;QACpE,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACnE,MAAM,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CACtE,wBAAwB,CACzB,CAAA;YACD,MAAM,KAAK,GAGN,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,sFAAsF;oBACtF,0BAA0B;oBAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;wBAAE,SAAQ;oBACxC,MAAM,IAAI,KAAK,CACb,yDAAyD,KAAK,CAAC,IAAI,oGAAoG,CACxK,CAAA;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;oBAClD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;gBACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CACb,uEAAuE,SAAS,uCAAuC,CACxH,CAAA;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;oBAC5C,oIAAoI;oBACpI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,sBAAsB,EAAE;QACjD,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IACF,mGAAmG;IACnG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAElF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAe;IAEf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,gGAAgG;AAChG,MAAM,wBAAwB,GAAG,IAAI,CAAA;AAErC,+FAA+F;AAC/F,SAAS,qBAAqB,CAC5B,KAAoC;IAEpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,wBAAwB;QAAE,OAAO,SAAS,CAAA;IAC7D,8FAA8F;IAC9F,gDAAgD;IAChD,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC7F,MAAM,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,qBAAqB,MAAM,OAAO,EAAE,EAAE,CAAA;AACxE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nifrajs/web/islands/swap - refresh one region of a server-rendered page from a plain link or form,
|
|
3
|
+
* without a full reload and without a client router.
|
|
4
|
+
*
|
|
5
|
+
* <form action="/hotels" data-swap="replace:results"><input name="q"></form>
|
|
6
|
+
* <ul data-swap-slot="results">...</ul>
|
|
7
|
+
* <a href="/hotels?page=2" data-swap="append:results">More</a>
|
|
8
|
+
*
|
|
9
|
+
* The request is the one the link or form makes anyway, plus an `x-nifra-swap: <slot>` header. The
|
|
10
|
+
* server runs the page as usual and answers with that slot's HTML alone (`slot()` in
|
|
11
|
+
* `@nifrajs/web-vanilla`), so the fragment is a slice of the real page. Any other answer - a redirect,
|
|
12
|
+
* another origin, a page without that slot - loads the URL normally. Only GET requests are enhanced:
|
|
13
|
+
* a POST form submits natively, so the browser applies its response's security policy and scripts,
|
|
14
|
+
* and the form is never sent twice.
|
|
15
|
+
*/
|
|
16
|
+
import type { IslandEnhancer } from "./islands.js";
|
|
17
|
+
/** Where `enableSwap` looks for links, forms, slots and islands. */
|
|
18
|
+
export interface SwapOptions {
|
|
19
|
+
/** Default `document`. */
|
|
20
|
+
readonly root?: Document | Element;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Mount the page's islands, as `mountIslands` does, and make every `data-swap` link and GET form under
|
|
24
|
+
* `root` refresh its slot in place. Call it instead of `mountIslands`.
|
|
25
|
+
*
|
|
26
|
+
* - `data-swap="replace:<slot>"` replaces the content of the `data-swap-slot="<slot>"` element;
|
|
27
|
+
* `append:<slot>` adds to it, and a link or form inside that slot is spent: the slot's child holding
|
|
28
|
+
* it is removed when the next content arrives, so a "more" link at the end of a list gives way to
|
|
29
|
+
* the next page and its own "more" link.
|
|
30
|
+
* - A replacing GET pushes its URL, so a filtered list survives reload and can be shared; back and
|
|
31
|
+
* forward fetch the slots again for the URL they land on.
|
|
32
|
+
* - The islands inside a slot mount with it and unmount when it is replaced.
|
|
33
|
+
* - While a slot loads it carries `aria-busy="true"`; a newer swap of the same slot cancels the
|
|
34
|
+
* older one. When the request fails, the page stays as it is and the link or form gets
|
|
35
|
+
* `data-swap-error`.
|
|
36
|
+
*
|
|
37
|
+
* Nothing inside a `data-island-ignore` element swaps. Returns a disposer that removes the listeners,
|
|
38
|
+
* cancels pending swaps and unmounts every island.
|
|
39
|
+
*/
|
|
40
|
+
export declare function enableSwap(enhancers: Readonly<Record<string, IslandEnhancer<never>>>, options?: SwapOptions): () => void;
|
|
41
|
+
//# sourceMappingURL=islands-swap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"islands-swap.d.ts","sourceRoot":"","sources":["../src/islands-swap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlD,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CACnC;AAmBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAExB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D,OAAO,GAAE,WAAgB,GACxB,MAAM,IAAI,CAyNZ"}
|