@czap/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/addressed-digest.d.ts +15 -0
- package/dist/addressed-digest.d.ts.map +1 -0
- package/dist/addressed-digest.js +35 -0
- package/dist/addressed-digest.js.map +1 -0
- package/dist/animation.d.ts +46 -0
- package/dist/animation.d.ts.map +1 -0
- package/dist/animation.js +70 -0
- package/dist/animation.js.map +1 -0
- package/dist/assembly.d.ts +25 -0
- package/dist/assembly.d.ts.map +1 -0
- package/dist/assembly.js +58 -0
- package/dist/assembly.js.map +1 -0
- package/dist/av-bridge.d.ts +74 -0
- package/dist/av-bridge.d.ts.map +1 -0
- package/dist/av-bridge.js +107 -0
- package/dist/av-bridge.js.map +1 -0
- package/dist/av-renderer.d.ts +56 -0
- package/dist/av-renderer.d.ts.map +1 -0
- package/dist/av-renderer.js +65 -0
- package/dist/av-renderer.js.map +1 -0
- package/dist/blend.d.ts +61 -0
- package/dist/blend.d.ts.map +1 -0
- package/dist/blend.js +100 -0
- package/dist/blend.js.map +1 -0
- package/dist/boundary.d.ts +154 -0
- package/dist/boundary.d.ts.map +1 -0
- package/dist/boundary.js +269 -0
- package/dist/boundary.js.map +1 -0
- package/dist/brands.d.ts +63 -0
- package/dist/brands.d.ts.map +1 -0
- package/dist/brands.js +31 -0
- package/dist/brands.js.map +1 -0
- package/dist/caps.d.ts +49 -0
- package/dist/caps.d.ts.map +1 -0
- package/dist/caps.js +73 -0
- package/dist/caps.js.map +1 -0
- package/dist/capsule.d.ts +77 -0
- package/dist/capsule.d.ts.map +1 -0
- package/dist/capsule.js +18 -0
- package/dist/capsule.js.map +1 -0
- package/dist/capsules/boundary-evaluate.d.ts +28 -0
- package/dist/capsules/boundary-evaluate.d.ts.map +1 -0
- package/dist/capsules/boundary-evaluate.js +117 -0
- package/dist/capsules/boundary-evaluate.js.map +1 -0
- package/dist/capsules/canonical-cbor.d.ts +13 -0
- package/dist/capsules/canonical-cbor.d.ts.map +1 -0
- package/dist/capsules/canonical-cbor.js +60 -0
- package/dist/capsules/canonical-cbor.js.map +1 -0
- package/dist/capsules/token-buffer.d.ts +24 -0
- package/dist/capsules/token-buffer.d.ts.map +1 -0
- package/dist/capsules/token-buffer.js +53 -0
- package/dist/capsules/token-buffer.js.map +1 -0
- package/dist/capture.d.ts +40 -0
- package/dist/capture.d.ts.map +1 -0
- package/dist/capture.js +10 -0
- package/dist/capture.js.map +1 -0
- package/dist/cbor.d.ts +33 -0
- package/dist/cbor.d.ts.map +1 -0
- package/dist/cbor.js +179 -0
- package/dist/cbor.js.map +1 -0
- package/dist/cell.d.ts +53 -0
- package/dist/cell.d.ts.map +1 -0
- package/dist/cell.js +83 -0
- package/dist/cell.js.map +1 -0
- package/dist/codec.d.ts +30 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +25 -0
- package/dist/codec.js.map +1 -0
- package/dist/component.d.ts +52 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +44 -0
- package/dist/component.js.map +1 -0
- package/dist/composable.d.ts +76 -0
- package/dist/composable.d.ts.map +1 -0
- package/dist/composable.js +221 -0
- package/dist/composable.js.map +1 -0
- package/dist/compositor-pool.d.ts +74 -0
- package/dist/compositor-pool.d.ts.map +1 -0
- package/dist/compositor-pool.js +119 -0
- package/dist/compositor-pool.js.map +1 -0
- package/dist/compositor.d.ts +90 -0
- package/dist/compositor.d.ts.map +1 -0
- package/dist/compositor.js +278 -0
- package/dist/compositor.js.map +1 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +97 -0
- package/dist/config.js.map +1 -0
- package/dist/dag.d.ts +251 -0
- package/dist/dag.d.ts.map +1 -0
- package/dist/dag.js +450 -0
- package/dist/dag.js.map +1 -0
- package/dist/defaults.d.ts +45 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +45 -0
- package/dist/defaults.js.map +1 -0
- package/dist/derived.d.ts +34 -0
- package/dist/derived.d.ts.map +1 -0
- package/dist/derived.js +101 -0
- package/dist/derived.js.map +1 -0
- package/dist/diagnostics.d.ts +77 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +122 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dirty.d.ts +55 -0
- package/dist/dirty.d.ts.map +1 -0
- package/dist/dirty.js +80 -0
- package/dist/dirty.js.map +1 -0
- package/dist/easing.d.ts +55 -0
- package/dist/easing.d.ts.map +1 -0
- package/dist/easing.js +291 -0
- package/dist/easing.js.map +1 -0
- package/dist/ecs.d.ts +105 -0
- package/dist/ecs.d.ts.map +1 -0
- package/dist/ecs.js +245 -0
- package/dist/ecs.js.map +1 -0
- package/dist/fnv.d.ts +14 -0
- package/dist/fnv.d.ts.map +1 -0
- package/dist/fnv.js +28 -0
- package/dist/fnv.js.map +1 -0
- package/dist/frame-budget.d.ts +73 -0
- package/dist/frame-budget.d.ts.map +1 -0
- package/dist/frame-budget.js +114 -0
- package/dist/frame-budget.js.map +1 -0
- package/dist/gen-frame.d.ts +102 -0
- package/dist/gen-frame.d.ts.map +1 -0
- package/dist/gen-frame.js +121 -0
- package/dist/gen-frame.js.map +1 -0
- package/dist/harness/arbitrary-from-schema.d.ts +28 -0
- package/dist/harness/arbitrary-from-schema.d.ts.map +1 -0
- package/dist/harness/arbitrary-from-schema.js +262 -0
- package/dist/harness/arbitrary-from-schema.js.map +1 -0
- package/dist/harness/cached-projection.d.ts +19 -0
- package/dist/harness/cached-projection.d.ts.map +1 -0
- package/dist/harness/cached-projection.js +39 -0
- package/dist/harness/cached-projection.js.map +1 -0
- package/dist/harness/index.d.ts +16 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +15 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/policy-gate.d.ts +18 -0
- package/dist/harness/policy-gate.d.ts.map +1 -0
- package/dist/harness/policy-gate.js +46 -0
- package/dist/harness/policy-gate.js.map +1 -0
- package/dist/harness/pure-transform.d.ts +42 -0
- package/dist/harness/pure-transform.d.ts.map +1 -0
- package/dist/harness/pure-transform.js +76 -0
- package/dist/harness/pure-transform.js.map +1 -0
- package/dist/harness/receipted-mutation.d.ts +23 -0
- package/dist/harness/receipted-mutation.d.ts.map +1 -0
- package/dist/harness/receipted-mutation.js +52 -0
- package/dist/harness/receipted-mutation.js.map +1 -0
- package/dist/harness/scene-composition.d.ts +19 -0
- package/dist/harness/scene-composition.d.ts.map +1 -0
- package/dist/harness/scene-composition.js +47 -0
- package/dist/harness/scene-composition.js.map +1 -0
- package/dist/harness/site-adapter.d.ts +18 -0
- package/dist/harness/site-adapter.d.ts.map +1 -0
- package/dist/harness/site-adapter.js +38 -0
- package/dist/harness/site-adapter.js.map +1 -0
- package/dist/harness/state-machine.d.ts +19 -0
- package/dist/harness/state-machine.d.ts.map +1 -0
- package/dist/harness/state-machine.js +44 -0
- package/dist/harness/state-machine.js.map +1 -0
- package/dist/hlc.d.ts +99 -0
- package/dist/hlc.d.ts.map +1 -0
- package/dist/hlc.js +219 -0
- package/dist/hlc.js.map +1 -0
- package/dist/index.d.ts +104 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +137 -0
- package/dist/index.js.map +1 -0
- package/dist/interpolate.d.ts +14 -0
- package/dist/interpolate.d.ts.map +1 -0
- package/dist/interpolate.js +31 -0
- package/dist/interpolate.js.map +1 -0
- package/dist/live-cell.d.ts +46 -0
- package/dist/live-cell.d.ts.map +1 -0
- package/dist/live-cell.js +154 -0
- package/dist/live-cell.js.map +1 -0
- package/dist/op.d.ts +58 -0
- package/dist/op.d.ts.map +1 -0
- package/dist/op.js +171 -0
- package/dist/op.js.map +1 -0
- package/dist/plan.d.ts +195 -0
- package/dist/plan.d.ts.map +1 -0
- package/dist/plan.js +211 -0
- package/dist/plan.js.map +1 -0
- package/dist/protocol.d.ts +33 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +10 -0
- package/dist/protocol.js.map +1 -0
- package/dist/quantizer-types.d.ts +28 -0
- package/dist/quantizer-types.d.ts.map +1 -0
- package/dist/quantizer-types.js +9 -0
- package/dist/quantizer-types.js.map +1 -0
- package/dist/receipt.d.ts +294 -0
- package/dist/receipt.d.ts.map +1 -0
- package/dist/receipt.js +352 -0
- package/dist/receipt.js.map +1 -0
- package/dist/runtime-coordinator.d.ts +75 -0
- package/dist/runtime-coordinator.d.ts.map +1 -0
- package/dist/runtime-coordinator.js +149 -0
- package/dist/runtime-coordinator.js.map +1 -0
- package/dist/scheduler.d.ts +58 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +109 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/ship-capsule.d.ts +54 -0
- package/dist/ship-capsule.d.ts.map +1 -0
- package/dist/ship-capsule.js +142 -0
- package/dist/ship-capsule.js.map +1 -0
- package/dist/ship-manifest.d.ts +45 -0
- package/dist/ship-manifest.d.ts.map +1 -0
- package/dist/ship-manifest.js +175 -0
- package/dist/ship-manifest.js.map +1 -0
- package/dist/signal.d.ts +149 -0
- package/dist/signal.d.ts.map +1 -0
- package/dist/signal.js +277 -0
- package/dist/signal.js.map +1 -0
- package/dist/speculative.d.ts +67 -0
- package/dist/speculative.d.ts.map +1 -0
- package/dist/speculative.js +139 -0
- package/dist/speculative.js.map +1 -0
- package/dist/store.d.ts +39 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +42 -0
- package/dist/store.js.map +1 -0
- package/dist/style.d.ts +119 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/style.js +168 -0
- package/dist/style.js.map +1 -0
- package/dist/testing.d.ts +14 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +14 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme.d.ts +78 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +109 -0
- package/dist/theme.js.map +1 -0
- package/dist/timeline.d.ts +45 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +101 -0
- package/dist/timeline.js.map +1 -0
- package/dist/token-buffer.d.ts +43 -0
- package/dist/token-buffer.d.ts.map +1 -0
- package/dist/token-buffer.js +112 -0
- package/dist/token-buffer.js.map +1 -0
- package/dist/token.d.ts +107 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +143 -0
- package/dist/token.js.map +1 -0
- package/dist/tuple.d.ts +16 -0
- package/dist/tuple.d.ts.map +1 -0
- package/dist/tuple.js +16 -0
- package/dist/tuple.js.map +1 -0
- package/dist/type-utils.d.ts +41 -0
- package/dist/type-utils.d.ts.map +1 -0
- package/dist/type-utils.js +10 -0
- package/dist/type-utils.js.map +1 -0
- package/dist/typed-ref.d.ts +50 -0
- package/dist/typed-ref.d.ts.map +1 -0
- package/dist/typed-ref.js +59 -0
- package/dist/typed-ref.js.map +1 -0
- package/dist/ui-quality.d.ts +50 -0
- package/dist/ui-quality.d.ts.map +1 -0
- package/dist/ui-quality.js +64 -0
- package/dist/ui-quality.js.map +1 -0
- package/dist/validation-error.d.ts +25 -0
- package/dist/validation-error.d.ts.map +1 -0
- package/dist/validation-error.js +32 -0
- package/dist/validation-error.js.map +1 -0
- package/dist/vector-clock.d.ts +46 -0
- package/dist/vector-clock.d.ts.map +1 -0
- package/dist/vector-clock.js +91 -0
- package/dist/vector-clock.js.map +1 -0
- package/dist/video.d.ts +62 -0
- package/dist/video.d.ts.map +1 -0
- package/dist/video.js +59 -0
- package/dist/video.js.map +1 -0
- package/dist/wasm-dispatch.d.ts +52 -0
- package/dist/wasm-dispatch.d.ts.map +1 -0
- package/dist/wasm-dispatch.js +204 -0
- package/dist/wasm-dispatch.js.map +1 -0
- package/dist/wasm-fallback.d.ts +19 -0
- package/dist/wasm-fallback.d.ts.map +1 -0
- package/dist/wasm-fallback.js +93 -0
- package/dist/wasm-fallback.js.map +1 -0
- package/dist/wire.d.ts +49 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +201 -0
- package/dist/wire.js.map +1 -0
- package/dist/zap.d.ts +42 -0
- package/dist/zap.d.ts.map +1 -0
- package/dist/zap.js +172 -0
- package/dist/zap.js.map +1 -0
- package/package.json +71 -0
- package/src/addressed-digest.ts +48 -0
- package/src/animation.ts +103 -0
- package/src/assembly.ts +76 -0
- package/src/av-bridge.ts +161 -0
- package/src/av-renderer.ts +118 -0
- package/src/blend.ts +135 -0
- package/src/boundary.ts +363 -0
- package/src/brands.ts +86 -0
- package/src/caps.ts +100 -0
- package/src/capsule.ts +95 -0
- package/src/capsules/boundary-evaluate.ts +128 -0
- package/src/capsules/canonical-cbor.ts +60 -0
- package/src/capsules/token-buffer.ts +57 -0
- package/src/capture.ts +48 -0
- package/src/cbor.ts +199 -0
- package/src/cell.ts +130 -0
- package/src/codec.ts +39 -0
- package/src/component.ts +102 -0
- package/src/composable.ts +328 -0
- package/src/compositor-pool.ts +162 -0
- package/src/compositor.ts +387 -0
- package/src/config.ts +157 -0
- package/src/dag.ts +527 -0
- package/src/defaults.ts +60 -0
- package/src/derived.ts +164 -0
- package/src/diagnostics.ts +186 -0
- package/src/dirty.ts +101 -0
- package/src/easing.ts +334 -0
- package/src/ecs.ts +382 -0
- package/src/fnv.ts +31 -0
- package/src/frame-budget.ts +149 -0
- package/src/gen-frame.ts +229 -0
- package/src/harness/arbitrary-from-schema.ts +270 -0
- package/src/harness/cached-projection.ts +46 -0
- package/src/harness/index.ts +16 -0
- package/src/harness/policy-gate.ts +51 -0
- package/src/harness/pure-transform.ts +121 -0
- package/src/harness/receipted-mutation.ts +59 -0
- package/src/harness/scene-composition.ts +54 -0
- package/src/harness/site-adapter.ts +43 -0
- package/src/harness/state-machine.ts +49 -0
- package/src/hlc.ts +238 -0
- package/src/index.ts +274 -0
- package/src/interpolate.ts +37 -0
- package/src/live-cell.ts +199 -0
- package/src/op.ts +233 -0
- package/src/plan.ts +317 -0
- package/src/protocol.ts +49 -0
- package/src/quantizer-types.ts +29 -0
- package/src/receipt.ts +444 -0
- package/src/runtime-coordinator.ts +230 -0
- package/src/scheduler.ts +161 -0
- package/src/ship-capsule.ts +191 -0
- package/src/signal.ts +345 -0
- package/src/speculative.ts +186 -0
- package/src/store.ts +77 -0
- package/src/style.ts +249 -0
- package/src/testing.ts +14 -0
- package/src/theme.ts +153 -0
- package/src/timeline.ts +146 -0
- package/src/token-buffer.ts +151 -0
- package/src/token.ts +197 -0
- package/src/tuple.ts +19 -0
- package/src/type-utils.ts +48 -0
- package/src/typed-ref.ts +79 -0
- package/src/ui-quality.ts +105 -0
- package/src/validation-error.ts +34 -0
- package/src/vector-clock.ts +111 -0
- package/src/video.ts +106 -0
- package/src/wasm-dispatch.ts +300 -0
- package/src/wasm-fallback.ts +102 -0
- package/src/wire.ts +274 -0
- package/src/zap.ts +241 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAWD,UAAU,eAAe;IACvB,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpF,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1E,aAAa,IAAI,IAAI,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;CAC5C;AAED,UAAU,iBAAiB;IACzB,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACvF;AAmBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,EAAE,iBAsQxB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,sDAAsD;IACtD,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,0CAA0C;IAC1C,KAAY,MAAM,GAAG,gBAAgB,CAAC;CACvC"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compositor -- merge multiple quantizers into composite state.
|
|
3
|
+
*
|
|
4
|
+
* The compositor aggregates discrete + blended state from all
|
|
5
|
+
* active quantizers into a single CompositeState, producing
|
|
6
|
+
* typed output channels (css, glsl, aria).
|
|
7
|
+
*
|
|
8
|
+
* Wired: DirtyFlags (selective recomputation), CompositorStatePool
|
|
9
|
+
* (zero-allocation), FrameBudget (priority scheduling), microtask batching,
|
|
10
|
+
* and RuntimeCoordinator (Plan + ECS-backed runtime bookkeeping).
|
|
11
|
+
*
|
|
12
|
+
* Hot path (computeStateSync) is plain JS — no Effect overhead.
|
|
13
|
+
* Effect is used only for resource lifecycle (create/scope) and
|
|
14
|
+
* reactive stream (SubscriptionRef.changes).
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import { Effect, SubscriptionRef } from 'effect';
|
|
19
|
+
import { COMPOSITOR_POOL_CAP, DIRTY_FLAGS_MAX } from './defaults.js';
|
|
20
|
+
import { CompositorStatePool, accessCompositeState } from './compositor-pool.js';
|
|
21
|
+
import { DirtyFlags } from './dirty.js';
|
|
22
|
+
import { RuntimeCoordinator } from './runtime-coordinator.js';
|
|
23
|
+
import { SpeculativeEvaluator } from './speculative.js';
|
|
24
|
+
/**
|
|
25
|
+
* Widen a Quantizer's boundary parameter to Boundary.Shape for storage in
|
|
26
|
+
* a heterogeneous registry. Safe because Quantizer<B> is covariant in B
|
|
27
|
+
* (B only appears in return positions on Quantizer).
|
|
28
|
+
*/
|
|
29
|
+
function widenQuantizer(q) {
|
|
30
|
+
return q;
|
|
31
|
+
}
|
|
32
|
+
function emptyCompositeState() {
|
|
33
|
+
return {
|
|
34
|
+
discrete: {},
|
|
35
|
+
blend: {},
|
|
36
|
+
outputs: { css: {}, glsl: {}, aria: {} },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const MAX_DIRTY_KEYS = DIRTY_FLAGS_MAX;
|
|
40
|
+
/**
|
|
41
|
+
* Compositor — the live merge point for every attached {@link Quantizer}.
|
|
42
|
+
*
|
|
43
|
+
* `Compositor.create` hands back a scoped Effect that, when run inside a
|
|
44
|
+
* `Scope`, produces a compositor bound to a {@link RuntimeCoordinator}. Adding
|
|
45
|
+
* quantizers, marking dirty flags, and emitting CSS/GLSL/ARIA outputs all flow
|
|
46
|
+
* through the zero-allocation hot path backed by {@link CompositorStatePool}.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { Effect } from 'effect';
|
|
51
|
+
* import { Compositor } from '@czap/core';
|
|
52
|
+
*
|
|
53
|
+
* const program = Effect.scoped(Effect.gen(function* () {
|
|
54
|
+
* const compositor = yield* Compositor.create({ poolCapacity: 64, speculative: true });
|
|
55
|
+
* yield* compositor.add('viewport', viewportQuantizer);
|
|
56
|
+
* const state = yield* compositor.compute();
|
|
57
|
+
* // state.discrete.viewport === 'tablet'
|
|
58
|
+
* // state.outputs.css['--czap-viewport'] === 'tablet'
|
|
59
|
+
* }));
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export const Compositor = {
|
|
63
|
+
/** Build a scoped compositor bound to a fresh {@link RuntimeCoordinator}. */
|
|
64
|
+
create(config) {
|
|
65
|
+
return Effect.gen(function* () {
|
|
66
|
+
const stateRef = yield* SubscriptionRef.make(emptyCompositeState());
|
|
67
|
+
const qMap = new Map();
|
|
68
|
+
const metaMap = new Map();
|
|
69
|
+
const overrides = new Map();
|
|
70
|
+
const pool = CompositorStatePool.make(config?.poolCapacity ?? COMPOSITOR_POOL_CAP);
|
|
71
|
+
const frameBudget = config?.frameBudget;
|
|
72
|
+
const useSpeculative = config?.speculative ?? false;
|
|
73
|
+
const runtime = RuntimeCoordinator.create({
|
|
74
|
+
capacity: Math.max(config?.poolCapacity ?? COMPOSITOR_POOL_CAP, MAX_DIRTY_KEYS + 8),
|
|
75
|
+
name: 'czap-compositor-runtime',
|
|
76
|
+
});
|
|
77
|
+
const speculativeEvaluators = new Map();
|
|
78
|
+
const prefetchedStates = new Map();
|
|
79
|
+
let nameList = [];
|
|
80
|
+
let dirty = null;
|
|
81
|
+
let recomputeAll = false;
|
|
82
|
+
let previousState = emptyCompositeState();
|
|
83
|
+
let priorPreviousState = null;
|
|
84
|
+
let batchScheduled = false;
|
|
85
|
+
function rebuildDirtyFlags() {
|
|
86
|
+
if (nameList.length > MAX_DIRTY_KEYS) {
|
|
87
|
+
dirty = null;
|
|
88
|
+
recomputeAll = true;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
dirty = DirtyFlags.make(nameList);
|
|
92
|
+
recomputeAll = false;
|
|
93
|
+
for (const name of nameList) {
|
|
94
|
+
dirty.mark(name);
|
|
95
|
+
runtime.markDirty(name);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function computeStateSync() {
|
|
99
|
+
const dirtyFlags = dirty;
|
|
100
|
+
const dirtyNames = recomputeAll || dirtyFlags === null ? Array.from(qMap.keys()) : dirtyFlags.getDirty();
|
|
101
|
+
const shouldRecompute = recomputeAll || dirtyFlags === null ? () => true : (name) => dirtyFlags.isDirty(name);
|
|
102
|
+
const state = pool.acquire();
|
|
103
|
+
const { discrete, blend, css, glsl, aria } = accessCompositeState(state);
|
|
104
|
+
for (const [name] of qMap) {
|
|
105
|
+
if (shouldRecompute(name)) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const meta = metaMap.get(name);
|
|
109
|
+
const previousDiscrete = previousState.discrete[name];
|
|
110
|
+
if (previousDiscrete !== undefined) {
|
|
111
|
+
discrete[name] = previousDiscrete;
|
|
112
|
+
}
|
|
113
|
+
const previousBlend = previousState.blend[name];
|
|
114
|
+
blend[name] = previousBlend;
|
|
115
|
+
const previousCss = previousState.outputs.css[meta.cssKey];
|
|
116
|
+
if (previousCss !== undefined) {
|
|
117
|
+
css[meta.cssKey] = previousCss;
|
|
118
|
+
}
|
|
119
|
+
const previousGlsl = previousState.outputs.glsl[meta.glslKey];
|
|
120
|
+
if (previousGlsl !== undefined) {
|
|
121
|
+
glsl[meta.glslKey] = previousGlsl;
|
|
122
|
+
}
|
|
123
|
+
const previousAria = previousState.outputs.aria[meta.ariaKey];
|
|
124
|
+
if (previousAria !== undefined) {
|
|
125
|
+
aria[meta.ariaKey] = previousAria;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
for (const phase of runtime.phases) {
|
|
129
|
+
switch (phase) {
|
|
130
|
+
case 'compute-discrete':
|
|
131
|
+
for (const name of dirtyNames) {
|
|
132
|
+
const quantizer = qMap.get(name);
|
|
133
|
+
const prefetched = prefetchedStates.get(name);
|
|
134
|
+
const stateStr = prefetched ?? (quantizer.stateSync ? quantizer.stateSync() : Effect.runSync(quantizer.state));
|
|
135
|
+
discrete[name] = stateStr;
|
|
136
|
+
runtime.setState(name, stateStr);
|
|
137
|
+
prefetchedStates.delete(name);
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
case 'compute-blend':
|
|
141
|
+
for (const name of dirtyNames) {
|
|
142
|
+
const meta = metaMap.get(name);
|
|
143
|
+
const override = overrides.get(name);
|
|
144
|
+
if (override !== undefined) {
|
|
145
|
+
blend[name] = override;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
blend[name] = meta.oneHotWeights[discrete[name] ?? ''] ?? {};
|
|
149
|
+
}
|
|
150
|
+
break;
|
|
151
|
+
case 'emit-css':
|
|
152
|
+
for (const name of dirtyNames) {
|
|
153
|
+
const meta = metaMap.get(name);
|
|
154
|
+
const stateStr = discrete[name];
|
|
155
|
+
if (stateStr !== undefined && meta) {
|
|
156
|
+
css[meta.cssKey] = stateStr;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
case 'emit-glsl':
|
|
161
|
+
if (!frameBudget || frameBudget.canRun('high')) {
|
|
162
|
+
for (const name of dirtyNames) {
|
|
163
|
+
const meta = metaMap.get(name);
|
|
164
|
+
glsl[meta.glslKey] = runtime.getStateIndex(name);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
case 'emit-aria':
|
|
169
|
+
if (!frameBudget || frameBudget.canRun('low')) {
|
|
170
|
+
for (const name of dirtyNames) {
|
|
171
|
+
const meta = metaMap.get(name);
|
|
172
|
+
const stateStr = discrete[name];
|
|
173
|
+
if (stateStr !== undefined) {
|
|
174
|
+
aria[meta.ariaKey] = stateStr;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (dirty) {
|
|
182
|
+
dirty.clearAll();
|
|
183
|
+
}
|
|
184
|
+
// Two-slot rotation: the most-recently-published state stays readable for one
|
|
185
|
+
// more tick (so consumers who hold a reference returned from compute() see live
|
|
186
|
+
// data until the *next-next* publish). Without this rotation, every tick takes
|
|
187
|
+
// the overflow path in CompositorStatePool.acquire and the pool grows unboundedly.
|
|
188
|
+
const releasable = priorPreviousState;
|
|
189
|
+
priorPreviousState = previousState;
|
|
190
|
+
previousState = state;
|
|
191
|
+
Effect.runSync(SubscriptionRef.set(stateRef, state));
|
|
192
|
+
if (releasable && releasable !== state)
|
|
193
|
+
pool.release(releasable);
|
|
194
|
+
return state;
|
|
195
|
+
}
|
|
196
|
+
const compositor = {
|
|
197
|
+
add: (name, quantizer) => Effect.sync(() => {
|
|
198
|
+
// Quantizer<B> is covariant in B (B only appears in return types), so widening
|
|
199
|
+
// to Quantizer<Boundary.Shape> is sound; wrap in a named helper to document.
|
|
200
|
+
qMap.set(name, widenQuantizer(quantizer));
|
|
201
|
+
metaMap.set(name, {
|
|
202
|
+
cssKey: `--czap-${name}`,
|
|
203
|
+
glslKey: `u_${name}`,
|
|
204
|
+
ariaKey: `data-czap-${name}`,
|
|
205
|
+
oneHotWeights: Object.fromEntries(quantizer.boundary.states.map((activeState) => [
|
|
206
|
+
activeState,
|
|
207
|
+
Object.freeze(Object.fromEntries(quantizer.boundary.states.map((stateName) => [
|
|
208
|
+
stateName,
|
|
209
|
+
stateName === activeState ? 1 : 0,
|
|
210
|
+
]))),
|
|
211
|
+
])),
|
|
212
|
+
});
|
|
213
|
+
runtime.registerQuantizer(name, quantizer.boundary.states);
|
|
214
|
+
runtime.markDirty(name);
|
|
215
|
+
if (!nameList.includes(name)) {
|
|
216
|
+
nameList.push(name);
|
|
217
|
+
rebuildDirtyFlags();
|
|
218
|
+
}
|
|
219
|
+
if (dirty) {
|
|
220
|
+
dirty.mark(name);
|
|
221
|
+
}
|
|
222
|
+
if (useSpeculative) {
|
|
223
|
+
speculativeEvaluators.set(name, SpeculativeEvaluator.make(quantizer.boundary));
|
|
224
|
+
}
|
|
225
|
+
computeStateSync();
|
|
226
|
+
}),
|
|
227
|
+
remove: (name) => Effect.sync(() => {
|
|
228
|
+
qMap.delete(name);
|
|
229
|
+
metaMap.delete(name);
|
|
230
|
+
nameList = nameList.filter((entry) => entry !== name);
|
|
231
|
+
rebuildDirtyFlags();
|
|
232
|
+
runtime.removeQuantizer(name);
|
|
233
|
+
speculativeEvaluators.delete(name);
|
|
234
|
+
prefetchedStates.delete(name);
|
|
235
|
+
computeStateSync();
|
|
236
|
+
}),
|
|
237
|
+
compute: () => Effect.sync(() => computeStateSync()),
|
|
238
|
+
setBlendWeights: (name, weights) => Effect.sync(() => {
|
|
239
|
+
overrides.set(name, weights);
|
|
240
|
+
if (dirty) {
|
|
241
|
+
dirty.mark(name);
|
|
242
|
+
}
|
|
243
|
+
runtime.markDirty(name);
|
|
244
|
+
}),
|
|
245
|
+
evaluateSpeculative(name, value, velocity) {
|
|
246
|
+
const speculative = speculativeEvaluators.get(name);
|
|
247
|
+
if (!speculative) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const result = speculative.evaluate(value, velocity);
|
|
251
|
+
if (result.prefetched && result.confidence > 0.7) {
|
|
252
|
+
prefetchedStates.set(name, result.prefetched);
|
|
253
|
+
runtime.markDirty(name);
|
|
254
|
+
if (dirty) {
|
|
255
|
+
dirty.mark(name);
|
|
256
|
+
}
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
prefetchedStates.delete(name);
|
|
260
|
+
},
|
|
261
|
+
scheduleBatch() {
|
|
262
|
+
if (batchScheduled) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
batchScheduled = true;
|
|
266
|
+
queueMicrotask(() => {
|
|
267
|
+
batchScheduled = false;
|
|
268
|
+
computeStateSync();
|
|
269
|
+
});
|
|
270
|
+
},
|
|
271
|
+
changes: SubscriptionRef.changes(stateRef),
|
|
272
|
+
runtime,
|
|
273
|
+
};
|
|
274
|
+
return compositor;
|
|
275
|
+
});
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=compositor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compositor.js","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config -- unified project configuration hub.
|
|
3
|
+
*
|
|
4
|
+
* Config.make() produces a frozen, FNV-1a content-addressed Config.Shape.
|
|
5
|
+
* Projection functions are pure — no side effects, no I/O.
|
|
6
|
+
*/
|
|
7
|
+
import type { ContentAddress } from './brands.js';
|
|
8
|
+
import type { Boundary } from './boundary.js';
|
|
9
|
+
import type { Token } from './token.js';
|
|
10
|
+
import type { Theme } from './theme.js';
|
|
11
|
+
import type { Style } from './style.js';
|
|
12
|
+
/** Top-level discriminator for czap primitives: which bucket a declaration belongs to. */
|
|
13
|
+
export type PrimitiveKind = 'boundary' | 'token' | 'theme' | 'style';
|
|
14
|
+
/**
|
|
15
|
+
* Vite-plugin slice of a czap {@link Config.Shape}: source directories per
|
|
16
|
+
* primitive kind, HMR opt-in, environment targeting, and optional WASM hints.
|
|
17
|
+
*/
|
|
18
|
+
export interface PluginConfig {
|
|
19
|
+
readonly dirs?: Partial<Record<PrimitiveKind, string>>;
|
|
20
|
+
readonly hmr?: boolean;
|
|
21
|
+
readonly environments?: readonly ('browser' | 'server' | 'shader')[];
|
|
22
|
+
readonly wasm?: {
|
|
23
|
+
readonly enabled?: boolean;
|
|
24
|
+
readonly path?: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** Astro-integration slice of a czap {@link Config.Shape}. */
|
|
28
|
+
export interface AstroConfig {
|
|
29
|
+
readonly satellite?: boolean;
|
|
30
|
+
readonly edgeRuntime?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Config namespace — the single hub that every czap adapter (Vite, Astro, test
|
|
34
|
+
* runners, edge runtime) projects from. {@link Config.make} produces a frozen,
|
|
35
|
+
* FNV-1a content-addressed {@link Config.Shape}; every projection function
|
|
36
|
+
* (`toViteConfig`, `toAstroConfig`, `toTestAliases`) is pure.
|
|
37
|
+
*/
|
|
38
|
+
export declare const Config: {
|
|
39
|
+
/** Build a frozen, content-addressed {@link Config.Shape} from raw input. */
|
|
40
|
+
make(input: Config.Input): Config.Shape;
|
|
41
|
+
/** Project the Vite-plugin slice of a config for `@czap/vite`. */
|
|
42
|
+
toViteConfig(cfg: Config.Shape): PluginConfig;
|
|
43
|
+
/** Project the Astro-integration slice of a config for `@czap/astro`. */
|
|
44
|
+
toAstroConfig(cfg: Config.Shape): AstroConfig;
|
|
45
|
+
/** Materialize the `@czap/*` → source-path alias map used by the vitest runner. */
|
|
46
|
+
toTestAliases(cfg: Config.Shape, repoRoot: string): Record<string, string>;
|
|
47
|
+
};
|
|
48
|
+
export declare namespace Config {
|
|
49
|
+
/** Raw user-facing input to {@link Config.make} — every field is optional. */
|
|
50
|
+
interface Input {
|
|
51
|
+
readonly boundaries?: Record<string, Boundary.Shape>;
|
|
52
|
+
readonly tokens?: Record<string, Token.Shape>;
|
|
53
|
+
readonly themes?: Record<string, Theme.Shape>;
|
|
54
|
+
readonly styles?: Record<string, Style.Shape>;
|
|
55
|
+
readonly vite?: Partial<PluginConfig>;
|
|
56
|
+
readonly astro?: Partial<AstroConfig>;
|
|
57
|
+
}
|
|
58
|
+
/** Frozen, content-addressed result of {@link Config.make}. */
|
|
59
|
+
interface Shape {
|
|
60
|
+
readonly _tag: 'ConfigDef';
|
|
61
|
+
readonly id: ContentAddress;
|
|
62
|
+
readonly boundaries: Record<string, Boundary.Shape>;
|
|
63
|
+
readonly tokens: Record<string, Token.Shape>;
|
|
64
|
+
readonly themes: Record<string, Theme.Shape>;
|
|
65
|
+
readonly styles: Record<string, Style.Shape>;
|
|
66
|
+
readonly vite?: Partial<PluginConfig>;
|
|
67
|
+
readonly astro?: Partial<AstroConfig>;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Thin alias for {@link Config.make} — matches the `defineConfig(...)` ergonomics other tools use. */
|
|
71
|
+
export declare function defineConfig(input: Config.Input): Config.Shape;
|
|
72
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config -- unified project configuration hub.
|
|
3
|
+
*
|
|
4
|
+
* Config.make() produces a frozen, FNV-1a content-addressed Config.Shape.
|
|
5
|
+
* Projection functions are pure — no side effects, no I/O.
|
|
6
|
+
*/
|
|
7
|
+
import { fnv1a } from './fnv.js';
|
|
8
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
9
|
+
// Config namespace + value object (declaration merging — same pattern as Boundary)
|
|
10
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
/**
|
|
12
|
+
* Config namespace — the single hub that every czap adapter (Vite, Astro, test
|
|
13
|
+
* runners, edge runtime) projects from. {@link Config.make} produces a frozen,
|
|
14
|
+
* FNV-1a content-addressed {@link Config.Shape}; every projection function
|
|
15
|
+
* (`toViteConfig`, `toAstroConfig`, `toTestAliases`) is pure.
|
|
16
|
+
*/
|
|
17
|
+
export const Config = {
|
|
18
|
+
/** Build a frozen, content-addressed {@link Config.Shape} from raw input. */
|
|
19
|
+
make(input) {
|
|
20
|
+
// Sort named collection keys so insertion order doesn't affect the hash.
|
|
21
|
+
const sortKeys = (obj) => Object.fromEntries(Object.entries(obj).sort());
|
|
22
|
+
const canonical = JSON.stringify({
|
|
23
|
+
boundaries: sortKeys(input.boundaries ?? {}),
|
|
24
|
+
tokens: sortKeys(input.tokens ?? {}),
|
|
25
|
+
themes: sortKeys(input.themes ?? {}),
|
|
26
|
+
styles: sortKeys(input.styles ?? {}),
|
|
27
|
+
vite: input.vite,
|
|
28
|
+
astro: input.astro,
|
|
29
|
+
});
|
|
30
|
+
const id = fnv1a(canonical);
|
|
31
|
+
return Object.freeze({
|
|
32
|
+
_tag: 'ConfigDef',
|
|
33
|
+
id,
|
|
34
|
+
boundaries: input.boundaries ?? {},
|
|
35
|
+
tokens: input.tokens ?? {},
|
|
36
|
+
themes: input.themes ?? {},
|
|
37
|
+
styles: input.styles ?? {},
|
|
38
|
+
vite: input.vite,
|
|
39
|
+
astro: input.astro,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
/** Project the Vite-plugin slice of a config for `@czap/vite`. */
|
|
43
|
+
toViteConfig(cfg) {
|
|
44
|
+
return {
|
|
45
|
+
...(cfg.vite?.dirs !== undefined && { dirs: cfg.vite.dirs }),
|
|
46
|
+
...(cfg.vite?.hmr !== undefined && { hmr: cfg.vite.hmr }),
|
|
47
|
+
...(cfg.vite?.environments !== undefined && { environments: cfg.vite.environments }),
|
|
48
|
+
...(cfg.vite?.wasm !== undefined && { wasm: cfg.vite.wasm }),
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
/** Project the Astro-integration slice of a config for `@czap/astro`. */
|
|
52
|
+
toAstroConfig(cfg) {
|
|
53
|
+
return {
|
|
54
|
+
...(cfg.astro?.satellite !== undefined && { satellite: cfg.astro.satellite }),
|
|
55
|
+
...(cfg.astro?.edgeRuntime !== undefined && { edgeRuntime: cfg.astro.edgeRuntime }),
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
/** Materialize the `@czap/*` → source-path alias map used by the vitest runner. */
|
|
59
|
+
toTestAliases(cfg, repoRoot) {
|
|
60
|
+
void cfg; // cfg reserved for future per-project customisation
|
|
61
|
+
// Use forward-slash join so paths are portable across platforms.
|
|
62
|
+
const r = (sub) => `${repoRoot.replace(/\\/g, '/')}/${sub}`;
|
|
63
|
+
// NOTE: longer prefixes MUST come before shorter ones — vitest's alias
|
|
64
|
+
// resolver matches the first prefix in iteration order, so e.g.
|
|
65
|
+
// `@czap/core/testing` would be intercepted by `@czap/core` if listed first.
|
|
66
|
+
return {
|
|
67
|
+
'@czap/core/testing': r('packages/core/src/testing.ts'),
|
|
68
|
+
'@czap/core/harness': r('packages/core/src/harness/index.ts'),
|
|
69
|
+
'@czap/core': r('packages/core/src/index.ts'),
|
|
70
|
+
'@czap/quantizer/testing': r('packages/quantizer/src/testing.ts'),
|
|
71
|
+
'@czap/quantizer': r('packages/quantizer/src/index.ts'),
|
|
72
|
+
'@czap/compiler': r('packages/compiler/src/index.ts'),
|
|
73
|
+
'@czap/web/lite': r('packages/web/src/lite.ts'),
|
|
74
|
+
'@czap/web': r('packages/web/src/index.ts'),
|
|
75
|
+
'@czap/detect': r('packages/detect/src/index.ts'),
|
|
76
|
+
'@czap/vite/html-transform': r('packages/vite/src/html-transform.ts'),
|
|
77
|
+
'@czap/vite': r('packages/vite/src/index.ts'),
|
|
78
|
+
'@czap/astro/runtime': r('packages/astro/src/runtime/index.ts'),
|
|
79
|
+
'@czap/astro': r('packages/astro/src/index.ts'),
|
|
80
|
+
'@czap/remotion': r('packages/remotion/src/index.ts'),
|
|
81
|
+
'@czap/scene/dev': r('packages/scene/src/dev/server.ts'),
|
|
82
|
+
'@czap/scene': r('packages/scene/src/index.ts'),
|
|
83
|
+
'@czap/assets/testing': r('packages/assets/src/testing.ts'),
|
|
84
|
+
'@czap/assets': r('packages/assets/src/index.ts'),
|
|
85
|
+
'@czap/cli': r('packages/cli/src/index.ts'),
|
|
86
|
+
'@czap/mcp-server': r('packages/mcp-server/src/index.ts'),
|
|
87
|
+
'@czap/edge': r('packages/edge/src/index.ts'),
|
|
88
|
+
'@czap/worker': r('packages/worker/src/index.ts'),
|
|
89
|
+
'@czap/_spine': r('packages/_spine'),
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
/** Thin alias for {@link Config.make} — matches the `defineConfig(...)` ergonomics other tools use. */
|
|
94
|
+
export function defineConfig(input) {
|
|
95
|
+
return Config.make(input);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA0BjC,gFAAgF;AAChF,mFAAmF;AACnF,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,6EAA6E;IAC7E,IAAI,CAAC,KAAmB;QACtB,yEAAyE;QACzE,MAAM,QAAQ,GAAG,CAAI,GAAsB,EAAqB,EAAE,CAChE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;YAC5C,MAAM,EAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAQ,EAAE,CAAC;YAC5C,MAAM,EAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAQ,EAAE,CAAC;YAC5C,MAAM,EAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAQ,EAAE,CAAC;YAC5C,IAAI,EAAQ,KAAK,CAAC,IAAI;YACtB,KAAK,EAAO,KAAK,CAAC,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAQ,WAAoB;YAChC,EAAE;YACF,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;YAClC,MAAM,EAAM,KAAK,CAAC,MAAM,IAAQ,EAAE;YAClC,MAAM,EAAM,KAAK,CAAC,MAAM,IAAQ,EAAE;YAClC,MAAM,EAAM,KAAK,CAAC,MAAM,IAAQ,EAAE;YAClC,IAAI,EAAQ,KAAK,CAAC,IAAI;YACtB,KAAK,EAAO,KAAK,CAAC,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,YAAY,CAAC,GAAiB;QAC5B,OAAO;YACL,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAa,SAAS,IAAI,EAAE,IAAI,EAAU,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,KAAc,SAAS,IAAI,EAAE,GAAG,EAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3E,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpF,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAa,SAAS,IAAI,EAAE,IAAI,EAAU,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,aAAa,CAAC,GAAiB;QAC7B,OAAO;YACL,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,KAAO,SAAS,IAAI,EAAE,SAAS,EAAI,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACjF,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,aAAa,CAAC,GAAiB,EAAE,QAAgB;QAC/C,KAAK,GAAG,CAAC,CAAC,oDAAoD;QAC9D,iEAAiE;QACjE,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACpE,uEAAuE;QACvE,gEAAgE;QAChE,6EAA6E;QAC7E,OAAO;YACL,oBAAoB,EAAS,CAAC,CAAC,8BAA8B,CAAC;YAC9D,oBAAoB,EAAS,CAAC,CAAC,oCAAoC,CAAC;YACpE,YAAY,EAAiB,CAAC,CAAC,4BAA4B,CAAC;YAC5D,yBAAyB,EAAI,CAAC,CAAC,mCAAmC,CAAC;YACnE,iBAAiB,EAAY,CAAC,CAAC,iCAAiC,CAAC;YACjE,gBAAgB,EAAa,CAAC,CAAC,gCAAgC,CAAC;YAChE,gBAAgB,EAAa,CAAC,CAAC,0BAA0B,CAAC;YAC1D,WAAW,EAAkB,CAAC,CAAC,2BAA2B,CAAC;YAC3D,cAAc,EAAe,CAAC,CAAC,8BAA8B,CAAC;YAC9D,2BAA2B,EAAE,CAAC,CAAC,qCAAqC,CAAC;YACrE,YAAY,EAAiB,CAAC,CAAC,4BAA4B,CAAC;YAC5D,qBAAqB,EAAQ,CAAC,CAAC,qCAAqC,CAAC;YACrE,aAAa,EAAgB,CAAC,CAAC,6BAA6B,CAAC;YAC7D,gBAAgB,EAAa,CAAC,CAAC,gCAAgC,CAAC;YAChE,iBAAiB,EAAY,CAAC,CAAC,kCAAkC,CAAC;YAClE,aAAa,EAAgB,CAAC,CAAC,6BAA6B,CAAC;YAC7D,sBAAsB,EAAO,CAAC,CAAC,gCAAgC,CAAC;YAChE,cAAc,EAAe,CAAC,CAAC,8BAA8B,CAAC;YAC9D,WAAW,EAAkB,CAAC,CAAC,2BAA2B,CAAC;YAC3D,kBAAkB,EAAW,CAAC,CAAC,kCAAkC,CAAC;YAClE,YAAY,EAAiB,CAAC,CAAC,4BAA4B,CAAC;YAC5D,cAAc,EAAe,CAAC,CAAC,8BAA8B,CAAC;YAC9D,cAAc,EAAe,CAAC,CAAC,iBAAiB,CAAC;SAClD,CAAC;IACJ,CAAC;CACF,CAAC;AA0BF,uGAAuG;AACvG,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
|