@ogygia/core 0.0.0 → 0.11.1
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/LICENSE +21 -0
- package/README.md +7 -1
- package/ambient.d.ts +194 -0
- package/dist/ClientBindingStub.svelte +6 -0
- package/dist/ClientBindingStub.svelte.d.ts +26 -0
- package/dist/KeepHost.svelte +19 -0
- package/dist/KeepHost.svelte.d.ts +10 -0
- package/dist/LakeBoundary.svelte +16 -0
- package/dist/LakeBoundary.svelte.d.ts +11 -0
- package/dist/LateIsland.svelte +22 -0
- package/dist/LateIsland.svelte.d.ts +15 -0
- package/dist/LateIslandAwait.svelte +17 -0
- package/dist/LateIslandAwait.svelte.d.ts +15 -0
- package/dist/LiveHost.svelte +19 -0
- package/dist/LiveHost.svelte.d.ts +10 -0
- package/dist/NestedProvider.svelte +13 -0
- package/dist/NestedProvider.svelte.d.ts +8 -0
- package/dist/OgygiaBoundary.svelte +5 -0
- package/dist/OgygiaBoundary.svelte.d.ts +17 -0
- package/dist/PromiseRegion.svelte +40 -0
- package/dist/PromiseRegion.svelte.d.ts +15 -0
- package/dist/PromiseRegionAwait.svelte +27 -0
- package/dist/PromiseRegionAwait.svelte.d.ts +15 -0
- package/dist/Provide.svelte +27 -0
- package/dist/Provide.svelte.d.ts +8 -0
- package/dist/RawHtml.svelte +9 -0
- package/dist/RawHtml.svelte.d.ts +6 -0
- package/dist/Region.svelte +1173 -0
- package/dist/Region.svelte.d.ts +68 -0
- package/dist/SlotBoundary.svelte +13 -0
- package/dist/SlotBoundary.svelte.d.ts +7 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.js +3 -0
- package/dist/boundary.d.ts +35 -0
- package/dist/boundary.js +127 -0
- package/dist/build-cache.d.ts +13 -0
- package/dist/build-cache.js +77 -0
- package/dist/compiler/blank-styles.d.ts +1 -0
- package/dist/compiler/blank-styles.js +63 -0
- package/dist/compiler/bom.d.ts +2 -0
- package/dist/compiler/bom.js +15 -0
- package/dist/compiler/browser-full.d.ts +8 -0
- package/dist/compiler/browser-full.js +8 -0
- package/dist/compiler/browser.d.ts +11 -0
- package/dist/compiler/browser.js +11 -0
- package/dist/compiler/content/transportables.d.ts +26 -0
- package/dist/compiler/content/transportables.js +219 -0
- package/dist/compiler/ctx.d.ts +185 -0
- package/dist/compiler/ctx.js +203 -0
- package/dist/compiler/debarrel/barrel.d.ts +55 -0
- package/dist/compiler/debarrel/barrel.js +248 -0
- package/dist/compiler/debarrel/options.d.ts +67 -0
- package/dist/compiler/debarrel/options.js +31 -0
- package/dist/compiler/debarrel/parse.d.ts +65 -0
- package/dist/compiler/debarrel/parse.js +256 -0
- package/dist/compiler/debarrel/plugin.d.ts +31 -0
- package/dist/compiler/debarrel/plugin.js +190 -0
- package/dist/compiler/debarrel/rewrite.d.ts +27 -0
- package/dist/compiler/debarrel/rewrite.js +118 -0
- package/dist/compiler/debarrel/svelte.d.ts +13 -0
- package/dist/compiler/debarrel/svelte.js +56 -0
- package/dist/compiler/dev/css-scope.d.ts +16 -0
- package/dist/compiler/dev/css-scope.js +38 -0
- package/dist/compiler/dev/dev-hmr.d.ts +25 -0
- package/dist/compiler/dev/dev-hmr.js +29 -0
- package/dist/compiler/dev/hmr.d.ts +34 -0
- package/dist/compiler/dev/hmr.js +57 -0
- package/dist/compiler/dev/region-bytes.d.ts +34 -0
- package/dist/compiler/dev/region-bytes.js +126 -0
- package/dist/compiler/driver.d.ts +280 -0
- package/dist/compiler/driver.js +1352 -0
- package/dist/compiler/flags.d.ts +16 -0
- package/dist/compiler/flags.js +101 -0
- package/dist/compiler/fouc-css.d.ts +97 -0
- package/dist/compiler/fouc-css.js +335 -0
- package/dist/compiler/free-vars.d.ts +20 -0
- package/dist/compiler/free-vars.js +327 -0
- package/dist/compiler/host.d.ts +65 -0
- package/dist/compiler/host.js +51 -0
- package/dist/compiler/ids.d.ts +84 -0
- package/dist/compiler/ids.js +86 -0
- package/dist/compiler/index.d.ts +11 -0
- package/dist/compiler/index.js +11 -0
- package/dist/compiler/kit.d.ts +129 -0
- package/dist/compiler/kit.js +563 -0
- package/dist/compiler/link/build-output.d.ts +44 -0
- package/dist/compiler/link/build-output.js +147 -0
- package/dist/compiler/link/caps.d.ts +48 -0
- package/dist/compiler/link/caps.js +64 -0
- package/dist/compiler/link/context-detect.d.ts +23 -0
- package/dist/compiler/link/context-detect.js +137 -0
- package/dist/compiler/link/emit-gate.d.ts +11 -0
- package/dist/compiler/link/emit-gate.js +40 -0
- package/dist/compiler/link/entry-shim.d.ts +4 -0
- package/dist/compiler/link/entry-shim.js +29 -0
- package/dist/compiler/link/island-deps.d.ts +142 -0
- package/dist/compiler/link/island-deps.js +525 -0
- package/dist/compiler/link/manifest.d.ts +5 -0
- package/dist/compiler/link/manifest.js +9 -0
- package/dist/compiler/link/page-keys.d.ts +64 -0
- package/dist/compiler/link/page-keys.js +683 -0
- package/dist/compiler/link/registry-stub.d.ts +41 -0
- package/dist/compiler/link/registry-stub.js +212 -0
- package/dist/compiler/link/router-config.d.ts +11 -0
- package/dist/compiler/link/router-config.js +15 -0
- package/dist/compiler/link/router-css.d.ts +22 -0
- package/dist/compiler/link/router-css.js +142 -0
- package/dist/compiler/link/runtime-entry.d.ts +71 -0
- package/dist/compiler/link/runtime-entry.js +132 -0
- package/dist/compiler/link/server-manifest.d.ts +12 -0
- package/dist/compiler/link/server-manifest.js +45 -0
- package/dist/compiler/link/speculation.d.ts +17 -0
- package/dist/compiler/link/speculation.js +36 -0
- package/dist/compiler/link/transport.d.ts +31 -0
- package/dist/compiler/link/transport.js +67 -0
- package/dist/compiler/macros/bake.d.ts +20 -0
- package/dist/compiler/macros/bake.js +317 -0
- package/dist/compiler/macros/browser.d.ts +11 -0
- package/dist/compiler/macros/browser.js +69 -0
- package/dist/compiler/macros/dedent.d.ts +12 -0
- package/dist/compiler/macros/dedent.js +36 -0
- package/dist/compiler/macros/dollar.d.ts +15 -0
- package/dist/compiler/macros/dollar.js +387 -0
- package/dist/compiler/macros/pipeline.d.ts +31 -0
- package/dist/compiler/macros/pipeline.js +106 -0
- package/dist/compiler/macros/source.d.ts +6 -0
- package/dist/compiler/macros/source.js +127 -0
- package/dist/compiler/macros/store.d.ts +17 -0
- package/dist/compiler/macros/store.js +244 -0
- package/dist/compiler/macros/wire.d.ts +14 -0
- package/dist/compiler/macros/wire.js +160 -0
- package/dist/compiler/ownership-stamps.d.ts +6 -0
- package/dist/compiler/ownership-stamps.js +144 -0
- package/dist/compiler/parse/oxc.d.ts +34 -0
- package/dist/compiler/parse/oxc.js +59 -0
- package/dist/compiler/parse/scan.d.ts +43 -0
- package/dist/compiler/parse/scan.js +232 -0
- package/dist/compiler/program.d.ts +140 -0
- package/dist/compiler/program.js +242 -0
- package/dist/compiler/region/emit.d.ts +169 -0
- package/dist/compiler/region/emit.js +286 -0
- package/dist/compiler/region/identity.d.ts +28 -0
- package/dist/compiler/region/identity.js +75 -0
- package/dist/compiler/region/ir.d.ts +65 -0
- package/dist/compiler/region/ir.js +0 -0
- package/dist/compiler/region/transform.d.ts +178 -0
- package/dist/compiler/region/transform.js +1933 -0
- package/dist/compiler/script-request.d.ts +1 -0
- package/dist/compiler/script-request.js +43 -0
- package/dist/context-bridge.d.ts +65 -0
- package/dist/context-bridge.js +217 -0
- package/dist/context-registry.d.ts +40 -0
- package/dist/context-registry.js +15 -0
- package/dist/context.d.ts +72 -0
- package/dist/context.js +158 -0
- package/dist/current-region.d.ts +14 -0
- package/dist/current-region.js +36 -0
- package/dist/document.d.ts +41 -0
- package/dist/document.js +125 -0
- package/dist/entry-hydrate.d.ts +5 -0
- package/dist/entry-hydrate.js +42 -0
- package/dist/escape.d.ts +18 -0
- package/dist/escape.js +37 -0
- package/dist/events/bus.d.ts +33 -0
- package/dist/events/bus.js +153 -0
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.js +4 -0
- package/dist/events/schema.d.ts +389 -0
- package/dist/events/schema.js +23 -0
- package/dist/events/server-registry.d.ts +7 -0
- package/dist/events/server-registry.js +13 -0
- package/dist/events/sinks.d.ts +64 -0
- package/dist/events/sinks.js +85 -0
- package/dist/fn-transport.d.ts +33 -0
- package/dist/fn-transport.js +140 -0
- package/dist/frame.d.ts +20 -0
- package/dist/frame.js +19 -0
- package/dist/holes-record.d.ts +6 -0
- package/dist/holes-record.js +8 -0
- package/dist/hooks.d.ts +43 -0
- package/dist/hooks.js +1191 -0
- package/dist/hydration-info.d.ts +1 -0
- package/dist/hydration-info.js +31 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +17 -0
- package/dist/insights/attr-rules.d.ts +15 -0
- package/dist/insights/attr-rules.js +27 -0
- package/dist/insights/cpu.d.ts +82 -0
- package/dist/insights/cpu.js +177 -0
- package/dist/insights/fp-drift.d.ts +28 -0
- package/dist/insights/fp-drift.js +148 -0
- package/dist/insights/hole-segments.d.ts +26 -0
- package/dist/insights/hole-segments.js +50 -0
- package/dist/insights/html-diff.d.ts +25 -0
- package/dist/insights/html-diff.js +157 -0
- package/dist/insights/hydration-hazards.d.ts +36 -0
- package/dist/insights/hydration-hazards.js +136 -0
- package/dist/insights/hydration-status.d.ts +2 -0
- package/dist/insights/hydration-status.js +0 -0
- package/dist/insights/index.d.ts +14 -0
- package/dist/insights/index.js +12 -0
- package/dist/insights/page-assets.d.ts +211 -0
- package/dist/insights/page-assets.js +608 -0
- package/dist/insights/page-insights.d.ts +749 -0
- package/dist/insights/page-insights.js +2157 -0
- package/dist/insights/session-data.d.ts +108 -0
- package/dist/insights/session-data.js +0 -0
- package/dist/insights/session-insights.d.ts +121 -0
- package/dist/insights/session-insights.js +548 -0
- package/dist/insights/switch.d.ts +53 -0
- package/dist/insights/switch.js +91 -0
- package/dist/insights/testing-version.d.ts +19 -0
- package/dist/insights/testing-version.js +21 -0
- package/dist/insights/third-party.d.ts +75 -0
- package/dist/insights/third-party.js +160 -0
- package/dist/internal-instruments.d.ts +13 -0
- package/dist/internal-instruments.js +12 -0
- package/dist/internal-reconcile.d.ts +3 -0
- package/dist/internal-reconcile.js +3 -0
- package/dist/internal-register.d.ts +7 -0
- package/dist/internal-register.js +7 -0
- package/dist/internal-server.d.ts +7 -0
- package/dist/internal-server.js +7 -0
- package/dist/internal.d.ts +13 -0
- package/dist/internal.js +13 -0
- package/dist/island-graph.d.ts +36 -0
- package/dist/island-graph.js +89 -0
- package/dist/keep-fallback-marker.d.ts +7 -0
- package/dist/keep-fallback-marker.js +9 -0
- package/dist/keep-fallback.d.ts +13 -0
- package/dist/keep-fallback.js +39 -0
- package/dist/kit-paths.d.ts +2 -0
- package/dist/kit-paths.js +39 -0
- package/dist/late-region-registry.d.ts +40 -0
- package/dist/late-region-registry.js +36 -0
- package/dist/live-transport.d.ts +57 -0
- package/dist/live-transport.js +145 -0
- package/dist/markup.d.ts +4 -0
- package/dist/markup.js +4 -0
- package/dist/own-package.d.ts +15 -0
- package/dist/own-package.js +20 -0
- package/dist/page-defer.d.ts +33 -0
- package/dist/page-defer.js +35 -0
- package/dist/page-facts-script.d.ts +7 -0
- package/dist/page-facts-script.js +9 -0
- package/dist/page-seed-registry.d.ts +72 -0
- package/dist/page-seed-registry.js +31 -0
- package/dist/plugin/capability.d.ts +14 -0
- package/dist/plugin/capability.js +44 -0
- package/dist/plugin/client.d.ts +39 -0
- package/dist/plugin/client.js +6 -0
- package/dist/plugin/css.d.ts +3 -0
- package/dist/plugin/css.js +54 -0
- package/dist/plugin/facts.d.ts +42 -0
- package/dist/plugin/facts.js +37 -0
- package/dist/plugin/hooks.d.ts +33 -0
- package/dist/plugin/hooks.js +38 -0
- package/dist/plugin/index.d.ts +127 -0
- package/dist/plugin/index.js +26 -0
- package/dist/plugin/routes.d.ts +32 -0
- package/dist/plugin/routes.js +35 -0
- package/dist/plugin/server.d.ts +27 -0
- package/dist/plugin/server.js +92 -0
- package/dist/plugin/standard-schema.d.ts +27 -0
- package/dist/plugin/standard-schema.js +0 -0
- package/dist/plugin/testing.d.ts +13 -0
- package/dist/plugin/testing.js +54 -0
- package/dist/plugin/utils.d.ts +13 -0
- package/dist/plugin/utils.js +19 -0
- package/dist/portable-form.d.ts +22 -0
- package/dist/portable-form.js +52 -0
- package/dist/preference.d.ts +35 -0
- package/dist/preference.js +84 -0
- package/dist/preload.d.ts +1 -0
- package/dist/preload.js +21 -0
- package/dist/ref-watch.d.ts +31 -0
- package/dist/ref-watch.js +66 -0
- package/dist/ref.d.ts +124 -0
- package/dist/ref.js +272 -0
- package/dist/region-brand.d.ts +8 -0
- package/dist/region-brand.js +10 -0
- package/dist/region-core.d.ts +2 -0
- package/dist/region-core.js +1 -0
- package/dist/region-snippet.d.ts +73 -0
- package/dist/region-snippet.js +351 -0
- package/dist/region.d.ts +127 -0
- package/dist/region.js +162 -0
- package/dist/request-event.d.ts +1 -0
- package/dist/request-event.js +37 -0
- package/dist/router-css.d.ts +39 -0
- package/dist/router-css.js +66 -0
- package/dist/runtime/app-transport.d.ts +2 -0
- package/dist/runtime/app-transport.js +13 -0
- package/dist/runtime/beacon.d.ts +271 -0
- package/dist/runtime/beacon.js +2190 -0
- package/dist/runtime/boot-link.d.ts +1 -0
- package/dist/runtime/boot-link.js +44 -0
- package/dist/runtime/client-hooks.d.ts +5 -0
- package/dist/runtime/client-hooks.js +22 -0
- package/dist/runtime/client-plugins.d.ts +8 -0
- package/dist/runtime/client-plugins.js +34 -0
- package/dist/runtime/concurrency.d.ts +12 -0
- package/dist/runtime/concurrency.js +29 -0
- package/dist/runtime/connected.d.ts +12 -0
- package/dist/runtime/connected.js +16 -0
- package/dist/runtime/context.d.ts +1 -0
- package/dist/runtime/context.js +19 -0
- package/dist/runtime/core.d.ts +15 -0
- package/dist/runtime/core.js +1173 -0
- package/dist/runtime/drift-watch.d.ts +9 -0
- package/dist/runtime/drift-watch.js +60 -0
- package/dist/runtime/entry-locations.d.ts +33 -0
- package/dist/runtime/entry-locations.js +119 -0
- package/dist/runtime/foreign-props.d.ts +8 -0
- package/dist/runtime/foreign-props.js +14 -0
- package/dist/runtime/form-continuity.d.ts +10 -0
- package/dist/runtime/form-continuity.js +107 -0
- package/dist/runtime/frame-nav.d.ts +36 -0
- package/dist/runtime/frame-nav.js +225 -0
- package/dist/runtime/frame-store.d.ts +62 -0
- package/dist/runtime/frame-store.js +214 -0
- package/dist/runtime/frames.d.ts +1 -0
- package/dist/runtime/frames.js +25 -0
- package/dist/runtime/full.d.ts +4 -0
- package/dist/runtime/full.js +32 -0
- package/dist/runtime/hash.d.ts +41 -0
- package/dist/runtime/hash.js +79 -0
- package/dist/runtime/hole-facts.d.ts +8 -0
- package/dist/runtime/hole-facts.js +57 -0
- package/dist/runtime/host-classes.d.ts +24 -0
- package/dist/runtime/host-classes.js +43 -0
- package/dist/runtime/hydrate-core.d.ts +101 -0
- package/dist/runtime/hydrate-core.js +605 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/interaction-replay.d.ts +11 -0
- package/dist/runtime/interaction-replay.js +70 -0
- package/dist/runtime/interaction.d.ts +33 -0
- package/dist/runtime/interaction.js +217 -0
- package/dist/runtime/island-graph-preload.d.ts +13 -0
- package/dist/runtime/island-graph-preload.js +99 -0
- package/dist/runtime/kit-boot.d.ts +29 -0
- package/dist/runtime/kit-boot.js +60 -0
- package/dist/runtime/kit-page-thread.svelte.d.ts +1 -0
- package/dist/runtime/kit-page-thread.svelte.js +116 -0
- package/dist/runtime/lake-anchors.d.ts +13 -0
- package/dist/runtime/lake-anchors.js +19 -0
- package/dist/runtime/lakes.d.ts +15 -0
- package/dist/runtime/lakes.js +212 -0
- package/dist/runtime/live.d.ts +3 -0
- package/dist/runtime/live.js +17 -0
- package/dist/runtime/load-scheduler.d.ts +53 -0
- package/dist/runtime/load-scheduler.js +317 -0
- package/dist/runtime/morph.d.ts +42 -0
- package/dist/runtime/morph.js +671 -0
- package/dist/runtime/nav-handle.d.ts +25 -0
- package/dist/runtime/nav-handle.js +71 -0
- package/dist/runtime/nav-hooks.d.ts +2 -0
- package/dist/runtime/nav-hooks.js +23 -0
- package/dist/runtime/nearest-attr.d.ts +4 -0
- package/dist/runtime/nearest-attr.js +16 -0
- package/dist/runtime/observe.d.ts +27 -0
- package/dist/runtime/observe.js +63 -0
- package/dist/runtime/own-cost.d.ts +9 -0
- package/dist/runtime/own-cost.js +35 -0
- package/dist/runtime/ownership.d.ts +101 -0
- package/dist/runtime/ownership.js +115 -0
- package/dist/runtime/page-cache.d.ts +23 -0
- package/dist/runtime/page-cache.js +74 -0
- package/dist/runtime/page-defer.d.ts +14 -0
- package/dist/runtime/page-defer.js +103 -0
- package/dist/runtime/parse-html.d.ts +40 -0
- package/dist/runtime/parse-html.js +81 -0
- package/dist/runtime/reconcile.d.ts +41 -0
- package/dist/runtime/reconcile.js +194 -0
- package/dist/runtime/region-attrs.d.ts +95 -0
- package/dist/runtime/region-attrs.js +153 -0
- package/dist/runtime/region-endpoint-url.d.ts +76 -0
- package/dist/runtime/region-endpoint-url.js +169 -0
- package/dist/runtime/region-ids.d.ts +8 -0
- package/dist/runtime/region-ids.js +33 -0
- package/dist/runtime/remote-seeds.d.ts +2 -0
- package/dist/runtime/remote-seeds.js +21 -0
- package/dist/runtime/render-blocking.d.ts +2 -0
- package/dist/runtime/render-blocking.js +30 -0
- package/dist/runtime/restore.d.ts +34 -0
- package/dist/runtime/restore.js +390 -0
- package/dist/runtime/router-nav.d.ts +63 -0
- package/dist/runtime/router-nav.js +740 -0
- package/dist/runtime/router.d.ts +201 -0
- package/dist/runtime/router.js +593 -0
- package/dist/runtime/schedule.d.ts +49 -0
- package/dist/runtime/schedule.js +256 -0
- package/dist/runtime/seeds.d.ts +50 -0
- package/dist/runtime/seeds.js +208 -0
- package/dist/runtime/session.d.ts +52 -0
- package/dist/runtime/session.js +130 -0
- package/dist/runtime/sidecar.d.ts +3 -0
- package/dist/runtime/sidecar.js +56 -0
- package/dist/runtime/slots.d.ts +183 -0
- package/dist/runtime/slots.js +44 -0
- package/dist/runtime/spa-cacheable.d.ts +7 -0
- package/dist/runtime/spa-cacheable.js +18 -0
- package/dist/runtime/speculate-hint.d.ts +1 -0
- package/dist/runtime/speculate-hint.js +35 -0
- package/dist/runtime/svelte-warnings.d.ts +28 -0
- package/dist/runtime/svelte-warnings.js +71 -0
- package/dist/runtime/wire-classes.d.ts +3 -0
- package/dist/runtime/wire-classes.js +69 -0
- package/dist/runtime/wire-format.d.ts +7 -0
- package/dist/runtime/wire-format.js +22 -0
- package/dist/script.d.ts +134 -0
- package/dist/script.js +184 -0
- package/dist/seed-refs.d.ts +105 -0
- package/dist/seed-refs.js +487 -0
- package/dist/server/capability-lifetime.d.ts +28 -0
- package/dist/server/capability-lifetime.js +31 -0
- package/dist/server/dead-kit-resolves.d.ts +1 -0
- package/dist/server/dead-kit-resolves.js +39 -0
- package/dist/server/document-assembly.d.ts +30 -0
- package/dist/server/document-assembly.js +26 -0
- package/dist/server/document-tail.d.ts +113 -0
- package/dist/server/document-tail.js +208 -0
- package/dist/server/endpoint.d.ts +51 -0
- package/dist/server/endpoint.js +90 -0
- package/dist/server/entry-location.d.ts +8 -0
- package/dist/server/entry-location.js +29 -0
- package/dist/server/fingerprint.d.ts +1 -0
- package/dist/server/fingerprint.js +25 -0
- package/dist/server/head-presence.d.ts +45 -0
- package/dist/server/head-presence.js +156 -0
- package/dist/server/hmac.d.ts +38 -0
- package/dist/server/hmac.js +89 -0
- package/dist/server/hole-graph.d.ts +7 -0
- package/dist/server/hole-graph.js +71 -0
- package/dist/server/hole-urls.d.ts +3 -0
- package/dist/server/hole-urls.js +76 -0
- package/dist/server/html-scan.d.ts +19 -0
- package/dist/server/html-scan.js +60 -0
- package/dist/server/kit-context.d.ts +78 -0
- package/dist/server/kit-context.js +110 -0
- package/dist/server/late-wire.d.ts +22 -0
- package/dist/server/late-wire.js +28 -0
- package/dist/server/page-facts.d.ts +25 -0
- package/dist/server/page-facts.js +138 -0
- package/dist/server/page-seed.d.ts +33 -0
- package/dist/server/page-seed.js +60 -0
- package/dist/server/page-stream.d.ts +55 -0
- package/dist/server/page-stream.js +121 -0
- package/dist/server/payload.d.ts +6 -0
- package/dist/server/payload.js +22 -0
- package/dist/server/personal-response.d.ts +6 -0
- package/dist/server/personal-response.js +13 -0
- package/dist/server/props-wire.d.ts +56 -0
- package/dist/server/props-wire.js +178 -0
- package/dist/server/rate-limit.d.ts +22 -0
- package/dist/server/rate-limit.js +63 -0
- package/dist/server/region-css.d.ts +5 -0
- package/dist/server/region-css.js +30 -0
- package/dist/server/region-endpoint.d.ts +35 -0
- package/dist/server/region-endpoint.js +142 -0
- package/dist/server/region-props.d.ts +6 -0
- package/dist/server/region-props.js +44 -0
- package/dist/server/remote-seed-gate.d.ts +50 -0
- package/dist/server/remote-seed-gate.js +66 -0
- package/dist/server/render-cache.d.ts +26 -0
- package/dist/server/render-cache.js +51 -0
- package/dist/server/render-page.d.ts +51 -0
- package/dist/server/render-page.js +176 -0
- package/dist/server/render-region-html.d.ts +2 -0
- package/dist/server/render-region-html.js +19 -0
- package/dist/server/request-stats.d.ts +174 -0
- package/dist/server/request-stats.js +54 -0
- package/dist/server/reversible.d.ts +83 -0
- package/dist/server/reversible.js +994 -0
- package/dist/server/seed-shape.d.ts +22 -0
- package/dist/server/seed-shape.js +24 -0
- package/dist/server/shared-cache.d.ts +35 -0
- package/dist/server/shared-cache.js +104 -0
- package/dist/server/signing-key.d.ts +11 -0
- package/dist/server/signing-key.js +47 -0
- package/dist/server/sized-lru.d.ts +20 -0
- package/dist/server/sized-lru.js +68 -0
- package/dist/server/split-regions.d.ts +81 -0
- package/dist/server/split-regions.js +368 -0
- package/dist/server/stream-regions.d.ts +5 -0
- package/dist/server/stream-regions.js +36 -0
- package/dist/shared-state.d.ts +7 -0
- package/dist/shared-state.js +152 -0
- package/dist/shims/app-environment.d.ts +4 -0
- package/dist/shims/app-environment.js +6 -0
- package/dist/shims/app-navigation.d.ts +33 -0
- package/dist/shims/app-navigation.js +119 -0
- package/dist/shims/app-paths.d.ts +6 -0
- package/dist/shims/app-paths.js +18 -0
- package/dist/shims/app-state.svelte.d.ts +23 -0
- package/dist/shims/app-state.svelte.js +50 -0
- package/dist/shims/app-stores.d.ts +21 -0
- package/dist/shims/app-stores.js +54 -0
- package/dist/shims/kit-bridge.d.ts +29 -0
- package/dist/shims/kit-bridge.js +7 -0
- package/dist/shims/kit-remote/client-stub.d.ts +27 -0
- package/dist/shims/kit-remote/client-stub.js +43 -0
- package/dist/shims/kit-remote/paths-internal-stub.d.ts +3 -0
- package/dist/shims/kit-remote/paths-internal-stub.js +5 -0
- package/dist/shims/kit-remote/remote-cache.d.ts +49 -0
- package/dist/shims/kit-remote/remote-cache.js +73 -0
- package/dist/shims/kit-remote/state-stub.d.ts +8 -0
- package/dist/shims/kit-remote/state-stub.js +8 -0
- package/dist/shims/page-store.svelte.d.ts +39 -0
- package/dist/shims/page-store.svelte.js +77 -0
- package/dist/source.d.ts +29 -0
- package/dist/source.js +87 -0
- package/dist/store-transport.d.ts +86 -0
- package/dist/store-transport.js +229 -0
- package/dist/tool-fetches.d.ts +5 -0
- package/dist/tool-fetches.js +41 -0
- package/dist/transport.d.ts +48 -0
- package/dist/transport.js +181 -0
- package/dist/unscoped-css.d.ts +26 -0
- package/dist/unscoped-css.js +53 -0
- package/dist/vite/dev-maps.d.ts +33 -0
- package/dist/vite/dev-maps.js +140 -0
- package/dist/vite/index.d.ts +19 -0
- package/dist/vite/index.js +820 -0
- package/dist/vite/kit-dirs.d.ts +7 -0
- package/dist/vite/kit-dirs.js +67 -0
- package/dist/vite/late-island.d.ts +25 -0
- package/dist/vite/late-island.js +33 -0
- package/dist/vite/module-map.d.ts +8 -0
- package/dist/vite/module-map.js +144 -0
- package/dist/vite/options.d.ts +208 -0
- package/dist/vite/options.js +74 -0
- package/dist/vite/package-files.d.ts +3 -0
- package/dist/vite/package-files.js +84 -0
- package/dist/vite/paths.d.ts +45 -0
- package/dist/vite/paths.js +112 -0
- package/dist/vite/plugin-api.d.ts +166 -0
- package/dist/vite/plugin-api.js +212 -0
- package/dist/vite/profiler-maps.d.ts +23 -0
- package/dist/vite/profiler-maps.js +178 -0
- package/dist/vite/server-sourcemaps.d.ts +8 -0
- package/dist/vite/server-sourcemaps.js +80 -0
- package/dist/vite/sourcemaps.d.ts +18 -0
- package/dist/vite/sourcemaps.js +80 -0
- package/dist/vite/style-preprocess.d.ts +2 -0
- package/dist/vite/style-preprocess.js +96 -0
- package/package.json +180 -6
|
@@ -0,0 +1,749 @@
|
|
|
1
|
+
import { RegionRefusal } from "../runtime/region-endpoint-url.js";
|
|
2
|
+
import { IslandHazard } from "./hydration-hazards.js";
|
|
3
|
+
import { CpuFn, CpuSummary } from "./cpu.js";
|
|
4
|
+
import { ThirdParty } from "./third-party.js";
|
|
5
|
+
export interface PageIsland {
|
|
6
|
+
fp: string;
|
|
7
|
+
entry?: string;
|
|
8
|
+
t0: number;
|
|
9
|
+
loaded: number;
|
|
10
|
+
turn?: number;
|
|
11
|
+
done: number;
|
|
12
|
+
/** when its effects had run (a microtask after `hydrate()`), when later than `done`: its own work
|
|
13
|
+
* ended there — `done` is when it could answer a click */
|
|
14
|
+
fx?: number;
|
|
15
|
+
recovered?: boolean;
|
|
16
|
+
changed?: boolean;
|
|
17
|
+
/** another script edited it before it woke; the runtime put the server markup back */
|
|
18
|
+
healed?: boolean;
|
|
19
|
+
ssr_bytes?: number;
|
|
20
|
+
/** its arrived markup's block markers unpaired [openers, closers]: rewritten on the way */
|
|
21
|
+
markers?: [number, number];
|
|
22
|
+
}
|
|
23
|
+
export interface PageInteraction {
|
|
24
|
+
name: string;
|
|
25
|
+
t: number;
|
|
26
|
+
ms: number;
|
|
27
|
+
/** input → its handlers began (the main thread was busy) */
|
|
28
|
+
delay: number;
|
|
29
|
+
/** the handlers */
|
|
30
|
+
processing: number;
|
|
31
|
+
/** handlers done → the next frame painted */
|
|
32
|
+
presentation: number;
|
|
33
|
+
target: string;
|
|
34
|
+
fp?: string;
|
|
35
|
+
/** (`forced`: of a script's time, the browser laying the page out because it read sizes after a change) */
|
|
36
|
+
scripts?: {
|
|
37
|
+
url: string;
|
|
38
|
+
fn: string;
|
|
39
|
+
invoker: string;
|
|
40
|
+
ms: number;
|
|
41
|
+
phase: "delay" | "handler" | "paint";
|
|
42
|
+
island?: string;
|
|
43
|
+
forced?: number;
|
|
44
|
+
}[];
|
|
45
|
+
}
|
|
46
|
+
/** The slowest interaction, sampled (JS Self-Profiling): the functions that ran while it waited and
|
|
47
|
+
* in its handlers, by their source-mapped names. `t`: which interaction (its start). */
|
|
48
|
+
/** The document's steps before its first byte (ms). */
|
|
49
|
+
export interface NavPhases {
|
|
50
|
+
redirect?: number;
|
|
51
|
+
worker?: number;
|
|
52
|
+
dns?: number;
|
|
53
|
+
connect?: number;
|
|
54
|
+
tls?: number;
|
|
55
|
+
/** the request until the server's first byte */
|
|
56
|
+
wait?: number;
|
|
57
|
+
}
|
|
58
|
+
/** One in-app navigation (the router's body swap), on the page's clock. */
|
|
59
|
+
export interface PageNav {
|
|
60
|
+
from: string;
|
|
61
|
+
to: string;
|
|
62
|
+
type: string;
|
|
63
|
+
t: number;
|
|
64
|
+
/** the new page's HTML arrived */
|
|
65
|
+
fetched: number;
|
|
66
|
+
/** its stylesheets were in */
|
|
67
|
+
styled: number;
|
|
68
|
+
/** the swap committed: the new page shows */
|
|
69
|
+
swapped: number;
|
|
70
|
+
/** the fetch split, from the page request's timing: the wait for the first byte, the download */
|
|
71
|
+
server?: number;
|
|
72
|
+
download?: number;
|
|
73
|
+
bytes?: number;
|
|
74
|
+
/** the request began before the click (a hover prefetch) */
|
|
75
|
+
prefetched?: boolean;
|
|
76
|
+
/** the page request on the server (the profiler's request log): its ms, the CPU it burned, its
|
|
77
|
+
* outbound calls — what the server did with the wait */
|
|
78
|
+
on_server?: {
|
|
79
|
+
ms: number;
|
|
80
|
+
cpu_ms: number;
|
|
81
|
+
net_ms: number;
|
|
82
|
+
net_count: number;
|
|
83
|
+
inflight?: number;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export interface InteractionCpuInput {
|
|
87
|
+
t: number;
|
|
88
|
+
/** the frames' lines are the source's (mapped through a source map): else a line is the served
|
|
89
|
+
* code's, and only the function and its file are quoted */
|
|
90
|
+
mapped?: boolean;
|
|
91
|
+
wait: {
|
|
92
|
+
ms: number;
|
|
93
|
+
top: CpuFn[];
|
|
94
|
+
} | null;
|
|
95
|
+
handler: {
|
|
96
|
+
ms: number;
|
|
97
|
+
top: CpuFn[];
|
|
98
|
+
} | null;
|
|
99
|
+
}
|
|
100
|
+
/** THE PROFILER'S LAST RUN OF A PAGE, in brief (devtools: the dock's profile store, shared with the
|
|
101
|
+
* Profiler tab) — what the server did when it rendered that page */
|
|
102
|
+
export interface ServerProfileBrief {
|
|
103
|
+
/** minutes since the run */
|
|
104
|
+
ago_min: number;
|
|
105
|
+
render_ms: number;
|
|
106
|
+
/** its top cost, in its own words (the report's first warning, else its heaviest component) */
|
|
107
|
+
top: string | null;
|
|
108
|
+
calls: number;
|
|
109
|
+
calls_ms: number;
|
|
110
|
+
/** the Cache-Control it saw the page answer, when that keeps the page out of the back/forward
|
|
111
|
+
* cache (no-store): the server's own answer, which the browser cannot read */
|
|
112
|
+
no_store?: string;
|
|
113
|
+
/** the page is prerendered: 'file' (the build's file answered, no render), 'route' (its route prerenders) */
|
|
114
|
+
prerendered?: "file" | "route";
|
|
115
|
+
}
|
|
116
|
+
export interface PageInput {
|
|
117
|
+
/** measured on the dev server (it compiles a page on its first request: a slow first byte there is
|
|
118
|
+
* not the app's) */
|
|
119
|
+
dev?: boolean;
|
|
120
|
+
/** DEVTOOLS ONLY (the profiler's report is itself a profile): the profiler's last run of this
|
|
121
|
+
* page, and of the pages it navigated to by path. Present (even empty) means: say what the server
|
|
122
|
+
* did, or how to find out */
|
|
123
|
+
server_profiles?: Record<string, ServerProfileBrief>;
|
|
124
|
+
server_profile?: ServerProfileBrief;
|
|
125
|
+
/** the slowest interaction's CPU, when a trace of it was taken */
|
|
126
|
+
interaction_cpu?: InteractionCpuInput;
|
|
127
|
+
/** what held the document open: its streamed promises by `page.data` key — when each settled
|
|
128
|
+
* (`side` 'server': left the server, ms into the render, from the profiled render's chunks;
|
|
129
|
+
* 'browser': arrived, ms from the navigation, stamped by the resolve global) */
|
|
130
|
+
held_open?: HeldOpen;
|
|
131
|
+
vitals: {
|
|
132
|
+
ttfb?: number;
|
|
133
|
+
fcp?: number;
|
|
134
|
+
lcp?: number;
|
|
135
|
+
cls?: number;
|
|
136
|
+
inp?: number;
|
|
137
|
+
};
|
|
138
|
+
visit: {
|
|
139
|
+
nav?: {
|
|
140
|
+
dcl?: number;
|
|
141
|
+
load?: number;
|
|
142
|
+
res_start?: number;
|
|
143
|
+
/** the browser gave the request and the first byte as 0 (Safari, a cross-origin-isolated
|
|
144
|
+
* page): no `res_start` — what needs the first byte is missing, not zero */
|
|
145
|
+
start_hidden?: true;
|
|
146
|
+
/** the document's last byte */
|
|
147
|
+
res_end?: number;
|
|
148
|
+
/** the document's body, decoded (bytes) */
|
|
149
|
+
size?: number;
|
|
150
|
+
/** the document came down as large as it is: sent without gzip or brotli */
|
|
151
|
+
raw?: true;
|
|
152
|
+
dom_interactive?: number;
|
|
153
|
+
/** the steps before the first byte, each only when it took time */
|
|
154
|
+
phases?: NavPhases;
|
|
155
|
+
/** the document's own Server-Timing entries */
|
|
156
|
+
server_timing?: {
|
|
157
|
+
name: string;
|
|
158
|
+
ms: number;
|
|
159
|
+
desc?: string;
|
|
160
|
+
}[];
|
|
161
|
+
};
|
|
162
|
+
/** main-thread ms per script URL, from long animation frames (from the page's start) */
|
|
163
|
+
scripts?: {
|
|
164
|
+
url: string;
|
|
165
|
+
ms: number;
|
|
166
|
+
count: number;
|
|
167
|
+
}[];
|
|
168
|
+
/** Svelte's hydration warnings (dev): the server and the browser disagreed, Svelte kept the server's */
|
|
169
|
+
warnings?: {
|
|
170
|
+
code: string;
|
|
171
|
+
message: string;
|
|
172
|
+
file?: string;
|
|
173
|
+
fp?: string;
|
|
174
|
+
t?: number;
|
|
175
|
+
}[];
|
|
176
|
+
/** (`lcp_priority`: the largest paint's own fetchpriority, when it sets one) */
|
|
177
|
+
paints?: {
|
|
178
|
+
fcp?: number;
|
|
179
|
+
lcp?: number;
|
|
180
|
+
lcp_fp?: string;
|
|
181
|
+
lcp_tag?: string;
|
|
182
|
+
lcp_url?: string;
|
|
183
|
+
lcp_replaced?: true;
|
|
184
|
+
lcp_lazy?: true;
|
|
185
|
+
lcp_priority?: "high" | "low";
|
|
186
|
+
held?: {
|
|
187
|
+
outcome: "arrived" | "input" | "cap" | "none";
|
|
188
|
+
resources: number;
|
|
189
|
+
waited_ms: number;
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
resources?: {
|
|
193
|
+
url: string;
|
|
194
|
+
type: string;
|
|
195
|
+
start: number;
|
|
196
|
+
end: number;
|
|
197
|
+
req_start?: number;
|
|
198
|
+
res_start?: number;
|
|
199
|
+
transfer?: number;
|
|
200
|
+
size?: number;
|
|
201
|
+
blocking?: boolean;
|
|
202
|
+
weighed?: true;
|
|
203
|
+
}[];
|
|
204
|
+
/** every file by type, when the visit lists only some of them one by one */
|
|
205
|
+
resource_totals?: {
|
|
206
|
+
type: string;
|
|
207
|
+
count: number;
|
|
208
|
+
transfer: number;
|
|
209
|
+
size: number;
|
|
210
|
+
}[];
|
|
211
|
+
viewport?: [number, number];
|
|
212
|
+
/** the page's origin (third parties are every other one) */
|
|
213
|
+
origin?: string;
|
|
214
|
+
/** URLs the document itself names (its scripts, preloads, their imports): a script not among
|
|
215
|
+
* them was loaded at runtime by another script */
|
|
216
|
+
named?: string[];
|
|
217
|
+
/** without `named` (the live page): other origins' URLs the document holds now (script src,
|
|
218
|
+
* link href). A script of theirs not among them came by an import or a fetch from another
|
|
219
|
+
* script; one among them that started after parsing was added by a script */
|
|
220
|
+
in_page?: string[];
|
|
221
|
+
/** files a preload fetched and something else downloaded again (the preload went unused) */
|
|
222
|
+
preload_misses?: PreloadMiss[];
|
|
223
|
+
/** preloads (image, font, stylesheet) nothing on the page used 3 s after load */
|
|
224
|
+
preloads_unused?: {
|
|
225
|
+
url: string;
|
|
226
|
+
as: string;
|
|
227
|
+
bytes: number;
|
|
228
|
+
}[];
|
|
229
|
+
/** text files (scripts, stylesheets, JSON…) of 4 KB or more that came down as large as they are
|
|
230
|
+
* decoded: sent without gzip or brotli, the largest first (the document's own: `nav.raw`) */
|
|
231
|
+
uncompressed?: {
|
|
232
|
+
url: string;
|
|
233
|
+
type: string;
|
|
234
|
+
bytes: number;
|
|
235
|
+
}[];
|
|
236
|
+
/** the `@font-face` rules behind the fonts it fetched (family, font-display, the fetched files) */
|
|
237
|
+
font_faces?: {
|
|
238
|
+
family: string;
|
|
239
|
+
display: string;
|
|
240
|
+
urls: string[];
|
|
241
|
+
}[];
|
|
242
|
+
/** images whose pixels are 4× or more what their box shows (the screen's pixel ratio counted),
|
|
243
|
+
* their files 50 KB or more: natural and shown sizes, the file's bytes, the island it is in */
|
|
244
|
+
images_oversized?: {
|
|
245
|
+
url: string;
|
|
246
|
+
natural: [number, number];
|
|
247
|
+
shown: [number, number];
|
|
248
|
+
dpr: number;
|
|
249
|
+
bytes: number;
|
|
250
|
+
fp?: string;
|
|
251
|
+
}[];
|
|
252
|
+
/** long frames (50 ms or more) that began while the page scrolled, with their two biggest scripts */
|
|
253
|
+
/** (`island`: the island whose file the script is, when the profiler named it from the build's chunks) */
|
|
254
|
+
scroll_jank?: {
|
|
255
|
+
start: number;
|
|
256
|
+
ms: number;
|
|
257
|
+
scripts: {
|
|
258
|
+
url: string;
|
|
259
|
+
fn: string;
|
|
260
|
+
invoker: string;
|
|
261
|
+
ms: number;
|
|
262
|
+
island?: string;
|
|
263
|
+
}[];
|
|
264
|
+
}[];
|
|
265
|
+
/** scripts that forced style and layout (5 ms or more): their window, the forced ms, the
|
|
266
|
+
* script's file and entry function (an island's hydration shows as the runtime's own task) */
|
|
267
|
+
forced_layout?: {
|
|
268
|
+
start: number;
|
|
269
|
+
end: number;
|
|
270
|
+
ms: number;
|
|
271
|
+
url: string;
|
|
272
|
+
fn: string;
|
|
273
|
+
}[];
|
|
274
|
+
/** images more than a screen and a half down, not lazy, 20 KB or more, fetched before load ended */
|
|
275
|
+
images_eager_below?: {
|
|
276
|
+
url: string;
|
|
277
|
+
top: number;
|
|
278
|
+
bytes: number;
|
|
279
|
+
fp?: string;
|
|
280
|
+
}[];
|
|
281
|
+
/** the srcs of shown images the browser could hold no room for (computed aspect-ratio `auto`);
|
|
282
|
+
* empty: it looked and found none */
|
|
283
|
+
images_unsized?: string[];
|
|
284
|
+
/** the page's size in elements, when 1,500 or more: the deepest nesting, the element with the
|
|
285
|
+
* most children, the islands holding the most (depth 0: past 60,000, only counted) */
|
|
286
|
+
dom?: {
|
|
287
|
+
nodes: number;
|
|
288
|
+
depth: number;
|
|
289
|
+
deepest: string;
|
|
290
|
+
widest: {
|
|
291
|
+
at: string;
|
|
292
|
+
children: number;
|
|
293
|
+
};
|
|
294
|
+
islands: {
|
|
295
|
+
fp: string;
|
|
296
|
+
nodes: number;
|
|
297
|
+
}[];
|
|
298
|
+
};
|
|
299
|
+
/** islands whose own file failed to load and fell back to their stable name (the page came
|
|
300
|
+
* from a build whose files are gone); `name` when the reader could name the island */
|
|
301
|
+
entry_fallbacks?: {
|
|
302
|
+
entry: string;
|
|
303
|
+
src: string;
|
|
304
|
+
recovered: boolean;
|
|
305
|
+
name?: string;
|
|
306
|
+
}[];
|
|
307
|
+
/** content-named files the browser fetched again (revalidated, or downloaded on a reload);
|
|
308
|
+
* `name` when the reader could name the island */
|
|
309
|
+
refetched?: {
|
|
310
|
+
url: string;
|
|
311
|
+
how: "revalidated" | "downloaded";
|
|
312
|
+
bytes: number;
|
|
313
|
+
ms: number;
|
|
314
|
+
entry?: string;
|
|
315
|
+
runtime?: boolean;
|
|
316
|
+
name?: string;
|
|
317
|
+
}[];
|
|
318
|
+
/** the slowest interaction (the one INP reports), split by phase, with the scripts of the long
|
|
319
|
+
* frames around it; `island` on a script when the reader could name the island its file is */
|
|
320
|
+
interaction?: PageInteraction;
|
|
321
|
+
/** the in-app navigations in this document */
|
|
322
|
+
navs?: PageNav[];
|
|
323
|
+
} | null;
|
|
324
|
+
islands: PageIsland[];
|
|
325
|
+
firsts: {
|
|
326
|
+
fp: string;
|
|
327
|
+
t: number;
|
|
328
|
+
type: string;
|
|
329
|
+
}[];
|
|
330
|
+
shifts: {
|
|
331
|
+
t: number;
|
|
332
|
+
value: number;
|
|
333
|
+
fp?: string;
|
|
334
|
+
tag?: string;
|
|
335
|
+
}[];
|
|
336
|
+
longtasks: {
|
|
337
|
+
t: number;
|
|
338
|
+
ms: number;
|
|
339
|
+
}[];
|
|
340
|
+
/** `frames`: the browser has no long-task timing — these are frames drawn more than 50 ms late */
|
|
341
|
+
longtasks_from?: "frames";
|
|
342
|
+
/** `boxes`: the browser has no layout-shift timing — the shifts are islands whose box changed as
|
|
343
|
+
* they woke, scored the way a layout shift is (an estimate) */
|
|
344
|
+
shifts_from?: "boxes";
|
|
345
|
+
/** (`from`: a big island's window — where it starts in the markup without comments) */
|
|
346
|
+
snapshots?: {
|
|
347
|
+
fp: string;
|
|
348
|
+
ssr: string;
|
|
349
|
+
hydrated: string;
|
|
350
|
+
final?: string;
|
|
351
|
+
from?: number;
|
|
352
|
+
}[];
|
|
353
|
+
/** awake islands showing a children slot with nothing in it (read off the DOM; devtools only) */
|
|
354
|
+
empty_slots?: string[];
|
|
355
|
+
/** holes whose answer never came (the bus; devtools only) */
|
|
356
|
+
hole_failures?: HoleFailure[];
|
|
357
|
+
/** each island's app code in dev (the dev server's module graph; devtools only) */
|
|
358
|
+
island_code?: IslandCode[];
|
|
359
|
+
/** how long each hole's fallback showed before its answer (the bus; devtools only) */
|
|
360
|
+
hole_waits?: HoleWait[];
|
|
361
|
+
/** batch requests that did not carry all their holes (the bus; devtools only) */
|
|
362
|
+
hole_batches?: HoleBatch[];
|
|
363
|
+
/** what the restorer of a server transform reported (runtime/restore.ts `__og_restore_log`) */
|
|
364
|
+
restore_events?: RestoreEvent[];
|
|
365
|
+
/** islands whose fingerprint moved between two loads of this page (fp-drift.ts) */
|
|
366
|
+
fp_drift?: {
|
|
367
|
+
name: string;
|
|
368
|
+
fp?: string;
|
|
369
|
+
path?: string;
|
|
370
|
+
was?: string;
|
|
371
|
+
now?: string;
|
|
372
|
+
}[];
|
|
373
|
+
/** the dev server's pre-bundled packages (its `.vite/deps/_metadata.json`), read when the page
|
|
374
|
+
* loaded one: a package also served raw from its folder runs as two copies */
|
|
375
|
+
prebundled?: string[];
|
|
376
|
+
/** the browser the page ran in (`browser_of` its user agent: `Safari 26`, `Chrome 141`) */
|
|
377
|
+
browser?: string;
|
|
378
|
+
/** when the devtools' own dock began to show as the page loaded (open, remembered from the last
|
|
379
|
+
* page), page clock; absent when it was opened later or not at all */
|
|
380
|
+
dock_open_at?: number;
|
|
381
|
+
/** what islands that left the page left running (devtools/leftovers.ts; devtools only) */
|
|
382
|
+
leftovers?: {
|
|
383
|
+
name: string;
|
|
384
|
+
intervals: number;
|
|
385
|
+
listeners: string[];
|
|
386
|
+
fires: number;
|
|
387
|
+
last_ago?: number;
|
|
388
|
+
}[];
|
|
389
|
+
/** wheel / touch listeners still attached that hold scrolling (not passive), by the island (or
|
|
390
|
+
* the file) that added each (devtools/leftovers.ts; devtools only) */
|
|
391
|
+
scroll_blockers?: {
|
|
392
|
+
owner: string;
|
|
393
|
+
type: string;
|
|
394
|
+
on: string;
|
|
395
|
+
forced: boolean;
|
|
396
|
+
}[];
|
|
397
|
+
/** what keeps the page out of the back/forward cache: who added a window `unload` listener, and
|
|
398
|
+
* the browser's own reasons when this load came from Back and was not restored (devtools only) */
|
|
399
|
+
bfcache?: {
|
|
400
|
+
unload: string[];
|
|
401
|
+
not_restored?: string[];
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
/** A restored host that went wrong: upgraded by its component before the restore reached it
|
|
405
|
+
* (`late`), or restored to markup that does not match Svelte's (`mismatch`, the dev check). */
|
|
406
|
+
export interface RestoreEvent {
|
|
407
|
+
kind: "late" | "mismatch";
|
|
408
|
+
/** the host's tag */
|
|
409
|
+
host: string;
|
|
410
|
+
/** page time */
|
|
411
|
+
t: number;
|
|
412
|
+
/** the first difference (mismatch) */
|
|
413
|
+
diff?: string;
|
|
414
|
+
/** the island holding it, when one does */
|
|
415
|
+
island?: string;
|
|
416
|
+
}
|
|
417
|
+
export interface PreloadMiss {
|
|
418
|
+
url: string;
|
|
419
|
+
/** what the preload fetched as (font, fetch, script, css, img…) */
|
|
420
|
+
type: string;
|
|
421
|
+
/** the second download's bytes on the wire */
|
|
422
|
+
bytes: number;
|
|
423
|
+
/** the preload link's `as` and `crossorigin` (null: none) */
|
|
424
|
+
as: string;
|
|
425
|
+
crossorigin: string | null;
|
|
426
|
+
/** the answer's `Vary` header, when the devtools read it (a font downloaded again) */
|
|
427
|
+
vary?: string;
|
|
428
|
+
/** a hole the runtime asked for: the preload is ogygia's own (on any endpoint path) */
|
|
429
|
+
hole?: true;
|
|
430
|
+
}
|
|
431
|
+
export interface HoleWait {
|
|
432
|
+
name: string;
|
|
433
|
+
/** ms from the hole's fetch start to its answer's swap */
|
|
434
|
+
wait_ms: number;
|
|
435
|
+
/** below the first screen (its fallback is not what the visitor looks at first) */
|
|
436
|
+
below_fold: boolean;
|
|
437
|
+
/** its server render, per request, when known (the profiler recorded the hole's requests, or
|
|
438
|
+
* the answer's Server-Timing said) */
|
|
439
|
+
server_ms?: number;
|
|
440
|
+
/** its wait on the server for a render slot, before the render (Server-Timing / the profiler) */
|
|
441
|
+
server_queue_ms?: number;
|
|
442
|
+
/** the hole's endpoint (the devtools find its element by it: a hole has no fingerprint) */
|
|
443
|
+
endpoint?: string;
|
|
444
|
+
/** page times: when the fallback began to count (the paint, or the hole's own start), and its
|
|
445
|
+
* request as the browser timed it — left, first byte back, last byte. They split the wait. */
|
|
446
|
+
shown_at?: number;
|
|
447
|
+
left_at?: number;
|
|
448
|
+
first_at?: number;
|
|
449
|
+
end_at?: number;
|
|
450
|
+
/** it came in ONE batch request with the holes that started with it: how many (its own part
|
|
451
|
+
* landed when the server rendered it — `first_at` is that, out of order). No browser gate held it. */
|
|
452
|
+
batch_size?: number;
|
|
453
|
+
}
|
|
454
|
+
/** A batch request (runtime/frame-nav.ts) that carried fewer holes than it was sent for: the rest
|
|
455
|
+
* fetched on their own right after it. */
|
|
456
|
+
export interface HoleBatch {
|
|
457
|
+
sent: number;
|
|
458
|
+
delivered: number;
|
|
459
|
+
/** the response's status (0: the request failed) */
|
|
460
|
+
status: number;
|
|
461
|
+
refused?: "redirected" | "document";
|
|
462
|
+
final_url?: string;
|
|
463
|
+
/** the holes it was for (names) */
|
|
464
|
+
names: string[];
|
|
465
|
+
}
|
|
466
|
+
export interface IslandCode {
|
|
467
|
+
fp?: string;
|
|
468
|
+
name: string;
|
|
469
|
+
/** the island's app code, served size in dev */
|
|
470
|
+
bytes: number;
|
|
471
|
+
/** its heaviest modules */
|
|
472
|
+
top: {
|
|
473
|
+
file: string;
|
|
474
|
+
bytes: number;
|
|
475
|
+
}[];
|
|
476
|
+
/** re-export barrels still imported whole, with the app modules each drags in */
|
|
477
|
+
barrels: {
|
|
478
|
+
file: string;
|
|
479
|
+
fanout: number;
|
|
480
|
+
}[];
|
|
481
|
+
/** its components' lines that draw differently in the browser (the dev server read their sources) */
|
|
482
|
+
hazards?: IslandHazard[];
|
|
483
|
+
}
|
|
484
|
+
export interface HoleFailure {
|
|
485
|
+
fp?: string;
|
|
486
|
+
name: string;
|
|
487
|
+
endpoint?: string;
|
|
488
|
+
reason: RegionRefusal | "error";
|
|
489
|
+
final_url?: string;
|
|
490
|
+
message?: string;
|
|
491
|
+
attempts: number;
|
|
492
|
+
}
|
|
493
|
+
/** A region on the page, as the tab read it off the DOM. `top` is document-relative (px). */
|
|
494
|
+
export interface RegionFact {
|
|
495
|
+
fp: string;
|
|
496
|
+
name: string;
|
|
497
|
+
kind: "island" | "lake" | "hole";
|
|
498
|
+
wake: string;
|
|
499
|
+
hydrated: boolean;
|
|
500
|
+
top?: number;
|
|
501
|
+
height?: number;
|
|
502
|
+
/** the wire bytes only this island loads (a build's island graph × the browser's sizes) */
|
|
503
|
+
own_bytes?: number;
|
|
504
|
+
/** it draws nothing on this screen: no box of its own nor a child's (hidden by its CSS, or empty) */
|
|
505
|
+
hidden?: true;
|
|
506
|
+
/** the media query under which the page's CSS shows it (read off the sheets), when one does */
|
|
507
|
+
shows_at?: string;
|
|
508
|
+
/** it never draws: no text, only `hidden` marker elements — an island there for its effects */
|
|
509
|
+
headless?: true;
|
|
510
|
+
}
|
|
511
|
+
export interface Failure {
|
|
512
|
+
fp?: string;
|
|
513
|
+
message: string;
|
|
514
|
+
/** its wake → the failure (page clock): the island was loading, and held its turn, meanwhile */
|
|
515
|
+
span?: [number, number];
|
|
516
|
+
/** when its hydrate step began (page clock): from here to the failure it held the thread, as a
|
|
517
|
+
* hydrating island does */
|
|
518
|
+
turn?: number;
|
|
519
|
+
}
|
|
520
|
+
export type Rating = "good" | "fair" | "poor";
|
|
521
|
+
export interface RatedVital {
|
|
522
|
+
key: "ttfb" | "fcp" | "lcp" | "cls" | "inp";
|
|
523
|
+
label: string;
|
|
524
|
+
value: number;
|
|
525
|
+
rating: Rating;
|
|
526
|
+
}
|
|
527
|
+
export interface IslandRow {
|
|
528
|
+
fp: string;
|
|
529
|
+
name: string;
|
|
530
|
+
wake: string;
|
|
531
|
+
/** wake began → module + hydrate core loaded */
|
|
532
|
+
load_ms: number;
|
|
533
|
+
/** loaded → its scheduler turn (the queue behind other islands, and the DCL/paint gate) */
|
|
534
|
+
queue_ms: number | null;
|
|
535
|
+
/** the synchronous hydrate step */
|
|
536
|
+
hydrate_ms: number;
|
|
537
|
+
t0: number;
|
|
538
|
+
done: number;
|
|
539
|
+
recovered: boolean;
|
|
540
|
+
changed: boolean;
|
|
541
|
+
/** layout shift (summed) this island caused within a moment of hydrating */
|
|
542
|
+
shift: number;
|
|
543
|
+
/** long-task ms that overlapped its hydration window */
|
|
544
|
+
longtask_ms: number;
|
|
545
|
+
/** the first interaction reached it before it was awake (ms early), when it did */
|
|
546
|
+
early_ms: number | null;
|
|
547
|
+
below_fold: boolean;
|
|
548
|
+
/** main-thread CPU sampled inside its hydrate window (null: no trace) */
|
|
549
|
+
cpu_ms: number | null;
|
|
550
|
+
}
|
|
551
|
+
export type Severity = "error" | "warn" | "info";
|
|
552
|
+
export interface HeldOpen {
|
|
553
|
+
side: "server" | "browser";
|
|
554
|
+
keys: {
|
|
555
|
+
key: string | null;
|
|
556
|
+
at: number;
|
|
557
|
+
}[];
|
|
558
|
+
/** server side: the early part's last byte left at `early_ms`, the tail's (`late_bytes`) at `late_ms` */
|
|
559
|
+
early_ms?: number;
|
|
560
|
+
early_bytes?: number;
|
|
561
|
+
late_ms?: number;
|
|
562
|
+
late_bytes?: number;
|
|
563
|
+
/** server side: the islands the page renders (the finding needs some to be about) */
|
|
564
|
+
islands?: number;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* The page seed's defer ids → the `page.data` key each stands for (top level and one level down):
|
|
568
|
+
* the seed (`application/ogygia-page`, the flat devalue form) holds a defer marker `[name, i]` per
|
|
569
|
+
* streamed promise, the marker's payload the id the streamed resolve script settles. From the whole
|
|
570
|
+
* document's HTML or the seed script's own text. indexOf only.
|
|
571
|
+
*/
|
|
572
|
+
export declare function defer_keys(html: string, marker?: string): Map<number, string>;
|
|
573
|
+
export interface PageFinding {
|
|
574
|
+
code: string;
|
|
575
|
+
severity: Severity;
|
|
576
|
+
message: string;
|
|
577
|
+
fix?: string;
|
|
578
|
+
/** the islands it is about (to light up on the page) */
|
|
579
|
+
fps: string[];
|
|
580
|
+
/** it is the dev server's own doing: its first compile of the page (a slow first byte while the
|
|
581
|
+
* page compiled on its first request), or the CSS it adds with JavaScript moving the page (a
|
|
582
|
+
* shift). A reload reads it differently: "since your last load" never calls it new or fixed */
|
|
583
|
+
dev_compile?: true;
|
|
584
|
+
}
|
|
585
|
+
export interface PageReport {
|
|
586
|
+
vitals: RatedVital[];
|
|
587
|
+
rows: IslandRow[];
|
|
588
|
+
findings: PageFinding[];
|
|
589
|
+
/** blocking resources before first paint, slowest first */
|
|
590
|
+
blocking: {
|
|
591
|
+
url: string;
|
|
592
|
+
ms: number;
|
|
593
|
+
bytes: number;
|
|
594
|
+
}[];
|
|
595
|
+
bytes: {
|
|
596
|
+
type: string;
|
|
597
|
+
count: number;
|
|
598
|
+
transfer: number;
|
|
599
|
+
size: number;
|
|
600
|
+
}[];
|
|
601
|
+
longtask_ms: number;
|
|
602
|
+
/** other origins on this page (null: none, or no origin to tell them by) */
|
|
603
|
+
third_party: ThirdParty | null;
|
|
604
|
+
}
|
|
605
|
+
/** The browser a page ran in, by name and major version (`Safari 18`, `Chrome 141`, `Firefox 133`,
|
|
606
|
+
* `Edge 141`), from its user-agent string by plain search; null when it says nothing known. Some
|
|
607
|
+
* findings are one engine's (Safari reports no layout shifts; a preload one engine reuses another
|
|
608
|
+
* fetches again): the profiler's report and the Page tab name which. */
|
|
609
|
+
export declare function browser_of(ua: string | undefined): string | null;
|
|
610
|
+
/** The engine family a user agent runs on: what makes two browsers measure a page differently (Edge
|
|
611
|
+
* and Chrome are one; Safari reports no layout shifts and refetches a preload Chromium reuses). */
|
|
612
|
+
export declare function engine_of(ua: string | undefined): "chromium" | "webkit" | "gecko" | null;
|
|
613
|
+
/** The packages a dev server's `_metadata.json` `optimized` keys name: `svelte/internal/client` →
|
|
614
|
+
* `svelte`, `@scope/lib/x` → `@scope/lib`, `ogygia > @neodrag/svelte` (a dependency's dependency) →
|
|
615
|
+
* `@neodrag/svelte`, each once. */
|
|
616
|
+
export declare function prebundled_names(keys: readonly string[]): string[];
|
|
617
|
+
/**
|
|
618
|
+
* ONE PACKAGE, TWO COPIES ON THE DEV SERVER: of the scripts the page loaded, the ones served raw from a
|
|
619
|
+
* package's folder (`/node_modules/<pkg>/…`, not `.vite/`) whose package Vite also pre-bundled — each
|
|
620
|
+
* package once, with how many raw files and one of them. String search: it runs on the Page tab tick.
|
|
621
|
+
* ogygia is one package under its two names (`ogygia` re-exports `@ogygia/core`): an app pre-bundles
|
|
622
|
+
* `ogygia/…` while the compiler's imports load core's files raw.
|
|
623
|
+
*/
|
|
624
|
+
export declare function dev_two_copies(urls: readonly string[], prebundled: readonly string[]): {
|
|
625
|
+
pkg: string;
|
|
626
|
+
raw: number;
|
|
627
|
+
example: string;
|
|
628
|
+
}[];
|
|
629
|
+
/**
|
|
630
|
+
* THE INLINE THRESHOLD THAT TAKES THE SMALL SHEETS OFF THE PAINT: Kit inlines its route stylesheets
|
|
631
|
+
* under `inlineStyleThreshold` (ogygia's island sheets follow the same setting), as `<style>` in the
|
|
632
|
+
* HTML — no request to wait on. Of the blocking build stylesheets (`/_app/immutable/`), the smallest
|
|
633
|
+
* first, while each is 8 KB or less and the HTML grows by 24 KB at most: the threshold that inlines
|
|
634
|
+
* them (just over the largest, in whole KB), how many, how many bytes. Null under two sheets. The
|
|
635
|
+
* profiler's page weight (`style`) and the Page tab's resources (`css`) both ask it.
|
|
636
|
+
*/
|
|
637
|
+
export declare function inline_threshold_tune(blocking: readonly {
|
|
638
|
+
url: string;
|
|
639
|
+
kind: string;
|
|
640
|
+
bytes: number;
|
|
641
|
+
}[]): {
|
|
642
|
+
threshold: number;
|
|
643
|
+
files: number;
|
|
644
|
+
bytes: number;
|
|
645
|
+
} | null;
|
|
646
|
+
/** a page of this many elements or more is named (the beacon reports from the same count) */
|
|
647
|
+
export declare const DOM_LARGE = 1500;
|
|
648
|
+
export declare function rate(key: RatedVital["key"], value: number): Rating;
|
|
649
|
+
/** Two markups that differ, and differ only in percent-encoding (`a/b` against `a%2Fb`): equal
|
|
650
|
+
* once both are decoded. A stray `%` that is not an escape (text reading "50%") makes it `false`. */
|
|
651
|
+
export declare function encoding_only(a: string, b: string): boolean;
|
|
652
|
+
/** Where two strings first differ, as a short "server … / now …" pair (the markup-changed proof). */
|
|
653
|
+
export declare function first_difference(a: string, b: string, span?: number): {
|
|
654
|
+
at: number;
|
|
655
|
+
server: string;
|
|
656
|
+
now: string;
|
|
657
|
+
} | null;
|
|
658
|
+
/** At the first difference `at`: an attribute of a CUSTOM ELEMENT empty on the server (`name=""`)
|
|
659
|
+
* that the browser holds as `"true"` / `"false"` — written bare (Svelte hands a custom element its
|
|
660
|
+
* attributes as values, and a bare one's is `true`; measured: `={true}` and `=""` agree on both
|
|
661
|
+
* sides). Its name, the element's tag, the browser's value. */
|
|
662
|
+
export declare function boolean_attr_at(server: string, now: string, at: number): {
|
|
663
|
+
name: string;
|
|
664
|
+
tag: string;
|
|
665
|
+
now: "true" | "false";
|
|
666
|
+
} | null;
|
|
667
|
+
export declare function analyze_page(page: PageInput, regions: RegionFact[], failures?: Failure[], now?: number, cpu?: CpuSummary | null): PageReport;
|
|
668
|
+
/**
|
|
669
|
+
* THE LARGEST PAINT, EXPLAINED: the element, the island it is in, and its four parts — the wait for
|
|
670
|
+
* the HTML's first byte, the delay before the browser began fetching its resource (the image found
|
|
671
|
+
* late: in CSS, added by a script, lazy), the resource's download, and the delay after it arrived
|
|
672
|
+
* before it painted (blocking CSS or scripts, or the element shown by a script). A text paint has
|
|
673
|
+
* no resource: first byte, then render. The fix is for the part that cost most.
|
|
674
|
+
*/
|
|
675
|
+
/** THE FONT THE LARGEST PAINT WAITED FOR: a text paint (no file of its own) that came within 200 ms
|
|
676
|
+
* of a font file landing after the first paint, whose face hides its text until then (font-display
|
|
677
|
+
* auto/block). The page's text was there all along, invisible: the font, not the server, set the
|
|
678
|
+
* LCP. Shared by the Page tab's split and the profiler's LCP gap. */
|
|
679
|
+
export declare function lcp_font(visit: PageInput["visit"] | null | undefined): {
|
|
680
|
+
family: string;
|
|
681
|
+
file: string;
|
|
682
|
+
end: number;
|
|
683
|
+
} | null;
|
|
684
|
+
/** WHAT THE LARGEST PAINT'S DOWNLOAD SHARED THE NETWORK WITH: images far below the first screen,
|
|
685
|
+
* not lazy, whose own download overlapped the largest paint's file (or, a text paint, the wait from
|
|
686
|
+
* the first byte to the paint). Shared by the Page tab's split and the profiler's LCP gap. */
|
|
687
|
+
export declare function lcp_rivals(visit: PageInput["visit"] | null | undefined): {
|
|
688
|
+
bytes: number;
|
|
689
|
+
files: string[];
|
|
690
|
+
} | null;
|
|
691
|
+
/**
|
|
692
|
+
* WHY THE BROWSER FOUND THE LARGEST PAINT'S FILE LATE, from what the visit saw: a CSS background
|
|
693
|
+
* (found only once its stylesheet is in and the element laid out), an image its island's code added
|
|
694
|
+
* as it woke (the request began after it hydrated: the server HTML had none), or an `<img>` in the
|
|
695
|
+
* HTML at the low priority an image starts at. The generic advice when none of them is it.
|
|
696
|
+
*/
|
|
697
|
+
export declare function late_found(p: NonNullable<NonNullable<PageInput["visit"]>["paints"]> | undefined, res: {
|
|
698
|
+
start: number;
|
|
699
|
+
req_start?: number;
|
|
700
|
+
} | undefined, islands: readonly PageIsland[], name_of: (fp: string | undefined) => string): string;
|
|
701
|
+
/**
|
|
702
|
+
* A VITAL'S PARTS, as numbers (the same splits the explanations word): TTFB by its steps, FCP by
|
|
703
|
+
* first byte / HTML / blocking / render, LCP by first byte / delay / download / render, INP by the
|
|
704
|
+
* slowest interaction's wait / handlers / paint. What "since your last profile" (the profiler) and
|
|
705
|
+
* "since your last load" (the Page tab) compare, to say which part of a moved vital moved. Null
|
|
706
|
+
* when the visit cannot tell.
|
|
707
|
+
*/
|
|
708
|
+
export type PartedVital = "ttfb" | "fcp" | "lcp" | "inp";
|
|
709
|
+
export interface VitalPart {
|
|
710
|
+
key: string;
|
|
711
|
+
label: string;
|
|
712
|
+
ms: number;
|
|
713
|
+
}
|
|
714
|
+
export interface VitalMove {
|
|
715
|
+
key: "ttfb" | "fcp" | "lcp" | "cls" | "inp";
|
|
716
|
+
a: number;
|
|
717
|
+
b: number;
|
|
718
|
+
/** the part of a split vital that moved most (≥ 50 ms, else left out) */
|
|
719
|
+
part?: {
|
|
720
|
+
label: string;
|
|
721
|
+
a: number;
|
|
722
|
+
b: number;
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
/**
|
|
726
|
+
* WHICH VITALS MOVED between two visits of a page, past the noise, and for a split vital the part
|
|
727
|
+
* that moved most. ONE rule for both tools: the profiler's "since your last profile" and the Page
|
|
728
|
+
* tab's "since your last load" read the same moves. `parts(side, key)` gives a side's parts.
|
|
729
|
+
*/
|
|
730
|
+
export declare function vitals_moved(a: Record<string, number | undefined>, b: Record<string, number | undefined>, parts: (side: "a" | "b", key: PartedVital) => VitalPart[] | null): VitalMove[];
|
|
731
|
+
export declare function vital_parts(page: PageInput, key: PartedVital): VitalPart[] | null;
|
|
732
|
+
/**
|
|
733
|
+
* THE DOCUMENT HELD OPEN: the page painted early, but its HTML kept coming — and islands wake only
|
|
734
|
+
* once the whole document is in (DOMContentLoaded, the wake gate), so every island waited for its
|
|
735
|
+
* end, even one that reads nothing late. Usually a load's streamed promise: the response stays open
|
|
736
|
+
* until the last one settles. From the browser (the navigation's first and last byte, the paint,
|
|
737
|
+
* the islands' hydrate steps after the end) and, when known, what held it (`held_open`: each streamed
|
|
738
|
+
* promise by its `page.data` key and when it settled). With no visit, the profiled render alone
|
|
739
|
+
* says it (its chunks: the early part, then the tail after the longest pause).
|
|
740
|
+
*/
|
|
741
|
+
export declare function explain_held_open(page: PageInput, rows: readonly IslandRow[], name_of: (fp: string) => string): PageFinding | null;
|
|
742
|
+
/** Names with their copies counted: `BatchHole ×4`, `Menu and Cart ×2`. */
|
|
743
|
+
/**
|
|
744
|
+
* On the dev server: how much of an island's code load was the server COMPILING files on this
|
|
745
|
+
* request — the time (overlaps counted once) the server took to answer each file fetched in its load
|
|
746
|
+
* window, when that took 80 ms or more (a transform: a warm dev server answers in a few). 0 off the
|
|
747
|
+
* dev server, or when the visit does not list the files.
|
|
748
|
+
*/
|
|
749
|
+
export declare function dev_compile_ms(page: Pick<PageInput, "dev" | "visit">, r: Pick<IslandRow, "t0" | "load_ms">): number;
|