@demlik/tea 0.13.0 → 0.14.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/README.md +11 -9
- package/dist/agent/index.d.ts +637 -45
- package/dist/agent/index.js +9 -19
- package/dist/{chunk-25LBDCBC.js → chunk-6IQPODUF.js} +2 -2
- package/dist/{chunk-25LBDCBC.js.map → chunk-6IQPODUF.js.map} +1 -1
- package/dist/chunk-AQ6ZIMEA.js +421 -0
- package/dist/chunk-AQ6ZIMEA.js.map +1 -0
- package/dist/{chunk-MUUROGIH.js → chunk-BLJ2JQSH.js} +62 -12
- package/dist/chunk-BLJ2JQSH.js.map +1 -0
- package/dist/{chunk-RH5EFRVJ.js → chunk-F2US5BW6.js} +25 -5
- package/dist/chunk-F2US5BW6.js.map +1 -0
- package/dist/{batch-window/index.js → chunk-F7FMAWLA.js} +4 -8
- package/dist/chunk-F7FMAWLA.js.map +1 -0
- package/dist/{chunk-O4MVQTEJ.js → chunk-HUKZQX6U.js} +20 -16
- package/dist/chunk-HUKZQX6U.js.map +1 -0
- package/dist/{chunk-EWJP3YYP.js → chunk-HWVW4AXC.js} +3 -3
- package/dist/chunk-HWVW4AXC.js.map +1 -0
- package/dist/{chunk-DMYGQB4O.js → chunk-HYDWG35Q.js} +23 -6
- package/dist/chunk-HYDWG35Q.js.map +1 -0
- package/dist/{chunk-YUXP55T2.js → chunk-I5MQMJDW.js} +57 -7
- package/dist/chunk-I5MQMJDW.js.map +1 -0
- package/dist/{chunk-J6527VRQ.js → chunk-LFZUK6J2.js} +3 -3
- package/dist/chunk-LFZUK6J2.js.map +1 -0
- package/dist/{chunk-ZVJZ72HY.js → chunk-LYLTKJWM.js} +25 -11
- package/dist/chunk-LYLTKJWM.js.map +1 -0
- package/dist/{chunk-D736QUGF.js → chunk-MYXFNWAJ.js} +4 -5
- package/dist/chunk-MYXFNWAJ.js.map +1 -0
- package/dist/{chunk-K575PT4S.js → chunk-PR6TB3BL.js} +15 -4
- package/dist/chunk-PR6TB3BL.js.map +1 -0
- package/dist/chunk-RQULHGYH.js +1804 -0
- package/dist/chunk-RQULHGYH.js.map +1 -0
- package/dist/{chunk-FV3Z5MBE.js → chunk-TXN2KFHF.js} +14 -4
- package/dist/chunk-TXN2KFHF.js.map +1 -0
- package/dist/{chunk-Q2UM7BXU.js → chunk-VBDU4JL6.js} +2 -2
- package/dist/chunk-VBDU4JL6.js.map +1 -0
- package/dist/chunk-Z2L3LSNV.js +1470 -0
- package/dist/chunk-Z2L3LSNV.js.map +1 -0
- package/dist/{core-Co0LWkIA.d.ts → core-CTzMJ82M.d.ts} +72 -23
- package/dist/devtools/index.d.ts +2 -2
- package/dist/devtools/index.js +207 -2
- package/dist/devtools/index.js.map +1 -1
- package/dist/do/index.d.ts +42 -29
- package/dist/do/index.js +36 -25
- package/dist/do/index.js.map +1 -1
- package/dist/{durable-effects-C6uwzjb5.d.ts → durable-effects-B0-qGQDy.d.ts} +2 -2
- package/dist/extension/index.d.ts +300 -3
- package/dist/extension/index.js +596 -5
- package/dist/extension/index.js.map +1 -1
- package/dist/flow/index.d.ts +1295 -0
- package/dist/flow/index.js +732 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/idempotency/index.d.ts +90 -116
- package/dist/idempotency/index.js +4 -1
- package/dist/{batch-window/index.d.ts → index-4vZzljCD.d.ts} +7 -12
- package/dist/{fan-out/index.d.ts → index-6A7dB8f6.d.ts} +7 -9
- package/dist/index-B5BZ-_cT.d.ts +616 -0
- package/dist/index-Bc40JWVl.d.ts +131 -0
- package/dist/{debounce/index.d.ts → index-DHSUmQTR.d.ts} +7 -7
- package/dist/index-DJWIER_3.d.ts +69 -0
- package/dist/{snapshot/index.d.ts → index-DMCeMPMJ.d.ts} +15 -78
- package/dist/{monitored-run/index.d.ts → index-NjrT3fL2.d.ts} +37 -13
- package/dist/{recorder/index.d.ts → index-TvRb1KVf.d.ts} +4 -7
- package/dist/{deadline/index.d.ts → index-q0hXFeZ0.d.ts} +155 -9
- package/dist/index.d.ts +711 -6
- package/dist/index.js +1 -2
- package/dist/jev/index.d.ts +634 -0
- package/dist/jev/index.js +433 -0
- package/dist/jev/index.js.map +1 -0
- package/dist/machine-CdIcN2Xm.d.ts +1773 -0
- package/dist/machine-viz/index.d.ts +1 -1
- package/dist/machine-viz/index.js +12 -5
- package/dist/machine-viz/index.js.map +1 -1
- package/dist/mem/index.d.ts +18 -3
- package/dist/mem/index.js +22 -2
- package/dist/mem/index.js.map +1 -1
- package/dist/node/index.d.ts +104 -6
- package/dist/node/index.js +132 -9
- package/dist/node/index.js.map +1 -1
- package/dist/{paginator → paginate}/index.d.ts +151 -6
- package/dist/paginate/index.js +7 -0
- package/dist/parity/index.d.ts +4 -10
- package/dist/parity/index.js +4 -7
- package/dist/parity/index.js.map +1 -1
- package/dist/pbt/index.d.ts +247 -5
- package/dist/pbt/index.js +124 -5
- package/dist/pbt/index.js.map +1 -1
- package/dist/{trace-replay → persistence}/index.d.ts +7 -5
- package/dist/persistence/index.js +6 -0
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +1 -2
- package/dist/react/index.js.map +1 -1
- package/dist/resilience/index.d.ts +743 -0
- package/dist/resilience/index.js +657 -0
- package/dist/resilience/index.js.map +1 -0
- package/dist/retry-backoff/index.d.ts +3 -2
- package/dist/retry-backoff/index.js +1 -1
- package/dist/runtime-types-LWDoi943.d.ts +998 -0
- package/dist/testing/index.d.ts +2 -2
- package/dist/testing/index.js +1 -2
- package/dist/testing/index.js.map +1 -1
- package/dist/{throttled-input → timing}/index.d.ts +143 -12
- package/dist/{throttled-input → timing}/index.js +57 -12
- package/dist/timing/index.js.map +1 -0
- package/dist/{types-XS_miRnB.d.ts → types-DP3f5NIl.d.ts} +1 -1
- package/dist/work-queue/index.d.ts +130 -54
- package/dist/work-queue/index.js +3 -2
- package/dist/work-queue/index.js.map +1 -1
- package/package.json +45 -218
- package/dist/authed-call/index.d.ts +0 -120
- package/dist/authed-call/index.js +0 -134
- package/dist/authed-call/index.js.map +0 -1
- package/dist/await-terminal/index.d.ts +0 -101
- package/dist/await-terminal/index.js +0 -76
- package/dist/await-terminal/index.js.map +0 -1
- package/dist/batch-window/index.js.map +0 -1
- package/dist/cache/index.d.ts +0 -152
- package/dist/cache/index.js +0 -8
- package/dist/chart/index.d.ts +0 -218
- package/dist/chart/index.js +0 -16
- package/dist/chart/index.js.map +0 -1
- package/dist/chart/inspect/index.d.ts +0 -86
- package/dist/chart/inspect/index.js +0 -5
- package/dist/chart/inspect/react.d.ts +0 -113
- package/dist/chart/inspect/react.js +0 -11
- package/dist/chart/inspect/react.js.map +0 -1
- package/dist/chart/inspect/styles.css +0 -286
- package/dist/chart/lane/index.d.ts +0 -362
- package/dist/chart/lane/index.js +0 -9
- package/dist/chart/lane/index.js.map +0 -1
- package/dist/chart/lane/react.d.ts +0 -84
- package/dist/chart/lane/react.js +0 -559
- package/dist/chart/lane/react.js.map +0 -1
- package/dist/chart/lane/server.d.ts +0 -148
- package/dist/chart/lane/server.js +0 -209
- package/dist/chart/lane/server.js.map +0 -1
- package/dist/chart/lane/styles.css +0 -498
- package/dist/chart/lane/viewer/assets/abnfDiagram-N423BO3Z-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/architectureDiagram-T3A2C74G-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/blockDiagram-VBNYF7ZC-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/c4Diagram-5PPSVZJV-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/chunk-2GRJ4B5K-HdDf8SI3.js +0 -1
- package/dist/chart/lane/viewer/assets/chunk-5RXB4S5H-CcNtpUd7.js +0 -231
- package/dist/chart/lane/viewer/assets/chunk-5VM5RSS4-BP4fRS_5.js +0 -15
- package/dist/chart/lane/viewer/assets/chunk-KBJHAD2P-DZOw7xU6.js +0 -1
- package/dist/chart/lane/viewer/assets/chunk-NSK5VX7P-CBCyTZMs.js +0 -128
- package/dist/chart/lane/viewer/assets/classDiagram-JCYQIIEL-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/classDiagram-v2-OCEON4UE-D4uAiFr8.js +0 -206
- package/dist/chart/lane/viewer/assets/cose-bilkent-JH36ORCC-DOwCrGXH.js +0 -1
- package/dist/chart/lane/viewer/assets/cynefinDiagram-MW4NZA55-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/dagre-K_PewWfS.js +0 -1
- package/dist/chart/lane/viewer/assets/dagre-VZM6K2ZE-831qZcA8.js +0 -4
- package/dist/chart/lane/viewer/assets/diagram-7IWD3JNH-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/diagram-B4RE2ZJO-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/diagram-LBJQPF4R-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/diagram-Q27KOJAE-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/diagram-UB23O5K3-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/ebnfDiagram-BXEA7PRR-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/erDiagram-JOGREHBK-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/flowDiagram-UKHOOZJN-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/ganttDiagram-PKOTCBZU-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/gitGraphDiagram-DS77QQ5N-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/index-9SkH5NA3.css +0 -1
- package/dist/chart/lane/viewer/assets/index-Bgt4sXpW.js +0 -195
- package/dist/chart/lane/viewer/assets/infoDiagram-6WML65LV-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/ishikawaDiagram-WSZJBQD7-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/journeyDiagram-NVQOT4AX-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/kanban-definition-27J2QSJJ-G7PaPzy-.js +0 -89
- package/dist/chart/lane/viewer/assets/katex-DOwCrGXH.js +0 -1
- package/dist/chart/lane/viewer/assets/mindmap-definition-FAOFIHXS-CGj9nrVk.js +0 -96
- package/dist/chart/lane/viewer/assets/path-fybaL0A-.js +0 -1
- package/dist/chart/lane/viewer/assets/pegDiagram-VL7TDLO6-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/pieDiagram-7S7Q4E2Y-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/quadrantDiagram-CIZ2JOQS-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/railroadDiagram-AXF67PYL-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/requirementDiagram-LRYGKXZP-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/sankeyDiagram-W5VNT64P-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/sequenceDiagram-SI44F4Z6-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/stateDiagram-OKZ733FA-B_88AzBS.js +0 -1
- package/dist/chart/lane/viewer/assets/stateDiagram-v2-UEYNNEHI-CR5gcgq6.js +0 -1
- package/dist/chart/lane/viewer/assets/swimlanes-SLNWSIFB-B4xK-rwg.js +0 -1
- package/dist/chart/lane/viewer/assets/swimlanesDiagram-ULZ7WXOC-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/timeline-definition-Z64GVDOM-CCv52MfY.js +0 -120
- package/dist/chart/lane/viewer/assets/vennDiagram-T6HMQDX7-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/wardleyDiagram-T6FBY63Y-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/assets/xychartDiagram-ELKLHX3M-C729LI31.js +0 -1
- package/dist/chart/lane/viewer/index.html +0 -15
- package/dist/chart/report/index.d.ts +0 -117
- package/dist/chart/report/index.js +0 -32
- package/dist/chart/report/index.js.map +0 -1
- package/dist/chunk-2YFLOCWX.js +0 -15
- package/dist/chunk-2YFLOCWX.js.map +0 -1
- package/dist/chunk-3I52QZZ5.js +0 -519
- package/dist/chunk-3I52QZZ5.js.map +0 -1
- package/dist/chunk-3ZAFFRRB.js +0 -457
- package/dist/chunk-3ZAFFRRB.js.map +0 -1
- package/dist/chunk-4EQZ76JC.js +0 -33
- package/dist/chunk-4EQZ76JC.js.map +0 -1
- package/dist/chunk-4KLG43GY.js +0 -223
- package/dist/chunk-4KLG43GY.js.map +0 -1
- package/dist/chunk-7FRZ2CT2.js +0 -424
- package/dist/chunk-7FRZ2CT2.js.map +0 -1
- package/dist/chunk-AZZLE7XR.js +0 -62
- package/dist/chunk-AZZLE7XR.js.map +0 -1
- package/dist/chunk-BYQUGDD3.js +0 -16
- package/dist/chunk-BYQUGDD3.js.map +0 -1
- package/dist/chunk-CIQG5L42.js +0 -685
- package/dist/chunk-CIQG5L42.js.map +0 -1
- package/dist/chunk-CLM6ERNO.js +0 -61
- package/dist/chunk-CLM6ERNO.js.map +0 -1
- package/dist/chunk-COS5MSTO.js +0 -88
- package/dist/chunk-COS5MSTO.js.map +0 -1
- package/dist/chunk-CRPZJVD2.js +0 -71
- package/dist/chunk-CRPZJVD2.js.map +0 -1
- package/dist/chunk-D62FDQKE.js +0 -53
- package/dist/chunk-D62FDQKE.js.map +0 -1
- package/dist/chunk-D736QUGF.js.map +0 -1
- package/dist/chunk-DGE4PV4A.js +0 -26
- package/dist/chunk-DGE4PV4A.js.map +0 -1
- package/dist/chunk-DMYGQB4O.js.map +0 -1
- package/dist/chunk-EWJP3YYP.js.map +0 -1
- package/dist/chunk-FV3Z5MBE.js.map +0 -1
- package/dist/chunk-HCEVHFJ7.js +0 -54
- package/dist/chunk-HCEVHFJ7.js.map +0 -1
- package/dist/chunk-J6527VRQ.js.map +0 -1
- package/dist/chunk-JELSZN25.js +0 -47
- package/dist/chunk-JELSZN25.js.map +0 -1
- package/dist/chunk-K575PT4S.js.map +0 -1
- package/dist/chunk-L57ZOT5K.js +0 -184
- package/dist/chunk-L57ZOT5K.js.map +0 -1
- package/dist/chunk-MU6MCIAC.js +0 -15
- package/dist/chunk-MU6MCIAC.js.map +0 -1
- package/dist/chunk-MUUROGIH.js.map +0 -1
- package/dist/chunk-NR7BU22N.js +0 -758
- package/dist/chunk-NR7BU22N.js.map +0 -1
- package/dist/chunk-O4MVQTEJ.js.map +0 -1
- package/dist/chunk-OOYD44JI.js +0 -317
- package/dist/chunk-OOYD44JI.js.map +0 -1
- package/dist/chunk-Q2UM7BXU.js.map +0 -1
- package/dist/chunk-RH5EFRVJ.js.map +0 -1
- package/dist/chunk-S2EGRPCM.js +0 -47
- package/dist/chunk-S2EGRPCM.js.map +0 -1
- package/dist/chunk-SINXE47Y.js +0 -55
- package/dist/chunk-SINXE47Y.js.map +0 -1
- package/dist/chunk-UF4MZSLT.js +0 -53
- package/dist/chunk-UF4MZSLT.js.map +0 -1
- package/dist/chunk-UOC2PL46.js +0 -13
- package/dist/chunk-UOC2PL46.js.map +0 -1
- package/dist/chunk-VYFAZN3F.js +0 -372
- package/dist/chunk-VYFAZN3F.js.map +0 -1
- package/dist/chunk-WRAA7GVZ.js +0 -209
- package/dist/chunk-WRAA7GVZ.js.map +0 -1
- package/dist/chunk-XGELA764.js +0 -163
- package/dist/chunk-XGELA764.js.map +0 -1
- package/dist/chunk-YUXP55T2.js.map +0 -1
- package/dist/chunk-YWIKDKHY.js +0 -307
- package/dist/chunk-YWIKDKHY.js.map +0 -1
- package/dist/chunk-ZJ5AOYBH.js +0 -8
- package/dist/chunk-ZJ5AOYBH.js.map +0 -1
- package/dist/chunk-ZSUUOEPL.js +0 -731
- package/dist/chunk-ZSUUOEPL.js.map +0 -1
- package/dist/chunk-ZVJZ72HY.js.map +0 -1
- package/dist/circuit-breaker/index.d.ts +0 -197
- package/dist/circuit-breaker/index.js +0 -3
- package/dist/circuit-breaker/index.js.map +0 -1
- package/dist/deadline/index.js +0 -6
- package/dist/deadline/index.js.map +0 -1
- package/dist/debounce/index.js +0 -3
- package/dist/debounce/index.js.map +0 -1
- package/dist/extension/react.d.ts +0 -121
- package/dist/extension/react.js +0 -75
- package/dist/extension/react.js.map +0 -1
- package/dist/extension/subs/index.d.ts +0 -45
- package/dist/extension/subs/index.js +0 -80
- package/dist/extension/subs/index.js.map +0 -1
- package/dist/extension/test-utils.d.ts +0 -128
- package/dist/extension/test-utils.js +0 -277
- package/dist/extension/test-utils.js.map +0 -1
- package/dist/fan-out/index.js +0 -5
- package/dist/fan-out/index.js.map +0 -1
- package/dist/fold-BJPdjc9w.d.ts +0 -435
- package/dist/graph-B3L5e0N1.d.ts +0 -923
- package/dist/idempotency/adapter.d.ts +0 -62
- package/dist/idempotency/adapter.js +0 -4
- package/dist/idempotency/adapter.js.map +0 -1
- package/dist/idempotent-intake/index.d.ts +0 -188
- package/dist/idempotent-intake/index.js +0 -7
- package/dist/idempotent-intake/index.js.map +0 -1
- package/dist/journal/index.d.ts +0 -373
- package/dist/journal/index.js +0 -3
- package/dist/journal/index.js.map +0 -1
- package/dist/llm-call/index.d.ts +0 -311
- package/dist/llm-call/index.js +0 -16
- package/dist/llm-call/index.js.map +0 -1
- package/dist/machine-BtFWQmmq.d.ts +0 -804
- package/dist/monitored-run/index.js +0 -10
- package/dist/monitored-run/index.js.map +0 -1
- package/dist/paginated-walk/index.d.ts +0 -235
- package/dist/paginated-walk/index.js +0 -16
- package/dist/paginated-walk/index.js.map +0 -1
- package/dist/paginator/index.js +0 -3
- package/dist/paginator/index.js.map +0 -1
- package/dist/pbt/arbitraries/index.d.ts +0 -136
- package/dist/pbt/arbitraries/index.js +0 -3
- package/dist/pbt/arbitraries/index.js.map +0 -1
- package/dist/pbt/runners/index.d.ts +0 -118
- package/dist/pbt/runners/index.js +0 -5
- package/dist/pbt/runners/index.js.map +0 -1
- package/dist/poller/index.d.ts +0 -352
- package/dist/poller/index.js +0 -115
- package/dist/poller/index.js.map +0 -1
- package/dist/prediction/index.d.ts +0 -131
- package/dist/prediction/index.js +0 -4
- package/dist/prediction/index.js.map +0 -1
- package/dist/protocol-B5YmJr0d.d.ts +0 -45
- package/dist/pure/index.d.ts +0 -3
- package/dist/pure/index.js +0 -4
- package/dist/pure/index.js.map +0 -1
- package/dist/rate-limit/index.d.ts +0 -115
- package/dist/rate-limit/index.js +0 -3
- package/dist/rate-limit/index.js.map +0 -1
- package/dist/reconciler/index.d.ts +0 -193
- package/dist/reconciler/index.js +0 -164
- package/dist/reconciler/index.js.map +0 -1
- package/dist/recorder/index.js +0 -3
- package/dist/recorder/index.js.map +0 -1
- package/dist/reducer-4GNR6b8B.d.ts +0 -447
- package/dist/resilient-call/index.d.ts +0 -320
- package/dist/resilient-call/index.js +0 -14
- package/dist/resilient-call/index.js.map +0 -1
- package/dist/retry-to-success/index.d.ts +0 -109
- package/dist/retry-to-success/index.js +0 -37
- package/dist/retry-to-success/index.js.map +0 -1
- package/dist/run-pAcmBpah.d.ts +0 -713
- package/dist/runtime-types-CNLmhWif.d.ts +0 -517
- package/dist/saga/index.d.ts +0 -241
- package/dist/saga/index.js +0 -150
- package/dist/saga/index.js.map +0 -1
- package/dist/samples-B3My5oh2.d.ts +0 -59
- package/dist/snapshot/index.js +0 -5
- package/dist/snapshot/index.js.map +0 -1
- package/dist/subs/index.d.ts +0 -472
- package/dist/subs/index.js +0 -7
- package/dist/subs/index.js.map +0 -1
- package/dist/throttle/index.d.ts +0 -134
- package/dist/throttle/index.js +0 -3
- package/dist/throttle/index.js.map +0 -1
- package/dist/throttled-input/index.js.map +0 -1
- package/dist/token-refresh/index.d.ts +0 -216
- package/dist/token-refresh/index.js +0 -6
- package/dist/token-refresh/index.js.map +0 -1
- package/dist/trace-replay/index.js +0 -6
- package/dist/trace-replay/index.js.map +0 -1
- package/dist/with-deadline/index.d.ts +0 -197
- package/dist/with-deadline/index.js +0 -111
- package/dist/with-deadline/index.js.map +0 -1
- package/dist/with-resilience/index.d.ts +0 -225
- package/dist/with-resilience/index.js +0 -240
- package/dist/with-resilience/index.js.map +0 -1
- package/dist/with-telemetry/index.d.ts +0 -150
- package/dist/with-telemetry/index.js +0 -70
- package/dist/with-telemetry/index.js.map +0 -1
- package/dist/work-queue/adapter.d.ts +0 -84
- package/dist/work-queue/adapter.js +0 -4
- package/dist/work-queue/adapter.js.map +0 -1
- package/dist/work-queue/ops.d.ts +0 -71
- package/dist/work-queue/ops.js +0 -3
- package/dist/work-queue/ops.js.map +0 -1
- package/dist/workflow/index.d.ts +0 -485
- package/dist/workflow/index.js +0 -244
- package/dist/workflow/index.js.map +0 -1
- /package/dist/{cache → paginate}/index.js.map +0 -0
- /package/dist/{chart/inspect → persistence}/index.js.map +0 -0
package/dist/chunk-ZSUUOEPL.js
DELETED
|
@@ -1,731 +0,0 @@
|
|
|
1
|
-
import { detectUpdateForm, foldUpdates, depsInactive, structuralHash, lookupCell, NoCellError, __DEV__, deepFreeze, assertPureResult, applyCellChecked, malformedResult } from './chunk-OOYD44JI.js';
|
|
2
|
-
import { Result } from 'better-result';
|
|
3
|
-
|
|
4
|
-
// src/observability.ts
|
|
5
|
-
function historyTracker(runtime, size) {
|
|
6
|
-
const buffer = [];
|
|
7
|
-
let stopped = false;
|
|
8
|
-
const push = (entry) => {
|
|
9
|
-
buffer.push(entry);
|
|
10
|
-
if (buffer.length > size) buffer.shift();
|
|
11
|
-
};
|
|
12
|
-
const unobserve = size <= 0 ? () => {
|
|
13
|
-
} : runtime.observe((msg, state) => {
|
|
14
|
-
push({ msg, state });
|
|
15
|
-
});
|
|
16
|
-
const unboot = size <= 0 ? () => {
|
|
17
|
-
} : runtime.onBoot((state) => {
|
|
18
|
-
push({ msg: null, state });
|
|
19
|
-
});
|
|
20
|
-
return {
|
|
21
|
-
snapshot() {
|
|
22
|
-
return buffer.slice();
|
|
23
|
-
},
|
|
24
|
-
stop() {
|
|
25
|
-
if (stopped) return;
|
|
26
|
-
stopped = true;
|
|
27
|
-
unobserve();
|
|
28
|
-
unboot();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function absurd(x) {
|
|
33
|
-
throw new Error(`unreachable: ${JSON.stringify(x)}`);
|
|
34
|
-
}
|
|
35
|
-
var noop = (state, _msg) => [state, []];
|
|
36
|
-
var definedPortNames = /* @__PURE__ */ new Set();
|
|
37
|
-
var PortNameCollisionError = class extends Error {
|
|
38
|
-
name = "PortNameCollisionError";
|
|
39
|
-
_tag = "PortNameCollisionError";
|
|
40
|
-
constructor(portName) {
|
|
41
|
-
super(
|
|
42
|
-
`definePort: a port named "${portName}" was already defined. Each definePort call must use a unique name. If two modules need the same port, export it from one module and import it.`
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
var SubIdCollisionError = class extends Error {
|
|
47
|
-
name = "SubIdCollisionError";
|
|
48
|
-
_tag = "SubIdCollisionError";
|
|
49
|
-
constructor(id, declaredType, conflictingType) {
|
|
50
|
-
super(
|
|
51
|
-
`@demlik/tea: Sub.id collision: id="${id}" declared as type="${declaredType}" and type="${conflictingType}"`
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
function __resetPortRegistry() {
|
|
56
|
-
definedPortNames.clear();
|
|
57
|
-
}
|
|
58
|
-
var QuiescenceTimeoutError = class extends Error {
|
|
59
|
-
constructor(iterations) {
|
|
60
|
-
super(
|
|
61
|
-
`@demlik/tea: idle() did not reach quiescence after ${iterations} iterations \u2014 the dispatch tail kept advancing. The machine is likely livelocking (an interpret handler enqueues a follow-up Msg that enqueues another, without end). Bound the follow-up chain in the reducer, or stop the runtime.`
|
|
62
|
-
);
|
|
63
|
-
this.iterations = iterations;
|
|
64
|
-
}
|
|
65
|
-
iterations;
|
|
66
|
-
name = "QuiescenceTimeoutError";
|
|
67
|
-
_tag = "QuiescenceTimeoutError";
|
|
68
|
-
};
|
|
69
|
-
var RuntimeDiscardNotice = class extends Error {
|
|
70
|
-
};
|
|
71
|
-
var RuntimeDiscardedError = class extends RuntimeDiscardNotice {
|
|
72
|
-
constructor(pendingCmds) {
|
|
73
|
-
super(
|
|
74
|
-
`@demlik/tea: runtime stopped with ${pendingCmds} Cmd(s) in flight \u2014 their results will reach no listener. In React this is usually a ctx-identity change rebuilding useMachine's runtime mid-flight: stabilize the ctx (useMemo / useState) so the runtime outlives the Cmds it started. An intentional teardown (unmount, navigation) can silence this with a run({ onError }) sink that ignores phase: "discard".`
|
|
75
|
-
);
|
|
76
|
-
this.pendingCmds = pendingCmds;
|
|
77
|
-
}
|
|
78
|
-
pendingCmds;
|
|
79
|
-
name = "RuntimeDiscardedError";
|
|
80
|
-
_tag = "RuntimeDiscardedError";
|
|
81
|
-
};
|
|
82
|
-
var IdentityDropNotice = class extends RuntimeDiscardNotice {
|
|
83
|
-
constructor(msgType) {
|
|
84
|
-
super(
|
|
85
|
-
`@demlik/tea: Msg "${msgType}" was addressed to a different instance than this state owns and was dropped before \`update\` ran \u2014 the machine's \`identity\` filter working as declared. If this Msg was meant for THIS instance, its \`ofMsg\` projection disagrees with \`ofState\`; if the instance is being reused across runs, route the message to the run that owns it.`
|
|
86
|
-
);
|
|
87
|
-
this.msgType = msgType;
|
|
88
|
-
}
|
|
89
|
-
msgType;
|
|
90
|
-
name = "IdentityDropNotice";
|
|
91
|
-
_tag = "IdentityDropNotice";
|
|
92
|
-
};
|
|
93
|
-
var DisposeTimeoutNotice = class extends RuntimeDiscardNotice {
|
|
94
|
-
constructor(pendingDisposals, timeoutMs) {
|
|
95
|
-
super(
|
|
96
|
-
`@demlik/tea: stop() gave up waiting for ${pendingDisposals} async teardown(s) after ${timeoutMs}ms \u2014 the resources they release may still be open. Make \`release\` / the Sub cleanup settle (bound its own IO), or raise run({ disposeTimeoutMs }).`
|
|
97
|
-
);
|
|
98
|
-
this.pendingDisposals = pendingDisposals;
|
|
99
|
-
this.timeoutMs = timeoutMs;
|
|
100
|
-
}
|
|
101
|
-
pendingDisposals;
|
|
102
|
-
timeoutMs;
|
|
103
|
-
name = "DisposeTimeoutNotice";
|
|
104
|
-
_tag = "DisposeTimeoutNotice";
|
|
105
|
-
};
|
|
106
|
-
var DispatchDiscardedError = class extends RuntimeDiscardNotice {
|
|
107
|
-
constructor(msgType) {
|
|
108
|
-
super(
|
|
109
|
-
`@demlik/tea: Msg "${msgType}" arrived while the runtime was stopping and was discarded \u2014 stop() refuses new work so the drain terminates. It is the result of a Cmd that outlived its runtime; keep the runtime alive until the Cmd settles (in React: stabilize useMachine's ctx) if the transition matters.`
|
|
110
|
-
);
|
|
111
|
-
this.msgType = msgType;
|
|
112
|
-
}
|
|
113
|
-
msgType;
|
|
114
|
-
name = "DispatchDiscardedError";
|
|
115
|
-
_tag = "DispatchDiscardedError";
|
|
116
|
-
};
|
|
117
|
-
function definePort(name) {
|
|
118
|
-
let isHmr = false;
|
|
119
|
-
try {
|
|
120
|
-
const meta = import.meta;
|
|
121
|
-
isHmr = meta?.hot !== void 0 && meta?.hot !== null;
|
|
122
|
-
} catch {
|
|
123
|
-
isHmr = false;
|
|
124
|
-
}
|
|
125
|
-
if (!isHmr && definedPortNames.has(name)) {
|
|
126
|
-
throw new PortNameCollisionError(name);
|
|
127
|
-
}
|
|
128
|
-
definedPortNames.add(name);
|
|
129
|
-
return { __brand: "port", name };
|
|
130
|
-
}
|
|
131
|
-
function schemaMigrate(schema, upcast = (raw) => raw) {
|
|
132
|
-
return (raw) => {
|
|
133
|
-
let migrated;
|
|
134
|
-
try {
|
|
135
|
-
migrated = upcast(raw);
|
|
136
|
-
} catch {
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
const parsed = schema.safeParse(migrated);
|
|
140
|
-
return parsed.success ? parsed.data : null;
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function defineMachine(m) {
|
|
144
|
-
if (m.__form === void 0) {
|
|
145
|
-
Object.defineProperty(m, "__form", {
|
|
146
|
-
value: detectUpdateForm(m.update),
|
|
147
|
-
enumerable: false,
|
|
148
|
-
writable: false,
|
|
149
|
-
configurable: true
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
return m;
|
|
153
|
-
}
|
|
154
|
-
function asReducer(reducer) {
|
|
155
|
-
return reducer;
|
|
156
|
-
}
|
|
157
|
-
function replay(machine, opts) {
|
|
158
|
-
const loaded = opts.loaded ?? null;
|
|
159
|
-
const [initialState, initCmds] = machine.init(loaded, opts.ctx);
|
|
160
|
-
if (loaded !== null && initCmds.length > 0) {
|
|
161
|
-
throw new Error(
|
|
162
|
-
"TEA contract violation: machine.init must return [state, []] (no Cmds) when `loaded` is non-null. Init's rehydrate branch is a pure state passthrough \u2014 the migration/parse boundary, not the boot-effect hook.\n\nRoutes for boot effects:\n - Stateless infrastructure (e.g. chrome.alarms ensure) \u2192 host module top level, outside TEA.\n - State-conditional resume (e.g. re-attach a session) \u2192 a `boot` Msg dispatched once from the host after `run(...)` returns, handled in update.\n\nSee .patterns/tea/tea-invariants.md (Invariant 2)."
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
const { state, cmds: foldedCmds } = foldUpdates(
|
|
166
|
-
machine,
|
|
167
|
-
initialState,
|
|
168
|
-
opts.msgs
|
|
169
|
-
);
|
|
170
|
-
const cmds = [...initCmds, ...foldedCmds];
|
|
171
|
-
const subs = machine.subscriptions ? [...machine.subscriptions(state)] : [];
|
|
172
|
-
const depSubs = [];
|
|
173
|
-
if (machine.subs) {
|
|
174
|
-
for (const [index, entry] of machine.subs.entries()) {
|
|
175
|
-
const deps = entry.deps(state);
|
|
176
|
-
if (!depsInactive(deps))
|
|
177
|
-
depSubs.push({ index, id: structuralHash(deps) });
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return { state, cmds, subs, depSubs };
|
|
181
|
-
}
|
|
182
|
-
function wrapDetached(handler) {
|
|
183
|
-
return (cmd, ctx, dispatch) => {
|
|
184
|
-
if (dispatch === void 0) {
|
|
185
|
-
throw new Error(
|
|
186
|
-
"@demlik/tea: a wrapDetached handler was invoked without the injected dispatch. The kernel always supplies it; call the handler through the runtime, not directly."
|
|
187
|
-
);
|
|
188
|
-
}
|
|
189
|
-
return handler(cmd, ctx, dispatch);
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
function tryApplyCell(machine, state, msg) {
|
|
193
|
-
const { cell, stateName } = lookupCell(machine, state, msg);
|
|
194
|
-
if (cell === void 0) {
|
|
195
|
-
return Result.err(new NoCellError(msg.type, stateName));
|
|
196
|
-
}
|
|
197
|
-
return Result.ok(cell(state, msg));
|
|
198
|
-
}
|
|
199
|
-
function tryFoldMsgs(machine, base, msgs) {
|
|
200
|
-
let state = base;
|
|
201
|
-
for (const [index, msg] of msgs.entries()) {
|
|
202
|
-
if (__DEV__) deepFreeze(state);
|
|
203
|
-
const stepped = tryApplyCell(machine, state, msg);
|
|
204
|
-
if (Result.isError(stepped)) {
|
|
205
|
-
return Result.err({ index, msg, error: stepped.error });
|
|
206
|
-
}
|
|
207
|
-
if (__DEV__) assertPureResult(stepped.value, msg.type);
|
|
208
|
-
state = stepped.value[0];
|
|
209
|
-
}
|
|
210
|
-
return Result.ok(state);
|
|
211
|
-
}
|
|
212
|
-
function settle(def, work) {
|
|
213
|
-
const builders = def;
|
|
214
|
-
return async (cmd, ctx) => {
|
|
215
|
-
const result = await work(cmd, ctx);
|
|
216
|
-
return result.match({
|
|
217
|
-
ok: (value) => builders.ok(cmd, value),
|
|
218
|
-
err: (error) => builders.err(cmd, error)
|
|
219
|
-
});
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
function tryInterpret(work, onOk, onErr) {
|
|
223
|
-
return async (cmd, ctx) => {
|
|
224
|
-
const result = await Result.tryPromise({
|
|
225
|
-
try: () => work(cmd, ctx),
|
|
226
|
-
catch: (error) => error
|
|
227
|
-
});
|
|
228
|
-
return result.match({
|
|
229
|
-
ok: (value) => onOk(value, cmd),
|
|
230
|
-
err: (error) => onErr(error, cmd)
|
|
231
|
-
});
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// src/run.ts
|
|
236
|
-
function defaultOnError(error, _context) {
|
|
237
|
-
if (error instanceof RuntimeDiscardNotice) {
|
|
238
|
-
console.warn(error);
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
setTimeout(() => {
|
|
242
|
-
throw error;
|
|
243
|
-
}, 0);
|
|
244
|
-
}
|
|
245
|
-
function normalizeSupervision(supervision) {
|
|
246
|
-
if (supervision === void 0) return { strategy: "stop" };
|
|
247
|
-
if (typeof supervision === "string") return { strategy: supervision };
|
|
248
|
-
return supervision;
|
|
249
|
-
}
|
|
250
|
-
function run(machine, opts) {
|
|
251
|
-
const { store } = opts;
|
|
252
|
-
const ctx = opts.ctx ?? {};
|
|
253
|
-
const clock = opts.clock ?? Date.now;
|
|
254
|
-
const idleCap = opts.__idleCap ?? 1e5;
|
|
255
|
-
const disposeTimeoutMs = opts.disposeTimeoutMs ?? 5e3;
|
|
256
|
-
const projectEvents = opts.events ?? (() => []);
|
|
257
|
-
const isTerminal = opts.terminal ?? (() => false);
|
|
258
|
-
const onError = opts.onError ?? defaultOnError;
|
|
259
|
-
const reportError = (error, context) => {
|
|
260
|
-
try {
|
|
261
|
-
onError(error, context);
|
|
262
|
-
} catch (sinkError) {
|
|
263
|
-
defaultOnError(sinkError);
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
function fanout(items, phase, fn) {
|
|
267
|
-
for (const item of items) {
|
|
268
|
-
try {
|
|
269
|
-
fn(item);
|
|
270
|
-
} catch (err) {
|
|
271
|
-
reportError(err, { phase });
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
const supervision = normalizeSupervision(opts.supervision);
|
|
276
|
-
let state;
|
|
277
|
-
let bootError = null;
|
|
278
|
-
let gate = "open";
|
|
279
|
-
let inFlightCmds = 0;
|
|
280
|
-
const subRegistry = /* @__PURE__ */ new Map();
|
|
281
|
-
const depSubRegistry = /* @__PURE__ */ new Map();
|
|
282
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
283
|
-
const observers = /* @__PURE__ */ new Set();
|
|
284
|
-
const bootHandlers = /* @__PURE__ */ new Set();
|
|
285
|
-
let booted = false;
|
|
286
|
-
const eventHandlers = /* @__PURE__ */ new Map();
|
|
287
|
-
const doneWaiters = /* @__PURE__ */ new Set();
|
|
288
|
-
const portRegistry = /* @__PURE__ */ new Map();
|
|
289
|
-
function portEmit(port, value) {
|
|
290
|
-
const subscribers = portRegistry.get(port);
|
|
291
|
-
if (!subscribers || subscribers.size === 0) return;
|
|
292
|
-
fanout(subscribers, "port-emit", (listener) => listener(value));
|
|
293
|
-
}
|
|
294
|
-
const augmentedCtx = Object.assign(
|
|
295
|
-
{},
|
|
296
|
-
ctx,
|
|
297
|
-
{ emit: portEmit }
|
|
298
|
-
);
|
|
299
|
-
let tail = Promise.resolve();
|
|
300
|
-
function stopSubs(ids) {
|
|
301
|
-
for (const id of ids) {
|
|
302
|
-
const cleanup = subRegistry.get(id);
|
|
303
|
-
if (cleanup === void 0) continue;
|
|
304
|
-
try {
|
|
305
|
-
trackDisposal(cleanup());
|
|
306
|
-
} catch (err) {
|
|
307
|
-
reportError(err, { phase: "sub-cleanup" });
|
|
308
|
-
}
|
|
309
|
-
subRegistry.delete(id);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
const pendingDisposals = /* @__PURE__ */ new Set();
|
|
313
|
-
function trackDisposal(result) {
|
|
314
|
-
if (!(result instanceof Promise)) return;
|
|
315
|
-
const settling = result.catch((err) => {
|
|
316
|
-
reportError(err, { phase: "sub-cleanup" });
|
|
317
|
-
}).finally(() => {
|
|
318
|
-
pendingDisposals.delete(settling);
|
|
319
|
-
});
|
|
320
|
-
pendingDisposals.add(settling);
|
|
321
|
-
}
|
|
322
|
-
async function drainDisposals() {
|
|
323
|
-
if (pendingDisposals.size === 0) return;
|
|
324
|
-
const outstanding = [...pendingDisposals];
|
|
325
|
-
let timer;
|
|
326
|
-
try {
|
|
327
|
-
const outcome = await Promise.race([
|
|
328
|
-
Promise.all(outstanding).then(() => "settled"),
|
|
329
|
-
new Promise((resolve) => {
|
|
330
|
-
timer = setTimeout(() => resolve("timeout"), disposeTimeoutMs);
|
|
331
|
-
})
|
|
332
|
-
]);
|
|
333
|
-
if (outcome === "timeout") {
|
|
334
|
-
reportError(
|
|
335
|
-
new DisposeTimeoutNotice(outstanding.length, disposeTimeoutMs),
|
|
336
|
-
{ phase: "discard" }
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
} finally {
|
|
340
|
-
if (timer !== void 0) clearTimeout(timer);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
function disposeDepSubs(indices) {
|
|
344
|
-
for (const index of indices) {
|
|
345
|
-
const running = depSubRegistry.get(index);
|
|
346
|
-
if (running === void 0) continue;
|
|
347
|
-
try {
|
|
348
|
-
trackDisposal(running.dispose());
|
|
349
|
-
} catch (err) {
|
|
350
|
-
reportError(err, { phase: "sub-cleanup" });
|
|
351
|
-
}
|
|
352
|
-
depSubRegistry.delete(index);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
function reconcileDepSubs() {
|
|
356
|
-
let firstError = null;
|
|
357
|
-
const subs = machine.subs;
|
|
358
|
-
if (!subs) return firstError;
|
|
359
|
-
for (const [i, entry] of subs.entries()) {
|
|
360
|
-
let deps;
|
|
361
|
-
let id;
|
|
362
|
-
try {
|
|
363
|
-
deps = entry.deps(state);
|
|
364
|
-
if (depsInactive(deps)) {
|
|
365
|
-
disposeDepSubs([i]);
|
|
366
|
-
continue;
|
|
367
|
-
}
|
|
368
|
-
id = structuralHash(deps);
|
|
369
|
-
} catch (err) {
|
|
370
|
-
if (firstError === null) firstError = err;
|
|
371
|
-
continue;
|
|
372
|
-
}
|
|
373
|
-
const running = depSubRegistry.get(i);
|
|
374
|
-
if (running !== void 0 && running.runningId === id) {
|
|
375
|
-
continue;
|
|
376
|
-
}
|
|
377
|
-
disposeDepSubs([i]);
|
|
378
|
-
try {
|
|
379
|
-
const dispose = entry.source(state, dispatchUnawaited, ctx);
|
|
380
|
-
depSubRegistry.set(i, { runningId: id, dispose });
|
|
381
|
-
} catch (err) {
|
|
382
|
-
if (firstError === null) firstError = err;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
return firstError;
|
|
386
|
-
}
|
|
387
|
-
function reconcileSubs() {
|
|
388
|
-
const depError = reconcileDepSubs();
|
|
389
|
-
if (!machine.subscriptions) {
|
|
390
|
-
if (depError !== null) throw depError;
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
const desired = machine.subscriptions(state);
|
|
394
|
-
const desiredIds = /* @__PURE__ */ new Set();
|
|
395
|
-
const desiredTypeById = /* @__PURE__ */ new Map();
|
|
396
|
-
for (const sub of desired) {
|
|
397
|
-
const existing = desiredTypeById.get(sub.id);
|
|
398
|
-
if (existing !== void 0 && existing !== sub.type) {
|
|
399
|
-
throw new SubIdCollisionError(sub.id, existing, sub.type);
|
|
400
|
-
}
|
|
401
|
-
desiredTypeById.set(sub.id, sub.type);
|
|
402
|
-
}
|
|
403
|
-
for (const sub of desired) desiredIds.add(sub.id);
|
|
404
|
-
stopSubs([...subRegistry.keys()].filter((id) => !desiredIds.has(id)));
|
|
405
|
-
let firstStartError = depError;
|
|
406
|
-
for (const sub of desired) {
|
|
407
|
-
if (subRegistry.has(sub.id)) continue;
|
|
408
|
-
const handler = machine.subscribe?.[sub.type];
|
|
409
|
-
if (!handler) {
|
|
410
|
-
continue;
|
|
411
|
-
}
|
|
412
|
-
try {
|
|
413
|
-
const cleanup = handler(
|
|
414
|
-
sub,
|
|
415
|
-
ctx,
|
|
416
|
-
dispatchUnawaited
|
|
417
|
-
);
|
|
418
|
-
subRegistry.set(sub.id, cleanup);
|
|
419
|
-
} catch (err) {
|
|
420
|
-
if (firstStartError === null) firstStartError = err;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
if (firstStartError !== null) throw firstStartError;
|
|
424
|
-
}
|
|
425
|
-
const interpretMap = machine.interpret ?? {};
|
|
426
|
-
const cmdDefs = new Map(
|
|
427
|
-
(machine.cmds ?? []).map((def) => [def.cmdType, def])
|
|
428
|
-
);
|
|
429
|
-
function settleAtEdge(cmd, follow) {
|
|
430
|
-
const def = cmdDefs.get(cmd.type);
|
|
431
|
-
if (def === void 0 || !isSettledShape(follow)) return follow;
|
|
432
|
-
const at = follow.at ?? clock();
|
|
433
|
-
if (follow.type === def.okType) {
|
|
434
|
-
const parsed = def.schema.ok.safeParse(follow.value);
|
|
435
|
-
if (!parsed.success) {
|
|
436
|
-
return {
|
|
437
|
-
type: def.errType,
|
|
438
|
-
cmd: follow.cmd,
|
|
439
|
-
error: malformedResult(parsed.error.issues),
|
|
440
|
-
at
|
|
441
|
-
};
|
|
442
|
-
}
|
|
443
|
-
return { ...follow, value: parsed.data, at };
|
|
444
|
-
}
|
|
445
|
-
if (follow.type === def.errType) return { ...follow, at };
|
|
446
|
-
return follow;
|
|
447
|
-
}
|
|
448
|
-
function isSettledShape(follow) {
|
|
449
|
-
return typeof follow === "object" && follow !== null && typeof follow.type === "string";
|
|
450
|
-
}
|
|
451
|
-
const dispatchUnawaited = (msg) => {
|
|
452
|
-
enqueueDispatch(msg).catch(reportUndelivered);
|
|
453
|
-
};
|
|
454
|
-
function reportUndelivered(error) {
|
|
455
|
-
reportError(error, {
|
|
456
|
-
phase: error instanceof DispatchDiscardedError ? "discard" : "follow-up"
|
|
457
|
-
});
|
|
458
|
-
}
|
|
459
|
-
function trackInFlight(work) {
|
|
460
|
-
inFlightCmds++;
|
|
461
|
-
return Promise.resolve(work).finally(() => {
|
|
462
|
-
inFlightCmds--;
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
async function runInterpret(cmds) {
|
|
466
|
-
for (const cmd of cmds) {
|
|
467
|
-
const handler = interpretMap[cmd.type];
|
|
468
|
-
if (!handler) continue;
|
|
469
|
-
const returned = await trackInFlight(
|
|
470
|
-
handler(
|
|
471
|
-
cmd,
|
|
472
|
-
// The handler's cell demands `Ctx & NeedsOf<its Cmd>`; the runtime
|
|
473
|
-
// holds `Ctx & RequiredCtx<C>` — the intersection over EVERY Cmd, so
|
|
474
|
-
// a superset of any one cell's slice. The widening is sound by
|
|
475
|
-
// construction; `tsc` cannot see through the generic `C` to prove it.
|
|
476
|
-
augmentedCtx,
|
|
477
|
-
dispatchUnawaited
|
|
478
|
-
)
|
|
479
|
-
);
|
|
480
|
-
const follow = settleAtEdge(cmd, returned);
|
|
481
|
-
if (follow !== void 0 && follow !== null) {
|
|
482
|
-
enqueueDispatch(follow).catch(reportUndelivered);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
function fireListeners() {
|
|
487
|
-
fanout(listeners, "listener", (listener) => listener());
|
|
488
|
-
}
|
|
489
|
-
function fireObservers(msg) {
|
|
490
|
-
if (observers.size === 0 || state === void 0) return;
|
|
491
|
-
const snapshot = state;
|
|
492
|
-
fanout(observers, "observer", (observer) => observer(msg, snapshot));
|
|
493
|
-
}
|
|
494
|
-
function fireEvents(msg) {
|
|
495
|
-
if (eventHandlers.size === 0 || state === void 0) return;
|
|
496
|
-
let events;
|
|
497
|
-
try {
|
|
498
|
-
events = projectEvents(msg, state);
|
|
499
|
-
} catch (err) {
|
|
500
|
-
reportError(err, { phase: "event" });
|
|
501
|
-
return;
|
|
502
|
-
}
|
|
503
|
-
for (const event of events) {
|
|
504
|
-
const bucket = eventHandlers.get(event.type);
|
|
505
|
-
if (bucket === void 0) continue;
|
|
506
|
-
fanout(bucket, "event", (handler) => handler(event));
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
function fireBoot() {
|
|
510
|
-
booted = true;
|
|
511
|
-
if (bootHandlers.size === 0 || state === void 0) return;
|
|
512
|
-
const snapshot = state;
|
|
513
|
-
fanout(bootHandlers, "boot", (handler) => handler(snapshot));
|
|
514
|
-
}
|
|
515
|
-
function settleDoneWaiters() {
|
|
516
|
-
if (doneWaiters.size === 0 || state === void 0) return;
|
|
517
|
-
if (!isTerminal(state)) return;
|
|
518
|
-
const snapshot = state;
|
|
519
|
-
const parked = [...doneWaiters];
|
|
520
|
-
doneWaiters.clear();
|
|
521
|
-
for (const resolve of parked) resolve(snapshot);
|
|
522
|
-
}
|
|
523
|
-
async function commit(next, msg, cmds) {
|
|
524
|
-
state = next;
|
|
525
|
-
if (store) await store.save(next);
|
|
526
|
-
reconcileSubs();
|
|
527
|
-
await runInterpret(cmds);
|
|
528
|
-
fireListeners();
|
|
529
|
-
fireObservers(msg);
|
|
530
|
-
fireEvents(msg);
|
|
531
|
-
settleDoneWaiters();
|
|
532
|
-
}
|
|
533
|
-
function isMisaddressed(msg, current) {
|
|
534
|
-
if (machine.identity === void 0) return false;
|
|
535
|
-
const addressed = machine.identity.ofMsg(msg);
|
|
536
|
-
if (addressed === void 0) return false;
|
|
537
|
-
const own = machine.identity.ofState(current);
|
|
538
|
-
if (own === void 0) return false;
|
|
539
|
-
return structuralHash(addressed) !== structuralHash(own);
|
|
540
|
-
}
|
|
541
|
-
async function stepDispatch(msg) {
|
|
542
|
-
if (state === void 0) {
|
|
543
|
-
throw new Error("@demlik/tea: runtime not booted");
|
|
544
|
-
}
|
|
545
|
-
let next;
|
|
546
|
-
let cmds;
|
|
547
|
-
try {
|
|
548
|
-
if (isMisaddressed(msg, state)) {
|
|
549
|
-
reportError(new IdentityDropNotice(msg.type), {
|
|
550
|
-
phase: "identity-drop"
|
|
551
|
-
});
|
|
552
|
-
return;
|
|
553
|
-
}
|
|
554
|
-
[next, cmds] = applyCellChecked(machine, state, msg);
|
|
555
|
-
} catch (reduceError) {
|
|
556
|
-
reportError(reduceError, { phase: "reduce" });
|
|
557
|
-
switch (supervision.strategy) {
|
|
558
|
-
case "restart": {
|
|
559
|
-
await commit(supervision.rehydrate(state, msg, reduceError), msg, []);
|
|
560
|
-
return;
|
|
561
|
-
}
|
|
562
|
-
case "escalate":
|
|
563
|
-
throw reduceError;
|
|
564
|
-
default:
|
|
565
|
-
gate = "closed";
|
|
566
|
-
throw reduceError;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
await commit(next, msg, cmds);
|
|
570
|
-
}
|
|
571
|
-
let pendingInitCmds = [];
|
|
572
|
-
if (!store) {
|
|
573
|
-
const [initialState, initCmds] = machine.init(null, ctx);
|
|
574
|
-
state = initialState;
|
|
575
|
-
pendingInitCmds = initCmds;
|
|
576
|
-
}
|
|
577
|
-
async function stepBootEffects() {
|
|
578
|
-
if (store) {
|
|
579
|
-
const raw = await store.load();
|
|
580
|
-
const parsed = store.migrate(raw);
|
|
581
|
-
const [initialState, initCmds] = machine.init(parsed, ctx);
|
|
582
|
-
state = initialState;
|
|
583
|
-
pendingInitCmds = initCmds;
|
|
584
|
-
await store.save(state);
|
|
585
|
-
}
|
|
586
|
-
reconcileSubs();
|
|
587
|
-
await runInterpret(pendingInitCmds);
|
|
588
|
-
fireListeners();
|
|
589
|
-
fireBoot();
|
|
590
|
-
settleDoneWaiters();
|
|
591
|
-
}
|
|
592
|
-
function enqueueDispatch(msg) {
|
|
593
|
-
if (gate !== "open") {
|
|
594
|
-
return Promise.reject(
|
|
595
|
-
gate === "draining" ? new DispatchDiscardedError(msg.type) : new Error("@demlik/tea: runtime stopped")
|
|
596
|
-
);
|
|
597
|
-
}
|
|
598
|
-
const next = tail.then(() => {
|
|
599
|
-
if (bootError !== null) throw bootError;
|
|
600
|
-
return stepDispatch(msg);
|
|
601
|
-
});
|
|
602
|
-
tail = next.catch(() => {
|
|
603
|
-
});
|
|
604
|
-
return next;
|
|
605
|
-
}
|
|
606
|
-
async function drainToQuiescence() {
|
|
607
|
-
for (let i = 0; i < idleCap; i++) {
|
|
608
|
-
const observed = tail;
|
|
609
|
-
await observed;
|
|
610
|
-
if (tail === observed) return;
|
|
611
|
-
}
|
|
612
|
-
throw new QuiescenceTimeoutError(idleCap);
|
|
613
|
-
}
|
|
614
|
-
async function dispatchToQuiescence(msg, opts2) {
|
|
615
|
-
await enqueueDispatch(msg);
|
|
616
|
-
if (opts2?.settle === "once") return;
|
|
617
|
-
await drainToQuiescence();
|
|
618
|
-
}
|
|
619
|
-
const bootPromise = stepBootEffects();
|
|
620
|
-
tail = bootPromise.catch((err) => {
|
|
621
|
-
bootError = err;
|
|
622
|
-
});
|
|
623
|
-
const readyPromise = bootPromise.then(
|
|
624
|
-
() => runtime
|
|
625
|
-
);
|
|
626
|
-
const runtime = {
|
|
627
|
-
dispatch: dispatchToQuiescence,
|
|
628
|
-
dispatchOnce: enqueueDispatch,
|
|
629
|
-
getState() {
|
|
630
|
-
return state;
|
|
631
|
-
},
|
|
632
|
-
subscribe(listener) {
|
|
633
|
-
listeners.add(listener);
|
|
634
|
-
return () => {
|
|
635
|
-
listeners.delete(listener);
|
|
636
|
-
};
|
|
637
|
-
},
|
|
638
|
-
observe(observer) {
|
|
639
|
-
observers.add(observer);
|
|
640
|
-
return () => {
|
|
641
|
-
observers.delete(observer);
|
|
642
|
-
};
|
|
643
|
-
},
|
|
644
|
-
onBoot(handler) {
|
|
645
|
-
if (booted && state !== void 0) {
|
|
646
|
-
const snapshot = state;
|
|
647
|
-
fanout([handler], "boot", (h) => h(snapshot));
|
|
648
|
-
return () => {
|
|
649
|
-
};
|
|
650
|
-
}
|
|
651
|
-
bootHandlers.add(handler);
|
|
652
|
-
return () => {
|
|
653
|
-
bootHandlers.delete(handler);
|
|
654
|
-
};
|
|
655
|
-
},
|
|
656
|
-
on(type, handler) {
|
|
657
|
-
let bucket = eventHandlers.get(type);
|
|
658
|
-
if (bucket === void 0) {
|
|
659
|
-
bucket = /* @__PURE__ */ new Set();
|
|
660
|
-
eventHandlers.set(type, bucket);
|
|
661
|
-
}
|
|
662
|
-
const erased = handler;
|
|
663
|
-
bucket.add(erased);
|
|
664
|
-
return () => {
|
|
665
|
-
const set = eventHandlers.get(type);
|
|
666
|
-
if (set === void 0) return;
|
|
667
|
-
set.delete(erased);
|
|
668
|
-
if (set.size === 0) eventHandlers.delete(type);
|
|
669
|
-
};
|
|
670
|
-
},
|
|
671
|
-
subscribePort(port, listener) {
|
|
672
|
-
const key = port;
|
|
673
|
-
let bucket = portRegistry.get(key);
|
|
674
|
-
if (!bucket) {
|
|
675
|
-
bucket = /* @__PURE__ */ new Set();
|
|
676
|
-
portRegistry.set(key, bucket);
|
|
677
|
-
}
|
|
678
|
-
const erased = listener;
|
|
679
|
-
bucket.add(erased);
|
|
680
|
-
return () => {
|
|
681
|
-
const set = portRegistry.get(key);
|
|
682
|
-
if (!set) return;
|
|
683
|
-
set.delete(erased);
|
|
684
|
-
if (set.size === 0) portRegistry.delete(key);
|
|
685
|
-
};
|
|
686
|
-
},
|
|
687
|
-
emitPort(port, value) {
|
|
688
|
-
portEmit(port, value);
|
|
689
|
-
},
|
|
690
|
-
ready: readyPromise,
|
|
691
|
-
idle() {
|
|
692
|
-
return drainToQuiescence();
|
|
693
|
-
},
|
|
694
|
-
result() {
|
|
695
|
-
const current = state;
|
|
696
|
-
return isTerminal(current) ? current : void 0;
|
|
697
|
-
},
|
|
698
|
-
done() {
|
|
699
|
-
const current = state;
|
|
700
|
-
if (isTerminal(current)) return Promise.resolve(current);
|
|
701
|
-
return new Promise((resolve) => {
|
|
702
|
-
doneWaiters.add(resolve);
|
|
703
|
-
});
|
|
704
|
-
},
|
|
705
|
-
async stop() {
|
|
706
|
-
if (gate === "open") gate = "draining";
|
|
707
|
-
if (inFlightCmds > 0) {
|
|
708
|
-
reportError(new RuntimeDiscardedError(inFlightCmds), {
|
|
709
|
-
phase: "discard"
|
|
710
|
-
});
|
|
711
|
-
}
|
|
712
|
-
await tail;
|
|
713
|
-
gate = "closed";
|
|
714
|
-
stopSubs([...subRegistry.keys()]);
|
|
715
|
-
disposeDepSubs([...depSubRegistry.keys()]);
|
|
716
|
-
await drainDisposals();
|
|
717
|
-
if (store && state !== void 0 && bootError === null) {
|
|
718
|
-
try {
|
|
719
|
-
await store.save(state);
|
|
720
|
-
} catch (error) {
|
|
721
|
-
reportError(error, { phase: "stop-save" });
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
};
|
|
726
|
-
return runtime;
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
export { DispatchDiscardedError, DisposeTimeoutNotice, IdentityDropNotice, PortNameCollisionError, QuiescenceTimeoutError, RuntimeDiscardNotice, RuntimeDiscardedError, SubIdCollisionError, __resetPortRegistry, absurd, asReducer, defineMachine, definePort, historyTracker, noop, replay, run, schemaMigrate, settle, tryApplyCell, tryFoldMsgs, tryInterpret, wrapDetached };
|
|
730
|
-
//# sourceMappingURL=chunk-ZSUUOEPL.js.map
|
|
731
|
-
//# sourceMappingURL=chunk-ZSUUOEPL.js.map
|