@pibbl/core 0.0.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.txt +19 -0
- package/README.md +76 -0
- package/THIRD_PARTY_NOTICES.txt +205 -0
- package/dist/features/particles/index.d.ts +7 -0
- package/dist/features/particles/index.js +26 -0
- package/dist/features/particles/index.js.map +7 -0
- package/dist/features/particles/index.mjs +1 -0
- package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
- package/dist/features/particles/lib/canvas/component.d.ts +14 -0
- package/dist/features/particles/lib/canvas/component.js +249 -0
- package/dist/features/particles/lib/canvas/component.js.map +7 -0
- package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
- package/dist/features/particles/lib/canvas/executor.js +537 -0
- package/dist/features/particles/lib/canvas/executor.js.map +7 -0
- package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
- package/dist/features/particles/lib/canvas/primitive.js +50 -0
- package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
- package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
- package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
- package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
- package/dist/features/particles/lib/color.d.ts +7 -0
- package/dist/features/particles/lib/color.js +159 -0
- package/dist/features/particles/lib/color.js.map +7 -0
- package/dist/features/particles/lib/compiler.d.ts +134 -0
- package/dist/features/particles/lib/compiler.js +443 -0
- package/dist/features/particles/lib/compiler.js.map +7 -0
- package/dist/features/particles/lib/curve.d.ts +19 -0
- package/dist/features/particles/lib/curve.js +129 -0
- package/dist/features/particles/lib/curve.js.map +7 -0
- package/dist/features/particles/lib/definition-records.d.ts +58 -0
- package/dist/features/particles/lib/definition-records.js +500 -0
- package/dist/features/particles/lib/definition-records.js.map +7 -0
- package/dist/features/particles/lib/definition.d.ts +18 -0
- package/dist/features/particles/lib/definition.js +602 -0
- package/dist/features/particles/lib/definition.js.map +7 -0
- package/dist/features/particles/lib/emission.d.ts +54 -0
- package/dist/features/particles/lib/emission.js +184 -0
- package/dist/features/particles/lib/emission.js.map +7 -0
- package/dist/features/particles/lib/flow/field.d.ts +81 -0
- package/dist/features/particles/lib/flow/field.js +585 -0
- package/dist/features/particles/lib/flow/field.js.map +7 -0
- package/dist/features/particles/lib/flow/hook.d.ts +158 -0
- package/dist/features/particles/lib/flow/hook.js +215 -0
- package/dist/features/particles/lib/flow/hook.js.map +7 -0
- package/dist/features/particles/lib/flow/population.d.ts +25 -0
- package/dist/features/particles/lib/flow/population.js +104 -0
- package/dist/features/particles/lib/flow/population.js.map +7 -0
- package/dist/features/particles/lib/particle.d.ts +113 -0
- package/dist/features/particles/lib/particle.js +192 -0
- package/dist/features/particles/lib/particle.js.map +7 -0
- package/dist/features/particles/lib/random.d.ts +16 -0
- package/dist/features/particles/lib/random.js +61 -0
- package/dist/features/particles/lib/random.js.map +7 -0
- package/dist/features/particles/lib/sample.d.ts +32 -0
- package/dist/features/particles/lib/sample.js +397 -0
- package/dist/features/particles/lib/sample.js.map +7 -0
- package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
- package/dist/features/particles/lib/signal-inputs.js +41 -0
- package/dist/features/particles/lib/signal-inputs.js.map +7 -0
- package/dist/features/particles/lib/system/binding.d.ts +59 -0
- package/dist/features/particles/lib/system/binding.js +122 -0
- package/dist/features/particles/lib/system/binding.js.map +7 -0
- package/dist/features/particles/lib/system/controller.d.ts +58 -0
- package/dist/features/particles/lib/system/controller.js +1446 -0
- package/dist/features/particles/lib/system/controller.js.map +7 -0
- package/dist/features/particles/lib/system/hook.d.ts +13 -0
- package/dist/features/particles/lib/system/hook.js +52 -0
- package/dist/features/particles/lib/system/hook.js.map +7 -0
- package/dist/features/particles/lib/system/ownership.d.ts +26 -0
- package/dist/features/particles/lib/system/ownership.js +128 -0
- package/dist/features/particles/lib/system/ownership.js.map +7 -0
- package/dist/features/particles/lib/types.d.ts +983 -0
- package/dist/features/physics/2d-geometry.d.ts +216 -0
- package/dist/features/physics/2d-geometry.js +59 -0
- package/dist/features/physics/2d-geometry.js.map +7 -0
- package/dist/features/physics/2d-geometry.mjs +1 -0
- package/dist/features/physics/2d-testing.d.ts +80 -0
- package/dist/features/physics/2d-testing.js +141 -0
- package/dist/features/physics/2d-testing.js.map +7 -0
- package/dist/features/physics/2d-testing.mjs +1 -0
- package/dist/features/physics/2d.d.ts +165 -0
- package/dist/features/physics/2d.js +119 -0
- package/dist/features/physics/2d.js.map +7 -0
- package/dist/features/physics/2d.mjs +1 -0
- package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
- package/dist/features/physics/lib/2d/canvas/components.js +212 -0
- package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
- package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
- package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
- package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
- package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
- package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
- package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
- package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
- package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
- package/dist/features/physics/lib/2d/collision/casts.js +631 -0
- package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
- package/dist/features/physics/lib/2d/collision/epa.js +102 -0
- package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
- package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
- package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
- package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
- package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
- package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
- package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
- package/dist/features/physics/lib/2d/collision/support.js +155 -0
- package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
- package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
- package/dist/features/physics/lib/2d/math.d.ts +27 -0
- package/dist/features/physics/lib/2d/math.js +314 -0
- package/dist/features/physics/lib/2d/math.js.map +7 -0
- package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
- package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
- package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
- package/dist/features/physics/lib/2d/runtime/context.js +57 -0
- package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
- package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
- package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
- package/dist/features/physics/lib/2d/runtime/events.js +153 -0
- package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
- package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
- package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
- package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
- package/dist/features/physics/lib/2d/shape-records.js +26 -0
- package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
- package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
- package/dist/features/physics/lib/2d/shapes.js +543 -0
- package/dist/features/physics/lib/2d/shapes.js.map +7 -0
- package/dist/features/physics/lib/2d/types.d.ts +713 -0
- package/dist/features/physics/lib/2d/types.js +1 -0
- package/dist/features/physics/lib/2d/types.js.map +7 -0
- package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
- package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
- package/dist/features/physics/lib/2d/world/ccd.js +265 -0
- package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
- package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
- package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
- package/dist/features/physics/lib/2d/world/integrator.js +99 -0
- package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
- package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
- package/dist/features/physics/lib/2d/world/queries.js +424 -0
- package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
- package/dist/features/physics/lib/2d/world/rapier.js +655 -0
- package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
- package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
- package/dist/features/physics/lib/2d/world/solver.js +660 -0
- package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
- package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
- package/dist/features/physics/lib/2d/world/storage.js +371 -0
- package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
- package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
- package/dist/features/physics/lib/2d/world/world.js +1713 -0
- package/dist/features/physics/lib/2d/world/world.js.map +7 -0
- package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
- package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
- package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
- package/dist/features/physics/lib/shared/validation.d.ts +5 -0
- package/dist/features/physics/lib/shared/validation.js +48 -0
- package/dist/features/physics/lib/shared/validation.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.js +23 -0
- package/dist/features/sprites/formats/aseprite.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.mjs +1 -0
- package/dist/features/sprites/formats/texture-packer.js +14 -0
- package/dist/features/sprites/formats/texture-packer.js.map +7 -0
- package/dist/features/sprites/formats/texture-packer.mjs +1 -0
- package/dist/features/sprites/index.js +9 -0
- package/dist/features/sprites/index.js.map +7 -0
- package/dist/features/sprites/index.mjs +1 -0
- package/dist/features/sprites/loader.js +63 -0
- package/dist/features/sprites/loader.js.map +7 -0
- package/dist/features/sprites/model.js +64 -0
- package/dist/features/sprites/model.js.map +7 -0
- package/dist/features/sprites/sprite.js +31 -0
- package/dist/features/sprites/sprite.js.map +7 -0
- package/dist/features/textures/index.d.ts +22 -0
- package/dist/features/textures/index.js +31 -0
- package/dist/features/textures/index.js.map +7 -0
- package/dist/features/textures/index.mjs +1 -0
- package/dist/features/textures/lib/definitions.d.ts +117 -0
- package/dist/features/textures/lib/definitions.js +179 -0
- package/dist/features/textures/lib/definitions.js.map +7 -0
- package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
- package/dist/features/textures/lib/electric-boundary.js +11 -0
- package/dist/features/textures/lib/electric-boundary.js.map +7 -0
- package/dist/features/textures/lib/electric-shared.d.ts +69 -0
- package/dist/features/textures/lib/electric-shared.js +43 -0
- package/dist/features/textures/lib/electric-shared.js.map +7 -0
- package/dist/features/textures/lib/electric-sources.d.ts +50 -0
- package/dist/features/textures/lib/electric-sources.js +43 -0
- package/dist/features/textures/lib/electric-sources.js.map +7 -0
- package/dist/features/textures/lib/lightning.d.ts +72 -0
- package/dist/features/textures/lib/lightning.js +139 -0
- package/dist/features/textures/lib/lightning.js.map +7 -0
- package/dist/features/textures/lib/material-field.d.ts +12 -0
- package/dist/features/textures/lib/material-field.js +31 -0
- package/dist/features/textures/lib/material-field.js.map +7 -0
- package/dist/features/textures/lib/palette.d.ts +45 -0
- package/dist/features/textures/lib/palette.js +52 -0
- package/dist/features/textures/lib/palette.js.map +7 -0
- package/dist/features/textures/lib/presentation.d.ts +54 -0
- package/dist/features/textures/lib/presentation.js +83 -0
- package/dist/features/textures/lib/presentation.js.map +7 -0
- package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
- package/dist/features/textures/lib/procedural-texture.js +110 -0
- package/dist/features/textures/lib/procedural-texture.js.map +7 -0
- package/dist/features/textures/lib/rain-drops.d.ts +96 -0
- package/dist/features/textures/lib/rain-drops.js +322 -0
- package/dist/features/textures/lib/rain-drops.js.map +7 -0
- package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
- package/dist/features/textures/lib/reaction-diffusion.js +210 -0
- package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
- package/dist/features/textures/lib/simulation.d.ts +16 -0
- package/dist/features/textures/lib/simulation.js +85 -0
- package/dist/features/textures/lib/simulation.js.map +7 -0
- package/dist/features/textures/lib/tendrils.d.ts +57 -0
- package/dist/features/textures/lib/tendrils.js +216 -0
- package/dist/features/textures/lib/tendrils.js.map +7 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
- package/dist/features/textures/lib/wasm/electric.js +299 -0
- package/dist/features/textures/lib/wasm/electric.js.map +7 -0
- package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
- package/dist/features/textures/lib/wasm/memory.js +103 -0
- package/dist/features/textures/lib/wasm/memory.js.map +7 -0
- package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
- package/dist/features/textures/lib/water-surface.d.ts +92 -0
- package/dist/features/textures/lib/water-surface.js +378 -0
- package/dist/features/textures/lib/water-surface.js.map +7 -0
- package/dist/features/textures/lib/water-waves.d.ts +60 -0
- package/dist/features/textures/lib/water-waves.js +154 -0
- package/dist/features/textures/lib/water-waves.js.map +7 -0
- package/dist/features/viz/index.d.ts +28 -0
- package/dist/features/viz/index.js +45 -0
- package/dist/features/viz/index.js.map +7 -0
- package/dist/features/viz/index.mjs +1 -0
- package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
- package/dist/features/viz/lib/anchored-layout.js +166 -0
- package/dist/features/viz/lib/anchored-layout.js.map +7 -0
- package/dist/features/viz/lib/axis.d.ts +10 -0
- package/dist/features/viz/lib/axis.js +116 -0
- package/dist/features/viz/lib/axis.js.map +7 -0
- package/dist/features/viz/lib/band-scale.d.ts +3 -0
- package/dist/features/viz/lib/band-scale.js +57 -0
- package/dist/features/viz/lib/band-scale.js.map +7 -0
- package/dist/features/viz/lib/bar-fill.d.ts +16 -0
- package/dist/features/viz/lib/bar-fill.js +53 -0
- package/dist/features/viz/lib/bar-fill.js.map +7 -0
- package/dist/features/viz/lib/bar-series.d.ts +150 -0
- package/dist/features/viz/lib/bar-series.js +152 -0
- package/dist/features/viz/lib/bar-series.js.map +7 -0
- package/dist/features/viz/lib/hover-card.d.ts +92 -0
- package/dist/features/viz/lib/hover-card.js +146 -0
- package/dist/features/viz/lib/hover-card.js.map +7 -0
- package/dist/features/viz/lib/hover-data.d.ts +12 -0
- package/dist/features/viz/lib/hover-data.js +50 -0
- package/dist/features/viz/lib/hover-data.js.map +7 -0
- package/dist/features/viz/lib/hover-placement.d.ts +46 -0
- package/dist/features/viz/lib/hover-placement.js +51 -0
- package/dist/features/viz/lib/hover-placement.js.map +7 -0
- package/dist/features/viz/lib/hover-queries.d.ts +60 -0
- package/dist/features/viz/lib/hover-queries.js +185 -0
- package/dist/features/viz/lib/hover-queries.js.map +7 -0
- package/dist/features/viz/lib/hover-types.d.ts +277 -0
- package/dist/features/viz/lib/layout-pie.d.ts +13 -0
- package/dist/features/viz/lib/layout-pie.js +159 -0
- package/dist/features/viz/lib/layout-pie.js.map +7 -0
- package/dist/features/viz/lib/line-series.d.ts +11 -0
- package/dist/features/viz/lib/line-series.js +89 -0
- package/dist/features/viz/lib/line-series.js.map +7 -0
- package/dist/features/viz/lib/linear-scale.d.ts +3 -0
- package/dist/features/viz/lib/linear-scale.js +70 -0
- package/dist/features/viz/lib/linear-scale.js.map +7 -0
- package/dist/features/viz/lib/nearest.d.ts +82 -0
- package/dist/features/viz/lib/nearest.js +51 -0
- package/dist/features/viz/lib/nearest.js.map +7 -0
- package/dist/features/viz/lib/paint.d.ts +2 -0
- package/dist/features/viz/lib/paint.js +17 -0
- package/dist/features/viz/lib/paint.js.map +7 -0
- package/dist/features/viz/lib/pie-layout.d.ts +31 -0
- package/dist/features/viz/lib/pie-layout.js +324 -0
- package/dist/features/viz/lib/pie-layout.js.map +7 -0
- package/dist/features/viz/lib/pie-slices.d.ts +51 -0
- package/dist/features/viz/lib/pie-slices.js +50 -0
- package/dist/features/viz/lib/pie-slices.js.map +7 -0
- package/dist/features/viz/lib/pie-types.d.ts +215 -0
- package/dist/features/viz/lib/plot-series.d.ts +13 -0
- package/dist/features/viz/lib/plot-series.js +53 -0
- package/dist/features/viz/lib/plot-series.js.map +7 -0
- package/dist/features/viz/lib/plot-types.d.ts +63 -0
- package/dist/features/viz/lib/point-data.d.ts +5 -0
- package/dist/features/viz/lib/point-data.js +17 -0
- package/dist/features/viz/lib/point-data.js.map +7 -0
- package/dist/features/viz/lib/point-geometry.d.ts +2 -0
- package/dist/features/viz/lib/point-geometry.js +24 -0
- package/dist/features/viz/lib/point-geometry.js.map +7 -0
- package/dist/features/viz/lib/point-series.d.ts +11 -0
- package/dist/features/viz/lib/point-series.js +118 -0
- package/dist/features/viz/lib/point-series.js.map +7 -0
- package/dist/features/viz/lib/point-types.d.ts +94 -0
- package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
- package/dist/features/viz/lib/scale-adjust.js +25 -0
- package/dist/features/viz/lib/scale-adjust.js.map +7 -0
- package/dist/features/viz/lib/scale-context.d.ts +8 -0
- package/dist/features/viz/lib/scale-context.js +61 -0
- package/dist/features/viz/lib/scale-context.js.map +7 -0
- package/dist/features/viz/lib/scale.d.ts +11 -0
- package/dist/features/viz/lib/scale.js +80 -0
- package/dist/features/viz/lib/scale.js.map +7 -0
- package/dist/features/viz/lib/types.d.ts +414 -0
- package/dist/features/viz/lib/use-scale.d.ts +20 -0
- package/dist/features/viz/lib/use-scale.js +10 -0
- package/dist/features/viz/lib/use-scale.js.map +7 -0
- package/dist/filters/displacement-gpu.d.ts +38 -0
- package/dist/filters/displacement-gpu.js +243 -0
- package/dist/filters/displacement-gpu.js.map +7 -0
- package/dist/filters/displacement-math.d.ts +5 -0
- package/dist/filters/displacement-math.js +22 -0
- package/dist/filters/displacement-math.js.map +7 -0
- package/dist/filters/displacement.d.ts +13 -0
- package/dist/filters/displacement.js +65 -0
- package/dist/filters/displacement.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +21 -0
- package/dist/filters/filter-executor.js +120 -0
- package/dist/filters/filter-executor.js.map +7 -0
- package/dist/filters/native-canvas-filter.d.ts +4 -0
- package/dist/filters/native-canvas-filter.js +105 -0
- package/dist/filters/native-canvas-filter.js.map +7 -0
- package/dist/filters/native-color.d.ts +2 -0
- package/dist/filters/native-color.js +200 -0
- package/dist/filters/native-color.js.map +7 -0
- package/dist/filters/native-operations.d.ts +8 -0
- package/dist/filters/native-operations.js +7 -0
- package/dist/filters/native-operations.js.map +7 -0
- package/dist/filters/native.d.ts +113 -0
- package/dist/filters/native.js +115 -0
- package/dist/filters/native.js.map +7 -0
- package/dist/filters/reflected-light.d.ts +12 -0
- package/dist/filters/reflected-light.js +93 -0
- package/dist/filters/reflected-light.js.map +7 -0
- package/dist/filters/reflection-gpu.d.ts +58 -0
- package/dist/filters/reflection-gpu.js +266 -0
- package/dist/filters/reflection-gpu.js.map +7 -0
- package/dist/filters/render-displacement-boundary.d.ts +12 -0
- package/dist/filters/render-displacement-boundary.js +116 -0
- package/dist/filters/render-displacement-boundary.js.map +7 -0
- package/dist/filters/render-reflection-boundary.d.ts +15 -0
- package/dist/filters/render-reflection-boundary.js +127 -0
- package/dist/filters/render-reflection-boundary.js.map +7 -0
- package/dist/filters.d.ts +5 -0
- package/dist/filters.js +29 -0
- package/dist/filters.js.map +7 -0
- package/dist/filters.mjs +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.js +300 -0
- package/dist/index.js.map +7 -0
- package/dist/index.mjs +1 -0
- package/dist/internal.d.ts +160 -0
- package/dist/internal.js +320 -0
- package/dist/internal.js.map +7 -0
- package/dist/internal.mjs +1 -0
- package/dist/jsx-dev-runtime.d.ts +35 -0
- package/dist/jsx-dev-runtime.js +6 -0
- package/dist/jsx-dev-runtime.js.map +7 -0
- package/dist/jsx-dev-runtime.mjs +1 -0
- package/dist/jsx-runtime.d.ts +35 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.js.map +7 -0
- package/dist/jsx-runtime.mjs +1 -0
- package/dist/lib/animation/definition.d.ts +140 -0
- package/dist/lib/animation/definition.js +605 -0
- package/dist/lib/animation/definition.js.map +7 -0
- package/dist/lib/animation/easing.d.ts +55 -0
- package/dist/lib/animation/easing.js +112 -0
- package/dist/lib/animation/easing.js.map +7 -0
- package/dist/lib/animation/evaluate.d.ts +118 -0
- package/dist/lib/animation/evaluate.js +2398 -0
- package/dist/lib/animation/evaluate.js.map +7 -0
- package/dist/lib/animation/playback.d.ts +30 -0
- package/dist/lib/animation/playback.js +932 -0
- package/dist/lib/animation/playback.js.map +7 -0
- package/dist/lib/animation/program.d.ts +145 -0
- package/dist/lib/animation/program.js +741 -0
- package/dist/lib/animation/program.js.map +7 -0
- package/dist/lib/animation/spring.d.ts +30 -0
- package/dist/lib/animation/spring.js +324 -0
- package/dist/lib/animation/spring.js.map +7 -0
- package/dist/lib/animation/types.d.ts +418 -0
- package/dist/lib/animation/writer-leases.d.ts +47 -0
- package/dist/lib/animation/writer-leases.js +314 -0
- package/dist/lib/animation/writer-leases.js.map +7 -0
- package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
- package/dist/lib/backend/canvas-2d-backend.js +97 -0
- package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
- package/dist/lib/backend/types.d.ts +309 -0
- package/dist/lib/backend/types.js +26 -0
- package/dist/lib/backend/types.js.map +7 -0
- package/dist/lib/components/arc-geometry.d.ts +4 -0
- package/dist/lib/components/arc-geometry.js +46 -0
- package/dist/lib/components/arc-geometry.js.map +7 -0
- package/dist/lib/components/arc.d.ts +55 -0
- package/dist/lib/components/arc.js +91 -0
- package/dist/lib/components/arc.js.map +7 -0
- package/dist/lib/components/circle.d.ts +49 -0
- package/dist/lib/components/circle.js +46 -0
- package/dist/lib/components/circle.js.map +7 -0
- package/dist/lib/components/clip.d.ts +43 -0
- package/dist/lib/components/clip.js +24 -0
- package/dist/lib/components/clip.js.map +7 -0
- package/dist/lib/components/ellipse.d.ts +53 -0
- package/dist/lib/components/ellipse.js +59 -0
- package/dist/lib/components/ellipse.js.map +7 -0
- package/dist/lib/components/g.d.ts +56 -0
- package/dist/lib/components/g.js +24 -0
- package/dist/lib/components/g.js.map +7 -0
- package/dist/lib/components/horizontal-line.d.ts +56 -0
- package/dist/lib/components/horizontal-line.js +71 -0
- package/dist/lib/components/horizontal-line.js.map +7 -0
- package/dist/lib/components/html-box.d.ts +16 -0
- package/dist/lib/components/html-box.js +57 -0
- package/dist/lib/components/html-box.js.map +7 -0
- package/dist/lib/components/img.d.ts +24 -0
- package/dist/lib/components/img.js +150 -0
- package/dist/lib/components/img.js.map +7 -0
- package/dist/lib/components/layer-node-equality.d.ts +65 -0
- package/dist/lib/components/layer-node-equality.js +91 -0
- package/dist/lib/components/layer-node-equality.js.map +7 -0
- package/dist/lib/components/layer.d.ts +34 -0
- package/dist/lib/components/layer.js +172 -0
- package/dist/lib/components/layer.js.map +7 -0
- package/dist/lib/components/line.d.ts +51 -0
- package/dist/lib/components/line.js +76 -0
- package/dist/lib/components/line.js.map +7 -0
- package/dist/lib/components/path.d.ts +28 -0
- package/dist/lib/components/path.js +47 -0
- package/dist/lib/components/path.js.map +7 -0
- package/dist/lib/components/polygon.d.ts +45 -0
- package/dist/lib/components/polygon.js +93 -0
- package/dist/lib/components/polygon.js.map +7 -0
- package/dist/lib/components/rect.d.ts +24 -0
- package/dist/lib/components/rect.js +83 -0
- package/dist/lib/components/rect.js.map +7 -0
- package/dist/lib/components/regular-polygon.d.ts +102 -0
- package/dist/lib/components/regular-polygon.js +112 -0
- package/dist/lib/components/regular-polygon.js.map +7 -0
- package/dist/lib/components/rounded-corner-style.d.ts +7 -0
- package/dist/lib/components/rounded-corner-style.js +40 -0
- package/dist/lib/components/rounded-corner-style.js.map +7 -0
- package/dist/lib/components/shape-style.d.ts +7 -0
- package/dist/lib/components/shape-style.js +52 -0
- package/dist/lib/components/shape-style.js.map +7 -0
- package/dist/lib/components/star.d.ts +56 -0
- package/dist/lib/components/star.js +98 -0
- package/dist/lib/components/star.js.map +7 -0
- package/dist/lib/components/structural-events.d.ts +10 -0
- package/dist/lib/components/structural-events.js +8 -0
- package/dist/lib/components/structural-events.js.map +7 -0
- package/dist/lib/components/svg-path.d.ts +23 -0
- package/dist/lib/components/svg-path.js +25 -0
- package/dist/lib/components/svg-path.js.map +7 -0
- package/dist/lib/components/text-layout.d.ts +31 -0
- package/dist/lib/components/text-layout.js +139 -0
- package/dist/lib/components/text-layout.js.map +7 -0
- package/dist/lib/components/text.d.ts +29 -0
- package/dist/lib/components/text.js +174 -0
- package/dist/lib/components/text.js.map +7 -0
- package/dist/lib/components/vertical-line.d.ts +57 -0
- package/dist/lib/components/vertical-line.js +71 -0
- package/dist/lib/components/vertical-line.js.map +7 -0
- package/dist/lib/components/wedge.d.ts +55 -0
- package/dist/lib/components/wedge.js +93 -0
- package/dist/lib/components/wedge.js.map +7 -0
- package/dist/lib/define-primitive.d.ts +82 -0
- package/dist/lib/define-primitive.js +85 -0
- package/dist/lib/define-primitive.js.map +7 -0
- package/dist/lib/development.d.ts +2 -0
- package/dist/lib/development.js +5 -0
- package/dist/lib/development.js.map +7 -0
- package/dist/lib/element/children.d.ts +16 -0
- package/dist/lib/element/children.js +333 -0
- package/dist/lib/element/children.js.map +7 -0
- package/dist/lib/element/create-element.d.ts +34 -0
- package/dist/lib/element/create-element.js +75 -0
- package/dist/lib/element/create-element.js.map +7 -0
- package/dist/lib/element/fragment.d.ts +15 -0
- package/dist/lib/element/fragment.js +11 -0
- package/dist/lib/element/fragment.js.map +7 -0
- package/dist/lib/element/jsx-runtime.d.ts +48 -0
- package/dist/lib/element/jsx-runtime.js +16 -0
- package/dist/lib/element/jsx-runtime.js.map +7 -0
- package/dist/lib/element/metadata.d.ts +96 -0
- package/dist/lib/element/metadata.js +160 -0
- package/dist/lib/element/metadata.js.map +7 -0
- package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
- package/dist/lib/element/resolve-primitive-inputs.js +83 -0
- package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
- package/dist/lib/element/types.d.ts +123 -0
- package/dist/lib/element-enhancers.d.ts +134 -0
- package/dist/lib/element-enhancers.js +193 -0
- package/dist/lib/element-enhancers.js.map +7 -0
- package/dist/lib/events/adapters/clipboard.d.ts +9 -0
- package/dist/lib/events/adapters/clipboard.js +23 -0
- package/dist/lib/events/adapters/clipboard.js.map +7 -0
- package/dist/lib/events/adapters/drag.d.ts +12 -0
- package/dist/lib/events/adapters/drag.js +29 -0
- package/dist/lib/events/adapters/drag.js.map +7 -0
- package/dist/lib/events/adapters/editing.d.ts +15 -0
- package/dist/lib/events/adapters/editing.js +41 -0
- package/dist/lib/events/adapters/editing.js.map +7 -0
- package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
- package/dist/lib/events/adapters/keyboard-focus.js +36 -0
- package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
- package/dist/lib/events/adapters/mouse.d.ts +17 -0
- package/dist/lib/events/adapters/mouse.js +32 -0
- package/dist/lib/events/adapters/mouse.js.map +7 -0
- package/dist/lib/events/adapters/pointer.d.ts +19 -0
- package/dist/lib/events/adapters/pointer.js +40 -0
- package/dist/lib/events/adapters/pointer.js.map +7 -0
- package/dist/lib/events/adapters/touch.d.ts +16 -0
- package/dist/lib/events/adapters/touch.js +36 -0
- package/dist/lib/events/adapters/touch.js.map +7 -0
- package/dist/lib/events/adapters/wheel.d.ts +10 -0
- package/dist/lib/events/adapters/wheel.js +16 -0
- package/dist/lib/events/adapters/wheel.js.map +7 -0
- package/dist/lib/events/boundary-transitions.d.ts +9 -0
- package/dist/lib/events/boundary-transitions.js +16 -0
- package/dist/lib/events/boundary-transitions.js.map +7 -0
- package/dist/lib/events/dispatch.d.ts +21 -0
- package/dist/lib/events/dispatch.js +1078 -0
- package/dist/lib/events/dispatch.js.map +7 -0
- package/dist/lib/events/event-definitions.d.ts +23 -0
- package/dist/lib/events/event-definitions.js +74 -0
- package/dist/lib/events/event-definitions.js.map +7 -0
- package/dist/lib/events/event-facade.d.ts +19 -0
- package/dist/lib/events/event-facade.js +188 -0
- package/dist/lib/events/event-facade.js.map +7 -0
- package/dist/lib/events/event-path.d.ts +3 -0
- package/dist/lib/events/event-path.js +43 -0
- package/dist/lib/events/event-path.js.map +7 -0
- package/dist/lib/events/hit-test.d.ts +13 -0
- package/dist/lib/events/hit-test.js +135 -0
- package/dist/lib/events/hit-test.js.map +7 -0
- package/dist/lib/events/native-listener-hub.d.ts +10 -0
- package/dist/lib/events/native-listener-hub.js +72 -0
- package/dist/lib/events/native-listener-hub.js.map +7 -0
- package/dist/lib/events/paint-entry.d.ts +66 -0
- package/dist/lib/events/paint-entry.js +30 -0
- package/dist/lib/events/paint-entry.js.map +7 -0
- package/dist/lib/events/pointer-capture.d.ts +23 -0
- package/dist/lib/events/pointer-capture.js +339 -0
- package/dist/lib/events/pointer-capture.js.map +7 -0
- package/dist/lib/events/propagation.d.ts +7 -0
- package/dist/lib/events/propagation.js +56 -0
- package/dist/lib/events/propagation.js.map +7 -0
- package/dist/lib/events/registrations.d.ts +120 -0
- package/dist/lib/events/registrations.js +397 -0
- package/dist/lib/events/registrations.js.map +7 -0
- package/dist/lib/events/resolver-input.d.ts +25 -0
- package/dist/lib/events/resolver-input.js +62 -0
- package/dist/lib/events/resolver-input.js.map +7 -0
- package/dist/lib/events/types.d.ts +596 -0
- package/dist/lib/execute-render.d.ts +9 -0
- package/dist/lib/execute-render.js +195 -0
- package/dist/lib/execute-render.js.map +7 -0
- package/dist/lib/filter/canvas-state.d.ts +2 -0
- package/dist/lib/filter/canvas-state.js +31 -0
- package/dist/lib/filter/canvas-state.js.map +7 -0
- package/dist/lib/filter/filter-region.d.ts +33 -0
- package/dist/lib/filter/filter-region.js +291 -0
- package/dist/lib/filter/filter-region.js.map +7 -0
- package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
- package/dist/lib/filter/filter-surface-pool.js +252 -0
- package/dist/lib/filter/filter-surface-pool.js.map +7 -0
- package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
- package/dist/lib/filter/render-filter-boundary.js +211 -0
- package/dist/lib/filter/render-filter-boundary.js.map +7 -0
- package/dist/lib/focus/directional-navigation.d.ts +12 -0
- package/dist/lib/focus/directional-navigation.js +86 -0
- package/dist/lib/focus/directional-navigation.js.map +7 -0
- package/dist/lib/focus/dom-focus-host.d.ts +13 -0
- package/dist/lib/focus/dom-focus-host.js +352 -0
- package/dist/lib/focus/dom-focus-host.js.map +7 -0
- package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
- package/dist/lib/focus/dom-tab-stops.js +71 -0
- package/dist/lib/focus/dom-tab-stops.js.map +7 -0
- package/dist/lib/focus/focus-events.d.ts +4 -0
- package/dist/lib/focus/focus-events.js +78 -0
- package/dist/lib/focus/focus-events.js.map +7 -0
- package/dist/lib/focus/focus-manager.d.ts +121 -0
- package/dist/lib/focus/focus-manager.js +1131 -0
- package/dist/lib/focus/focus-manager.js.map +7 -0
- package/dist/lib/focus/geometry.d.ts +4 -0
- package/dist/lib/focus/geometry.js +64 -0
- package/dist/lib/focus/geometry.js.map +7 -0
- package/dist/lib/focus/html-focus-region.d.ts +27 -0
- package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
- package/dist/lib/focus/keyboard-defaults.js +110 -0
- package/dist/lib/focus/keyboard-defaults.js.map +7 -0
- package/dist/lib/focus/policy-components.d.ts +45 -0
- package/dist/lib/focus/policy-components.js +94 -0
- package/dist/lib/focus/policy-components.js.map +7 -0
- package/dist/lib/focus/types.d.ts +37 -0
- package/dist/lib/focus/types.js +7 -0
- package/dist/lib/focus/types.js.map +7 -0
- package/dist/lib/geometry/circle.d.ts +22 -0
- package/dist/lib/geometry/circle.js +13 -0
- package/dist/lib/geometry/circle.js.map +7 -0
- package/dist/lib/geometry/circular-sweep.d.ts +54 -0
- package/dist/lib/geometry/circular-sweep.js +95 -0
- package/dist/lib/geometry/circular-sweep.js.map +7 -0
- package/dist/lib/geometry/ellipse.d.ts +26 -0
- package/dist/lib/geometry/ellipse.js +17 -0
- package/dist/lib/geometry/ellipse.js.map +7 -0
- package/dist/lib/geometry/line.d.ts +20 -0
- package/dist/lib/geometry/line.js +15 -0
- package/dist/lib/geometry/line.js.map +7 -0
- package/dist/lib/geometry/path-arc.d.ts +25 -0
- package/dist/lib/geometry/path-arc.js +57 -0
- package/dist/lib/geometry/path-arc.js.map +7 -0
- package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
- package/dist/lib/geometry/path-bend-guide.js +282 -0
- package/dist/lib/geometry/path-bend-guide.js.map +7 -0
- package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
- package/dist/lib/geometry/path-bend-spans.js +109 -0
- package/dist/lib/geometry/path-bend-spans.js.map +7 -0
- package/dist/lib/geometry/path-bending.d.ts +90 -0
- package/dist/lib/geometry/path-bending.js +202 -0
- package/dist/lib/geometry/path-bending.js.map +7 -0
- package/dist/lib/geometry/path-conversion.d.ts +19 -0
- package/dist/lib/geometry/path-conversion.js +114 -0
- package/dist/lib/geometry/path-conversion.js.map +7 -0
- package/dist/lib/geometry/path-geometry.d.ts +218 -0
- package/dist/lib/geometry/path-geometry.js +557 -0
- package/dist/lib/geometry/path-geometry.js.map +7 -0
- package/dist/lib/geometry/path-radial.d.ts +15 -0
- package/dist/lib/geometry/path-radial.js +107 -0
- package/dist/lib/geometry/path-radial.js.map +7 -0
- package/dist/lib/geometry/path-transforms.d.ts +233 -0
- package/dist/lib/geometry/path-transforms.js +478 -0
- package/dist/lib/geometry/path-transforms.js.map +7 -0
- package/dist/lib/geometry/path-utilities.d.ts +78 -0
- package/dist/lib/geometry/path-utilities.js +341 -0
- package/dist/lib/geometry/path-utilities.js.map +7 -0
- package/dist/lib/geometry/path-wang.d.ts +18 -0
- package/dist/lib/geometry/path-wang.js +136 -0
- package/dist/lib/geometry/path-wang.js.map +7 -0
- package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
- package/dist/lib/geometry/path-warp-bezier.js +109 -0
- package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
- package/dist/lib/geometry/path-warp.d.ts +27 -0
- package/dist/lib/geometry/path-warp.js +165 -0
- package/dist/lib/geometry/path-warp.js.map +7 -0
- package/dist/lib/geometry/polygon.d.ts +21 -0
- package/dist/lib/geometry/polygon.js +12 -0
- package/dist/lib/geometry/polygon.js.map +7 -0
- package/dist/lib/geometry/rectangle.d.ts +38 -0
- package/dist/lib/geometry/rectangle.js +22 -0
- package/dist/lib/geometry/rectangle.js.map +7 -0
- package/dist/lib/geometry/regular-polygon.d.ts +88 -0
- package/dist/lib/geometry/regular-polygon.js +67 -0
- package/dist/lib/geometry/regular-polygon.js.map +7 -0
- package/dist/lib/geometry/resolve-path.d.ts +4 -0
- package/dist/lib/geometry/resolve-path.js +16 -0
- package/dist/lib/geometry/resolve-path.js.map +7 -0
- package/dist/lib/geometry/rounded-corners.d.ts +28 -0
- package/dist/lib/geometry/rounded-corners.js +118 -0
- package/dist/lib/geometry/rounded-corners.js.map +7 -0
- package/dist/lib/geometry/star.d.ts +39 -0
- package/dist/lib/geometry/star.js +90 -0
- package/dist/lib/geometry/star.js.map +7 -0
- package/dist/lib/geometry/svg-path.d.ts +21 -0
- package/dist/lib/geometry/svg-path.js +7 -0
- package/dist/lib/geometry/svg-path.js.map +7 -0
- package/dist/lib/geometry/transform-bend.d.ts +46 -0
- package/dist/lib/geometry/transform-bend.js +219 -0
- package/dist/lib/geometry/transform-bend.js.map +7 -0
- package/dist/lib/geometry/transform-guide.d.ts +57 -0
- package/dist/lib/geometry/transform-guide.js +157 -0
- package/dist/lib/geometry/transform-guide.js.map +7 -0
- package/dist/lib/geometry/transform-math.d.ts +21 -0
- package/dist/lib/geometry/transform-math.js +91 -0
- package/dist/lib/geometry/transform-math.js.map +7 -0
- package/dist/lib/geometry/transform-mesh.d.ts +39 -0
- package/dist/lib/geometry/transform-mesh.js +129 -0
- package/dist/lib/geometry/transform-mesh.js.map +7 -0
- package/dist/lib/geometry/validation.d.ts +6 -0
- package/dist/lib/geometry/validation.js +42 -0
- package/dist/lib/geometry/validation.js.map +7 -0
- package/dist/lib/global-state.d.ts +63 -0
- package/dist/lib/global-state.js +176 -0
- package/dist/lib/global-state.js.map +7 -0
- package/dist/lib/hooks/hook-slot.d.ts +30 -0
- package/dist/lib/hooks/hook-slot.js +66 -0
- package/dist/lib/hooks/hook-slot.js.map +7 -0
- package/dist/lib/hooks/use-animated-value.d.ts +24 -0
- package/dist/lib/hooks/use-animated-value.js +169 -0
- package/dist/lib/hooks/use-animated-value.js.map +7 -0
- package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
- package/dist/lib/hooks/use-canvas-context.js +13 -0
- package/dist/lib/hooks/use-canvas-context.js.map +7 -0
- package/dist/lib/hooks/use-computed.d.ts +13 -0
- package/dist/lib/hooks/use-computed.js +91 -0
- package/dist/lib/hooks/use-computed.js.map +7 -0
- package/dist/lib/hooks/use-const.d.ts +10 -0
- package/dist/lib/hooks/use-const.js +15 -0
- package/dist/lib/hooks/use-const.js.map +7 -0
- package/dist/lib/hooks/use-cursor.d.ts +16 -0
- package/dist/lib/hooks/use-cursor.js +51 -0
- package/dist/lib/hooks/use-cursor.js.map +7 -0
- package/dist/lib/hooks/use-event-listener.d.ts +10 -0
- package/dist/lib/hooks/use-event-listener.js +24 -0
- package/dist/lib/hooks/use-event-listener.js.map +7 -0
- package/dist/lib/hooks/use-event-target.d.ts +14 -0
- package/dist/lib/hooks/use-event-target.js +30 -0
- package/dist/lib/hooks/use-event-target.js.map +7 -0
- package/dist/lib/hooks/use-layout-box.d.ts +9 -0
- package/dist/lib/hooks/use-layout-box.js +8 -0
- package/dist/lib/hooks/use-layout-box.js.map +7 -0
- package/dist/lib/hooks/use-line-path.d.ts +14 -0
- package/dist/lib/hooks/use-line-path.js +13 -0
- package/dist/lib/hooks/use-line-path.js.map +7 -0
- package/dist/lib/hooks/use-paint-target.d.ts +3 -0
- package/dist/lib/hooks/use-paint-target.js +34 -0
- package/dist/lib/hooks/use-paint-target.js.map +7 -0
- package/dist/lib/hooks/use-playback.d.ts +21 -0
- package/dist/lib/hooks/use-playback.js +87 -0
- package/dist/lib/hooks/use-playback.js.map +7 -0
- package/dist/lib/hooks/use-reaction.d.ts +19 -0
- package/dist/lib/hooks/use-reaction.js +245 -0
- package/dist/lib/hooks/use-reaction.js.map +7 -0
- package/dist/lib/hooks/use-rect-path.d.ts +20 -0
- package/dist/lib/hooks/use-rect-path.js +25 -0
- package/dist/lib/hooks/use-rect-path.js.map +7 -0
- package/dist/lib/hooks/use-ref.d.ts +17 -0
- package/dist/lib/hooks/use-ref.js +8 -0
- package/dist/lib/hooks/use-ref.js.map +7 -0
- package/dist/lib/hooks/use-region.d.ts +11 -0
- package/dist/lib/hooks/use-region.js +34 -0
- package/dist/lib/hooks/use-region.js.map +7 -0
- package/dist/lib/hooks/use-signal.d.ts +12 -0
- package/dist/lib/hooks/use-signal.js +12 -0
- package/dist/lib/hooks/use-signal.js.map +7 -0
- package/dist/lib/hooks/use-svg-path.d.ts +11 -0
- package/dist/lib/hooks/use-svg-path.js +13 -0
- package/dist/lib/hooks/use-svg-path.js.map +7 -0
- package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
- package/dist/lib/hooks/use-value-memo-slot.js +45 -0
- package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
- package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
- package/dist/lib/hooks/use-visibility-transition.js +195 -0
- package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
- package/dist/lib/html/html-service.d.ts +30 -0
- package/dist/lib/html/html-service.js +281 -0
- package/dist/lib/html/html-service.js.map +7 -0
- package/dist/lib/html/overlay-config.d.ts +3 -0
- package/dist/lib/html/overlay-config.js +37 -0
- package/dist/lib/html/overlay-config.js.map +7 -0
- package/dist/lib/html/portable-clips.d.ts +4 -0
- package/dist/lib/html/portable-clips.js +20 -0
- package/dist/lib/html/portable-clips.js.map +7 -0
- package/dist/lib/html/types.d.ts +110 -0
- package/dist/lib/layout/absolute.d.ts +57 -0
- package/dist/lib/layout/absolute.js +348 -0
- package/dist/lib/layout/absolute.js.map +7 -0
- package/dist/lib/layout/box.d.ts +19 -0
- package/dist/lib/layout/box.js +209 -0
- package/dist/lib/layout/box.js.map +7 -0
- package/dist/lib/layout/context.d.ts +13 -0
- package/dist/lib/layout/context.js +42 -0
- package/dist/lib/layout/context.js.map +7 -0
- package/dist/lib/layout/diagnostics.d.ts +15 -0
- package/dist/lib/layout/diagnostics.js +30 -0
- package/dist/lib/layout/diagnostics.js.map +7 -0
- package/dist/lib/layout/flex.d.ts +64 -0
- package/dist/lib/layout/flex.js +803 -0
- package/dist/lib/layout/flex.js.map +7 -0
- package/dist/lib/layout/flow.d.ts +53 -0
- package/dist/lib/layout/flow.js +400 -0
- package/dist/lib/layout/flow.js.map +7 -0
- package/dist/lib/layout/grid.d.ts +64 -0
- package/dist/lib/layout/grid.js +597 -0
- package/dist/lib/layout/grid.js.map +7 -0
- package/dist/lib/layout/measure.d.ts +19 -0
- package/dist/lib/layout/measure.js +144 -0
- package/dist/lib/layout/measure.js.map +7 -0
- package/dist/lib/layout/overlay.d.ts +42 -0
- package/dist/lib/layout/overlay.js +151 -0
- package/dist/lib/layout/overlay.js.map +7 -0
- package/dist/lib/layout/place-child.d.ts +12 -0
- package/dist/lib/layout/place-child.js +72 -0
- package/dist/lib/layout/place-child.js.map +7 -0
- package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
- package/dist/lib/layout/positioning-diagnostics.js +15 -0
- package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
- package/dist/lib/layout/types.d.ts +78 -0
- package/dist/lib/manipulation/controller-types.d.ts +299 -0
- package/dist/lib/manipulation/controller.d.ts +57 -0
- package/dist/lib/manipulation/controller.js +464 -0
- package/dist/lib/manipulation/controller.js.map +7 -0
- package/dist/lib/manipulation/coordinates.d.ts +9 -0
- package/dist/lib/manipulation/coordinates.js +55 -0
- package/dist/lib/manipulation/coordinates.js.map +7 -0
- package/dist/lib/manipulation/degrees.d.ts +10 -0
- package/dist/lib/manipulation/degrees.js +9 -0
- package/dist/lib/manipulation/degrees.js.map +7 -0
- package/dist/lib/manipulation/frame.d.ts +24 -0
- package/dist/lib/manipulation/frame.js +101 -0
- package/dist/lib/manipulation/frame.js.map +7 -0
- package/dist/lib/manipulation/geometry.d.ts +4 -0
- package/dist/lib/manipulation/geometry.js +26 -0
- package/dist/lib/manipulation/geometry.js.map +7 -0
- package/dist/lib/manipulation/handles.d.ts +298 -0
- package/dist/lib/manipulation/handles.js +598 -0
- package/dist/lib/manipulation/handles.js.map +7 -0
- package/dist/lib/manipulation/manipulable.d.ts +65 -0
- package/dist/lib/manipulation/manipulable.js +47 -0
- package/dist/lib/manipulation/manipulable.js.map +7 -0
- package/dist/lib/manipulation/ownership.d.ts +15 -0
- package/dist/lib/manipulation/ownership.js +80 -0
- package/dist/lib/manipulation/ownership.js.map +7 -0
- package/dist/lib/manipulation/snap.d.ts +6 -0
- package/dist/lib/manipulation/snap.js +40 -0
- package/dist/lib/manipulation/snap.js.map +7 -0
- package/dist/lib/manipulation/solve.d.ts +2 -0
- package/dist/lib/manipulation/solve.js +563 -0
- package/dist/lib/manipulation/solve.js.map +7 -0
- package/dist/lib/manipulation/types.d.ts +178 -0
- package/dist/lib/mount-pibbl.d.ts +25 -0
- package/dist/lib/mount-pibbl.js +278 -0
- package/dist/lib/mount-pibbl.js.map +7 -0
- package/dist/lib/optional-services.d.ts +8 -0
- package/dist/lib/optional-services.js +11 -0
- package/dist/lib/optional-services.js.map +7 -0
- package/dist/lib/pibbl.d.ts +17 -0
- package/dist/lib/pibbl.js +21 -0
- package/dist/lib/pibbl.js.map +7 -0
- package/dist/lib/primitive-presentation.d.ts +24 -0
- package/dist/lib/primitive-presentation.js +102 -0
- package/dist/lib/primitive-presentation.js.map +7 -0
- package/dist/lib/render-layer/controller.d.ts +67 -0
- package/dist/lib/render-layer/controller.js +603 -0
- package/dist/lib/render-layer/controller.js.map +7 -0
- package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
- package/dist/lib/render-layer/define-render-layer.js +90 -0
- package/dist/lib/render-layer/define-render-layer.js.map +7 -0
- package/dist/lib/render-layer/types.d.ts +315 -0
- package/dist/lib/render-target.d.ts +27 -0
- package/dist/lib/render-target.js +118 -0
- package/dist/lib/render-target.js.map +7 -0
- package/dist/lib/render-transaction.d.ts +10 -0
- package/dist/lib/render-transaction.js +46 -0
- package/dist/lib/render-transaction.js.map +7 -0
- package/dist/lib/render.d.ts +3 -0
- package/dist/lib/render.js +385 -0
- package/dist/lib/render.js.map +7 -0
- package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
- package/dist/lib/scheduler/realm-scheduler.js +964 -0
- package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
- package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
- package/dist/lib/scheduler/renderer-participant.js +216 -0
- package/dist/lib/scheduler/renderer-participant.js.map +7 -0
- package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
- package/dist/lib/scheduler/simulation-participant.js +229 -0
- package/dist/lib/scheduler/simulation-participant.js.map +7 -0
- package/dist/lib/scheduler/testing.d.ts +56 -0
- package/dist/lib/scheduler/testing.js +71 -0
- package/dist/lib/scheduler/testing.js.map +7 -0
- package/dist/lib/scheduler/types.d.ts +103 -0
- package/dist/lib/signals/edge.d.ts +44 -0
- package/dist/lib/signals/edge.js +245 -0
- package/dist/lib/signals/edge.js.map +7 -0
- package/dist/lib/signals/graph.d.ts +220 -0
- package/dist/lib/signals/graph.js +1035 -0
- package/dist/lib/signals/graph.js.map +7 -0
- package/dist/lib/signals/input-provision.d.ts +3 -0
- package/dist/lib/signals/input-provision.js +67 -0
- package/dist/lib/signals/input-provision.js.map +7 -0
- package/dist/lib/signals/render-consumer.d.ts +21 -0
- package/dist/lib/signals/render-consumer.js +218 -0
- package/dist/lib/signals/render-consumer.js.map +7 -0
- package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
- package/dist/lib/signals/resolve-signal-value.js +17 -0
- package/dist/lib/signals/resolve-signal-value.js.map +7 -0
- package/dist/lib/signals/types.d.ts +80 -0
- package/dist/lib/style/diagnostics.d.ts +83 -0
- package/dist/lib/style/diagnostics.js +63 -0
- package/dist/lib/style/diagnostics.js.map +7 -0
- package/dist/lib/style/empty-style.d.ts +3 -0
- package/dist/lib/style/empty-style.js +5 -0
- package/dist/lib/style/empty-style.js.map +7 -0
- package/dist/lib/style/filter-types.d.ts +243 -0
- package/dist/lib/style/filter-types.js +5 -0
- package/dist/lib/style/filter-types.js.map +7 -0
- package/dist/lib/style/filter.d.ts +7 -0
- package/dist/lib/style/filter.js +50 -0
- package/dist/lib/style/filter.js.map +7 -0
- package/dist/lib/style/normalize.d.ts +18 -0
- package/dist/lib/style/normalize.js +50 -0
- package/dist/lib/style/normalize.js.map +7 -0
- package/dist/lib/style/positioning.d.ts +32 -0
- package/dist/lib/style/positioning.js +81 -0
- package/dist/lib/style/positioning.js.map +7 -0
- package/dist/lib/style/resolve-built-in.d.ts +6 -0
- package/dist/lib/style/resolve-built-in.js +58 -0
- package/dist/lib/style/resolve-built-in.js.map +7 -0
- package/dist/lib/style/resolve-dispatch.d.ts +20 -0
- package/dist/lib/style/resolve-dispatch.js +167 -0
- package/dist/lib/style/resolve-dispatch.js.map +7 -0
- package/dist/lib/style/resolve-length.d.ts +16 -0
- package/dist/lib/style/resolve-length.js +54 -0
- package/dist/lib/style/resolve-length.js.map +7 -0
- package/dist/lib/style/responsive.d.ts +31 -0
- package/dist/lib/style/responsive.js +172 -0
- package/dist/lib/style/responsive.js.map +7 -0
- package/dist/lib/style/types.d.ts +338 -0
- package/dist/lib/surface/resolve-surface.d.ts +4 -0
- package/dist/lib/surface/resolve-surface.js +184 -0
- package/dist/lib/surface/resolve-surface.js.map +7 -0
- package/dist/lib/surface/root-surface.d.ts +7 -0
- package/dist/lib/surface/root-surface.js +171 -0
- package/dist/lib/surface/root-surface.js.map +7 -0
- package/dist/lib/surface/transform.d.ts +4 -0
- package/dist/lib/surface/transform.js +16 -0
- package/dist/lib/surface/transform.js.map +7 -0
- package/dist/lib/surface/types.d.ts +132 -0
- package/dist/lib/teardowns.d.ts +14 -0
- package/dist/lib/teardowns.js +50 -0
- package/dist/lib/teardowns.js.map +7 -0
- package/dist/lib/textures/texture-protocol.d.ts +124 -0
- package/dist/lib/textures/texture-protocol.js +40 -0
- package/dist/lib/textures/texture-protocol.js.map +7 -0
- package/dist/lib/textures/texture.d.ts +170 -0
- package/dist/lib/textures/texture.js +385 -0
- package/dist/lib/textures/texture.js.map +7 -0
- package/dist/lib/transitions/bifrost.d.ts +47 -0
- package/dist/lib/transitions/bifrost.js +91 -0
- package/dist/lib/transitions/bifrost.js.map +7 -0
- package/dist/lib/transitions/binding.d.ts +14 -0
- package/dist/lib/transitions/binding.js +35 -0
- package/dist/lib/transitions/binding.js.map +7 -0
- package/dist/lib/transitions/capture.d.ts +21 -0
- package/dist/lib/transitions/capture.js +91 -0
- package/dist/lib/transitions/capture.js.map +7 -0
- package/dist/lib/transitions/common.d.ts +130 -0
- package/dist/lib/transitions/common.js +57 -0
- package/dist/lib/transitions/common.js.map +7 -0
- package/dist/lib/transitions/define-transition.d.ts +64 -0
- package/dist/lib/transitions/define-transition.js +31 -0
- package/dist/lib/transitions/define-transition.js.map +7 -0
- package/dist/lib/transitions/embers-physics.d.ts +114 -0
- package/dist/lib/transitions/embers-physics.js +161 -0
- package/dist/lib/transitions/embers-physics.js.map +7 -0
- package/dist/lib/transitions/embers.d.ts +67 -0
- package/dist/lib/transitions/embers.js +196 -0
- package/dist/lib/transitions/embers.js.map +7 -0
- package/dist/lib/transitions/fade.d.ts +41 -0
- package/dist/lib/transitions/fade.js +31 -0
- package/dist/lib/transitions/fade.js.map +7 -0
- package/dist/lib/transitions/hologram.d.ts +47 -0
- package/dist/lib/transitions/hologram.js +94 -0
- package/dist/lib/transitions/hologram.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
- package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
- package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
- package/dist/lib/transitions/wasm/kernel.js +26 -0
- package/dist/lib/transitions/wasm/kernel.js.map +7 -0
- package/dist/lib/types.d.ts +570 -0
- package/dist/lib/update.d.ts +8 -0
- package/dist/lib/update.js +20 -0
- package/dist/lib/update.js.map +7 -0
- package/dist/lib/util/get-2d-context.d.ts +2 -0
- package/dist/lib/util/get-2d-context.js +11 -0
- package/dist/lib/util/get-2d-context.js.map +7 -0
- package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
- package/dist/lib/util/get-mouse-coordinates.js +32 -0
- package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
- package/dist/lib/util/is-hit.d.ts +11 -0
- package/dist/lib/util/is-hit.js +52 -0
- package/dist/lib/util/is-hit.js.map +7 -0
- package/dist/lib/util/is-transparent.d.ts +1 -0
- package/dist/lib/util/is-transparent.js +8 -0
- package/dist/lib/util/is-transparent.js.map +7 -0
- package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
- package/dist/lib/util/pixel-grid-adjustments.js +28 -0
- package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
- package/dist/lib/util/push-clipping-path.d.ts +6 -0
- package/dist/lib/util/push-clipping-path.js +28 -0
- package/dist/lib/util/push-clipping-path.js.map +7 -0
- package/dist/lib/util/wire-common-events.d.ts +2 -0
- package/dist/lib/util/wire-common-events.js +15 -0
- package/dist/lib/util/wire-common-events.js.map +7 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +7 -0
- package/dist/types.mjs +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/scheduler/renderer-participant.ts"],
|
|
4
|
+
"sourcesContent": ["import type { pibblInternalQueueSimulationBegin } from './simulation-participant.js';\nimport {\n GLOBAL_STATE,\n} from '../global-state.js';\nimport {\n collectSignalReads,\n createSignalRenderConsumer,\n disposeSignalRenderConsumer,\n} from '../signals/render-consumer.js';\nimport {\n assertSignalCommandAllowed,\n} from '../signals/graph.js';\nimport type { WritableSignal } from '../signals/types.js';\nimport { usePaintTarget } from '../hooks/use-paint-target.js';\nimport type {\n PibblEventHandlers,\n PibblEventTargetOptions,\n PibblEventTargetSnapshot,\n PibblPointerEvents,\n} from '../events/types.js';\nimport type { PibblComponentRefs, PibblInstance } from '../types.js';\nimport {\n getCurrentFrameSnapshot,\n queueBeginCommand,\n queueCurrentFrameCommitAcknowledgement,\n queueCurrentFrameCompletion,\n queueRendererParticipantComplete,\n registerAdvanceParticipant,\n removeRendererParticipantOwner,\n requestInstanceRender,\n requestRendererParticipantWork,\n type RendererParticipantOwner,\n} from './realm-scheduler.js';\n\ndeclare const internalRenderOwnerBrand: unique symbol;\n\n/**\n * Opaque ownership identity for renderer scheduling and cleanup.\n *\n * @see {@link pibblInternalCreateSignalConsumer}\n * @see {@link pibblInternalCurrentRenderOwner}\n * @see {@link pibblInternalOnRenderFinish}\n */\nexport interface PibblInternalRenderOwner {\n readonly [internalRenderOwnerBrand]: true;\n}\n\n/**\n * Shared scheduler frame identity, logical timing, and admission context.\n *\n * @see {@link pibblInternalCurrentFrame}\n * @see {@link pibblInternalQueueBegin}\n * @see {@link pibblInternalQueueComplete}\n */\nexport interface PibblInternalFrame {\n /** Identifier of the shared scheduler frame. See {@link PibblInternalFrame}. */\n readonly frameId: number;\n /** Logical scheduler time in milliseconds. See {@link PibblInternalFrame}. */\n readonly logicalTime: number;\n}\n\n/**\n * Staged signal writes published together during scheduler Commit.\n *\n * @see {@link WritableSignal}\n * @see {@link pibblInternalQueueBegin}\n * @see {@link pibblInternalRegisterAdvance}\n * @see {@link pibblInternalQueueSimulationBegin}\n */\nexport interface PibblInternalSignalBatch {\n /**\n * Reads the current committed values required by this integration. See\n * {@link PibblInternalSignalBatch}.\n * @param signal - Signal whose staged or committed value should be read. See\n * {@link WritableSignal} .\n * @returns The current batch value, falling back to the committed signal value.\n */\n read<T>(signal: WritableSignal<T>): T;\n /**\n * Stages a signal write for publication during Commit. See {@link PibblInternalSignalBatch}.\n * @param signal - Signal that will receive the value during Commit. See {@link WritableSignal}.\n * @param value - Value to stage.\n * @param writer - Identity used to attribute and discard staged writes.\n */\n stage<T>(signal: WritableSignal<T>, value: T, writer: object): void;\n /**\n * Discards writes belonging to the specified writer. See {@link PibblInternalSignalBatch}.\n * @param writer - Writer identity whose pending writes should be discarded.\n */\n discardWriter(writer: object): void;\n}\n\n/**\n * Sequence identity and cancellation capability for a queued scheduler command.\n *\n * @see {@link pibblInternalQueueBegin}\n */\nexport interface PibblInternalCommandHandle {\n /**\n * Sequence number assigned when the scheduler command is queued. See\n * {@link PibblInternalCommandHandle}.\n */\n readonly sequence: number;\n /**\n * Cancels this queued command before it is admitted by the scheduler. See\n * {@link PibblInternalCommandHandle}.\n */\n cancel(): void;\n}\n\n/**\n * Ordered renderer stages around one owning Canvas instance traversal.\n * Every active callback in a stage runs in registration order. If one or more\n * callbacks fail, their errors are reported in that order, later dependent\n * stages are skipped, the root transaction fails, the instance revision stays\n * incomplete, and the failed batch plus unexecuted batches later in the same\n * root are retried on the next realm frame. Complete callbacks for those\n * retried owners are deferred until a successful frame. Other owners and roots\n * still complete normally.\n *\n * @see {@link pibblInternalRequestRendererWork}\n */\nexport type PibblInternalRendererWorkKind = 'resource' | 'draw' | 'compose';\n\n/**\n * Dependency tracking and disposal operations for an integration-owned signal consumer.\n *\n * @see {@link pibblInternalCreateSignalConsumer}\n */\nexport interface PibblInternalSignalConsumer {\n /**\n * Evaluates a callback while collecting signal dependencies for this consumer. See\n * {@link PibblInternalSignalConsumer}.\n * @param read - Synchronous computation whose signal dependencies are collected.\n * @returns The computation's return value.\n */\n collect<T>(read: () => T): T;\n /**\n * Acknowledges the consumer's current invalidation as processed. See\n * {@link PibblInternalSignalConsumer}.\n */\n markClean(): void;\n /** Releases resources owned by this mounted object. See {@link PibblInternalSignalConsumer}. */\n dispose(): void;\n}\n\ninterface RenderOwnerState {\n readonly component: PibblComponentRefs<any>;\n readonly instance: PibblInstance;\n readonly schedulerOwner: RendererParticipantOwner;\n readonly consumers: Set<PibblInternalSignalConsumer>;\n readonly beginCommands: Set<PibblInternalCommandHandle>;\n readonly advanceRegistrations: Set<() => void>;\n active: boolean;\n}\n\nconst ownersByComponent = new WeakMap<\n PibblComponentRefs<any>,\n PibblInternalRenderOwner\n>();\nconst ownerStates = new WeakMap<PibblInternalRenderOwner, RenderOwnerState>();\n\n/**\n * Returns the active render owner required by official integration scheduling operations.\n *\n * @returns The render owner for the current runtime context. See {@link PibblInternalRenderOwner}.\n *\n * @see {@link PibblInternalRenderOwner}\n */\nexport function pibblInternalCurrentRenderOwner(): PibblInternalRenderOwner {\n const component = GLOBAL_STATE.componentRefs;\n const instance = GLOBAL_STATE.currentPibblInstance;\n if (!component || !instance) {\n throw new Error(\n 'pibblInternalCurrentRenderOwner() is only available during Pibbl component evaluation.',\n );\n }\n\n const existing = ownersByComponent.get(component);\n if (existing) return existing;\n\n const owner = {} as PibblInternalRenderOwner;\n const state = {} as RenderOwnerState;\n const schedulerOwner: RendererParticipantOwner = {\n instance,\n isActive: () => state.active && isCurrentOwner(state),\n };\n Object.assign(state, {\n component,\n instance,\n schedulerOwner,\n consumers: new Set<PibblInternalSignalConsumer>(),\n beginCommands: new Set<PibblInternalCommandHandle>(),\n advanceRegistrations: new Set<() => void>(),\n active: true,\n });\n ownersByComponent.set(component, owner);\n ownerStates.set(owner, state);\n component.teardowns.add(() => disposeRenderOwner(owner));\n return owner;\n}\n\n/**\n * Creates an owner-scoped dependency consumer for an official renderer integration.\n *\n * @param options - Render owner, optional diagnostic name, and invalidation callback. See\n * {@link PibblInternalRenderOwner} .\n * @returns A consumer that tracks signal dependencies and owns their cleanup. See\n * {@link PibblInternalSignalConsumer} .\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalSignalConsumer}\n */\nexport function pibblInternalCreateSignalConsumer(options: {\n owner: PibblInternalRenderOwner;\n debugName?: string;\n invalidate(): void;\n}): PibblInternalSignalConsumer {\n const ownerState = requireActiveOwner(options.owner);\n let disposed = false;\n const signalConsumer = createSignalRenderConsumer({\n debugName: options.debugName ??\n `official renderer (${ownerState.component.id})`,\n invalidate: () => {\n if (!disposed && ownerState.schedulerOwner.isActive()) {\n options.invalidate();\n }\n },\n });\n const consumer: PibblInternalSignalConsumer = {\n collect<T>(read: () => T): T {\n if (disposed) {\n throw new Error('Cannot collect signal reads with a disposed Pibbl renderer consumer.');\n }\n requireActiveOwner(options.owner);\n return collectSignalReads(signalConsumer, () => read());\n },\n markClean(): void {\n if (!disposed) signalConsumer.markClean();\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n ownerState.consumers.delete(consumer);\n disposeSignalRenderConsumer(signalConsumer);\n },\n };\n ownerState.consumers.add(consumer);\n return consumer;\n}\n\n/**\n * Requests keyed renderer work in the shared scheduler without creating a second frame loop.\n *\n * @param owner - Owner whose renderer work is being requested. See {@link PibblInternalRenderOwner}.\n * @param request - Work identity, renderer category, and frame callback. See\n * {@link PibblInternalRendererWorkKind} , {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalRendererWorkKind}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalRequestRendererWork(\n owner: PibblInternalRenderOwner,\n request: {\n key: object;\n kind: PibblInternalRendererWorkKind;\n run(frame: PibblInternalFrame): void;\n },\n): void {\n const state = requireActiveOwner(owner);\n requestRendererParticipantWork(state.schedulerOwner, request);\n}\n\n/**\n * Rejects commands issued from runtime evaluation contexts that forbid mutation.\n *\n * @see {@link pibblInternalQueueBegin}\n */\nexport function pibblInternalAssertCommandAllowed(): void {\n assertSignalCommandAllowed();\n}\n\n/**\n * Queues an owner-scoped Begin command and returns a cancellation handle.\n *\n * @param owner - Owner admitting the command. See {@link PibblInternalRenderOwner}.\n * @param callback - Begin-phase callback receiving frame, staged writes, and command sequence. See\n * {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .\n * @returns A handle that can cancel the queued command. See {@link PibblInternalCommandHandle}.\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalFrame}\n * @see {@link PibblInternalSignalBatch}\n * @see {@link PibblInternalCommandHandle}\n */\nexport function pibblInternalQueueBegin(\n owner: PibblInternalRenderOwner,\n callback: (\n frame: PibblInternalFrame,\n batch: PibblInternalSignalBatch,\n sequence: number,\n ) => void,\n): PibblInternalCommandHandle {\n const state = requireActiveOwner(owner);\n let handle: PibblInternalCommandHandle;\n const schedulerHandle = queueBeginCommand((frame, batch, sequence) => {\n state.beginCommands.delete(handle);\n if (!state.schedulerOwner.isActive()) return;\n callback(frame, batch, sequence);\n });\n handle = Object.freeze({\n sequence: schedulerHandle.sequence,\n cancel(): void {\n state.beginCommands.delete(handle);\n schedulerHandle.cancel();\n },\n });\n state.beginCommands.add(handle);\n return handle;\n}\n\n/**\n * Registers renderer work for shared-frame Advance and returns its unregister callback.\n *\n * @param owner - Owner of the advancing work. See {@link PibblInternalRenderOwner}.\n * @param callback - Advance callback receiving the frame and staged signal writes. See\n * {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .\n * @returns A function unregistering the Advance callback.\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalFrame}\n * @see {@link PibblInternalSignalBatch}\n */\nexport function pibblInternalRegisterAdvance(\n owner: PibblInternalRenderOwner,\n callback: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch) => void,\n): () => void {\n const state = requireActiveOwner(owner);\n let released = false;\n const unregister = registerAdvanceParticipant((frame, batch) => {\n if (!state.schedulerOwner.isActive()) return;\n callback(frame, batch);\n });\n const release = (): void => {\n if (released) return;\n released = true;\n state.advanceRegistrations.delete(release);\n unregister();\n };\n state.advanceRegistrations.add(release);\n return release;\n}\n\n/**\n * Registers acknowledgement of the current frame's committed staged writes.\n *\n * @param owner - Owner of the pending commit. See {@link PibblInternalRenderOwner}.\n * @param callback - Callback receiving the frame and whether the commit was applied. See\n * {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalQueueCurrentCommit(\n owner: PibblInternalRenderOwner,\n callback: (\n frame: PibblInternalFrame,\n outcome: Readonly<{ applied: boolean }>,\n ) => void,\n): void {\n const state = requireActiveOwner(owner);\n queueCurrentFrameCommitAcknowledgement((frame, outcome) => {\n if (!state.schedulerOwner.isActive()) return;\n callback(frame, outcome);\n });\n}\n\n/**\n * Queues an owner-scoped completion callback in the current scheduler transaction.\n *\n * @param owner - Owner of the completion work. See {@link PibblInternalRenderOwner}.\n * @param callback - Callback invoked during Complete with the shared frame. See\n * {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalQueueCurrentComplete(\n owner: PibblInternalRenderOwner,\n callback: (frame: PibblInternalFrame) => void,\n): void {\n const state = requireActiveOwner(owner);\n queueCurrentFrameCompletion(frame => {\n if (!state.schedulerOwner.isActive()) return;\n callback(frame);\n });\n}\n\n/**\n * Marks the owning renderer dirty and requests shared scheduler work.\n *\n * @param owner - Owner whose renderer should become dirty. See {@link PibblInternalRenderOwner}.\n *\n * @see {@link PibblInternalRenderOwner}\n */\nexport function pibblInternalRequestRender(owner: PibblInternalRenderOwner): void {\n const state = requireActiveOwner(owner);\n requestInstanceRender(state.instance);\n}\n\n/**\n * Registers a callback reporting the outcome of the owner's render transaction.\n *\n * @param owner - Owner of the rendering transaction. See {@link PibblInternalRenderOwner}.\n * @param callback - Callback receiving whether the transaction succeeded.\n *\n * @see {@link PibblInternalRenderOwner}\n */\nexport function pibblInternalOnRenderFinish(\n owner: PibblInternalRenderOwner,\n callback: (success: boolean) => void,\n): void {\n const state = requireActiveOwner(owner);\n if (\n GLOBAL_STATE.componentRefs !== state.component ||\n GLOBAL_STATE.currentPibblInstance !== state.instance ||\n !GLOBAL_STATE.renderTransaction\n ) {\n throw new Error(\n 'pibblInternalOnRenderFinish() requires its owner to be the currently evaluating Pibbl component.',\n );\n }\n GLOBAL_STATE.renderTransaction.onFinish(success => {\n if (success && !state.schedulerOwner.isActive()) return;\n callback(success);\n });\n}\n\n/**\n * Registers one painted logical target with its handlers, geometry, and participation policy.\n *\n * @param handlers - Handlers for the painted target. See {@link PibblEventHandlers}.\n * @param options - Hit geometry and focus metadata. See {@link PibblEventTargetOptions}.\n * @param pointerEvents - Pointer participation policy; defaults to auto. See\n * {@link PibblPointerEvents} .\n * @returns The painted event target snapshot. See {@link PibblEventTargetSnapshot}.\n *\n * @see {@link PibblEventHandlers}\n * @see {@link PibblEventTargetOptions}\n * @see {@link PibblPointerEvents}\n * @see {@link PibblEventTargetSnapshot}\n */\nexport function pibblInternalPaintTarget(\n handlers: PibblEventHandlers,\n options: PibblEventTargetOptions,\n pointerEvents: PibblPointerEvents = 'auto',\n): PibblEventTargetSnapshot {\n return usePaintTarget(handlers, options, pointerEvents);\n}\n\n/**\n * Returns timing and phase information for the current shared scheduler frame.\n *\n * @returns The shared scheduler frame for the active phase. See {@link PibblInternalFrame}.\n *\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalCurrentFrame(): PibblInternalFrame {\n const frame = getCurrentFrameSnapshot();\n if (!frame) {\n throw new Error('pibblInternalCurrentFrame() requires a current Pibbl frame.');\n }\n return frame;\n}\n\n/**\n * Queues an owner-scoped callback for a scheduler Complete phase.\n *\n * @param owner - Owner of the completion work. See {@link PibblInternalRenderOwner}.\n * @param callback - Callback invoked during Complete with the shared frame. See\n * {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalRenderOwner}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalQueueComplete(\n owner: PibblInternalRenderOwner,\n callback: (frame: PibblInternalFrame) => void,\n): void {\n const state = requireActiveOwner(owner);\n queueRendererParticipantComplete(state.schedulerOwner, callback);\n}\n\nfunction requireActiveOwner(owner: PibblInternalRenderOwner): RenderOwnerState {\n const state = ownerStates.get(owner);\n if (!state || !state.active || !isCurrentOwner(state)) {\n throw new TypeError('Expected an active Pibbl internal render owner.');\n }\n return state;\n}\n\nfunction isCurrentOwner(state: RenderOwnerState): boolean {\n return !state.component.teardowns.closed &&\n !state.instance.mainTeardowns.closed &&\n GLOBAL_STATE.pibblInstances.get(state.instance.canvas) === state.instance &&\n state.instance.refs.get(state.component.id) === state.component;\n}\n\nfunction disposeRenderOwner(owner: PibblInternalRenderOwner): void {\n const state = ownerStates.get(owner);\n if (!state || !state.active) return;\n state.active = false;\n for (const command of Array.from(state.beginCommands)) {\n command.cancel();\n }\n state.beginCommands.clear();\n for (const release of Array.from(state.advanceRegistrations)) {\n release();\n }\n state.advanceRegistrations.clear();\n removeRendererParticipantOwner(state.schedulerOwner);\n for (const consumer of Array.from(state.consumers)) {\n consumer.dispose();\n }\n state.consumers.clear();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { PibblAdvanceLane } from "./types.js";
|
|
2
|
+
import type { PibblInternalFrame, PibblInternalSignalBatch } from "./renderer-participant.js";
|
|
3
|
+
/**
|
|
4
|
+
* The scheduler lane in which an official simulation integration advances.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link pibblInternalRegisterSimulationAdvance}
|
|
7
|
+
*/
|
|
8
|
+
export type PibblInternalAdvanceLane = PibblAdvanceLane;
|
|
9
|
+
declare const internalSimulationOwnerBrand: unique symbol;
|
|
10
|
+
/**
|
|
11
|
+
* Opaque ownership identity tying simulation work to a mounted runtime resource.
|
|
12
|
+
*
|
|
13
|
+
* @see {@link pibblInternalCurrentSimulationOwner}
|
|
14
|
+
* @see {@link pibblInternalOnSimulationRenderTransactionFinish}
|
|
15
|
+
* @see {@link pibblInternalQueueSimulationBegin}
|
|
16
|
+
*/
|
|
17
|
+
export interface PibblInternalSimulationOwner {
|
|
18
|
+
readonly [internalSimulationOwnerBrand]: true;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns the active mount's simulation owner for a matching official integration.
|
|
22
|
+
*
|
|
23
|
+
* @returns The simulation owner for the active runtime context. See
|
|
24
|
+
* {@link PibblInternalSimulationOwner} .
|
|
25
|
+
*
|
|
26
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
27
|
+
*/
|
|
28
|
+
export declare function pibblInternalCurrentSimulationOwner(): PibblInternalSimulationOwner;
|
|
29
|
+
/**
|
|
30
|
+
* Queues a cancellable simulation command for the shared scheduler's Begin phase.
|
|
31
|
+
*
|
|
32
|
+
* @param owner - Simulation owner admitting this command. See {@link PibblInternalSimulationOwner}.
|
|
33
|
+
* @param command - Begin-phase work receiving frame, staged signal writes, and command sequence.
|
|
34
|
+
* See {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .
|
|
35
|
+
* @returns A command sequence and cancellation handle.
|
|
36
|
+
*
|
|
37
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
38
|
+
* @see {@link PibblInternalFrame}
|
|
39
|
+
* @see {@link PibblInternalSignalBatch}
|
|
40
|
+
*/
|
|
41
|
+
export declare function pibblInternalQueueSimulationBegin(owner: PibblInternalSimulationOwner, command: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch, sequence: number) => void): Readonly<{
|
|
42
|
+
readonly sequence: number;
|
|
43
|
+
cancel(): void;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Registers work in a simulation Advance lane and returns its unregister callback.
|
|
47
|
+
*
|
|
48
|
+
* @param owner - Simulation owner registering the work. See {@link PibblInternalSimulationOwner}.
|
|
49
|
+
* @param lane - Advance lane controlling execution order. See {@link PibblInternalAdvanceLane}.
|
|
50
|
+
* @param advance - Advance callback receiving frame timing and staged signal writes. See
|
|
51
|
+
* {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .
|
|
52
|
+
* @param requestsFrames - Whether this participant requests subsequent host frames; defaults to
|
|
53
|
+
* true.
|
|
54
|
+
* @returns A function that unregisters the participant.
|
|
55
|
+
*
|
|
56
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
57
|
+
* @see {@link PibblInternalAdvanceLane}
|
|
58
|
+
* @see {@link PibblInternalFrame}
|
|
59
|
+
* @see {@link PibblInternalSignalBatch}
|
|
60
|
+
*/
|
|
61
|
+
export declare function pibblInternalRegisterSimulationAdvance(owner: PibblInternalSimulationOwner, lane: PibblInternalAdvanceLane, advance: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch) => void, requestsFrames?: boolean): () => void;
|
|
62
|
+
/**
|
|
63
|
+
* Reports whether the current simulation frame's staged writes were committed.
|
|
64
|
+
*
|
|
65
|
+
* @param owner - Owner of the pending commit. See {@link PibblInternalSimulationOwner}.
|
|
66
|
+
* @param callback - Callback receiving the frame and whether the commit was applied. See
|
|
67
|
+
* {@link PibblInternalFrame} .
|
|
68
|
+
*
|
|
69
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
70
|
+
* @see {@link PibblInternalFrame}
|
|
71
|
+
*/
|
|
72
|
+
export declare function pibblInternalQueueSimulationCommitAcknowledgement(owner: PibblInternalSimulationOwner, callback: (frame: PibblInternalFrame, outcome: Readonly<{
|
|
73
|
+
readonly applied: boolean;
|
|
74
|
+
}>) => void): void;
|
|
75
|
+
/**
|
|
76
|
+
* Queues an owner-scoped callback for the scheduler's Complete phase.
|
|
77
|
+
*
|
|
78
|
+
* @param owner - Owner of the completion work. See {@link PibblInternalSimulationOwner}.
|
|
79
|
+
* @param callback - Callback invoked during Complete with the shared frame. See
|
|
80
|
+
* {@link PibblInternalFrame} .
|
|
81
|
+
*
|
|
82
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
83
|
+
* @see {@link PibblInternalFrame}
|
|
84
|
+
*/
|
|
85
|
+
export declare function pibblInternalQueueSimulationComplete(owner: PibblInternalSimulationOwner, callback: (frame: PibblInternalFrame) => void): void;
|
|
86
|
+
/**
|
|
87
|
+
* Invalidates the renderer associated with a simulation owner.
|
|
88
|
+
*
|
|
89
|
+
* @param owner - Owner whose renderer should become dirty. See {@link PibblInternalSimulationOwner}.
|
|
90
|
+
*
|
|
91
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
92
|
+
*/
|
|
93
|
+
export declare function pibblInternalRequestSimulationRender(owner: PibblInternalSimulationOwner): void;
|
|
94
|
+
/**
|
|
95
|
+
* Registers a callback reporting whether the owner's current render transaction succeeded.
|
|
96
|
+
*
|
|
97
|
+
* @param owner - Owner of the rendering transaction. See {@link PibblInternalSimulationOwner}.
|
|
98
|
+
* @param callback - Callback receiving whether the transaction succeeded.
|
|
99
|
+
*
|
|
100
|
+
* @see {@link PibblInternalSimulationOwner}
|
|
101
|
+
*/
|
|
102
|
+
export declare function pibblInternalOnSimulationRenderTransactionFinish(owner: PibblInternalSimulationOwner, callback: (success: boolean) => void): void;
|
|
103
|
+
export {};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { GLOBAL_STATE } from "../global-state.js";
|
|
2
|
+
import { requireHookContext, useInternalHookSlot } from "../hooks/hook-slot.js";
|
|
3
|
+
import {
|
|
4
|
+
discardSignalCommitBatchProvenance,
|
|
5
|
+
discardSignalCommitBatchWriterForProvenance,
|
|
6
|
+
stageSignalCommitBatchWithProvenance
|
|
7
|
+
} from "../signals/graph.js";
|
|
8
|
+
import {
|
|
9
|
+
queueBeginCommand,
|
|
10
|
+
queueCurrentFrameCommitAcknowledgement,
|
|
11
|
+
queueCurrentFrameCompletion,
|
|
12
|
+
registerAdvanceParticipant,
|
|
13
|
+
requestInstanceRender
|
|
14
|
+
} from "./realm-scheduler.js";
|
|
15
|
+
const ownerStates = /* @__PURE__ */ new WeakMap();
|
|
16
|
+
const batchViews = /* @__PURE__ */ new WeakMap();
|
|
17
|
+
let currentSimulationOwner;
|
|
18
|
+
function pibblInternalCurrentSimulationOwner() {
|
|
19
|
+
const { componentRefs, pibblInstance } = requireHookContext();
|
|
20
|
+
const slot = useInternalHookSlot(
|
|
21
|
+
"internalSimulationOwner",
|
|
22
|
+
(teardowns) => {
|
|
23
|
+
const owner = {};
|
|
24
|
+
ownerStates.set(owner, {
|
|
25
|
+
component: componentRefs,
|
|
26
|
+
instance: pibblInstance,
|
|
27
|
+
cancellations: /* @__PURE__ */ new Set(),
|
|
28
|
+
active: true
|
|
29
|
+
});
|
|
30
|
+
teardowns.add(() => disposeSimulationOwner(owner));
|
|
31
|
+
return owner;
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
requireActiveOwner(slot.value);
|
|
35
|
+
return slot.value;
|
|
36
|
+
}
|
|
37
|
+
function pibblInternalQueueSimulationBegin(owner, command) {
|
|
38
|
+
const state = requireActiveOwner(owner);
|
|
39
|
+
let active = true;
|
|
40
|
+
let handle;
|
|
41
|
+
const cancel = () => {
|
|
42
|
+
if (!active) return;
|
|
43
|
+
active = false;
|
|
44
|
+
state.cancellations.delete(cancel);
|
|
45
|
+
handle.cancel();
|
|
46
|
+
};
|
|
47
|
+
handle = queueBeginCommand((frame, batch, sequence) => {
|
|
48
|
+
if (!active) return;
|
|
49
|
+
active = false;
|
|
50
|
+
state.cancellations.delete(cancel);
|
|
51
|
+
if (!isCurrentOwner(state)) return;
|
|
52
|
+
try {
|
|
53
|
+
withCurrentSimulationOwner(owner, () => {
|
|
54
|
+
command(frame, simulationBatchView(batch), sequence);
|
|
55
|
+
});
|
|
56
|
+
if (!isCurrentOwner(state)) {
|
|
57
|
+
discardSimulationOwnerWriters(batch, owner);
|
|
58
|
+
}
|
|
59
|
+
} catch (error) {
|
|
60
|
+
discardSimulationOwnerWriters(batch, owner);
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
state.cancellations.add(cancel);
|
|
65
|
+
return Object.freeze({ sequence: handle.sequence, cancel });
|
|
66
|
+
}
|
|
67
|
+
function pibblInternalRegisterSimulationAdvance(owner, lane, advance, requestsFrames = true) {
|
|
68
|
+
const state = requireActiveOwner(owner);
|
|
69
|
+
let active = true;
|
|
70
|
+
let unregister;
|
|
71
|
+
const release = () => {
|
|
72
|
+
if (!active) return;
|
|
73
|
+
active = false;
|
|
74
|
+
state.cancellations.delete(release);
|
|
75
|
+
unregister();
|
|
76
|
+
};
|
|
77
|
+
unregister = registerAdvanceParticipant(
|
|
78
|
+
(frame, batch) => {
|
|
79
|
+
if (!active || !isCurrentOwner(state)) return;
|
|
80
|
+
try {
|
|
81
|
+
withCurrentSimulationOwner(owner, () => {
|
|
82
|
+
advance(frame, simulationBatchView(batch));
|
|
83
|
+
});
|
|
84
|
+
if (!isCurrentOwner(state)) {
|
|
85
|
+
discardSimulationOwnerWriters(batch, owner);
|
|
86
|
+
}
|
|
87
|
+
} catch (error) {
|
|
88
|
+
discardSimulationOwnerWriters(batch, owner);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
lane,
|
|
93
|
+
requestsFrames
|
|
94
|
+
);
|
|
95
|
+
state.cancellations.add(release);
|
|
96
|
+
return release;
|
|
97
|
+
}
|
|
98
|
+
function pibblInternalQueueSimulationCommitAcknowledgement(owner, callback) {
|
|
99
|
+
const state = requireActiveOwner(owner);
|
|
100
|
+
let active = true;
|
|
101
|
+
let cancelQueued = () => {
|
|
102
|
+
};
|
|
103
|
+
const cancel = () => {
|
|
104
|
+
if (!active) return;
|
|
105
|
+
active = false;
|
|
106
|
+
state.cancellations.delete(cancel);
|
|
107
|
+
cancelQueued();
|
|
108
|
+
};
|
|
109
|
+
cancelQueued = queueCurrentFrameCommitAcknowledgement((frame, outcome) => {
|
|
110
|
+
if (!active) return;
|
|
111
|
+
active = false;
|
|
112
|
+
state.cancellations.delete(cancel);
|
|
113
|
+
if (isCurrentOwner(state)) callback(frame, outcome);
|
|
114
|
+
});
|
|
115
|
+
state.cancellations.add(cancel);
|
|
116
|
+
}
|
|
117
|
+
function pibblInternalQueueSimulationComplete(owner, callback) {
|
|
118
|
+
const state = requireActiveOwner(owner);
|
|
119
|
+
let active = true;
|
|
120
|
+
let cancelQueued = () => {
|
|
121
|
+
};
|
|
122
|
+
const cancel = () => {
|
|
123
|
+
if (!active) return;
|
|
124
|
+
active = false;
|
|
125
|
+
state.cancellations.delete(cancel);
|
|
126
|
+
cancelQueued();
|
|
127
|
+
};
|
|
128
|
+
cancelQueued = queueCurrentFrameCompletion((frame) => {
|
|
129
|
+
if (!active) return;
|
|
130
|
+
active = false;
|
|
131
|
+
state.cancellations.delete(cancel);
|
|
132
|
+
if (isCurrentOwner(state)) callback(frame);
|
|
133
|
+
});
|
|
134
|
+
state.cancellations.add(cancel);
|
|
135
|
+
}
|
|
136
|
+
function pibblInternalRequestSimulationRender(owner) {
|
|
137
|
+
const state = requireActiveOwner(owner);
|
|
138
|
+
requestInstanceRender(state.instance);
|
|
139
|
+
}
|
|
140
|
+
function pibblInternalOnSimulationRenderTransactionFinish(owner, callback) {
|
|
141
|
+
const state = requireActiveOwner(owner);
|
|
142
|
+
const transaction = state.instance.eventRoot.renderTransaction;
|
|
143
|
+
if (!transaction) {
|
|
144
|
+
throw new Error(
|
|
145
|
+
"pibblInternalOnSimulationRenderTransactionFinish() requires an active Pibbl render transaction."
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
let active = true;
|
|
149
|
+
const cancel = () => {
|
|
150
|
+
if (!active) return;
|
|
151
|
+
active = false;
|
|
152
|
+
state.cancellations.delete(cancel);
|
|
153
|
+
};
|
|
154
|
+
state.cancellations.add(cancel);
|
|
155
|
+
transaction.onFinish((success) => {
|
|
156
|
+
if (!active) return;
|
|
157
|
+
active = false;
|
|
158
|
+
state.cancellations.delete(cancel);
|
|
159
|
+
if (isCurrentOwner(state)) callback(success);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function simulationBatchView(batch) {
|
|
163
|
+
const existing = batchViews.get(batch);
|
|
164
|
+
if (existing) return existing;
|
|
165
|
+
const view = Object.freeze({
|
|
166
|
+
read(signal) {
|
|
167
|
+
return batch.read(signal);
|
|
168
|
+
},
|
|
169
|
+
stage(signal, value, writer) {
|
|
170
|
+
const owner = currentSimulationOwner;
|
|
171
|
+
if (owner === void 0) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
"Pibbl internal simulation batches may only stage during their owning callback."
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
stageSignalCommitBatchWithProvenance(batch, owner, signal, value, writer);
|
|
177
|
+
},
|
|
178
|
+
discardWriter(writer) {
|
|
179
|
+
const owner = currentSimulationOwner;
|
|
180
|
+
if (owner === void 0) {
|
|
181
|
+
throw new Error(
|
|
182
|
+
"Pibbl internal simulation batches may only discard during their owning callback."
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
discardSignalCommitBatchWriterForProvenance(batch, owner, writer);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
batchViews.set(batch, view);
|
|
189
|
+
return view;
|
|
190
|
+
}
|
|
191
|
+
function withCurrentSimulationOwner(owner, callback) {
|
|
192
|
+
const previous = currentSimulationOwner;
|
|
193
|
+
currentSimulationOwner = owner;
|
|
194
|
+
try {
|
|
195
|
+
return callback();
|
|
196
|
+
} finally {
|
|
197
|
+
currentSimulationOwner = previous;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function discardSimulationOwnerWriters(batch, owner) {
|
|
201
|
+
discardSignalCommitBatchProvenance(batch, owner);
|
|
202
|
+
}
|
|
203
|
+
function requireActiveOwner(owner) {
|
|
204
|
+
const state = ownerStates.get(owner);
|
|
205
|
+
if (!state || !state.active || !isCurrentOwner(state)) {
|
|
206
|
+
throw new TypeError("Expected an active Pibbl internal simulation owner.");
|
|
207
|
+
}
|
|
208
|
+
return state;
|
|
209
|
+
}
|
|
210
|
+
function isCurrentOwner(state) {
|
|
211
|
+
return !state.component.teardowns.closed && !state.instance.mainTeardowns.closed && GLOBAL_STATE.pibblInstances.get(state.instance.canvas) === state.instance && state.instance.refs.get(state.component.id) === state.component;
|
|
212
|
+
}
|
|
213
|
+
function disposeSimulationOwner(owner) {
|
|
214
|
+
const state = ownerStates.get(owner);
|
|
215
|
+
if (!state || !state.active) return;
|
|
216
|
+
state.active = false;
|
|
217
|
+
for (const cancel of Array.from(state.cancellations)) cancel();
|
|
218
|
+
state.cancellations.clear();
|
|
219
|
+
}
|
|
220
|
+
export {
|
|
221
|
+
pibblInternalCurrentSimulationOwner,
|
|
222
|
+
pibblInternalOnSimulationRenderTransactionFinish,
|
|
223
|
+
pibblInternalQueueSimulationBegin,
|
|
224
|
+
pibblInternalQueueSimulationCommitAcknowledgement,
|
|
225
|
+
pibblInternalQueueSimulationComplete,
|
|
226
|
+
pibblInternalRegisterSimulationAdvance,
|
|
227
|
+
pibblInternalRequestSimulationRender
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=simulation-participant.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/scheduler/simulation-participant.ts"],
|
|
4
|
+
"sourcesContent": ["import { GLOBAL_STATE } from \"../global-state.js\";\nimport { requireHookContext, useInternalHookSlot } from \"../hooks/hook-slot.js\";\nimport {\n discardSignalCommitBatchProvenance,\n discardSignalCommitBatchWriterForProvenance,\n stageSignalCommitBatchWithProvenance,\n type SignalCommitBatch,\n} from \"../signals/graph.js\";\nimport type { WritableSignal } from \"../signals/types.js\";\nimport type { PibblComponentRefs, PibblInstance } from \"../types.js\";\nimport {\n queueBeginCommand,\n queueCurrentFrameCommitAcknowledgement,\n queueCurrentFrameCompletion,\n registerAdvanceParticipant,\n requestInstanceRender,\n} from \"./realm-scheduler.js\";\nimport type { PibblAdvanceLane, PibblBeginCommandHandle } from \"./types.js\";\nimport type {\n PibblInternalFrame,\n PibblInternalSignalBatch,\n} from \"./renderer-participant.js\";\n\n/**\n * The scheduler lane in which an official simulation integration advances.\n *\n * @see {@link pibblInternalRegisterSimulationAdvance}\n */\nexport type PibblInternalAdvanceLane = PibblAdvanceLane;\n\ndeclare const internalSimulationOwnerBrand: unique symbol;\n/**\n * Opaque ownership identity tying simulation work to a mounted runtime resource.\n *\n * @see {@link pibblInternalCurrentSimulationOwner}\n * @see {@link pibblInternalOnSimulationRenderTransactionFinish}\n * @see {@link pibblInternalQueueSimulationBegin}\n */\nexport interface PibblInternalSimulationOwner {\n readonly [internalSimulationOwnerBrand]: true;\n}\n\ninterface SimulationOwnerState {\n readonly component: PibblComponentRefs<any>;\n readonly instance: PibblInstance;\n readonly cancellations: Set<() => void>;\n active: boolean;\n}\n\nconst ownerStates = new WeakMap<\n PibblInternalSimulationOwner,\n SimulationOwnerState\n>();\nconst batchViews = new WeakMap<SignalCommitBatch, PibblInternalSignalBatch>();\nlet currentSimulationOwner: PibblInternalSimulationOwner | undefined;\n\n/**\n * Returns the active mount's simulation owner for a matching official integration.\n *\n * @returns The simulation owner for the active runtime context. See\n * {@link PibblInternalSimulationOwner} .\n *\n * @see {@link PibblInternalSimulationOwner}\n */\nexport function pibblInternalCurrentSimulationOwner(): PibblInternalSimulationOwner {\n const { componentRefs, pibblInstance } = requireHookContext();\n const slot = useInternalHookSlot<PibblInternalSimulationOwner>(\n \"internalSimulationOwner\",\n (teardowns) => {\n const owner = {} as PibblInternalSimulationOwner;\n ownerStates.set(owner, {\n component: componentRefs,\n instance: pibblInstance,\n cancellations: new Set(),\n active: true,\n });\n teardowns.add(() => disposeSimulationOwner(owner));\n return owner;\n },\n );\n requireActiveOwner(slot.value);\n return slot.value;\n}\n\n/**\n * Queues a cancellable simulation command for the shared scheduler's Begin phase.\n *\n * @param owner - Simulation owner admitting this command. See {@link PibblInternalSimulationOwner}.\n * @param command - Begin-phase work receiving frame, staged signal writes, and command sequence.\n * See {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .\n * @returns A command sequence and cancellation handle.\n *\n * @see {@link PibblInternalSimulationOwner}\n * @see {@link PibblInternalFrame}\n * @see {@link PibblInternalSignalBatch}\n */\nexport function pibblInternalQueueSimulationBegin(\n owner: PibblInternalSimulationOwner,\n command: (\n frame: PibblInternalFrame,\n batch: PibblInternalSignalBatch,\n sequence: number,\n ) => void,\n): Readonly<{ readonly sequence: number; cancel(): void }> {\n const state = requireActiveOwner(owner);\n let active = true;\n let handle: PibblBeginCommandHandle;\n const cancel = (): void => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n handle.cancel();\n };\n handle = queueBeginCommand((frame, batch, sequence) => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n if (!isCurrentOwner(state)) return;\n try {\n withCurrentSimulationOwner(owner, () => {\n command(frame, simulationBatchView(batch), sequence);\n });\n if (!isCurrentOwner(state)) {\n discardSimulationOwnerWriters(batch, owner);\n }\n } catch (error) {\n discardSimulationOwnerWriters(batch, owner);\n throw error;\n }\n });\n state.cancellations.add(cancel);\n return Object.freeze({ sequence: handle.sequence, cancel });\n}\n\n/**\n * Registers work in a simulation Advance lane and returns its unregister callback.\n *\n * @param owner - Simulation owner registering the work. See {@link PibblInternalSimulationOwner}.\n * @param lane - Advance lane controlling execution order. See {@link PibblInternalAdvanceLane}.\n * @param advance - Advance callback receiving frame timing and staged signal writes. See\n * {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .\n * @param requestsFrames - Whether this participant requests subsequent host frames; defaults to\n * true.\n * @returns A function that unregisters the participant.\n *\n * @see {@link PibblInternalSimulationOwner}\n * @see {@link PibblInternalAdvanceLane}\n * @see {@link PibblInternalFrame}\n * @see {@link PibblInternalSignalBatch}\n */\nexport function pibblInternalRegisterSimulationAdvance(\n owner: PibblInternalSimulationOwner,\n lane: PibblInternalAdvanceLane,\n advance: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch) => void,\n requestsFrames = true,\n): () => void {\n const state = requireActiveOwner(owner);\n let active = true;\n let unregister: () => void;\n const release = (): void => {\n if (!active) return;\n active = false;\n state.cancellations.delete(release);\n unregister();\n };\n unregister = registerAdvanceParticipant(\n (frame, batch) => {\n if (!active || !isCurrentOwner(state)) return;\n try {\n withCurrentSimulationOwner(owner, () => {\n advance(frame, simulationBatchView(batch));\n });\n if (!isCurrentOwner(state)) {\n discardSimulationOwnerWriters(batch, owner);\n }\n } catch (error) {\n discardSimulationOwnerWriters(batch, owner);\n throw error;\n }\n },\n lane,\n requestsFrames,\n );\n state.cancellations.add(release);\n return release;\n}\n\n/**\n * Reports whether the current simulation frame's staged writes were committed.\n *\n * @param owner - Owner of the pending commit. See {@link PibblInternalSimulationOwner}.\n * @param callback - Callback receiving the frame and whether the commit was applied. See\n * {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalSimulationOwner}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalQueueSimulationCommitAcknowledgement(\n owner: PibblInternalSimulationOwner,\n callback: (\n frame: PibblInternalFrame,\n outcome: Readonly<{ readonly applied: boolean }>,\n ) => void,\n): void {\n const state = requireActiveOwner(owner);\n let active = true;\n let cancelQueued = () => {};\n const cancel = (): void => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n cancelQueued();\n };\n cancelQueued = queueCurrentFrameCommitAcknowledgement((frame, outcome) => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n if (isCurrentOwner(state)) callback(frame, outcome);\n });\n state.cancellations.add(cancel);\n}\n\n/**\n * Queues an owner-scoped callback for the scheduler's Complete phase.\n *\n * @param owner - Owner of the completion work. See {@link PibblInternalSimulationOwner}.\n * @param callback - Callback invoked during Complete with the shared frame. See\n * {@link PibblInternalFrame} .\n *\n * @see {@link PibblInternalSimulationOwner}\n * @see {@link PibblInternalFrame}\n */\nexport function pibblInternalQueueSimulationComplete(\n owner: PibblInternalSimulationOwner,\n callback: (frame: PibblInternalFrame) => void,\n): void {\n const state = requireActiveOwner(owner);\n let active = true;\n let cancelQueued = () => {};\n const cancel = (): void => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n cancelQueued();\n };\n cancelQueued = queueCurrentFrameCompletion((frame) => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n if (isCurrentOwner(state)) callback(frame);\n });\n state.cancellations.add(cancel);\n}\n\n/**\n * Invalidates the renderer associated with a simulation owner.\n *\n * @param owner - Owner whose renderer should become dirty. See {@link PibblInternalSimulationOwner}.\n *\n * @see {@link PibblInternalSimulationOwner}\n */\nexport function pibblInternalRequestSimulationRender(\n owner: PibblInternalSimulationOwner,\n): void {\n const state = requireActiveOwner(owner);\n requestInstanceRender(state.instance);\n}\n\n/**\n * Registers a callback reporting whether the owner's current render transaction succeeded.\n *\n * @param owner - Owner of the rendering transaction. See {@link PibblInternalSimulationOwner}.\n * @param callback - Callback receiving whether the transaction succeeded.\n *\n * @see {@link PibblInternalSimulationOwner}\n */\nexport function pibblInternalOnSimulationRenderTransactionFinish(\n owner: PibblInternalSimulationOwner,\n callback: (success: boolean) => void,\n): void {\n const state = requireActiveOwner(owner);\n const transaction = state.instance.eventRoot.renderTransaction;\n if (!transaction) {\n throw new Error(\n \"pibblInternalOnSimulationRenderTransactionFinish() requires an active Pibbl render transaction.\",\n );\n }\n let active = true;\n const cancel = (): void => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n };\n state.cancellations.add(cancel);\n transaction.onFinish((success) => {\n if (!active) return;\n active = false;\n state.cancellations.delete(cancel);\n if (isCurrentOwner(state)) callback(success);\n });\n}\n\nfunction simulationBatchView(batch: SignalCommitBatch): PibblInternalSignalBatch {\n const existing = batchViews.get(batch);\n if (existing) return existing;\n const view = Object.freeze({\n read<T>(signal: WritableSignal<T>): T {\n return batch.read(signal);\n },\n stage<T>(signal: WritableSignal<T>, value: T, writer: object): void {\n const owner = currentSimulationOwner;\n if (owner === undefined) {\n throw new Error(\n \"Pibbl internal simulation batches may only stage during their owning callback.\",\n );\n }\n stageSignalCommitBatchWithProvenance(batch, owner, signal, value, writer);\n },\n discardWriter(writer: object): void {\n const owner = currentSimulationOwner;\n if (owner === undefined) {\n throw new Error(\n \"Pibbl internal simulation batches may only discard during their owning callback.\",\n );\n }\n discardSignalCommitBatchWriterForProvenance(batch, owner, writer);\n },\n });\n batchViews.set(batch, view);\n return view;\n}\n\nfunction withCurrentSimulationOwner<T>(\n owner: PibblInternalSimulationOwner,\n callback: () => T,\n): T {\n const previous = currentSimulationOwner;\n currentSimulationOwner = owner;\n try {\n return callback();\n } finally {\n currentSimulationOwner = previous;\n }\n}\n\nfunction discardSimulationOwnerWriters(\n batch: SignalCommitBatch,\n owner: PibblInternalSimulationOwner,\n): void {\n discardSignalCommitBatchProvenance(batch, owner);\n}\n\nfunction requireActiveOwner(\n owner: PibblInternalSimulationOwner,\n): SimulationOwnerState {\n const state = ownerStates.get(owner);\n if (!state || !state.active || !isCurrentOwner(state)) {\n throw new TypeError(\"Expected an active Pibbl internal simulation owner.\");\n }\n return state;\n}\n\nfunction isCurrentOwner(state: SimulationOwnerState): boolean {\n return (\n !state.component.teardowns.closed &&\n !state.instance.mainTeardowns.closed &&\n GLOBAL_STATE.pibblInstances.get(state.instance.canvas) === state.instance &&\n state.instance.refs.get(state.component.id) === state.component\n );\n}\n\nfunction disposeSimulationOwner(owner: PibblInternalSimulationOwner): void {\n const state = ownerStates.get(owner);\n if (!state || !state.active) return;\n state.active = false;\n for (const cancel of Array.from(state.cancellations)) cancel();\n state.cancellations.clear();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { installSchedulerTraceCollectorForTest, snapshotRealmScheduler } from './realm-scheduler.js';
|
|
2
|
+
import type { PibblSchedulerTraceRecord, SchedulerDriver } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* A host-frame driver controlled explicitly by tests.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link installSchedulerDriverForTest}
|
|
7
|
+
*/
|
|
8
|
+
export declare class ManualSchedulerDriver implements SchedulerDriver {
|
|
9
|
+
private readonly callbacks;
|
|
10
|
+
private nextFrameId;
|
|
11
|
+
/**
|
|
12
|
+
* Number of host-frame requests observed by this test driver. See {@link ManualSchedulerDriver}
|
|
13
|
+
* .
|
|
14
|
+
*/
|
|
15
|
+
requestCount: number;
|
|
16
|
+
/**
|
|
17
|
+
* Number of host-frame cancellations observed by this test driver. See
|
|
18
|
+
* {@link ManualSchedulerDriver}.
|
|
19
|
+
*/
|
|
20
|
+
cancelCount: number;
|
|
21
|
+
/**
|
|
22
|
+
* Number of host-frame callbacks currently pending in the driver. See
|
|
23
|
+
* {@link ManualSchedulerDriver}.
|
|
24
|
+
* @returns The number of queued host-frame callbacks.
|
|
25
|
+
*/
|
|
26
|
+
get pendingHostFrames(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Requests future work from the owning scheduler. See {@link ManualSchedulerDriver}.
|
|
29
|
+
* @param callback - Callback to invoke on a manually flushed frame.
|
|
30
|
+
* @returns An identifier usable to cancel the queued callback.
|
|
31
|
+
*/
|
|
32
|
+
requestFrame(callback: FrameRequestCallback): number;
|
|
33
|
+
/**
|
|
34
|
+
* Cancels the identified pending host callback. See {@link ManualSchedulerDriver}.
|
|
35
|
+
* @param frameId - Identifier returned by requestFrame.
|
|
36
|
+
*/
|
|
37
|
+
cancelFrame(frameId: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* Delivers a pending host callback at the requested test time. See {@link ManualSchedulerDriver}
|
|
40
|
+
* .
|
|
41
|
+
* @param hostTime - Host timestamp in milliseconds supplied to pending callbacks.
|
|
42
|
+
*/
|
|
43
|
+
flush(hostTime: number): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Installs a deterministic host-frame driver and returns the callback that restores the previous
|
|
47
|
+
* driver.
|
|
48
|
+
*
|
|
49
|
+
* @param driver - Manual driver to install for deterministic scheduler tests. See
|
|
50
|
+
* {@link ManualSchedulerDriver} .
|
|
51
|
+
* @returns A function restoring the previous scheduler driver.
|
|
52
|
+
*
|
|
53
|
+
* @see {@link ManualSchedulerDriver}
|
|
54
|
+
*/
|
|
55
|
+
export declare function installSchedulerDriverForTest(driver: ManualSchedulerDriver): () => void;
|
|
56
|
+
export { installSchedulerTraceCollectorForTest, snapshotRealmScheduler, type PibblSchedulerTraceRecord, };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import {
|
|
2
|
+
installSchedulerDriverForTest as installDriver,
|
|
3
|
+
installSchedulerTraceCollectorForTest,
|
|
4
|
+
snapshotRealmScheduler
|
|
5
|
+
} from "./realm-scheduler.js";
|
|
6
|
+
class ManualSchedulerDriver {
|
|
7
|
+
callbacks = /* @__PURE__ */ new Map();
|
|
8
|
+
nextFrameId = 0;
|
|
9
|
+
/**
|
|
10
|
+
* Number of host-frame requests observed by this test driver. See {@link ManualSchedulerDriver}
|
|
11
|
+
* .
|
|
12
|
+
*/
|
|
13
|
+
requestCount = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Number of host-frame cancellations observed by this test driver. See
|
|
16
|
+
* {@link ManualSchedulerDriver}.
|
|
17
|
+
*/
|
|
18
|
+
cancelCount = 0;
|
|
19
|
+
/**
|
|
20
|
+
* Number of host-frame callbacks currently pending in the driver. See
|
|
21
|
+
* {@link ManualSchedulerDriver}.
|
|
22
|
+
* @returns The number of queued host-frame callbacks.
|
|
23
|
+
*/
|
|
24
|
+
get pendingHostFrames() {
|
|
25
|
+
return this.callbacks.size;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Requests future work from the owning scheduler. See {@link ManualSchedulerDriver}.
|
|
29
|
+
* @param callback - Callback to invoke on a manually flushed frame.
|
|
30
|
+
* @returns An identifier usable to cancel the queued callback.
|
|
31
|
+
*/
|
|
32
|
+
requestFrame(callback) {
|
|
33
|
+
const frameId = ++this.nextFrameId;
|
|
34
|
+
this.requestCount++;
|
|
35
|
+
this.callbacks.set(frameId, callback);
|
|
36
|
+
return frameId;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Cancels the identified pending host callback. See {@link ManualSchedulerDriver}.
|
|
40
|
+
* @param frameId - Identifier returned by requestFrame.
|
|
41
|
+
*/
|
|
42
|
+
cancelFrame(frameId) {
|
|
43
|
+
if (this.callbacks.delete(frameId)) {
|
|
44
|
+
this.cancelCount++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Delivers a pending host callback at the requested test time. See {@link ManualSchedulerDriver}
|
|
49
|
+
* .
|
|
50
|
+
* @param hostTime - Host timestamp in milliseconds supplied to pending callbacks.
|
|
51
|
+
*/
|
|
52
|
+
flush(hostTime) {
|
|
53
|
+
const entry = this.callbacks.entries().next().value;
|
|
54
|
+
if (!entry) {
|
|
55
|
+
throw new Error("No Pibbl host frame is pending.");
|
|
56
|
+
}
|
|
57
|
+
const [frameId, callback] = entry;
|
|
58
|
+
this.callbacks.delete(frameId);
|
|
59
|
+
callback(hostTime);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function installSchedulerDriverForTest(driver) {
|
|
63
|
+
return installDriver(driver);
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
ManualSchedulerDriver,
|
|
67
|
+
installSchedulerDriverForTest,
|
|
68
|
+
installSchedulerTraceCollectorForTest,
|
|
69
|
+
snapshotRealmScheduler
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/scheduler/testing.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n installSchedulerDriverForTest as installDriver,\n installSchedulerTraceCollectorForTest,\n snapshotRealmScheduler,\n} from './realm-scheduler.js';\nimport type { PibblSchedulerTraceRecord, SchedulerDriver } from './types.js';\n\n/**\n * A host-frame driver controlled explicitly by tests.\n *\n * @see {@link installSchedulerDriverForTest}\n */\nexport class ManualSchedulerDriver implements SchedulerDriver {\n private readonly callbacks = new Map<number, FrameRequestCallback>();\n private nextFrameId = 0;\n /**\n * Number of host-frame requests observed by this test driver. See {@link ManualSchedulerDriver}\n * .\n */\n requestCount = 0;\n /**\n * Number of host-frame cancellations observed by this test driver. See\n * {@link ManualSchedulerDriver}.\n */\n cancelCount = 0;\n\n /**\n * Number of host-frame callbacks currently pending in the driver. See\n * {@link ManualSchedulerDriver}.\n * @returns The number of queued host-frame callbacks.\n */\n get pendingHostFrames(): number {\n return this.callbacks.size;\n }\n\n /**\n * Requests future work from the owning scheduler. See {@link ManualSchedulerDriver}.\n * @param callback - Callback to invoke on a manually flushed frame.\n * @returns An identifier usable to cancel the queued callback.\n */\n requestFrame(callback: FrameRequestCallback): number {\n const frameId = ++this.nextFrameId;\n this.requestCount++;\n this.callbacks.set(frameId, callback);\n return frameId;\n }\n\n /**\n * Cancels the identified pending host callback. See {@link ManualSchedulerDriver}.\n * @param frameId - Identifier returned by requestFrame.\n */\n cancelFrame(frameId: number): void {\n if (this.callbacks.delete(frameId)) {\n this.cancelCount++;\n }\n }\n\n /**\n * Delivers a pending host callback at the requested test time. See {@link ManualSchedulerDriver}\n * .\n * @param hostTime - Host timestamp in milliseconds supplied to pending callbacks.\n */\n flush(hostTime: number): void {\n const entry = this.callbacks.entries().next().value as\n | [number, FrameRequestCallback]\n | undefined;\n if (!entry) {\n throw new Error('No Pibbl host frame is pending.');\n }\n const [frameId, callback] = entry;\n this.callbacks.delete(frameId);\n callback(hostTime);\n }\n}\n\n/**\n * Installs a deterministic host-frame driver and returns the callback that restores the previous\n * driver.\n *\n * @param driver - Manual driver to install for deterministic scheduler tests. See\n * {@link ManualSchedulerDriver} .\n * @returns A function restoring the previous scheduler driver.\n *\n * @see {@link ManualSchedulerDriver}\n */\nexport function installSchedulerDriverForTest(\n driver: ManualSchedulerDriver,\n): () => void {\n return installDriver(driver);\n}\n\nexport {\n installSchedulerTraceCollectorForTest,\n snapshotRealmScheduler,\n type PibblSchedulerTraceRecord,\n};\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EACE,iCAAiC;AAAA,EACjC;AAAA,EACA;AAAA,OACK;AAQA,MAAM,sBAAiD;AAAA,EAC3C,YAAY,oBAAI,IAAkC;AAAA,EAC3D,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOd,IAAI,oBAA4B;AAC9B,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,UAAwC;AACnD,UAAM,UAAU,EAAE,KAAK;AACvB,SAAK;AACL,SAAK,UAAU,IAAI,SAAS,QAAQ;AACpC,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,SAAuB;AACjC,QAAI,KAAK,UAAU,OAAO,OAAO,GAAG;AAClC,WAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,UAAwB;AAC5B,UAAM,QAAQ,KAAK,UAAU,QAAQ,EAAE,KAAK,EAAE;AAG9C,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AACA,UAAM,CAAC,SAAS,QAAQ,IAAI;AAC5B,SAAK,UAAU,OAAO,OAAO;AAC7B,aAAS,QAAQ;AAAA,EACnB;AACF;AAYO,SAAS,8BACd,QACY;AACZ,SAAO,cAAc,MAAM;AAC7B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|